执行核心
peri-agent 管理会话、消息、RCRA 阶段和 Agent 执行权;run_react_loop 是循环入口。
这里面向准备阅读、修改或审查 Peri 源码的贡献者。用户操作说明仍以文档总览为入口;本节关注代码放在哪里、跨层变更需要同时检查什么。
Peri 的终端交互主路径是:
peri-tui → peri-acp → peri-agent::run_react_loop这条简化路径表达调用入口,不代表所有 crate 只有线性依赖。模型协议、公共契约、资源访问、中间件和控制面分别由专门 crate 承担。当前 workspace 的完整依赖关系以根 Cargo.toml、各 crate manifest 和 docs/standards/architecture-contracts.md 为准。
执行核心
peri-agent 管理会话、消息、RCRA 阶段和 Agent 执行权;run_react_loop 是循环入口。
协议边界
peri-acp 接收 ACP 请求并把 Agent 事件协议化;TUI 不直接驱动 Agent 循环。
能力装配
peri-middlewares 提供工具、Skills、MCP、审批、Hook、SubAgent 等能力;生产链顺序由 Agent 层蓝本约束。
终端界面
peri-tui 消费 ACP 通知并维护交互状态、消息视图和面板。
更完整的职责图和跨层不变量见架构总览。
| 任务 | 先读 | 稳定代码入口 |
|---|---|---|
| Agent loop、Compact、模型调用、工具 trait | peri-agent/CLAUDE.md、架构契约、Rust 规范 | peri-agent/src/agent/、peri-agent/src/agent/compact_v2/、peri-agent/src/session/ |
| Session、Prompt、事件映射、ACP transport | peri-acp/CLAUDE.md、架构契约 | peri-acp/src/session/、peri-acp/src/prompt/、peri-acp/src/event/ |
| MCP、Skills、Plugin、SubAgent、HITL、Hook | peri-middlewares/CLAUDE.md、架构契约 | peri-middlewares/src/ |
| TUI 输入、消息流、面板、通知 | peri-tui/CLAUDE.md、TUI 与 Rust 规范 | peri-tui/src/kit/ |
| E2E | e2e/CLAUDE.md、测试规范 | e2e/ |
模块指引不会由 loader 自动继承父目录规则。进入某个模块前,要显式阅读该模块的 CLAUDE.md 与适用的 docs/standards/ 文档。
当文档和实现不一致时,按以下顺序判断:
docs/standards/CLAUDE.mddocs/design/历史 issue 能解释一个设计为什么出现,不能覆盖当前代码。设计文档可能同时包含目标状态和已实现基线,引用前要确认它的状态说明。
修改以下对象前,先读 docs/standards/architecture-contracts.md:
跨层事件变更通常至少涉及 Agent 发射、协议映射、ACP 转发和 TUI 消费。只修改枚举或单个 handler,不构成完整实现。
# 先跑受影响 crate 的目标测试cargo test -p peri-agent --lib <test_name>cargo test -p peri-acp --lib mappercargo test -p peri-middlewares --lib <test_name>cargo test -p peri-tui --lib <test_name>
# 文档注释和全局质量门cargo test --workspace --doccargo clippy --workspace --all-targets -- -D warningslefthook run pre-commit目标测试应先于全 workspace 测试。测试命令证明的范围要与结论一致:mapper 测试能证明映射分支,不会自动证明 TUI 已正确消费。