Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenCode Dev 源码拆解

以本地 opencode-dev 源码快照为对象,参考 dg-ai-notes 对 Pi-Agent 的“概念 → 源码 → 设计取舍”方式,拆解 OpenCode 的运行时、Session V2、上下文工程、工具系统、Provider、HTTP API、事件回放和多端 UI。

在线阅读:https://hanqing.github.io/opencode-dev-notes/

文档定位

OpenCode 是一个完整的开源 AI coding agent 产品,而不是只有一个 SDK。它同时处理:

  • 多项目 / 多工作区 / 多 worktree 的会话隔离;
  • 可恢复、可重放的 Session 与消息投影;
  • System Context、Context Epoch、自动压缩和工具输出治理;
  • Provider / model catalog / native continuation / AI SDK 的兼容;
  • TUI、Web、Desktop、ACP、SDK 和远程 HTTP Server;
  • 权限、插件、MCP、LSP、skills、commands、subagents 和发布系统。

因此本拆解不把 OpenCode 简化成“模型 + 工具循环”,而是把它看成一条由持久化事实驱动的产品运行链:

用户输入
  → HttpApi / CLI / TUI / SDK
  → Session 输入箱(durable inbox)
  → Session Runner 在安全边界提升 prompt
  → System Context + Session History
  → LLM provider turn
  → assistant / tool / event 持久化
  → 工具结算与继续运行
  → SSE / sync / SDK / TUI / Web 投影

源码基线

  • 分析对象:/Users/hanqing/CliX/opencode-dev 工作区快照。
  • 采集时间:2026-08-02(Asia/Shanghai)。
  • 上游仓库:anomalyco/opencode,默认开发分支为 dev
  • 说明:OpenCode 的 dev 分支持续演进;文中路径和解释以本地快照为准,源码链接默认指向上游 dev 分支,可能随上游移动。

章节导航

章节 主题 关键问题
01 总览 产品与运行时全景 OpenCode 到底由哪些边界组成?
02 分层 Workspace packages 与依赖漏斗 为什么 Schema、Core、Server、Client 要分开?
03 Server 与 API Effect HTTP、Location、SDK UI 如何调用同一个后端?
04 Session V2 输入箱、Runner、Provider Turn 一次 prompt 如何变成可恢复的执行?
05 上下文工程 System Context、Epoch、History、Compaction 窗口有限时系统如何保持正确?
06 LLM 与 Provider Canonical LLM IR、协议适配、模型选择 多供应商差异被隔离在哪里?
07 工具与安全 Tool Registry、权限、输出、MCP/LSP Agent 的“手脚”如何被约束?
08 事件与回放 Event V2、投影、SSE、Sync 为什么 UI 不直接读取执行过程?
09 持久化与工作区 SQLite、Project、Location、Snapshot 数据和运行时状态如何落盘?
10 多端 UI TUI、App、Web、Desktop、ACP 同一 API 如何支撑多个宿主?
11 扩展与发布 Config、Agent、Plugin、Skill、构建 OpenCode 如何变成可扩展产品?
12 阅读方法 源码导航、设计决策、术语表 下一次改代码从哪里开始?

参考资料

License

本仓库文档内容采用 CC BY-SA 4.0;OpenCode 源码版权和许可证归上游项目所有。本仓库只复述和引用必要的代码结构,不重新分发 OpenCode 源码。

About

OpenCode dev source code breakdown in Chinese, built with MkDocs Material

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors