Files
cs-note/claude-code-best/docs/diagrams/agent-loop.md
T

60 lines
1.6 KiB
Markdown
Raw Normal View History

2026-06-09 23:15:17 +08:00
---
tags: [agent-loop, mermaid, claude-code, 流程图]
create time: 2026-06-09 22:30
---
# Agent Loop 完整流程
## 概述
Claude Code Agent 的完整执行循环,包含 Context 管理、Pre/Post-sampling Hook、权限审批、工具并发执行、子 Agent 递归调用、Stop Hook 和 Token Budget 控制等全部环节。
## 正文
2026-06-08 23:26:18 +08:00
```mermaid
flowchart TB
2026-06-09 23:15:17 +08:00
START(("输入")) --> CTX["Context 管理"]
2026-06-08 23:26:18 +08:00
CTX --> PRE["Pre-sampling Hook"]
PRE --> LLM["LLM 流式输出"]
2026-06-09 23:15:17 +08:00
LLM --> TC{"tool_use?"}
2026-06-08 23:26:18 +08:00
2026-06-09 23:15:17 +08:00
TC --> |是| PERM{"需权限?"}
PERM --> |是| USER["用户审批"]
2026-06-08 23:26:18 +08:00
USER --> |allow| TOOL_PRE
USER --> |deny| DENIED["拒绝"]
PERM --> |否| TOOL_PRE["Pre-tool Hook"]
TOOL_PRE --> EXEC["并发执行工具"]
EXEC --> TOOL_POST["Post-tool Hook"]
TOOL_POST --> CTX
DENIED --> CTX
TC --> |否| POST["Post-sampling Hook"]
POST --> STOP{"Stop Hook"}
STOP --> |不通过| CTX
STOP --> |通过| BUDGET{"Token Budget"}
BUDGET --> |继续| CTX
2026-06-09 23:15:17 +08:00
BUDGET --> |完成| DONE(("完成"))
2026-06-08 23:26:18 +08:00
subgraph SUB["子 Agent"]
FORK["AgentTool"] --> RECURSE["递归调用"]
end
EXEC -.-> FORK
classDef proc fill:#eef,stroke:#66c,color:#224
classDef decision fill:#fee,stroke:#c66,color:#422
classDef hook fill:#ffe,stroke:#cc6,color:#442
classDef io fill:#eff,stroke:#6cc,color:#244
classDef sub fill:#efe,stroke:#6a6,color:#242
class CTX,LLM,EXEC proc
class TC,PERM,STOP,BUDGET decision
class PRE,TOOL_PRE,TOOL_POST,POST hook
class START,DONE,USER,DENIED io
class FORK,RECURSE sub
2026-06-09 23:15:17 +08:00
```
## 关联笔记
- [[agent-loop-simple]] - Agent Loop 简易流程