Files
vibe-coding-cn/docs/research/mindfold-ai-trellis/deep-dive.md
T

158 lines
8.1 KiB
Markdown
Raw Normal View History

2026-07-04 07:13:59 +08:00
# mindfold-ai/Trellis 深度研究
## 一句话判断
Trellis 的底层设计是:把 AI 编程从“聊天驱动”改造成“仓库控制面驱动”,让任务、规格、上下文、
会话、验证和平台适配都成为可版本化对象。
## 结构拆解
| 层级 | 关键对象 | 作用 |
|:---|:---|:---|
| 仓库控制面 | `.trellis/` | 承载 workflow、spec、tasks、workspace、scripts、config,是 Agent 行为的本地真相源。 |
| 任务层 | `.trellis/tasks/{MM-DD-name}/` | 每个任务保存 `task.json``prd.md``design.md``implement.md``implement.jsonl``check.jsonl`。 |
| 规格层 | `.trellis/spec/` | 按 package/layer 管理编码规范、质量规则、架构约束和思考指南。 |
| 状态层 | `.trellis/workflow.md` | 定义 Plan、Execute、Finish 相位和 per-turn workflow-state breadcrumb。 |
| 记忆层 | `.trellis/workspace/``mem` | 保存会话日志,并从 Claude、Codex、OpenCode、Pi 等历史会话中检索上下文。 |
| 适配层 | `.claude/``.codex/``.cursor/``.opencode/` 等 | 把同一套 Trellis 工作流渲染到不同 AI coding 平台。 |
| runtime 层 | `channel`、worker、supervisor、event log | 支撑多 Agent 协作、消息路由、上下文挂载、worker 生命周期和中断。 |
## 关键机制
### 1. 规格注入,而不是模型记忆
Trellis 的 `.trellis/spec/` 把团队规则拆成 package 和 layer,再通过任务的 `implement.jsonl``check.jsonl`
选择性注入给实现 Agent 与检查 Agent。这里的关键不是“多写文档”,而是让文档参与运行时:
- spec 是长期规则;
- task artifact 是短期目标;
- jsonl manifest 是本次任务需要加载的上下文清单;
- implement/check Agent 只读与本次任务相关的部分,避免上下文膨胀。
对本仓的启示:`AGENTS.md``README.md``llms.txt``assets/ai-citation/llms-full.txt` 和研究域索引必须保持一致。
它们不是说明书,而是 AI 进入仓库时的上下文入口。
### 2. 任务是执行单元,不是聊天片段
Trellis 的任务目录把“要做什么”拆成可恢复 artifact:
- `task.json` 保存 24 字段的规范任务记录,包含 status、priority、assignee、branch、commit、PR、parent/children 等。
- `prd.md` 保存需求、约束和验收。
- `design.md` 保存边界、契约、数据流和取舍。
- `implement.md` 保存执行顺序、验证命令、review gate 和回滚点。
- `implement.jsonl``check.jsonl` 保存进入实现/检查阶段的上下文文件和原因。
对本仓的启示:复杂研究和文档治理任务不能只靠聊天推进。至少要能在文件里回答:目标是什么、上下文在哪里、
验收是什么、验证命令是什么、未完成项是什么。
### 3. workflow breadcrumb 把状态注入每一轮
Trellis 在 `.trellis/workflow.md` 中维护 `[workflow-state:STATUS]` 块,并通过 hook 在每轮用户输入时注入当前状态。
这解决的是 Agent 常见失败:忘记先计划、忘记进入检查、忘记提交前验证、忘记收尾沉淀。
关键设计点:
- `no_task` 要求先判断是否创建任务。
- `planning` 要求轻量任务至少有 PRD,复杂任务补齐 `design.md``implement.md`
- `in_progress` 明确实现、检查、更新 spec、commit、finish-work 的顺序。
- Codex 可以走 inline 变体,适配平台子 Agent 隔离问题。
对本仓的启示:工作流规则不应该只写在长文档深处,而应出现在 Agent 每次开始任务时必读的位置。
### 4. 多平台适配不是复制多份规则
Trellis 的 `AI_TOOLS` registry 把 Claude Code、Cursor、OpenCode、Codex、Kilo、Kiro、Gemini、Antigravity、
Devin、Qoder、CodeBuddy、Copilot、Droid、Pi、Reasonix、ZCode、Trae 等平台统一成配置对象。
平台差异被压到 configurator、template 和 hook 能力矩阵中,核心工作流保持一致。
对本仓的启示:多 AI 工具支持应该有一个事实中心。根 `AGENTS.md``llms.txt``assets/ai-citation/llms-full.txt`
和工具目录不能各讲各的。
### 5. channel runtime 把多 Agent 协作变成事件系统
Trellis 的 `channel` API 暴露 channel、thread、message、context、worker、inbox、interrupt、watch、supervisor 等能力。
CLI 侧提供 `create``send``wait``interrupt``spawn``run``list``messages``kill``post` 等命令。
这说明 Trellis 对 Agent 协作的理解不是“开几个窗口”,而是:
- 共享事件日志;
- 明确 worker 身份;
- 消息有发送者、目标、线程和 delivery mode
- 上下文可以挂到 channel 或 thread
- supervisor 管理 worker 生命周期、空闲清理、超时和中断。
对本仓的启示:如果未来真的要做多 Agent 协同研究或 tmux worker 编排,应该优先采用“事件日志 + worker 状态 + 上下文挂载”
的模型,而不是只靠口头分工。
### 6. mem 把历史会话变成可检索材料
Trellis 的 `mem` 子系统从 Claude、Codex、OpenCode、Pi 等平台读取会话,提供 list、search、context、extract、projects。
它的重点不是把所有聊天永久塞回提示词,而是让 Agent 能检索过去发生过的事实、决策和问题。
对本仓的启示:聊天记录可以辅助检索,但稳定知识必须进入仓库文档。真正的长期记忆不是“记住一切”,
而是把有价值的经验晋升到可维护结构。
## 可迁移模式
### 模式一:任务 artifact 最小契约
本仓可以设计轻量版任务契约,不需要引入完整 Trellis runtime
| 字段 | 最小含义 |
|:---|:---|
| 目的 | 本次任务要改变什么结果。 |
| 对象 | 涉及哪些文件、目录、研究域或流程。 |
| 约束 | 哪些地方不能动、哪些事实必须核验。 |
| 上下文 | 当前任务必须读取的文件和原因。 |
| 验收 | 什么状态算完成。 |
| 验证 | 可复跑的命令、检查或人工审计动作。 |
| 沉淀 | 哪些结论要进入 README、AGENTS、llms、research 或 skills。 |
### 模式二:规格入口一致性
本仓已有多个 AI 入口。Trellis 的启示是:入口可以多,事实只能一个。
最低要求:
-`AGENTS.md` 说明仓库操作规则。
- `llms.txt` 提供短上下文入口。
- `assets/ai-citation/llms-full.txt` 提供完整 AI 引用入口。
- `docs/research/README.md``docs/README.md` 提供研究域索引。
- 新增研究域必须同步进入 metadata 和 llms。
### 模式三:验证后更新规格
Trellis 的 `trellis-update-spec` 思路可以转成本仓收尾规则:
1. 完成修改。
2. 运行质量门禁。
3. 如果发现新的稳定规则、坑、流程或边界,回写到对应 AGENTS、README、docs 或 skills。
4. 再提交。
这比“写完总结一下”更强,因为它要求下一次 Agent 能自动读到新规则。
## 不采用 Trellis 的边界
- AGPL-3.0 代码边界:本仓不能直接复制 Trellis 的实现、模板或 hook。
- 项目形态边界:本仓是中文 Vibe Coding 知识库,不是 Trellis runtime 分发包。
- 所有权边界:引入完整 CLI、多平台 configurator 和 channel runtime 会显著增加维护面。
- 需求边界:当前本仓主要需要研究域、文档治理和质量门禁,不需要立即运行 worker supervisor。
## 对本仓的下一步建议
1.`docs/research/harness/` 补一份“Agent Harness 控制面检查清单”。
2. 为复杂文档任务定义轻量任务 artifact 契约。
3. 建立“验证后沉淀规格”的收尾规则,把高频教训写回 AGENTS、README 或 skills。
4. 对多 AI 入口做一致性检查,确保 `AGENTS.md``llms.txt``llms-full.txt` 和研究索引不漂移。
5. 如果未来需要多 Agent 并发执行,再研究 channel runtime 或 `auto-tmux` 的事件化改造。
## 最小试用动作
下一轮可以选一个真实文档任务试用轻量 Trellis 模式:
1. 写一个任务 artifact,明确目的、对象、约束、上下文、验收和验证。
2. 执行修改。
3. 用独立检查视角审计结果。
4. 把新经验回写到稳定入口。
5. 提交前确认索引和 AI 入口同步。