Fundamentals
ãšãŒãžã§ã³ãã«ãŒã
ãšãŒãžã§ã³ãã«ãŒãã¯ãã¡ãã»ãŒãžãã¢ã¯ã·ã§ã³ãšå¿çã«å€æãããã»ãã·ã§ã³ããšã«çŽååãããå®è¡ã§ããåä¿¡ãã³ã³ããã¹ãã®çµã¿ç«ãŠãã¢ãã«æšè«ãããŒã«å®è¡ãã¹ããªãŒãã³ã°ãæ°žç¶åã§æ§æãããŸãã
ãšã³ããªãŒãã€ã³ã
- Gateway RPCïŒ
agentãšagent.waitã - CLIïŒ
openclaw agentã
å®è¡ã·ãŒã±ã³ã¹
agentRPC ã¯ãã©ã¡ãŒã¿ãæ€èšŒããã»ãã·ã§ã³ïŒsessionKey/sessionIdïŒã解決ããŠã»ãã·ã§ã³ã¡ã¿ããŒã¿ãæ°žç¶åããçŽã¡ã«{ runId, acceptedAt }ãè¿ããŸããagentCommandã¯ã¿ãŒã³ãå®è¡ããŸããã¢ãã«ãš thinking/verbose/trace ã®ããã©ã«ãã解決ããSkills ã¹ãããã·ã§ãããèªã¿èŸŒã¿ãrunEmbeddedAgentãåŒã³åºããŸããåã蟌ã¿ã«ãŒãããŸã çºè¡ããŠããªãå Žåã¯ããã©ãŒã«ããã¯ã® ã©ã€ããµã€ã¯ã«çµäº/ãšã©ãŒ ãçºè¡ããŸããrunEmbeddedAgentïŒã»ãã·ã§ã³ããšããã³ã°ããŒãã«ã®ãã¥ãŒãä»ããŠå®è¡ãçŽååããã¢ãã«ãšèªèšŒãããã¡ã€ã«ã解決ããOpenClaw ã»ãã·ã§ã³ãæ§ç¯ããŠã©ã³ã¿ã€ã ã€ãã³ãã賌èªããã¢ã·ã¹ã¿ã³ã/ããŒã«ã®å·®åãã¹ããªãŒãã³ã°ããå®è¡ã¿ã€ã ã¢ãŠããé©çšããŠïŒæéåãæã«äžæ¢ïŒããã€ããŒããšäœ¿çšéã¡ã¿ããŒã¿ãè¿ããŸããCodex app-server ã®ã¿ãŒã³ã§ã¯ãåçåŸãçµç«¯ã€ãã³ãã®åã« app-server ã®é²è¡ãæ¢ãŸã£ãã¿ãŒã³ãäžæ¢ããŸããsubscribeEmbeddedAgentSessionã¯ãã©ã³ã¿ã€ã ã€ãã³ããagentã¹ããªãŒã ã«æ©æž¡ãããŸããããŒã«ã€ãã³ãã¯stream: "tool"ãã¢ã·ã¹ã¿ã³ãã®å·®åã¯stream: "assistant"ãã©ã€ããµã€ã¯ã«ã€ãã³ãã¯stream: "lifecycle"ïŒphase: "start" | "end" | "error"ïŒãšããŠéãããŸããagent.waitïŒwaitForAgentRunïŒã¯ãrunIdã«å¯Ÿãã ã©ã€ããµã€ã¯ã«çµäº/ãšã©ãŒ ãåŸ ã¡ã{ status: ok|error|timeout, startedAt, endedAt, error? }ãè¿ããŸãã
ãã¥ãŒã€ã³ã°ãšäžŠè¡åŠç
å®è¡ã¯ã»ãã·ã§ã³ããŒããšïŒã»ãã·ã§ã³ã¬ãŒã³ïŒã«çŽååãããå¿ èŠã«å¿ããŠã°ããŒãã«ã¬ãŒã³ãéããããããŒã«ãã»ãã·ã§ã³ã®ç«¶åãé²ããŸããã¡ãã»ãŒãžã³ã°ãã£ãã«ã¯ããã®ã¬ãŒã³ã·ã¹ãã ã«æå ¥ãããã¥ãŒã¢ãŒãïŒsteer/followup/collect/interruptïŒãéžæããŸããã³ãã³ããã¥ãŒãåç §ããŠãã ããã
ãã©ã³ã¹ã¯ãªãããžã®æžã蟌ã¿ã¯ãããã«ã»ãã·ã§ã³ãã¡ã€ã«ã«å¯Ÿããã»ãã·ã§ã³æžã蟌ã¿ããã¯ã§ä¿è·ãããŸãããã®ããã¯ã¯ããã»ã¹ãèªèãããã¡ã€ã«ããŒã¹ã®ããã¯ã§ãããããããã»ã¹å
ãã¥ãŒãè¿åããæžã蟌ã¿ããå¥ããã»ã¹ããã®æžã蟌ã¿ãæ€åºããŸããæžã蟌ã¿åŽã¯ãã»ãã·ã§ã³ãããžãŒã§ãããšå ±åãããŸã§ãæå€§ session.writeLock.acquireTimeoutMsïŒããã©ã«ã㯠60000 msãç°å¢å€æ° OPENCLAW_SESSION_WRITE_LOCK_ACQUIRE_TIMEOUT_MS ã§äžæžãå¯èœïŒåŸ
æ©ããŸãã
ã»ãã·ã§ã³æžã蟌ã¿ããã¯ã¯ãããã©ã«ãã§ã¯åå
¥å¯èœã§ã¯ãããŸãããåäžã®è«ççãªæžã蟌ã¿äž»äœãç¶æããªãããæå³çã«åãããã¯ã®ååŸããã¹ããããã«ããŒã¯ãallowReentrant: true ã§æç€ºçã«ãªããã€ã³ããå¿
èŠããããŸãã
ã»ãã·ã§ã³ãšã¯ãŒã¯ã¹ããŒã¹ã®æºå
- ã¯ãŒã¯ã¹ããŒã¹ã解決ããŠäœæããŸãããµã³ãããã¯ã¹åãããå®è¡ã§ã¯ããµã³ãããã¯ã¹ã®ã¯ãŒã¯ã¹ããŒã¹ã«ãŒãã«ãªãã€ã¬ã¯ããããå ŽåããããŸãã
- Skills ãèªã¿èŸŒã¿ïŒãŸãã¯ã¹ãããã·ã§ããããåå©çšãïŒãç°å¢å€æ°ãšããã³ããã«æ³šå ¥ããŸãã
- ããŒãã¹ãã©ãã/ã³ã³ããã¹ããã¡ã€ã«ã解決ããã·ã¹ãã ããã³ããã«æ³šå ¥ããŸãã
- ã¹ããªãŒãã³ã°éå§åã«ã»ãã·ã§ã³æžã蟌ã¿ããã¯ãååŸããã»ãã·ã§ã³ãã©ã³ã¹ã¯ãªããã®ä¿åå ãæºåããŸãããã®åŸã®ãã©ã³ã¹ã¯ãªããã®æžãæããCompactionãåãè©°ãã®åãã¹ããSQLite ã®ãã©ã³ã¹ã¯ãªããè¡ã倿Žããåã«åãããã¯ãååŸããå¿ èŠããããŸãã
ããã³ããã®çµã¿ç«ãŠ
ã·ã¹ãã ããã³ããã¯ãOpenClaw ã®ããŒã¹ããã³ãããSkills ããã³ãããããŒãã¹ãã©ããã³ã³ããã¹ããå®è¡ããšã®äžæžãããæ§ç¯ãããŸããã¢ãã«åºæã®å¶éãš Compaction çšã®äºçŽããŒã¯ã³ãé©çšãããŸããã¢ãã«ãåç §ããå 容ã«ã€ããŠã¯ãã·ã¹ãã ããã³ãããåç §ããŠãã ããã
ããã¯
OpenClaw ã«ã¯ã2 ã€ã®ããã¯ã·ã¹ãã ããããŸãã
- å éšããã¯ïŒGateway ããã¯ïŒïŒã³ãã³ãããã³ã©ã€ããµã€ã¯ã«ã€ãã³ãçšã®ã€ãã³ãé§åã¹ã¯ãªããã
- Plugin ããã¯ïŒãšãŒãžã§ã³ã/ããŒã«ã®ã©ã€ããµã€ã¯ã«ããã³ Gateway ãã€ãã©ã€ã³å ã®æ¡åŒµãã€ã³ãã
å éšããã¯ïŒGateway ããã¯ïŒ
agent:bootstrapïŒã·ã¹ãã ããã³ããã確å®ããåã®ããŒãã¹ãã©ãããã¡ã€ã«æ§ç¯æã«å®è¡ãããŸããããŒãã¹ãã©ããã³ã³ããã¹ããã¡ã€ã«ã®è¿œå ãåé€ã«äœ¿çšããŸãã- ã³ãã³ãããã¯ïŒ
/newã/resetã/stopããã®ä»ã®ã³ãã³ãã€ãã³ãïŒããã¯ã®ããã¥ã¡ã³ããåç §ïŒã
ã»ããã¢ãããšäŸã«ã€ããŠã¯ãããã¯ãåç §ããŠãã ããã
Plugin ããã¯
ãããã¯ããšãŒãžã§ã³ãã«ãŒããŸã㯠Gateway ãã€ãã©ã€ã³å ã§å®è¡ãããŸãã
| ãã㯠| å®è¡ã¿ã€ãã³ã° |
|---|---|
before_model_resolve |
ã»ãã·ã§ã³åïŒmessages ãªãïŒã解決åã«ãããã€ããŒ/ã¢ãã«ã決å®è«çã«äžæžãããŸãã |
before_prompt_build |
ã»ãã·ã§ã³èªã¿èŸŒã¿åŸïŒmessages ããïŒãéä¿¡åã« prependContextãsystemPromptãprependSystemContextããŸã㯠appendSystemContext ãæ³šå
¥ããŸããã¿ãŒã³ããšã®åçããã¹ãã«ã¯ prependContext ã䜿çšããã·ã¹ãã ããã³ããé åã«å±ããå®å®ããã¬ã€ãã³ã¹ã«ã¯ã·ã¹ãã ã³ã³ããã¹ããã£ãŒã«ãã䜿çšããŸãã |
before_agent_start |
ã©ã¡ãã®ãã§ãŒãºã§ãå®è¡ãããå¯èœæ§ãããã¬ã¬ã·ãŒäºææ§ããã¯ã§ããäžèšã®æç€ºçãªããã¯ãåªå ããŠãã ããã |
before_agent_reply |
ã€ã³ã©ã€ã³ã¢ã¯ã·ã§ã³ã®åŸãLLM åŒã³åºãã®åã«å®è¡ãããŸããPlugin ãã¿ãŒã³ãåŒãåããåæå¿çãè¿ãããå¿çãå®å šã«æå¶ã§ããŸãã |
agent_end |
å®äºåŸãæçµã¡ãã»ãŒãžãªã¹ããšå®è¡ã¡ã¿ããŒã¿ã䌎ã£ãŠå®è¡ãããŸãã |
before_compaction / after_compaction |
Compaction ãµã€ã¯ã«ãç£èŠãŸãã¯æ³šéä»ãããŸãã |
before_tool_call / after_tool_call |
ããŒã«ã®ãã©ã¡ãŒã¿/çµæãã€ã³ã¿ãŒã»ããããŸãã |
before_install |
ãªãã¬ãŒã¿ãŒã®ã€ã³ã¹ããŒã«ããªã·ãŒå®è¡åŸãçŸåšã®ããã»ã¹ã« Plugin ããã¯ãèªã¿èŸŒãŸããŠããå Žåã«ãã¹ããŒãžã³ã°æžã¿ã® Skills/Plugin ã€ã³ã¹ããŒã«çŽ æã«å¯ŸããŠå®è¡ãããŸãã |
tool_result_persist |
OpenClaw ãææããã»ãã·ã§ã³ãã©ã³ã¹ã¯ãªããã«æžã蟌ãŸããåã«ãããŒã«çµæãåæçã«å€æããŸãã |
message_received / message_sending / message_sent |
åä¿¡ããã³éä¿¡ã¡ãã»ãŒãžã®ããã¯ã§ãã |
session_start / session_end |
ã»ãã·ã§ã³ã©ã€ããµã€ã¯ã«ã®å¢çã§ãã |
gateway_start / gateway_stop |
Gateway ã®ã©ã€ããµã€ã¯ã«ã€ãã³ãã§ãã |
éä¿¡/ããŒã«ã¬ãŒãã«é¢ããããã¯ã®å€å®ã«ãŒã«ïŒ
before_tool_callïŒ{ block: true }ã¯çµç«¯å€å®ãšãªããåªå 床ã®äœããã³ãã©ãŒã忢ããŸãã{ block: false }ã¯äœããããå è¡ãããããã¯ãè§£é€ããŸãããbefore_installïŒäžèšãšåãçµç«¯/ç¡æäœã®ã»ãã³ãã£ã¯ã¹ã§ããCLI ã®ã€ã³ã¹ããŒã«ããã³æŽæ°ãã¹ã察象ãšããããªãã¬ãŒã¿ãŒææã®ã€ã³ã¹ããŒã«èš±å¯/ãããã¯å€å®ã«ã¯ãbefore_installã§ã¯ãªãsecurity.installPolicyã䜿çšããŠãã ãããmessage_sendingïŒ{ cancel: true }ã¯çµç«¯å€å®ãšãªããåªå 床ã®äœããã³ãã©ãŒã忢ããŸãã{ cancel: false }ã¯äœããããå è¡ãããã£ã³ã»ã«ãè§£é€ããŸããã
ãã㯠API ãšç»é²ã®è©³çްã«ã€ããŠã¯ãPlugin ããã¯ãåç §ããŠãã ããã
ããŒãã¹ã¯ããããã®ããã¯ãé©åãããããšãã§ããŸããCodex app-server ããŒãã¹ã¯ãææžåããããã©ãŒãµãŒãã§ã¹ã®äºææ§å¥çŽãšã㊠OpenClaw Plugin ããã¯ãç¶æããŸããCodex ãã€ãã£ãããã¯ã¯ãå¥ã®äœã¬ãã«ãª Codex ã¡ã«ããºã ã§ãã
ã¹ããªãŒãã³ã°
- ã¢ã·ã¹ã¿ã³ãã®å·®åã¯ããšãŒãžã§ã³ãã©ã³ã¿ã€ã ãã
assistantã€ãã³ããšããŠã¹ããªãŒãã³ã°ãããŸãã - ãããã¯ã¹ããªãŒãã³ã°ã¯ã
text_endãŸãã¯message_endã§éšåçãªå¿çãçºè¡ã§ããŸãã - æšè«ã¹ããªãŒãã³ã°ã¯ãç¬ç«ããã¹ããªãŒã ã«ããããšãããããã¯å¿çã«ããããšãã§ããŸãã
- ãã£ã³ã¯åå²ãšãããã¯å¿çã®åäœã«ã€ããŠã¯ãã¹ããªãŒãã³ã°ãåç §ããŠãã ããã
ããŒã«å®è¡
- ããŒã«ã®éå§/æŽæ°/çµäºã€ãã³ãã¯ã
toolã¹ããªãŒã ã§çºè¡ãããŸãã - ããŒã«çµæã¯ããã°èšé²/çºè¡ã®åã«ãµã€ãºãšç»åãã€ããŒãã«ã€ããŠãµãã¿ã€ãºãããŸãã
- ã¡ãã»ãŒãžã³ã°ããŒã«ã«ããéä¿¡ã¯ãéè€ããã¢ã·ã¹ã¿ã³ã確èªãæå¶ããããã«è¿œè·¡ãããŸãã
å¿çã®æŽåœ¢
æçµãã€ããŒãã¯ãã¢ã·ã¹ã¿ã³ãã®ããã¹ãïŒããã³ä»»æã®æšè«ïŒãã€ã³ã©ã€ã³ããŒã«ã®èŠçŽïŒverbose ãæå¹ã§èš±å¯ãããŠããå ŽåïŒãã¢ãã«ã§ãšã©ãŒãçºçããå Žåã®ã¢ã·ã¹ã¿ã³ããšã©ãŒããã¹ãããçµã¿ç«ãŠãããŸãã
- å®å
šäžèŽãããµã€ã¬ã³ãããŒã¯ã³
NO_REPLYã¯ãéä¿¡ãã€ããŒãããé€å€ãããŸãã - ã¡ãã»ãŒãžã³ã°ããŒã«ã«ããéè€ã¯ãæçµãã€ããŒããªã¹ãããåé€ãããŸãã
- ã¬ã³ããªã³ã°å¯èœãªãã€ããŒããæ®ã£ãŠãããããã€ããŒã«ã§ãšã©ãŒãçºçããå Žåãã¡ãã»ãŒãžã³ã°ããŒã«ããã§ã«ãŠãŒã¶ãŒã«è¡šç€ºãããå¿çãéä¿¡ããŠããªãéãããã©ãŒã«ããã¯ã®ããŒã«ãšã©ãŒå¿çãçºè¡ãããŸãã
Compaction ãšå詊è¡
èªå Compaction 㯠compaction ã¹ããªãŒã ã€ãã³ããçºè¡ããå詊è¡ãããªã¬ãŒããããšããããŸããåè©Šè¡æã«ã¯ãåºåã®éè€ãé¿ãããããã¡ã¢ãªå
ãããã¡ãšããŒã«èŠçŽããªã»ãããããŸããCompactionãåç
§ããŠãã ããã
ã€ãã³ãã¹ããªãŒã
lifecycleïŒsubscribeEmbeddedAgentSessionã«ãã£ãŠçºè¡ãããŸãïŒãã©ãŒã«ããã¯ãšããŠagentCommandãããçºè¡ãããŸãïŒãassistantïŒãšãŒãžã§ã³ãã©ã³ã¿ã€ã ããã¹ããªãŒãã³ã°ãããå·®åã§ããtoolïŒãšãŒãžã§ã³ãã©ã³ã¿ã€ã ããã¹ããªãŒãã³ã°ãããããŒã«ã€ãã³ãã§ãã
Gateway ã¯ãã©ã€ããµã€ã¯ã«ã€ãã³ãããã³ããŒã«ã®éå§/çµç«¯ã€ãã³ããããµã€ãºå¶éãããã¡ã¿ããŒã¿ã®ã¿ãä¿æããç£æ»å°åž³ã«æåœ±ããŸãããã®æåœ±ã¯ãããã³ãããã¡ãã»ãŒãžãããŒã«åŒæ°ãããŒã«çµæãçã®ãšã©ãŒããã©ã³ã¹ã¯ãªãã/ã©ã³ã¿ã€ã ã®ãã¹å€ãžã³ããŒããããšãªããåºæãšçµæã³ãŒããèšé²ããŸãã
ãã£ãããã£ãã«ã®åŠç
ã¢ã·ã¹ã¿ã³ãã®å·®åã¯ããã£ããã® delta ã¡ãã»ãŒãžã«ãããã¡ãªã³ã°ãããŸãããã£ããã® final ã¯ãã©ã€ããµã€ã¯ã«çµäº/ãšã©ãŒ æã«çºè¡ãããŸãã
ã¿ã€ã ã¢ãŠã
| ã¿ã€ã ã¢ãŠã | ããã©ã«ã | æ³šèš |
|---|---|---|
agent.wait |
30s | åŸ
æ©ã®ã¿ãtimeoutMs ãã©ã¡ãŒã¿ãŒã§äžæžãã§ããŸããåºç€ãšãªãå®è¡ã¯åæ¢ããŸããã |
ãšãŒãžã§ã³ãå®è¡æéïŒagents.defaults.timeoutSecondsïŒ |
172800s (48h) | runEmbeddedAgent ã®äžæ¢ã¿ã€ããŒã«ãã£ãŠé©çšãããŸããå®è¡æéã®äžéãç¡å¶éã«ããã«ã¯ 0 ãèšå®ããŸãããã ããã¢ãã«ã¹ããªãŒã ã®çåç£èŠã¯åŒãç¶ãé©çšãããŸãã |
| Cron ã®éé¢ããããšãŒãžã§ã³ãã¿ãŒã³ | Cron ãææ | ã¹ã±ãžã¥ãŒã©ãŒã¯å®è¡éå§æã«ç¬èªã®ã¿ã€ããŒãéå§ããèšå®ãããæéã«éãããšå®è¡ãäžæ¢ããŸãããã®åŸãå€ãåã»ãã·ã§ã³ã«ãã£ãŠã¬ãŒã³ã忢ãããŸãŸã«ãªããªããããã¿ã€ã ã¢ãŠããèšé²ããåã«å¶éä»ãã®ã¯ãªãŒã³ã¢ãããå®è¡ããŸãã |
| ã¢ãã«ã®ã¢ã€ãã«ã¿ã€ã ã¢ãŠã | ã¯ã©ãŠã 120sãã»ã«ããã¹ã 300s | ã¢ã€ãã«æéæ å
ã«å¿çãã£ã³ã¯ãå°çããªãå ŽåãOpenClaw ã¯ã¢ãã«ãªã¯ãšã¹ããäžæ¢ããŸããmodels.providers.<id>.timeoutSeconds ã¯ãäœéãªããŒã«ã«ãŸãã¯ã»ã«ããã¹ãã®ãããã€ããŒåãã«ããã®ã¢ã€ãã«ç£èŠæéãå»¶é·ããŸãããã ããããçãæéå€ã® agents.defaults.timeoutSeconds ãŸãã¯å®è¡åºæã®ã¿ã€ã ã¢ãŠããããå Žåããããã¯ãšãŒãžã§ã³ãå®è¡å
šäœã管çããããããã®ç¯å²å
ã«å¶éãããŸããå®è¡æéã®äžéãç¡å¶éã§ãããããã€ããŒã¯ã©ã¹ã®ã¢ã€ãã«ç£èŠã¯ç¶æãããŸããæç€ºçãªã¢ãã«ãŸãã¯ãšãŒãžã§ã³ãã®ã¿ã€ã ã¢ãŠãããªã Cron ããªã¬ãŒã®ã¯ã©ãŠãã¢ãã«å®è¡ã«ãåãããã©ã«ããé©çšãããŸããæç€ºç㪠Cron å®è¡ã¿ã€ã ã¢ãŠããããå Žåã¯ãèšå®æžã¿ã®ã¢ãã«ãã©ãŒã«ããã¯ãå€åŽã® Cron æéãŸã§ã«å®è¡ã§ãããããã¯ã©ãŠãã¢ãã«ã¹ããªãŒã ã®åæ¢ã¯æå€§ 60s ã«å¶éãããŸããå®éã«ããŒã«ã«ãªãšã³ããã€ã³ãïŒã«ãŒãããã¯ãŸãã¯ãã©ã€ããŒãã® baseUrlïŒã§ Cron ã«ãã£ãŠããªã¬ãŒãããå®è¡ã§ã¯ãããŒã«ã«ã®ã¢ã€ãã«ç£èŠç¡å¹åãç¶æãããŸãããããã¯ãŒã¯äžã® baseUrl ã䜿çšããã»ã«ããã¹ããããã€ããŒã«ã¯ãæé»ã® 300s ç£èŠãé©çšãããŸããæç€ºç㪠Cron å®è¡ã¿ã€ã ã¢ãŠããããå ŽåãããŒã«ã«ãŸãã¯ã»ã«ããã¹ãã®åæ¢æéã¯ãã®ã¿ã€ã ã¢ãŠããäžéãšããŸããäœéãªããŒã«ã«ãããã€ããŒã«ã¯ models.providers.<id>.timeoutSeconds ãèšå®ããŠãã ããã |
| ãããã€ã㌠HTTP ãªã¯ãšã¹ãã¿ã€ã ã¢ãŠã | models.providers.<id>.timeoutSeconds |
æ¥ç¶ãããããŒãæ¬æãSDK ãªã¯ãšã¹ãã¿ã€ã ã¢ãŠããä¿è·ããã fetch ã®äžæ¢åŠçãããã³ãã®ãããã€ããŒã®ã¢ãã«ã¹ããªãŒã ã®ã¢ã€ãã«ç£èŠã察象ãšããŸãããšãŒãžã§ã³ãå šäœã®å®è¡æéã¿ã€ã ã¢ãŠããåŒãäžããåã«ãäœéãªããŒã«ã«ãŸãã¯ã»ã«ããã¹ãã®ãããã€ããŒïŒOllama ãªã©ïŒã«äœ¿çšããŠãã ãããã¢ãã«ãªã¯ãšã¹ããããé·ãå®è¡ããå¿ èŠãããå Žåã¯ããšãŒãžã§ã³ããŸãã¯å®è¡æéã®ã¿ã€ã ã¢ãŠããå°ãªããšãåãé·ãã«ããŠãã ããã |
忢ããã»ãã·ã§ã³ã®èšºæ
蚺æãæå¹ã«ãããšãdiagnostics.stuckSessionWarnMsïŒããã©ã«ã㯠120000 msïŒã¯ãå¿çãããŒã«ãã¹ããŒã¿ã¹ããããã¯ããŸã㯠ACP ã®é²è¡ã芳枬ãããªããŸãŸé·æé processing ç¶æ
ã«ããã»ãã·ã§ã³ãåé¡ããŸãã
- ã¢ã¯ãã£ããªåã蟌ã¿å®è¡ãã¢ãã«åŒã³åºããããŒã«åŒã³åºãã¯
session.long_runningãšããŠå ±åãããŸããææè ãããç¡å¿çã®ã¢ãã«åŒã³åºãã¯ãäœéãŸãã¯éã¹ããªãŒãã³ã°ã®ãããã€ããŒãæ©ãããæ®µéã§åæ¢ãšå€å®ãããªããããdiagnostics.stuckSessionAbortMsãŸã§ã¯session.long_runningã®ãŸãŸã«ãªããŸãã - æè¿é²è¡ããªãã¢ã¯ãã£ããªåŠçã¯
session.stalledãšããŠå ±åãããŸããææè ãããã¢ãã«åŒã³åºãã¯ãäžæ¢ãããå€ä»¥éã«session.stalledã«åãæ¿ãããŸããææè ãããªãå€ãã¢ãã«ãŸãã¯ããŒã«ã®ã¢ã¯ãã£ããã£ãé·æéå®è¡äžãšããŠé ãããããšã¯ãããŸããã session.stuckã¯ãææè ãããªãå€ãã¢ãã«ãŸãã¯ããŒã«ã®ã¢ã¯ãã£ããã£ããããã¢ã€ãã«ç¶æ ã®ãã¥ãŒæžã¿ã»ãã·ã§ã³ãªã©ã埩æ§å¯èœãªå€ãã»ãã·ã§ã³ç®¡çæ å ±ã®ããã«äºçŽãããŠããŸãã
diagnostics.stuckSessionAbortMs ã®ããã©ã«ãã¯ãå°ãªããšã 5 åããã€èŠåãããå€ã® 3 åã§ããå€ãã»ãã·ã§ã³ç®¡çæ
å ±ã¯ã埩æ§ã²ãŒããééãããšåœ±é¿ãåããã»ãã·ã§ã³ã¬ãŒã³ãçŽã¡ã«è§£æŸããŸããäžæ¹ã忢ããåã蟌ã¿å®è¡ã¯äžæ¢ãããå€ãè¶
ããåŸã«ã®ã¿äžæ¢ããã³ãã¬ã€ã³ããããããåã«äœéãªå®è¡ãæã¡åãããšãªãããã¥ãŒæžã¿ã®åŠçãåéã§ããŸãã埩æ§ã§ã¯ãèŠæ±æžã¿ããã³å®äºæžã¿ã®æ§é åãããçµæãçºè¡ãããŸãã蚺æç¶æ
ãã¢ã€ãã«ãšããŠããŒã¯ãããã®ã¯ãåãåŠçäžä»£ãåŒãç¶ãçŸåšã®ãã®ã§ããå Žåã ãã§ãããŸããã»ãã·ã§ã³ãå€åããªãéã¯ãç¹°ãè¿ããã session.stuck 蚺æã®ééãæ®µéçã«å»¶é·ãããŸãã
åŠçãæ©æçµäºããå¯èœæ§ãããç®æ
- ãšãŒãžã§ã³ãã¿ã€ã ã¢ãŠãïŒäžæ¢ïŒ
- AbortSignalïŒãã£ã³ã»ã«ïŒ
- Gateway ã®åæãŸã㯠RPC ã¿ã€ã ã¢ãŠã
agent.waitã¿ã€ã ã¢ãŠãïŒåŸ æ©ã®ã¿ããšãŒãžã§ã³ãã¯åæ¢ããŸããïŒ
é¢é£é ç®
- ããŒã« - å©çšå¯èœãªãšãŒãžã§ã³ãããŒã«
- ãã㯠- ãšãŒãžã§ã³ãã®ã©ã€ããµã€ã¯ã«ã€ãã³ãã«ãã£ãŠããªã¬ãŒãããã€ãã³ãé§ååã¹ã¯ãªãã
- Compaction - é·ãäŒè©±ãèŠçŽãããä»çµã¿
- å®è¡æ¿èª - ã·ã§ã«ã³ãã³ãã®æ¿èªã²ãŒã
- æè - æèããã³æšè«ã¬ãã«ã®èšå®