第 11 章 · CLI 产品化与毕业
06 · 课程总结
回看整个架构,对比主流产品,明确 agent 的演进方向。
架构全貌
mini-coding-agent 的最终架构:
main.ts(CLI 入口)
├── Model(模型调用)
├── PermissionGuard(权限守卫)
├── AgentEmitter + TerminalRenderer(事件流)
├── ContextManager(会话记忆)
├── ProjectRulesLoader(项目规则)
├── SkillRegistry(技能注册表)
├── HookManager(生命周期 hook)
├── McpClient(外部工具)
└── Orchestrator + SubAgent(多 agent)
agent.ts(核心循环)
├── 系统提示词构建(动态拼接)
├── ReAct 循环(思考→执行→观察)
├── 工具执行(内置 + 计划 + MCP + delegate)
├── 权限检查(before execute)
├── 事件发射(at every step)
├── Hook 触发(before/after tool)
└── 上下文记录(after tool)每个模块都是独立可替换的。换模型只需要改 Model 类。换渲染器只需要换 TerminalRenderer。加工具只需要注册新 Tool。
和主流产品的对比
| 能力 | Claude Code | Codex CLI | mini-coding-agent |
|---|---|---|---|
| ReAct 循环 | 有 | 有 | 有(第 2 章) |
| 工具系统 | 丰富 | 基础 | 10 个内置 + MCP |
| 权限控制 | 有 | 有 | 有(第 4 章) |
| 实时输出 | 有 | 有 | 有(第 5 章) |
| 上下文管理 | 有 | 有 | 基础版(第 6 章) |
| 技能系统 | 有 | 无 | 有(第 7 章) |
| Hook 系统 | 有 | 有 | 有(第 8 章) |
| MCP 支持 | 有 | 有 | 有(第 9 章) |
| 多 agent | 有(subagent) | 无 | 有(第 10 章) |
| 会话持久化 | 有 | 有 | 无(可扩展) |
| 流式 token | 有 | 有 | 无(可扩展) |
mini-coding-agent 覆盖了核心能力,但在几个方面可以继续演进。
可演进的方向
流式 token 输出。 当前 agent 等模型完整回复后才输出。可以用 OpenAI 的 stream API 逐 token 显示模型的思考过程。
会话持久化。 把对话历史和 ContextManager 保存到文件,支持 resume 命令恢复会话。
更智能的上下文工程。 当前的 ContextManager 用固定规则记录信息。可以让模型自己决定哪些信息值得记住。
并行 subagent。 Orchestrator 当前是串行的。对于独立的搜索任务,可以并行执行多个 explorer。
测试生成。 集成一个专门的 "test" skill,能根据源代码自动生成测试用例。
项目统计
| 指标 | 数值 |
|---|---|
| 章节数 | 12(第 0-11 章) |
| 源码文件 | 30+ |
| 测试文件 | 23 |
| 测试用例 | 187 |
| 代码行数(src) | ~2000 |
学习路径回顾
你从零开始实现了一个完整的 terminal coding agent:
- 第 1 章:最小 agent——调 API、拿回答
- 第 2 章:ReAct 循环——思考、执行、观察
- 第 3 章:工具箱——搜索、读写、执行
- 第 4 章:权限——安全边界
- 第 5 章:事件流——实时输出
- 第 6 章:记忆——上下文连续性
- 第 7 章:Skill——按任务类型工作
- 第 8 章:Hook——生命周期扩展
- 第 9 章:MCP——外部工具接入
- 第 10 章:多 agent——角色分工
- 第 11 章:CLI 产品化——从脚本到工具
每一步都建立在前一步的基础上,每一步都可以独立运行和测试。这就是好的架构设计带来的好处——增量式构建,每一步都是完整的。
登录以继续阅读
解锁完整文档、代码示例及更多高级功能。