+−⟲ Pi Agent 架构总览 Layer 4: pi-coding-agent (Domain) AgentSession · SessionManager · ExtensionRunnerTools: read / write / edit / bash + grep / find / ls (read-only)Skills · Prompt Templates · Themes · Pi Packages Layer 3: pi-agent-core (Execution Engine) Agent class · agentLoop (418 行) · AgentStateEvent-driven: subscribe → AgentEvent streamSteering (中途注入) · Follow-up (完成后追加) · 并行/串行 tool execution Layer 2: pi-ai (Unified LLM API) stream() · MODELS registry · AuthStorage · 15+ providers (OpenAI / Anthropic / Gemini / Bedrock ...) Layer 1: pi-mono (Build / Infra / NPM Workspaces) pi-tuiDifferential renderingANSI-aware pi-web-uiLit components pi-mom (Slack Bot)Docker sandbox pi-podsvLLM GPU deploy UI / Integration Layer Agent Loop 执行流程 1. transformContext 裁剪/注入上下文 2. convertToLlm AgentMsg → LLM Msg 3. stream() LLM 流式响应 有 tool call? Yes 4. Execute tools beforeHook → run → afterHook 结果回注 Pi Agent 架构总览 ^titleLayer 4: pi-coding-agent (Domain) ^layer4-titleAgentSession · SessionManager · ExtensionRunner Tools: read / write / edit / bash + grep / find / ls (read-only) Skills · Prompt Templates · Themes · Pi Packages ^layer4-descLayer 3: pi-agent-core (Execution Engine) ^layer3-titleAgent class · agentLoop (418 行) · AgentState Event-driven: subscribe → AgentEvent stream Steering (中途注入) · Follow-up (完成后追加) · 并行/串行 tool execution ^layer3-descLayer 2: pi-ai (Unified LLM API) ^layer2-titlestream() · MODELS registry · AuthStorage · 15+ providers (OpenAI / Anthropic / Gemini / Bedrock ...) ^layer2-descLayer 1: pi-mono (Build / Infra / NPM Workspaces) ^layer1-titlepi-tui Differential rendering ANSI-aware ^sidebar-tui-textpi-web-ui Lit components ^sidebar-webui-textpi-mom (Slack Bot) Docker sandbox ^sidebar-mom-textpi-pods vLLM GPU deploy ^sidebar-pods-textUI / Integration Layer ^sidebar-labelAgent Loop 执行流程 ^loop-title1. transformContext 裁剪/注入上下文 ^step1-text2. convertToLlm AgentMsg → LLM Msg ^step2-text3. stream() LLM 流式响应 ^step3-text有 tool call? ^step4-textYes ^yes-label4. Execute tools beforeHook → run → afterHook ^step5-text结果回注 ^loop-labelNo 5. 输出结果 / 结束