DOMI · 开发者文档
domi 开发者文档
开发者视角的 domi 全景:架构、各子系统内部机制、扩展指南与贡献方式。 面向两类读者:改 domi 本身的人(从「架构」和「内幕」开始)与基于 domi 做扩展的人(直接看「扩展」)。
先读
| 文档 | 讲什么 | 什么时候读 |
|---|---|---|
| domi 是什么 | 它能帮你做什么、为什么能放心交给它、已知限制 | 第一次了解 domi,还没决定要不要用 |
| 快速开始 | 装好、配上模型、第一次对话、权限与长任务 | 第一次跑 domi |
| 架构 | 进程模型、包分层、一次提交的数据流、事件流与不变量 | 改任何代码之前 |
| Agent Loop 内部机制 | kernel 的循环:拼上下文 → 生成 → 落盘 → 执行工具 → 回灌 | 想弄懂「一轮对话发生了什么」 |
| Domi Protocol | 传输约定、方法 / 通知 / 事件清单、版本演进规则 | 写客户端、改协议 |
内部机制(改 domi 本身)
| 子系统 | 文档 | 关键包 |
|---|---|---|
| daemon 宿主 | daemon 内部机制 | packages/daemon |
| 会话存储 | 会话存储与事件流 | packages/store |
| 轨迹与回放 | 轨迹与回放 | packages/trace · packages/eval |
| 提示词 | 提示词分层与 cache 边界 | packages/prompt |
| 上下文压缩 | 压缩与 prompt cache | packages/memory · packages/kernel |
| 记忆与 Soul | 记忆分层与 Soul | packages/memory · packages/runtime |
| 编排 | 编排:任务 · 子 agent · 计划 | packages/orchestrator · packages/runtime |
| 模型层 | 模型运行时 | packages/model |
| 工具与权限 | 工具与权限运行时 | packages/capability |
| MCP | MCP 接入 | packages/mcp |
| 插件 | 插件运行时 | packages/plugin |
| 定时任务 | 定时任务 | packages/daemon/src/{cron,scheduler}.ts |
| 配置 | 配置与厂商 | packages/config |
| 命令行 | CLI 与命令 | packages/cli |
| 客户端 | 三端 | apps/tui · apps/web · apps/desktop · packages/client-core |
| 评估 | 评估体系 L1 / L2 | packages/eval |
扩展(基于 domi 做东西)
| 想做什么 | 文档 |
|---|---|
| 写一个插件(tool / skill / mcp / ui) | 插件开发 |
| 写一个 Skill | Skill 编写 |
| 给 domi 加内置工具 | 添加工具 |
| 接入新的模型厂商 | 添加模型供应商 |
| 在自己的程序里嵌入 domi | 编程集成 |
参与
- 仓库规矩与提交规范见根目录
CONTRIBUTING.md,站点版见贡献指南。 - 没想好从哪里下手:
docs/good-first-issues.md。 - 设计背景:
docs/DESIGN.md(架构与路线图)、docs/ENGINEERING.md(工程规约)、docs/PROCESS.md(研发流程与回写门)。 - 协议逐字段参考(生成文件,勿手改):
docs/protocol.md。