第 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 CodeCodex CLImini-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. 第 1 章:最小 agent——调 API、拿回答
  2. 第 2 章:ReAct 循环——思考、执行、观察
  3. 第 3 章:工具箱——搜索、读写、执行
  4. 第 4 章:权限——安全边界
  5. 第 5 章:事件流——实时输出
  6. 第 6 章:记忆——上下文连续性
  7. 第 7 章:Skill——按任务类型工作
  8. 第 8 章:Hook——生命周期扩展
  9. 第 9 章:MCP——外部工具接入
  10. 第 10 章:多 agent——角色分工
  11. 第 11 章:CLI 产品化——从脚本到工具

每一步都建立在前一步的基础上,每一步都可以独立运行和测试。这就是好的架构设计带来的好处——增量式构建,每一步都是完整的。

登录以继续阅读

解锁完整文档、代码示例及更多高级功能。

立即登录

On this page