在上一篇文章中,我们了解了 AI 开发工具的进化历程。现在,让我们深入 OpenCode 的源码,看看一个现代 AI Coding Agent 是如何架构的。
本文将从宏观视角剖析 OpenCode 的整体设计,为后续深入各个子系统打下基础。
架构总览
OpenCode 采用了经典的分层架构,每一层都有明确的职责边界:
┌─────────────────────────────────────────────────────────────────┐
│ CLI / TUI 层 │
│ 用户交互、命令解析、终端界面渲染 │
├─────────────────────────────────────────────────────────────────┤
│ Session 层 │
│ 会话管理、消息循环、状态持久化 │
├─────────────────────────────────────────────────────────────────┤
│ Agent 层 │
│ 多 Agent 协调、任务分发、权限控制 │
├──────────────────────┬──────────────────────────────────────────┤
│ Tool 层 │ Provider 层 │
│ 工具注册、执行、结果处理 │ LLM 抽象、多提供商支持 │
├──────────────────────┴──────────────────────────────────────────┤
│ MCP 层 │
│ 外部工具协议、能力扩展 │
├─────────────────────────────────────────────────────────────────┤
│ Infrastructure 层 │
│ 配置管理、日志、文件系统、项目检测 │
└─────────────────────────────────────────────────────────────────┘
2025/1/20...大约 8 分钟