
- TOP
- ã¿ã°äžèЧ
- 人工ç¥èœ
人工ç¥èœ
人工ç¥èœïŒAIïŒArtificial IntelligenceïŒã¯ã³ã³ãã¥ãŒã¿ãµã€ãšã³ã¹ã®äžåéã§ãããç»åèªèãé³å£°èªèãæææ±ºå®ãèšèªç¿»èš³ãªã©ãé垞人éã®ç¥èœãå¿ èŠãšããã¿ã¹ã¯ãå®è¡ã§ããç¥çæ©æ¢°ãåµé ããç ç©¶ã§ãã
ã€ãã³ã
ãã¬ãžã³
æè¡ããã°
SKYMENU Mobileã®ã»ãŒãã«ã¡ã©æ©èœãäŸã«ã補åãžAIæ©èœãçµã¿èŸŒãéã®åºæ¬çãªæµãïŒAIã¢ãã«ã»ãµãŒãã¹ã®éžå®ãèšèšãæ€èšŒãç·åè©äŸ¡ïŒã解説ããŸãã粟床ãé床ãã³ã¹ããèæ
®ããã¢ãã«éžå®ãããã³ããèšèšãªã©ãå®éçšã«åãããã€ã³ãã玹ä»ããŸãã
ã¯ããã« ããã«ã¡ã¯ãããŒã¿ã·ã¹ãã éšã»MAæšèŠãããã¯ã®äŒè€ïŒ @rabbit_x86 ïŒã§ããç§ãã¡ã®ããŒã ã§ã¯ããŠãŒã¶ãŒã«æé©ãªé
ä¿¡ãå±ããããã«ãLINEã»Pushéç¥ã»ã¡ãŒã«ãªã©ã®ããŒã±ãã£ã³ã°ãªãŒãã¡ãŒã·ã§ã³ïŒMAïŒã«é¢ããæšèŠã·ã¹ãã ãéçºã»éçšããŠããŸãã æ¬èšäºã§ã¯ãæšèŠã·ã¹ãã ã®éçšã§çºçããã¢ã©ãŒã察å¿ãAIã§èªååããåãçµã¿ã玹ä»ããŸãã人éã®å¯Ÿå¿ãããŒããé害åæã»å¯Ÿå¿ã®èæ¡ã»æµå¯Ÿçã¬ãã¥ãŒã»å®è¡ãã®4ã€ã®ã¿ã¹ã¯ã«åè§£ããŠAIã§åçŸãã察å¿ã«ãããå·¥æ°ãšã³ã³ããã¹ãã¹ã€ãããæžããããšãçããŸããæ¬çªç°å¢ã§å®å
šã«åãããããAIã®æš©éãšå®è¡ã§ããæäœã段éçã«çµã蟌ãããŒãã¹ãçµã¿èŸŒãã§ããŸãããã®ä»çµã¿ã®å°å
¥åŸãçŽ3é±éã§æ¬çªç°å¢ã®8ä»¶ã®ã¢ã©ãŒããAIãèªåã§è§£æ±ºããŸããã ç®æ¬¡ ã¯ããã« ç®æ¬¡ èæ¯ãšèª²é¡ ã¢ã©ãŒã察å¿ã«ããã³ã³ããã¹ãã¹ã€ãã AIãæŽ»çšããŠãæ®ã£ãŠããèª²é¡ èª²é¡ã«å¯Ÿããã¢ãããŒã æ¥åå
容ãåè§£ãã AIã«ä»»ããã¿ã¹ã¯ãšäººéã«æ®ãã¿ã¹ã¯ ã¢ã©ãŒã察å¿ãèªååããã·ã¹ãã æ¢åã®ç£èŠã®ä»çµã¿ ã·ã¹ãã ã®å
šäœã®æµã AIã«ããèªåŸçãªã¢ã©ãŒã察å¿ã®4ã€ã®ã¿ã¹ã¯ æµå¯Ÿçã¬ãã¥ãŒã®èšèš æ¡çšåºæºã®ææåã«ããæ¹å ããŒãã¹ã«ããå®å
šèšèš AIã®æäœãå±ãç¯å²ãæš©éã§çµã å®è¡ã§ããã³ãã³ããallowedToolsã§éå®ãã ã¹ã¯ãªããã§æäœã现ããå¶åŸ¡ãã éçšäºäŸãšå¹æ åå®è¡ã§è§£æ±ºããäºäŸ 广ãšèª²é¡ ãŸãšããšä»åŸã®å±æ æåŸã« èæ¯ãšèª²é¡ ã¢ã©ãŒã察å¿ã«ããã³ã³ããã¹ãã¹ã€ãã ç§ãã¡ã®ããŒã ã¯ãã¡ãŒã«é
ä¿¡ã®ã³ã³ãã³ããªã©ãããŒãœãã©ã€ãºããããã®æšèŠã·ã¹ãã ãäœã£ãŠããŸãããã®æšèŠã·ã¹ãã ã¯ã Agent Platform Pipelines ïŒæ§Vertex AI PipelinesïŒã®ãã€ãã©ã€ã³ãšããŠå®è£
ããŠããŸãããã€ãã©ã€ã³ã倱æãããšææ°ã®æšèŠçµæãé
ä¿¡ã§ããªããªããããã¢ã©ãŒãã«ã¯æ©æ¥ã«å¯Ÿå¿ããå¿
èŠããããŸãã ãã ããã®ã¢ã©ãŒã察å¿ã¯å²ã蟌ã¿ã§çºçãããã®åºŠã«æ
åœè
ã¯ä»äœæ¥ãæ¢ããŠå¯Ÿå¿ã«åœããå¿
èŠããããŸãã察å¿ã§ã¯ããšã©ãŒãã°ããåå ã調æ»ããå¿
èŠã«å¿ããŠåå®è¡ãä¿®æ£ãªã©ã®åŠçœ®ãããŸãããã®ã³ã³ããã¹ãã¹ã€ããã«ãããå
ã®äœæ¥ã«äœ¿ããã¯ãã®æéã¯å€±ãããäœæ¥ã«æ»ãããã®åãæ¿ãæéãå¿
èŠã«ãªããŸãã AIãæŽ»çšããŠãæ®ã£ãŠããèª²é¡ ç§ãã¡ã¯ãã§ã«ãAIãæŽ»çšããŠã¢ã©ãŒã察å¿ãå¹çåããŠããŸããããšã©ãŒãã°ãAIã«äžããŠåå ã調æ»ãããå¯Ÿå¿æ¹éãæ€èšããããšãããŸã§ã¯æ¥åžžçã«è¡ã£ãŠããã1ä»¶ãããã®å¯Ÿå¿ã¯æ¥œã«ãªã£ãŠããŸããããã ã調æ»çµæã®ç¢ºèªãæ¹éã®æ¿èªãåå®è¡ãä¿®æ£ã®å€æã¯äººéã®ãŸãŸã§ãã¢ã©ãŒãã®ãã³ã«æéãšéäžãå²ãæ§é ã¯å€ãã£ãŠããŸããã§ããã ããã«ã察å¿ã®èšŒè·¡ã¯Slackã®ã¹ã¬ããã«æ®ãçšåºŠã§ããã¬ããžãšããŠèç©ãããŠããªããšããåé¡ããããŸããããã®ãããåçš®ã®ã¢ã©ãŒãã§ãéå»ã®èª¿æ»çµæãåå©çšã§ãããåã調æ»ãç¹°ãè¿ããŠããŸããããŸãã察å¿ã®é²ãæ¹ã¯æ
åœè
ããšã®å€æã«ä»»ãããŠããã質ãšã¹ããŒããã°ãã€ããŠããŸããã ããã§ãã¢ã©ãŒã察å¿ã®èª¿æ»ããå®è¡ãŸã§ãAIãèªåŸçã«è¡ãããã®èšŒè·¡ãæ®ããŠæ¬¡ã®å¯Ÿå¿ã§åç
§ã§ããã·ã¹ãã ãæ§ç¯ããããšã«ããŸããã 課é¡ã«å¯Ÿããã¢ãããŒã æ¥åå
容ãåè§£ãã æ¥åãAIã«ä»»ããã«ãããããŸãæ¥åå
容ã人éã®å€æãäœæ¥ãæœè±¡åããã¿ã¹ã¯ãžåè§£ããããšãèããŸããããã®çµæãã©ã®ãããªæ¥åã«ãåœãŠã¯ãŸããã¿ã¹ã¯ã®çºèŠããããç¥èŠã®èç©ããŸã§ã®7ã€ã®äžè¬çãªåäœã«æŽçã§ããŸãããããããã®å
å®¹ã¯æ¬¡ã®ãšããã§ãã ã¿ã¹ã¯ äžè¬çãªå
容 ã¿ã¹ã¯ã®çºèŠ ã¢ã©ãŒãã»Issueã»å®åžžæ¥åã®äžããã察å¿ãã¹ãã¿ã¹ã¯ãèŠã€ãã ã¿ã¹ã¯ã®çè§£ èæ¯ã»å¶çŽã»å®äºæ¡ä»¶ãçè§£ããæŽçãã è§£æ±ºæ¹æ³ã®èæ¡ã»æ¿èª è§£æ±ºæ¹æ³ãèããå®è¡ãããã倿ãã å®è¡ãšåè©Šè¡ è§£æ±ºæ¹æ³ãå®è¡ãã倱æããå Žåã¯èæ¡ããããçŽã æçµç¢ºèª å®äºæ¡ä»¶ãæºãããããèªèº«ã§ç¢ºèªãã 第äžè
確èªã»å®äº æ
åœè
以å€ãå
容ãã¬ãã¥ãŒããå®äºã倿ãã ç¥èŠã®èç© æåã»å€±æããåŸãåŠã³ããæ¬¡ã®ã¿ã¹ã¯ã«æŽ»ãã AIã«ä»»ããã¿ã¹ã¯ãšäººéã«æ®ãã¿ã¹ã¯ 次ã«ãåè§£ããã¿ã¹ã¯ã1ã€ãã€AIã«çœ®ãæããããšã§ãAIãèªåŸçã«æ¥åãé²ããç¶æ
ãç®æããŸããããã®æ¹æ³ãªããAIãžä»»ããç¯å²ã段éçã«åºãã€ã€ãæææ±ºå®ã人éã«æ®ãéšåãéžã¹ãŸããã©ã®ã¿ã¹ã¯ãAIã«çœ®ãæãããã¯ã次ã®ããã«æ±ºããŸããã ã¿ã¹ã¯ ã¢ã©ãŒã察å¿ã§ã®äœæ¥ æ
åœ çç± ã¿ã¹ã¯ã®çºèŠ ã¢ã©ãŒãã鳎ãã察å¿ãå¿
èŠãªããšãèªèãã 人é AIã«å¯Ÿå¿ãããã¢ã©ãŒãã®éžå¥ã人éãæ¡ããã ã¿ã¹ã¯ã®çè§£ ã¢ã©ãŒã察象ã®ã·ã¹ãã ãšãšã©ãŒå
容ãçè§£ããå®äºæ¡ä»¶ãæŽçãã AI 察å¿ã®äžæ žã§ããã人éã®æéãšéäžã奪ã£ãŠããéšåã®ãã è§£æ±ºæ¹æ³ã®èæ¡ã»æ¿èª éå»ã®å¯Ÿå¿äºäŸãåèã«åå ãžã®å¯Ÿå¿æ¹æ³ãè€æ°èããæé©ãªæ¡ãéžã¶ AI åäž å®è¡ãšåè©Šè¡ éžãã æ¡ãå®è¡ãã倱æããå Žåã¯å¥ã®æ¡ã詊ã AI åäž æçµç¢ºèª å®äºæ¡ä»¶ãæºãããŠãããã確èªãã 人é Issueã«æ®ã察å¿èšé²ãèŠãŠã解決ããããšã人éã確èªãããã 第äžè
確èªã»å®äº Pull RequestïŒPRïŒã®ã¬ãã¥ãŒãäŸé ŒããŠç¬¬äžè
ã«ç¢ºèªããŠããããå®äºã倿ãã 人é å®äºã®å€æãšIssueã®ã¯ããŒãºã人éãæ
ããè²¬ä»»ã®æåšã人éã«çœ®ããã ç¥èŠã®èç© å¯Ÿå¿ã®æåã»å€±æãç¥èãšããŠèããããŒã ã«ãå
±æãã AI GitHub Issueãžã®ã³ã¡ã³ãèç©ãèªååãããã ãã®ããã«ã察å¿ã®éå§ãšçµäºã¯äººéã倿ããŸãã人éãé¢äžããªããšãä»çµã¿èªäœãæ¢ãŸã£ãŠããŠãæ°ã¥ãããéå®³ãæŸçœ®ããŠããŸãããã§ããå ããŠãéå§ã人éã倿ããããšã§ã察å¿äžèŠãªéç¥ãæ€èšŒçšã®ã¢ã©ãŒãã«èªå察å¿ãèµ°ãããšãé²ããŸãã ã¢ã©ãŒã察å¿ãèªååããã·ã¹ãã æ¢åã®ç£èŠã®ä»çµã¿ åæãšããŠãã¢ã©ãŒãã®æ€ç¥ãšéç¥ã®ä»çµã¿ã¯ãã§ã«éçšãããŠããŸããããã€ãã©ã€ã³ã¯ã Cloud Scheduler ã«ããã¹ã±ãžã¥ãŒã«å®è¡ãããŠããŸãããã®å€±æã¯ã Cloud Run functions ãå®è¡ç¶æ
ã®ããŒãªã³ã°ã§æ€ç¥ãããã€ãã©ã€ã³ã®URLãšãšãã«Slackã®ãã£ã³ãã«ãžéç¥ããŸããåŸæ¥ã¯ããã®éç¥ãèŠã人éãã¢ã©ãŒã察å¿ãå§ããŠããŸããã ã·ã¹ãã ã®å
šäœã®æµã ã¢ã©ãŒã察å¿ã¯ãSlackéç¥ãåãããšãããããæ¬¡ã®å³ã®æµãã§é²ã¿ãŸããå³äžã®äžžæ°åã¯ã衚ã®ã¹ããã1ã3ã«å¯Ÿå¿ããŸãã ã¹ããã å
容 æ
åœ å¯Ÿå¿ããã¿ã¹ã¯ 1 Slackéç¥ã®ãªã³ã¯ãã¯ãªãã¯ããã¢ã©ãŒãæ
å ±ãæ¬æã«äºåå
¥åãããç»é¢ããå°çšã©ãã«ä»ãã®GitHub Issueãäœæãã 人é ã¿ã¹ã¯ã®çºèŠ 2 å°çšã©ãã«ä»ãIssueã®äœæãããªã¬ãŒã« Claude Code Action ïŒCCAïŒãèµ·åããé害åæã»å¯Ÿå¿ã®èæ¡ã»æµå¯Ÿçã¬ãã¥ãŒã»å®è¡ã®4ã€ã®ã¿ã¹ã¯ãé ã«å®è¡ããŠãçµæãIssueã«ã³ã¡ã³ããã AI ã¿ã¹ã¯ã®çè§£ãè§£æ±ºæ¹æ³ã®èæ¡ã»æ¿èªãå®è¡ãšå詊è¡ãç¥èŠã®èç© 3 察å¿ã®èšé²ã確èªãã解決ããŠããã°Issueãã¯ããŒãºãã äººé æçµç¢ºèªã第äžè
確èªã»å®äº ã¹ããã1ã§ã¯ãSlackéç¥ã®æ«å°Ÿã«ããAuto-Triageæ¬ã®Triggerãªã³ã¯ããIssueäœæç»é¢ãéããIssueãäœæããŸããå®éã®Slackéç¥ã¯æ¬¡ã®ãããªåœ¢ã§ãã éããIssueäœæç»é¢ã§ã¯ãç»é¢å³ã®Labelsã«2ã€ã®å°çšã©ãã«ãäºåã«èšå®ãããŠããŸããalert-auto-responseã¯ãèªå察å¿ã®èµ·åããªã¬ãŒãšãªãã©ãã«ã§ããpipeline-failureã¯ã次å以éã®ã¢ã©ãŒã察å¿ã§éå»ã®é¡äŒŒIssueãæ€çŽ¢ããéã®ç®å°ãšãªãã©ãã«ã§ãã ã¹ããã2ã§ã¯ã4ã€ã®ã¿ã¹ã¯ãé ã«å®è¡ãããåæå
容ã»å¯Ÿå¿æ¡ã»ã¬ãã¥ãŒçµæã»å®è¡çµæãšãã£ãåã¿ã¹ã¯ã®åºåãIssueã®ã³ã¡ã³ããšããŠæ®ããŸãã ã¹ããã3ã§äœã確èªããŠã¯ããŒãºãããã¯ãå®è¡ã¿ã¹ã¯ã®å¯Ÿå¿å
容ã«ãã£ãŠæ±ºãŸããŸããåå®è¡ã§ããã°ããã€ãã©ã€ã³ã®æ£åžžçµäºã人éã確èªããæç¹ã§ã¯ããŒãºããŸããä¿®æ£PRã§ããã°ãæ
åœè
ãPRã®å
容ãæçµç¢ºèªããããã«ã¬ãã¥ãŒã«ãã第äžè
確èªãçµãŠããã¯ããŒãºããŸãã 察å¿ãé²ããŠèšé²ãæ®ãå ŽæãGitHub Issueã«ããã®ã¯ãããŒã ã® ã¿ã¹ã¯ç®¡çãšAI掻çšã«ããå·¥æ°åæžã®èšæž¬ ãIssueã§è¡ã£ãŠãããã¢ã©ãŒã察å¿ãåã管çã«èŒãããã£ãããã§ãã察å¿ã®èšé²ãIssueã«èç©ããããããæ¬¡ã®ã¢ã©ãŒã察å¿ã§AIãéå»ã®é¡äŒŒIssueãæ€çŽ¢ããŠåå©çšã§ããå©ç¹ããããŸããAIã®å®è¡ç°å¢ã§ããCCAã¯ãAIã³ãŒãã£ã³ã°ãšãŒãžã§ã³ãã§ãã Claude Code ã GitHub Actions ã®ã¯ãŒã¯ãããŒãšããŠå®è¡ããããã®å
¬åŒã¢ã¯ã·ã§ã³ã§ããIssueã®äœæãããªã¬ãŒã«èµ·åã§ããããšãšãããŒã ã®éçšå®çžŸãããããšããéžã³ãŸããã AIã«ããèªåŸçãªã¢ã©ãŒã察å¿ã®4ã€ã®ã¿ã¹ã¯ ã¢ã©ãŒã察å¿ã¯ãé害åæã»å¯Ÿå¿ã®èæ¡ã»æµå¯Ÿçã¬ãã¥ãŒã»å®è¡ãã®4ã€ã®ã¿ã¹ã¯ã«ãã£ãŠæ§æãããIssueã®äœæãããªã¬ãŒã«èµ·åãã1åã®CCAã®å®è¡ã®äžã§é ã«é²ã¿ãŸããåã¿ã¹ã¯ã¯çµæãIssueã®ã³ã¡ã³ããšããŠåºåããæ¬¡ã®ã¿ã¹ã¯ã¯ãã®ã³ã¡ã³ããå
¥åãšããŠåãåããŸãã åã¿ã¹ã¯ã¯ã skill ãšåŒã°ããMarkdownã®æç€ºæžãšããŠå®çŸ©ããŠããŸããå
šäœåã¯æ¬¡ã®ãšããã§ãã å³ã®åã¿ã¹ã¯ãè¡ãããšã¯ã次ã®ãšããã§ãã ã¿ã¹ã¯ skill è¡ãããš éå®³åæ diagnose-pipeline-failure ãã€ãã©ã€ã³ã®å®è¡æ
å ±ã»ãšã©ãŒãã°ã»å®è£
ã³ãŒããèªã¿ãåé¡ã»åå ã»è§£æ±ºçã®åè£ãæŽãåºã 察å¿ã®èæ¡ propose-pipeline-remedies åæçµæãããšã«ãåå®è¡ãä¿®æ£PRã®äœæãšãã£ãå¯Ÿå¿æ¡ãæ ¹æ ã€ãã§æãã æµå¯Ÿçã¬ãã¥ãŒ review-pipeline-remedies å¯Ÿå¿æ¡ã®ç²ãæå³çã«æ¢ããŠå¯©æ»ããå®è¡æ¡ãæ¿èªãããâ» Claude Codeã® ãã¹ããã©ã¯ãã£ã¹ ã§æšå¥šãããŠããã¬ãã¥ãŒæ¹æ³ å®è¡ review-pipeline-remedies æ¿èªãããæ¡ãå®è¡ãã ãªããCCAãå®è¡ããClaude Codeãžæž¡ãããã³ããã«ã¯ãåã¿ã¹ã¯ã®å
容ãçŽæ¥æžãããskillãé ã«åŒã³åºãæç€ºã ããæžããŠããŸããå®éã®ããã³ããã¯æ¬¡ã®ãšããã§ãã 以äžã® skill ãé ã«å®è¡ããŠãã ãã: 1. /diagnose-pipeline-failure <Issueçªå·> 2. 1 ããšã¹ã«ã¬ãŒã·ã§ã³ (needs-human) ã§çµäºããå Žåã¯ããã§çµäºã ããã§ãªããã° /propose-pipeline-remedies <Issueçªå·> 3. /review-pipeline-remedies <Issueçªå·> å skill ã®é²ãæ¹ã»åºåãã©ãŒãããã»ãšã¹ã«ã¬ãŒã·ã§ã³åºæºã¯ãã¹ãŠ skill åŽã«å®çŸ©ãããŠããŸãã ããã³ããã«ãããšã¹ã«ã¬ãŒã·ã§ã³ã¯ãAIã察å¿ãæã¡åã£ãŠäººéãžåŒãç¶ãçµäºçµè·¯ã§ãããšã©ãŒãã°ãååŸã§ããªãå ŽåããäžæµããŒã ãšã®èª¿æŽã課éã«é¢ãã倿Žã®ããã«äººéã®å€æãå¿
èŠãªå ŽåãAIã¯ã¿ã¹ã¯ãåãããšã¹ã«ã¬ãŒã·ã§ã³çšã®ã©ãã«ïŒneeds-humanïŒãä»ããŠå¯Ÿå¿ã忢ããŸãã æµå¯Ÿçã¬ãã¥ãŒã®èšèš æµå¯Ÿçã¬ãã¥ãŒã®èšèšã¯ãClaude Codeã®ãã¹ããã©ã¯ãã£ã¹ã«ãã Add an adversarial review step ã®é
ãåèã«ããŸããããã®é
ã§ã¯ãã¬ãã¥ã¢ãŒãžææç©ãšå€å®åºæºã ããæž¡ããããã«è³ãçµç·¯ãèæ¯ãšãã£ãã³ã³ããã¹ãã®åœ±é¿ãåããªãã¬ãã¥ãŒãæšå¥šãããŠããŸãã ããã§ãæ¡ãèããã察å¿ã®èæ¡ããšæ¡ãæ¿èªãããæµå¯Ÿçã¬ãã¥ãŒããå¥ã®ã¿ã¹ã¯ã«åããŸãããæµå¯Ÿçã¬ãã¥ãŒã«ã¯ãå
ã®äŒè©±ãšã¯å¥ã®ã³ã³ããã¹ãã§åããšãŒãžã§ã³ãã§ãã subagent ã䜿ããŸãããã®subagentã«æž¡ãã®ã¯ãIssueã«æžãããé害åæã³ã¡ã³ããšå¯Ÿå¿æ¡ã³ã¡ã³ãããããŠã¬ãã¥ãŒã®æç€ºã®3ã€ã ãã§ãããã®æç€ºã¯æ¡ãäžç«ã«è©äŸ¡ãããã®ã§ã¯ãªããåŠå®ããçç±ãæ¢ãããæµå¯Ÿçãªå
容ã«ããŸããã æ¡çšåºæºã®ææåã«ããæ¹å ãã ãããã®æµå¯Ÿçã¬ãã¥ãŒã¯æåããçãã©ããã«æ©èœããããã§ã¯ãªããæ¬çªå°å
¥åã®æ€èšŒã§ã¯æ¡çšãã¹ãæ¡ãåŽäžããç¶ããŸãããããšãã°ãä¿®æ£PRãäœæããæ¡ã«å¯ŸããŠãæµå¯Ÿçã¬ãã¥ãŒã¯ãä¿®æ£ãæ¬çªç°å¢ãžåœ±é¿ãäžããªãã確èªã§ããªãããšããæžå¿µãæããŠåŽäžããŸãããä¿®æ£PRã¯draftã§ã®ã¿äœæãããããŒãžã人éãæ
ãããå®å
šãªã¯ãã®æ¡ã§ããããããææ§ãªæžå¿µã«ããåŽäžããšã¹ã«ã¬ãŒã·ã§ã³ãç¶ããŸããã å®éã Add an adversarial review step ã«ã¯ãç²ãæ¢ãããæç€ºãããã¬ãã¥ã¢ãŒã¯ææç©ã«åé¡ããªããŠãäœããå ±åããããšããæ³šææžãããããŸãã A reviewer prompted to find gaps will usually report some, even when the work is sound, because that is what it was asked to do. ããã§ãæ¡çšã®åºæºãæç¢ºã«å®ããŸãããåŽäžããŠããã®ã¯ã次ã®2ã€ãäž¡æ¹ç€ºããå Žåã ãã§ãã æ¡ãå®è¡ããå Žåã«æ¬çªç°å¢ãžäžããæªåœ±é¿ãšãã£ããå®å®³ãçºçããã·ããªãªãå
·äœçã«ç€ºããããš ãã®ã·ããªãªããåŸè¿°ããããŒãã¹ã®å¶çŽã§é²ããå®éã«èµ·ãããããšç€ºããããš ã©ã¡ããäžæ¹ã§ã瀺ããªããã°ãæ¿èªããŸããå®éã«ã¬ãã¥ãŒã®æç€ºãžæžããå€å®æé ã¯æ¬¡ã®ãšããã§ãã 1. ãã®æ¡ãå®è¡ããå Žåã«èµ·ãããããå
·äœçãªå®å®³ã·ããªãªãèãã ïŒã念ã®ããããæ¬çªåœ±é¿ãå¿é
ãã¯å®å®³ã·ããªãªã§ã¯ãªãïŒ 2. ãã®ã·ããªãªããåå®è¡ã®äžéã»draft匷å¶ã»äººéã«ããããŒãžã»æäœå¯Ÿè±¡ã®éå®ïŒåäžãã€ãã©ã€ã³ã»å¯Ÿè±¡ãªããžããªã®ã¿ïŒã® ãããã«ãã£ãŠãé²ãããªãããšã瀺ã 3. 1ãš2ã®äž¡æ¹ãå
·äœçã«ç€ºããå Žåã®ã¿åŽäžããã瀺ããªããã°æ¿èªãã 4. äŸå€ãšããŠãå®è¡æé èªäœã«æè¡çãªççŸãããå Žåã¯ããã®ççŸãææããããã§åŽäžããŠãã 5. ãåææ¡ä»¶ãå®å
šã«ã¯ç¢ºèªã§ããŠããªãããªã©ãæ¡ã®å®å
šæ§ãšç¡é¢ä¿ãªæžå¿µã¯åç¬ã§ã¯åŽäžæ ¹æ ã«ãªããªã 6. ãšã¹ã«ã¬ãŒã·ã§ã³æ¡ãæ¿èªããã®ã¯ãä»ã®ãã¹ãŠã®æ¡ãåŽäžãããå Žåã®ã¿ ããã«ãã£ãŠãçŽåŸã®æ€èšŒã§ã¯AIããã€ãã©ã€ã³å
ã®ãã°ãä¿®æ£ããPRã®äœæãŸã§å®äºã§ããŸãããæµå¯Ÿçã¬ãã¥ãŒãæ©èœãããã«ã¯ãåŠå®ããçç±ãæ¢ãããã ãã§ã¯ãªããåŽäžããéã®åºæºãèšããããšãéèŠã§ããã ããŒãã¹ã«ããå®å
šèšèš ã¢ã©ãŒã察å¿ãAIãèªåŸçã«é²ããã«ã¯ãGoogle CloudãGitHubãšãã£ãå€éšãµãŒãã¹ãžã¢ã¯ã»ã¹ããæš©éãAIã«äžããå¿
èŠããããŸãããã ãäžããæš©éã¯å®å
šã«æ±ãããªããã°ãªããŸãããããã§éµã«ãªãã®ãããŒãã¹ïŒharnessïŒã§ããããŒãã¹ãšã¯ãAIã¢ãã«ã®å€åŽã«ãã£ãŠãã¢ãã«ãèªåŸçãã€ä¿¡é Œã§ãã圢ã§ä»äºãããªããããã«ããä»çµã¿å
šäœã®ããšã§ããå
·äœçã«ã¯ã䜿ããããŒã«ãæš©éã®å®çŸ©ã»å®è¡ç°å¢ã»ã³ã³ããã¹ãã®åŒãç¶ãã»ãã¹ããã¬ãã¥ãŒã«ãããã£ãŒãããã¯ã«ãŒãã»ã«ãŒã«ã®æ©æ¢°çãªåŒ·å¶ãªã©ãæããŸãã OpenAI ã Anthropic ãããšãŒãžã§ã³ãèšèšã®æèã§ããŒãã¹ãæŽçããŠããŸããæ¬ç¯ã§ã¯ããã®ãã¡å®å
šã«é¢ããéšåã§ãããæš©éãšããŒã«ã®å¶éããããŠã¹ã¯ãªããã«ããã«ãŒã«ã®åŒ·å¶ã説æããŸãã ä»åãAIãå€éšã«å¯ŸããŠè¡ãæäœã¯ã次ã®3ã€ã§ãã ç®ç æäœ ã¿ã¹ã¯ çš®å¥ ãšã©ãŒã®èª¿æ» ãã€ãã©ã€ã³ã®å®è¡æ
å ±ã»ãšã©ãŒãã°ã»å®è£
ã³ãŒãã®ååŸ éå®³åæ èªã¿åãïŒGoogle Cloudã»GitHub repositoryïŒ å¯Ÿå¿ã®èšŒè·¡ã®èšé² Issueãžã®ã³ã¡ã³ãæçš¿ã»ã©ãã«æäœ ãã¹ãŠã®ã¿ã¹ã¯ æžã蟌ã¿ïŒGitHub IssueïŒ å¯Ÿå¿ã®å®è¡ ãã€ãã©ã€ã³ã®åå®è¡ã»ä¿®æ£PRïŒdraftïŒã®äœæ å®è¡ æžã蟌ã¿ïŒPull Requestã»Google CloudïŒ ãããã®æäœãã3ã€ã®æ®µéã«åããŠå®å
šã«æ±ã£ãŠããŸãã AIã®æäœãå±ãç¯å²ãæš©éã§çµã 1ã€ç®ã®æ®µéã¯ãAIã«äžããæš©éã§ããCCAå°çšã®èªèšŒã®ä»çµã¿ãçšæãããããžå¿
èŠæå°éã®æš©éã ããä»äžããŠããŸããå
·äœçã«ã¯æ¬¡ã®ãšããã§ãã 察象 èªèšŒã«äœ¿ãä»çµã¿ ä»äžããæš©é Google Cloud Service Account ãã€ãã©ã€ã³ãžã§ãã®åç
§ã»äœæãšãã°ã®èªã¿åãã®ã¿ GitHub GitHub App Issueãžã®æžã蟌ã¿ïŒã³ã¡ã³ãæçš¿ã»ã©ãã«æäœïŒããªããžããªã®èªã¿åããä¿®æ£PRäœæã«å¿
èŠãªãã©ã³ãã»PRã®äœæã®ã¿ ãã®æš©éã«ãããAIã¯Service Accountãéãããã€ãã©ã€ã³ã®åå®è¡ããGitHub AppãéããIssueãžã®æžã蟌ã¿ãªã©ãå®è¡ã§ããŸããäžæ¹ã§ãæš©éãçµãã ãã§ã¯äžååã§ããGitHub Actionsã®å®è¡ç°å¢ã«ã¯ãService AccountãšGitHub Appã®èªèšŒæ
å ±ãèŒã£ãŠããŸãããã®ãããgcloudã³ãã³ããcurlã䜿ãã°ãAIã¯æš©éã®ç¯å²å
ã®APIãçŽæ¥åŒã³åºããŠããŸããŸããããšãã°ãžã§ãã®äœææš©éã䜿ãã°ã倱æãããžã§ãããã®ãŸãŸè€è£œããã®ã§ã¯ãªãããã©ã¡ãŒã¿ãã³ã³ããŒãã³ããæžãæããå¥ã®ãžã§ããæ¬çªç°å¢ã§èµ·åã§ããŠããŸããŸãã å®è¡ã§ããã³ãã³ããallowedToolsã§éå®ãã ãã®æš©éã®ç¯å²å
ã®æäœãçžãããã«ã2ã€ç®ã®æ®µéã§ã¯å®è¡ã§ããã³ãã³ããéå®ããŸããCCAã®ã¯ãŒã¯ãããŒã§ã¯ãå®è¡ãèš±å¯ããããŒã«ã allowedTools ãšããèšå®ã§åæããåæããŠããªãã³ãã³ãã¯æš©éããã£ãŠãå®è¡ã§ããŸãããã·ã§ã«ã®ä»»æã³ãã³ããgcloudãbqã³ãã³ããcurlãçã®APIåŒã³åºãã¯ããã§å¡ãããŸãã å®éã®ã¯ãŒã¯ãããŒã«æžããŠããèšå®ã®äžéšã¯æ¬¡ã®ãšããã§ãã claude_args : | --allowedTools 'Bash(python3 .claude/skills/diagnose-pipeline-failure/scripts/fetch_pipeline_job.py:*)' 'Bash(python3 .claude/skills/diagnose-pipeline-failure/scripts/fetch_error_logs.py:*)' 'Bash(python3 .claude/skills/diagnose-pipeline-failure/scripts/fetch_repo.py:*)' 'Bash(python3 .claude/skills/review-pipeline-remedies/scripts/rerun_pipeline.py:*)' 'Bash(python3 .claude/skills/review-pipeline-remedies/scripts/create_fix_pr.py:*)' 'Bash(gh issue view:*)' 'Bash(gh issue comment:*)' èš±å¯ããŠããã®ã¯ãã¹ã¯ãªãããšãIssueã®ã³ã¡ã³ããèªã¿æžããã GitHub CLI ã®gh issueç³»ãµãã³ãã³ãã ãã§ãããã®ã¹ã¯ãªããã®äžèº«ããæ¬¡ã®3ã€ç®ã®æ®µéã§èª¬æããŸãã ã¹ã¯ãªããã§æäœã现ããå¶åŸ¡ãã ããã«3ã€ç®ã®æ®µéãšããŠãã¹ã¯ãªããã§å®è¡å
容ã现ããå¶åŸ¡ããŠããŸããã³ãã³ããäœåã»ã©ã®å¯Ÿè±¡ã«äœ¿ããããšããæ¡ä»¶ããã¹ã¯ãªããã®ã³ãŒããžåã蟌ãã§ããŸããã¹ã¯ãªããã䜿ãã¿ã¹ã¯ãšå
å®¹ã¯æ¬¡ã®ãšããã§ãã çš®å¥ ã¹ã¯ãªãã 䜿ãã¿ã¹ã¯ å
容 èªã¿åã fetch_pipeline_job.py éå®³åæ å¯Ÿè±¡ã®å€±æãžã§ãã«éå®ããŠã詳现ïŒå€±æã¿ã¹ã¯ã»ãšã©ãŒïŒãèªã¿åã èªã¿åã fetch_error_logs.py éå®³åæ å¯Ÿè±¡ã®å€±æãžã§ãã®ãšã©ãŒãã°ã ããã Cloud Logging ããæŽåœ¢ããŠèªã¿åã èªã¿åã fetch_repo.py éå®³åæ ãã€ãã©ã€ã³ãå®è£
ããŠãããªããžããªã«çµã£ãŠãã³ãŒããèªã¿åãå°çšã§ååŸãã æžã蟌㿠rerun_pipeline.py å®è¡ 倱æãããžã§ãã®è€è£œã®ã¿ããåäžãã€ãã©ã€ã³ã«2åãŸã§åå®è¡ãã æžã蟌㿠create_fix_pr.py å®è¡ ä¿®æ£PRãdraftã§ã®ã¿äœæãã ãã®ãã¡rerun_pipeline.pyã¯ã倱æãããžã§ãã®èšå®ãè€è£œããæ°ãããžã§ããšããŠåå®è¡ããã¹ã¯ãªããã§ããè€è£œãããžã§ãã«ã¯rerun_count=1ã®ãããªåå®è¡ã®åæ°ã衚ãã©ãã«ãä»ããæ¬¡ã®åå®è¡ã§ãã®å€ãèªã¿åã£ãŠäžéãå€å®ããŸããå
·äœçã«ã¯æ¬¡ã®ããã«ãäžéã®2åã«éããŠããã°å®è¡åã«æåŠãããšã¹ã«ã¬ãŒã·ã§ã³ãžé²ãŸããŸãã MAX_RERUN_COUNT = 2 rerun_count = int (source_labels.get( "rerun_count" , "0" )) if rerun_count >= MAX_RERUN_COUNT: print ( f "REJECTED: rerun limit reached (rerun_count={rerun_count}). " "ãã以äžã®èªårerunã¯çŠæ¢ãneeds-humanã§ãšã¹ã«ã¬ãŒã·ã§ã³ããŠãã ããã" , file=sys.stderr, ) return 1 ãã®ããã«ãæ¡ä»¶ãæºãããªãå®è¡ã¯AIã®å€æã«ãããããã¹ã¯ãªããããšã©ãŒã§æåŠãããšã©ãŒãåãåã£ãAIã¯ãšã¹ã«ã¬ãŒã·ã§ã³ãªã©ã®å¥ã®å¯Ÿå¿ãžé²ã¿ãŸãã æš©éããã©ããŸã§å±ãããããallowedToolsããã©ã®ã³ãã³ããå®è¡ã§ããããããã¹ã¯ãªããããã©ã®æ¡ä»¶ãšã©ã®å¯Ÿè±¡ãªãæäœããŠãããããå¶éããŸãããã®3ã€ã®æ®µéãéããããšã§ãæ¬çªç°å¢ã§AIãæŽèµ°ããªãããã«èšèšããŠããŸãã éçšäºäŸãšå¹æ ããã§ã¯ãæ¬çªç°å¢ã§AIã解決ããã¢ã©ãŒãã®ãã¡ãåå®è¡ã§è§£æ±ºãã1ä»¶ã®äºäŸã玹ä»ããŸãã åå®è¡ã§è§£æ±ºããäºäŸ 察象ã®ã¢ã©ãŒãã¯ãGoogle CloudåŽã®äžéæ§ã®ãšã©ãŒïŒinternal errorïŒã§ãã€ãã©ã€ã³ã倱æãããã®ã§ãããã®ãšãåã¿ã¹ã¯ãå®éã«è¡ã£ã察å¿ã¯æ¬¡ã®ãšããã§ãã ã¿ã¹ã¯ å
容 éå®³åæ ãšã©ãŒã¡ãã»ãŒãžã¯ãInternal error happened.ãã®ã¿ã§ã詳现ãªãã°ãååŸã§ããªãããšã確èªããããäžéæ§ã®ãšã©ãŒã®å
åãšæšå®ããåå ãšããŠIssueã«ã³ã¡ã³ã 察å¿ã®èæ¡ åæã³ã¡ã³ããåããŠéå»ã®é¡äŒŒIssueãæ€çŽ¢ããåããã¿ãŒã³ã®å€±æãåå®è¡ã§åŸ©æ§ããŠããå®çžŸãçºèŠããããæ ¹æ ã«åå®è¡æ¡ãææ¡ æµå¯Ÿçã¬ãã¥ãŒ ææ¡ãããåå®è¡æ¡ã審æ»ããããŒãã¹ã®å¶çŽã§é²ãããªãå®å®³ã·ããªãªããªãããšã確èªããŠæ¿èª å®è¡ æ¿èªãããæ¡ãããŒãã¹çµç±ã§åå®è¡ãããã€ãã©ã€ã³ã¯æ£åžžã«å®äº äžé£ã®å¯Ÿå¿ã¯ãIssueã®äœæããåå®è¡ã®éå§ãŸã§çŽ8åã§å®äºããŸããã人éãè¡ã£ãŠããããã°ãèŠãŠãéå»ã®äºäŸãæãåºããåå®è¡ã§çŽãããã ãšå€æããããšããæèã®æµãããAIããã®ãŸãŸåçŸã§ããŸããã 广ãšèª²é¡ æ¬ã·ã¹ãã ã®ç®çã¯ãã¢ã©ãŒã察å¿ã®ãã³ã«çºçããŠããã³ã³ããã¹ãã¹ã€ãããšå¯Ÿå¿ã®æéããAIã§æžããããšã§ããããã ããã®å¹æã¯æ¬çªç°å¢ã§ãŸã å®èšŒã§ããŠããŸããã å®èšŒã§ããã®ã¯ãã¢ã©ãŒã察å¿ã®èªååã§ããå°å
¥ããçŽ3é±éã§8ä»¶ã®ã¢ã©ãŒããAIã解決ãã調æ»ããå®è¡ãŸã§ã人éãæ
ããã«å®äºã§ããŸããããŸãã察å¿ã¯æ¯ååãskillã®æé ã§é²ããããæ
åœè
ããšã«ç°ãªã£ãŠããé²ãæ¹ãçµ±äžãããŸããããã ãã8ä»¶ã¯ããããåå®è¡ã§è§£æ±ºã§ãããããšããšå¯Ÿå¿ã³ã¹ãã®å°ããé害ã§ããããã®ãããå°å
¥ã®ååŸã§ã³ã³ããã¹ãã¹ã€ããã察å¿ã®å·¥æ°ã®å€åã¯å°ããã§ãã æ¬ã·ã¹ãã ã®ç䟡ãåºãã®ã¯ã調æ»ãå€æã«æéã®ãããé害ã§ããæ¬çªç°å¢ã§ã¯ãŸã ãã®çš®ã®ã¢ã©ãŒãã¯çºçããŠããŸããããæ¬çªå°å
¥åã®æ€èšŒã§ã¯ããã€ãã©ã€ã³å
ã®ãã°ã«å¯ŸããŠåå ã®ç¹å®ããä¿®æ£PRã®äœæãŸã§ãAIãå®äºã§ããŠããŸãããã ããã®çš®ã®ã¢ã©ãŒãã¯é »çºãããå°å
¥ããæ¥ãæµ
ããããæ¬çªç°å¢ã§ã®å¹æã®å®èšŒãããããã®èª²é¡ã§ãã ãŸãšããšä»åŸã®å±æ æ¬èšäºã§ã¯ãæšèŠã·ã¹ãã ã®ã¢ã©ãŒã察å¿ã顿ã«ã人éã®æ¥åãAIãžçœ®ãæããåãçµã¿ã玹ä»ããŸããããã€ã³ãã¯2ã€ã§ãã æ¥åã人éã®æèãããŒã«æ²¿ã£ãŠåè§£ããŠAIã§åçŸããããšã§ãã©ããAIã«ä»»ããŠã©ãã人éã«æ®ãããã¿ã¹ã¯åäœã§èšèšãã æš©éã»allowedToolsã»ã¹ã¯ãªããã®3段éãããªãããŒãã¹ã§AIã«å¶çŽãäžããããšã§ãæ¬çªç°å¢ã§ãå®å
šã«å®è¡ããã äžæ¹ã§ãéçšãéããŠèª²é¡ãèŠããŠããŸãããä»åŸã¯æ¬¡ã®2ç¹ã«åãçµã¿ãŸãã 調æ»ãå€æã«æéã®ãããé害ãžã®å¯Ÿå¿ã§ãæ¬ã·ã¹ãã ã«ããã³ã³ããã¹ãã¹ã€ãããšå¯Ÿå¿æéã®åæžãå®éçã«å®èšŒãã 人éãæ
ã£ãŠãã察å¿ã®éå§ãšçµäºãŸã§èªååãåºããã¢ã©ãŒã察å¿ãAIã«å®å
šç§»è²ãã ã¢ã©ãŒã察å¿ã¯äžäŸã«ãããŸãããã»ãã®æ¥åã§ãããããŒãåè§£ããŠäžã€ã²ãšã€AIã«çœ®ãæããŠããã°ãAIãèªåŸçã«æ¥åãé²ããç¶æ
ãžè¿ã¥ããã¯ãã§ããæ¥åãAIã«ä»»ããããšãèããŠããæ¹ã®åèã«ãªãã°å¹žãã§ãã æåŸã« ZOZOã§ã¯ãäžç·ã«ãµãŒãã¹ãäœãäžããŠãããæ¹ãåéäžã§ãããèå³ã®ããæ¹ã¯ã以äžã®ãªã³ã¯ãããã²ãå¿åãã ããã corp.zozo.com
ã¯ããã« æè¿ãAI Agentã«ã€ããŠèª¿ã¹ãäžã§ãLLMãã®ãã®ã®æ§èœã ãã§ãªããAgentãåããããã®åšèŸºã®ä»çµã¿ãéèŠã ãšæããããšãå¢ããŠããŸããã LLMãã®ãã®ã髿§èœã§ããã©ã®æ
å ±ãåç
§ããã®ããã©ã®Toolã䜿ã£ãŠããã®ããã©ã®ãããªæé ã§ä»äºãé²ããã®ããã©ããŸã§èªåå®è¡ããŠããã®ããšãã£ãéšåãæ±ºãŸã£ãŠããªããã°ãå®éã®ä»äºãå®å¿ããŠä»»ããããšã¯ã§ããŸããã ããããä»çµã¿ã¯Agent HarnessãšåŒã°ããããšããããŸãããèšèã ãã§ã¯å
·äœçã«ã€ã¡ãŒãžãã«ãããšããããããŸãã ããã§ä»åã¯ãOpenClawãWindowsç°å¢ã«å°å
¥ããå®éã«èªåå°çšã®AI






















