人ãšAIã§ã§ããçµç¹ãè³¢ããã - Helmã®éçºãªããžããª
Helmã¯ã人ã®è²¬ä»»ã»å€æã»æææ±ºå®ã«çŠç¹ãåœãŠãAIãšãŒãžã§ã³ãã§ããæ¢åã®AIãšãŒãžã§ã³ããã¿ã¹ã¯ãææç©ãæé©åããã®ã«å¯ŸããHelmã¯ã誰ãã»ãã€ã»ã©ã倿ãããããææ§ã§ãæææ±ºå®ãé ãããæªãã ãããåé¡ãæ€ç¥ããæ¹åããŸãã
äŒè°ããã£ããããã誰ãã»ãã€ã»ã©ã倿ãã¹ãããã®åé¡ãæ€ç¥ããé©åãªäººã«å€æãä¿ãã·ã¹ãã ã§ããåŸæ¥ã®ã人ãAIãåŒã³åºãããã**ãAIã人ãåŒã³åºãã**ãžè»¢æããããšã§ã倿ã®é ããè²¬ä»»ã®ææ§ããªã©ãèªåæ€ç¥ããé©åãªã¿ã€ãã³ã°ã§é©åãªäººã«å€æãæ±ããä»çµã¿ãå®çŸããŸãã
ãAIãè³¢ãããã®ã§ã¯ãªãã"人ãšAIã§ã§ããçµç¹"ãè³¢ããããã
Helmã¯ãã«ãŒã«ããŒã¹ãšãã«ãèŠç¹LLMãçµã¿åããããã€ããªããè©äŸ¡ã«ãããèŠèœãšãã®ãªãçµ±å倿ãå®çŸããŸãã
ã«ãŒã«ããŒã¹åæã§ã¯ãKPIäžæ¹ä¿®æ£åæ°ãæ€éè°è«ã®æç¡ã倿éäžçãªã©ã®å®éçææšã«åºã¥ããŠãå®å šåŽã®ããŒã¹ã©ã€ã³è©äŸ¡ãè¡ããŸãã
ãã«ãèŠç¹LLMåæã§ã¯ãåãäŒè°ãã°ãšãã£ãããã°ãã4ã€ã®ç°ãªãèŠç¹ããè©äŸ¡ããŸãïŒ
- çµå¶è èŠç¹: å šç€Ÿã®æ¥çžŸã»ãªã¹ã¯ã»ã¹ããŒã¯ãã«ããŒè²¬ä»»ã®èгç¹ããè©äŸ¡
- çµå¶äŒç»èŠç¹: KPIã»äºæ¥ããŒããã©ãªãªã»æ€é/æè³å€æã®èгç¹ããè©äŸ¡
- çŸå ŽèŠç¹: å®è¡å¯èœæ§ãšçŸå Žè² è·ã®èгç¹ããè©äŸ¡
- ã¬ããã³ã¹èŠç¹: å ±åé å»¶ã»é ãããªã¹ã¯ã»ã³ã³ãã©ã€ã¢ã³ã¹ã®èгç¹ããè©äŸ¡
ãããã®è©äŸ¡çµæãã¢ã³ãµã³ãã«ã¹ã³ã¢ãªã³ã°ïŒ0.6Ãã«ãŒã« + 0.4ÃLLMïŒã§çµ±åããããšã§ãåäžã®è©äŸ¡è»žã§ã¯èŠèœãšããã¡ãªåé¡ããè€æ°ã®èŠç¹ããæ€ç¥ã§ããããã«ãªããŸããæ€ç¥ãããåé¡ã¯äºåå®çŸ©ããããã¿ãŒã³ïŒB1_æ£åœåãã§ãŒãºãES1_å ±åé å»¶ãA2_æ€é倿ã®é ããªã©ïŒã«å²ãåœãŠãããã¢ã©ãŒããäœæãããŸãã
倿ã®é ããè²¬ä»»ã®ææ§ããªã©ãæ€ç¥ãããšãHelmã¯èªåã§åœ¹å¡ / éšé· / ã¹ã¿ãããç¹å®ããå€æã»æ¿èªãäŸé ŒããŸãã人ãAIãç£èŠããã®ã§ã¯ãªããAIãäŒè°ããã£ããã®ç¶æ³ãç£èŠããå¿ èŠãªãšãã«äººã«å€æãæ±ãããšããé転ã®çºæ³ãå®çŸããŠããŸãã責任ã¢ãã«ïŒRACIã»çµç¹ã°ã©ãã»æ¿èªãããŒïŒã«åºã¥ããŠé©åãªããŒã«ã決å®ããããªããã®äººã«å€æãæ±ããã¹ãããã説æã§ãã圢ã§çæããŸãã
Helmã¯ã芳枬ïŒäŒè°ã»ãã£ããã®ååŸïŒâ è©äŸ¡ïŒå顿€ç¥ã»ã¹ã³ã¢ãªã³ã°ïŒâ ä»å ¥ïŒçµå¶å±€ãžãšã¹ã«ã¬ãŒã·ã§ã³ïŒâ å®è¡ïŒAIèªåŸã¿ã¹ã¯å®è¡ïŒâ çµæååŸïŒåèŠ³æž¬ã§æ€èšŒïŒã®ã«ãŒããèªåã§åããŸããã©ããªãšãã«å€æãé ããããããè²¬ä»»ãææ§ã«ãªããããããåŠç¿ããæéãšãšãã«å€æã®ä»çµã¿ãã®ãã®ãæ¹åãããŠããä»çµã¿ãå®çŸããŸãã
çµå¶å±€ã®æ¿èªåŸãHelmã¯ADK (Agent Development Kit) ã䜿çšãããã«ããšãŒãžã§ã³ãã·ã¹ãã ã§èªåŸçã«ã¿ã¹ã¯ãå®è¡ããŸãïŒ
- 調æ»ãšãŒãžã§ã³ã (ResearchAgent): åžå ŽããŒã¿ã®æ€çŽ¢ã»åæïŒå°æ¥: Vertex AI SearchïŒ
- åæãšãŒãžã§ã³ã (AnalysisAgent): 瀟å ããŒã¿ã®ååŸã»è²¡åã·ãã¥ã¬ãŒã·ã§ã³ïŒå°æ¥: Google Drive APIïŒ
- è³æãšãŒãžã§ã³ã: 3æ¡æ¯èŒè³æã®èªåçæã»ä¿å
- éç¥ãšãŒãžã§ã³ã (NotificationAgent): ã¡ãã»ãŒãžçæã»éä¿¡ïŒPhase1: ãã©ããã®ã¿ãå°æ¥: Chat/Gmail APIïŒ
- äŒè°èª¿æŽ (CalendarAgent): äŒè°ã¢ãžã§ã³ãã®æŽæ°ïŒèšè𿮵éïŒ
Phase1ïŒå®è£ å®äºïŒ: ã¢ãã¯å®è£ ãšADKçµ±åããã©ãŒã«ããã¯å¯Ÿå¿ Phase2ïŒå®è£ äºå®ïŒ: å®APIçµ±åïŒVertex AI SearchãGoogle DriveãChat/Gmail APIïŒ
Helmã¯ãç£èŠããŒã«ãã§ã¯ãªããæææ±ºå®ã¬ããã³ã¹ã®æé©åãç®çãšããèšèšã§ããååŸç¯å²ã¯ç¹å®ãããžã§ã¯ãã»ã¯ãŒã¯ã¹ããŒã¹ã«éå®ããåæã»åç¥ãæç€ºãå¿ååã»ä¿ææéã»ç£æ»ã»èª€æ€ç¥æã®è²¬ä»»å¢çãèšèšæžã¿ã§ãã
- èªèšŒ: API Key ïŒ ããŒã«ïŒ
X-API-KeyãããïŒãç°å¢å€æ°API_KEYSã§æå¹åããªãŒããŒããŒ1æ¬ã®äŸã¯ backend README ãåç §ã - 誀æ€ç¥ãã£ãŒãããã¯ã»ç²ŸåºŠææš:
POST /api/feedback/false-positiveãGET /api/metrics/accuracyã§ç²ŸåºŠæ¹åã®ããã®ãã£ãŒãããã¯ãšææšååŸã - ç£æ»ãã°: ã¢ã¯ã·ã§ã³èšé²ãš
GET /api/audit/logsã§ã®ååŸãåãšã³ããªã«ããã·ã¥ãã§ãŒã³ä»äžãGET /api/audit/verifyã§æ¹ããæ€èšŒå¯èœã - ååŸç¯å²ã»ãµãã¬ãã·ã§ã³: ååŸå¯Ÿè±¡ã®ãã¯ã€ããªã¹ãïŒäŒè°/ãã£ããIDïŒãæ€ç¥ã®ãµãã¬ãã·ã§ã³æ¡ä»¶ïŒãã¿ãŒã³ïŒãªãœãŒã¹ïŒãèšå®å¯èœã
- ããŒã¿ä¿åæé: åæïŒmeetings/chats/materialsïŒã¯ããã©ã«ã7æ¥ã§ç Žæ£ïŒäºå±€ä¿æã¢ãã«ïŒã
POST /api/admin/retention/cleanupã«ãã宿åé€ãèšèšã¯ data-retention.mdã - åªçæ§: åäž approval_id ã«å¯Ÿãã execute ã®äºéå®è¡ãé²ãïŒèšèšã¯ idempotency-execute.mdïŒã
- å®çŸ©ããã¥ã¡ã³ãé§å: çµç¹ã°ã©ãã»RACIã»æ¿èªãããŒã JSON ã§ç®¡çïŒ
backend/config/definitions/ïŒãEscalationEngine ã RACI ã«åºã¥ãã¿ãŒã²ããããŒã«ãšæ¿èªãããŒã決å®ãã倿®µéæ¿èªããµããŒãã
å°æ¥æ¡åŒµã®èšèšïŒãªãŒããŒã·ããããã«ãããã³ãããžã§ããã¥ãŒãéç¥ããªã·ãŒïŒã¯ docs/future/ ãåç §ã
- çŸç¶: ã³ã¢æ©èœïŒããŒã¿åã蟌㿠/ æ€ç¥ã»è©äŸ¡ / ã¢ã©ãŒãã»æ¿èª / AIèªåŸå®è¡ïŒãã¬ããã³ã¹ã»éçšïŒèªèšŒã»ç£æ»ã»èª€æ€ç¥ã»ãµãã¬ãã·ã§ã³ã»ä¿åæéã»åªçæ§ïŒãå®çŸ©ããã¥ã¡ã³ãïŒçµç¹ã°ã©ãã»RACIã»æ¿èªãããŒïŒãŸã§å®è£ æžã¿ãCloud Run / Vercel ãããã€æžã¿ã
- ãã¯ã¹ãã¹ããã:
- çæã»äžæ: ADKæ¬å®è£ ïŒå®APIçµ±åïŒããã¢ããæ±çšæ©èœåãæ°žç¶åïŒFirestoreïŒãäŒè°èª¿æŽã»äœæ
- é·æ: ãã«ãããã³ãã»ãžã§ããã¥ãŒã»éç¥ããªã·ãŒã»ãªãŒããŒã·ããïŒèšèšã¯ docs/future/ïŒ
詳现㯠éçºç¶æ³ãµããªãŒ 㚠次ã®ã¹ããã ãåç §ã
åããŠã®æ¹ã¯ãã¡ããã:
- ð ã¯ã€ãã¯ã¹ã¿ãŒãã¬ã€ã - åå¿è åãèµ·åæé
- ð ã¢ãŒããã¯ãã£ããã¥ã¡ã³ã - ã·ã¹ãã å šäœã®èšèš
- ð ããã¥ã¡ã³ãäžèЧ - å šããã¥ã¡ã³ãã®ã€ã³ããã¯ã¹
Dev/
âââ app/
â âââ v0-helm-demo/ # ããã³ããšã³ãïŒNext.jsïŒ
â âââ app/
â â âââ demo/
â â âââ case1/ # Case1ãã¢ããŒãž
â â âââ case2/ # Case2ãã¢ããŒãž
â â âââ case3/ # Case3ãã¢ããŒãž
â âââ lib/
â âââ api.ts # APIã¯ã©ã€ã¢ã³ã
âââ backend/ # ããã¯ãšã³ãïŒPython FastAPIïŒ
â âââ main.py # ã¡ã€ã³API
â âââ config/
â â âââ definitions/ # çµç¹ã°ã©ãã»RACIã»æ¿èªãããŒïŒJSONïŒ
â â âââ prompts/ # LLMããã³ããïŒãããç·šéå¯èœãçµç¹ã°ã©ããšåæ§ïŒ
â âââ services/ # ãµãŒãã¹å±€
â â âââ google_meet.py # Google Meetçµ±å
â â âââ google_chat.py # Google Chatçµ±å
â â âââ analyzer.py # æææ±ºå®ã®è©°ãŸãã®æ€ç¥ïŒã«ãŒã«ããŒã¹ïŒ
â â âââ multi_view_analyzer.py # ãã«ãèŠç¹LLMåæ
â â âââ ensemble_scoring.py # ã¢ã³ãµã³ãã«ã¹ã³ã¢ãªã³ã°
â â âââ llm_service.py # LLMçµ±åãµãŒãã¹
â â âââ scoring.py # ã¹ã³ã¢ãªã³ã°ãµãŒãã¹
â â âââ escalation_engine.py # ãšã¹ã«ã¬ãŒã·ã§ã³å€æ
â â âââ definition_loader.py # å®çŸ©ããã¥ã¡ã³ãèªã¿èŸŒã¿
â â âââ responsibility_resolver.py # RACI/æ¿èªãããŒè§£æ±º
â â âââ approval_flow_engine.py # 倿®µéæ¿èªãããŒ
â â âââ audit_log.py # ç£æ»ãã°
â â âââ evaluation_metrics.py # ç²ŸåºŠææšã»èª€æ€ç¥ãã£ãŒãããã¯
â â âââ retention_cleanup.py # ããŒã¿ä¿åæéã«åºã¥ãåé€
â â âââ google_workspace.py # Google Workspaceçµ±å
â â âââ google_drive.py # Google Driveçµ±å
â â âââ adk_setup.py # ADKã»ããã¢ãã
â â âââ agents/ # ADKãšãŒãžã§ã³ã
â â âââ research_agent.py # åžå ŽããŒã¿åæãšãŒãžã§ã³ã
â â âââ analysis_agent.py # 瀟å
ããŒã¿çµ±åãšãŒãžã§ã³ã
â â âââ notification_agent.py # éç¥ãšãŒãžã§ã³ã
â â âââ workflow_agent.py # ã¯ãŒã¯ãããŒãšãŒãžã§ã³ã
â â âââ shared_context.py # å
±æã³ã³ããã¹ã
â âââ schemas/ # ããŒã¿ã¹ããŒã
â â âââ firestore.py
â âââ requirements.txt
âââ Architectures/ # ã¢ãŒããã¯ãã£èšèšè³æ
cd Dev/backend
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
uvicorn main:app --reload --host 0.0.0.0 --port 8000cd Dev/app/v0-helm-demo
pnpm install
pnpm devããã³ããšã³ã㯠http://localhost:3000 ã§èµ·åããŸãã
ããŒã¿åã蟌ã¿ïŒMeet/ChatïŒ â æ€ç¥ã»è©äŸ¡ïŒã«ãŒã«ããŒã¹ + 4ããŒã«LLMïŒ â
ã¢ã³ãµã³ãã«ã¹ã³ã¢ãªã³ã°ïŒ0.6Ãã«ãŒã« + 0.4ÃLLMïŒ â ã¢ã©ãŒãã»æ¿èª â
AIèªåŸå®è¡ïŒ4ãšãŒãžã§ã³ã䞊åïŒ â çµæä¿å â åèŠ³æž¬ã§æ€èšŒ
å®éçææšïŒKPIäžæ¹ä¿®æ£åæ°ãæ€éè°è«ã®æç¡ã倿éäžçãå察æèŠç¡èŠãªã©ïŒã«åºã¥ããŠã倿ã®é ããè²¬ä»»ã®ææ§ãã«ç¹ããåé¡ãæ€ç¥ããŸããããã¯èŠéããŒãã®å®å šç¶²ãšããŠæ©èœããŸãã
åãäŒè°ãã°ãšãã£ãããã°ãã4ã€ã®ããŒã«èŠç¹ïŒçµå¶è ãçµå¶äŒç»ãçŸå Žãã¬ããã³ã¹ïŒããLLMïŒGeminiïŒã§è©äŸ¡ããŸããæèçè§£ã«ããéå°åå¿ãæå¶ãã€ã€ãæ°å€ã¯æ£åžžã ãã空æ°ãç°åžžããšãã£ãã±ãŒã¹ãæ€ç¥ããŸãã
ã«ãŒã«ããŒã¹çµæãšLLMçµæãçµ±åããŠãããä¿å®çã§ä¿¡é Œæ§ã®é«ãè©äŸ¡ãå®çŸããŸãïŒ
- ã¹ã³ã¢èšç®:
0.6 à ã«ãŒã«ããŒã¹ã¹ã³ã¢ + 0.4 à LLMå¹³åã¹ã³ã¢ - éèŠåºŠã»ç·æ¥åºŠ: ã«ãŒã«ããŒã¹ãšåããŒã«ã®çµæã®ãã¡ã**æãå®å šåŽïŒæã匷ãïŒ**ãæ¡çš
- 説ææ: ã«ãŒã«ããŒã¹ã®èª¬æãšäž»èŠããŒã«ã®ã³ã¡ã³ããçµ±å
ç²ŸåºŠææšã®ã¢ãã¿ãªã³ã°ïŒGET /api/metrics/accuracyïŒã誀æ€ç¥ãã£ãŒãããã¯ïŒPOST /api/feedback/false-positiveïŒã«ãããéçšããªããéã¿ãéŸå€ãæ ¡æ£ããŠããèšèšã§ãã
-
ããã¯ãšã³ãAPI: https://helm-api-dsy6lzllhq-an.a.run.app
- APIããã¥ã¡ã³ã: https://helm-api-dsy6lzllhq-an.a.run.app/docs
- ãããã€å : Google Cloud Run (asia-northeast1)
- LLM: åæã¯ Gemini 3 FlashãADKãšãŒãžã§ã³ã㯠Gemini 2.0 Flash
-
ããã³ããšã³ã: https://v0-helm-pdca-demo.vercel.app
- ãããã€å : Vercel
- ãã¬ãŒã ã¯ãŒã¯: Next.js 16
- ããã¯ãšã³ã: 2025幎2æ1æ¥
- ããã³ããšã³ã: 2025幎1æ31æ¥
- ãã¬ãŒã ã¯ãŒã¯: FastAPI
- èšèª: Python 3.11
- LLM: Google GeminiïŒGen AI SDKïŒãåæã»ã¿ã¹ã¯çæã¯ Gemini 3 FlashãADKãšãŒãžã§ã³ã㯠Gemini 2.0 FlashïŒ
LLM_MODEL/ADK_MODELã§å€æŽå¯ïŒ - ADK: Google Agent Development Kit (
google-adk) - ãã«ããšãŒãžã§ã³ãã·ã¹ãã - Google API:
google-api-python-client,google-auth-oauthlib - ãã¹ã: pytest
- ãããã€: Google Cloud Run
- ãã¬ãŒã ã¯ãŒã¯: Next.js 16.0.10 (Turbopack)
- èšèª: TypeScript
- UI: React, Tailwind CSS
- ç¶æ 管ç: React Hooks
| è åš | 察çç¶æ³ | åè |
|---|---|---|
| èªèšŒ bypass | å®è£ æžã¿ | API Key + ããŒã«ïŒX-API-KeyïŒãæªèšå®æã¯èªèšŒç¡å¹ã |
| æš©ééžè± | å®è£ æžã¿ | ããŒã«ããŒã¹ã¢ã¯ã»ã¹å¶åŸ¡ãäŒè°ã»ãã£ãããžã®ã¢ã¯ã»ã¹ãããŒã«ã§åé¢ã |
| ããŒã¿æŒæŽ© | å®è£ æžã¿ | ãã¹ãã³ã°ïŒå人åâ圹è·ãæ©åŸ®æ å ±ïŒãä¿ææéã«ããèªååé€ãåæã¯ããã©ã«ã7æ¥ã§ç Žæ£ã |
| DoS / éè² è· | å®è£ æžã¿ | ã¬ãŒãå¶éïŒ1åãããNãªã¯ãšã¹ããç°å¢å€æ° RATE_LIMIT_REQUESTS_PER_MINUTEïŒã |
| ã³ã¹ãæŽéš°ïŒLLMïŒ | å®è£ æžã¿ | æ¥æ¬¡ããŒã¯ã³äžéïŒç°å¢å€æ° LLM_DAILY_TOKEN_LIMITïŒãè¶
ããå Žåã¯ã¢ãã¯ãã©ãŒã«ããã¯ã |
| ããã³ããã€ã³ãžã§ã¯ã·ã§ã³ | èšèšæžã¿ | LLMå ¥åã¯æ§é åããŒã¿ã«éå®ããŠãŒã¶ãŒèªç±å ¥åã¯çµç±ããªãèšèšã |
| ç£æ»ãã°æ¹ãã | å®è£ æžã¿ | åãšã³ããªã«ããã·ã¥ãã§ãŒã³ä»äžãGET /api/audit/verify ã§æ€èšŒå¯èœã |
- é«: OIDC/IAP ãŸã㯠Workspace 飿ºã«ããèªèšŒåŒ·åïŒãããã¯ã·ã§ã³åãïŒâ æªå®è£
- äž: è åšã¢ãã«ã®è©³çްåãšå®æã¬ãã¥ãŒ â æ¬READMEã«ç°¡æçãèšèŒæžã¿
- äœ: WORM çžåœã®ç£æ»ãã°ä¿åïŒã¯ã©ãŠãã¹ãã¬ãŒãžé£æºïŒâ èšèšæ€èšäž
- ð ããã¥ã¡ã³ãäžèЧ - å šããã¥ã¡ã³ãã®ã€ã³ããã¯ã¹
- ð ã¢ãŒããã¯ãã£ããã¥ã¡ã³ã - ã·ã¹ãã å šäœã®èšèš
- ð APIããã¥ã¡ã³ã - å šAPIãšã³ããã€ã³ãã®è©³çް
- ð§ éçºè ã¬ã€ã - éçºè åãã¬ã€ã
- èªèšŒèšèšïŒAPI KeyïŒ | ããŒã¿ä¿åæé | åªçæ§ïŒexecuteïŒ | å°æ¥å®è£ ïŒdocs/future/ïŒ
- ããã¯ãšã³ãã»ããã¢ããã¬ã€ã
- ADKã»ããã¢ããã¬ã€ã - ADKããŒã¹ã®ãã«ããšãŒãžã§ã³ãã·ã¹ãã ã®ã»ããã¢ãã
- ãã¹ãå®è¡ãµããªãŒ - ãã¹ãã®å®è¡æ¹æ³
- GitHubãªããžããªïŒå ¬éïŒ
- ãããã€URLïŒåäœç¢ºèªå¯èœïŒ
- ããã¯ãšã³ã: https://helm-api-dsy6lzllhq-an.a.run.app
- ããã³ããšã³ã: https://v0-helm-pdca-demo.vercel.app
- ZennèšäºïŒæŠèŠãã¢ãŒããã¯ãã£å³ããã¢åç»ïŒã»YouTubeåç» â å®äºã»æçš¿æžã¿
- Zenn: https://zenn.dev/charles_389no/articles/f4adff7b7bcaf8
- ãããã€æžã¿ãµãŒãã¹ã¯æåºæžã¿ã»å¯©æ»äžã®ãã倿Žããªãã