8.1 KiB
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 思路可以转成本仓收尾规则:
- 完成修改。
- 运行质量门禁。
- 如果发现新的稳定规则、坑、流程或边界,回写到对应 AGENTS、README、docs 或 skills。
- 再提交。
这比“写完总结一下”更强,因为它要求下一次 Agent 能自动读到新规则。
不采用 Trellis 的边界
- AGPL-3.0 代码边界:本仓不能直接复制 Trellis 的实现、模板或 hook。
- 项目形态边界:本仓是中文 Vibe Coding 知识库,不是 Trellis runtime 分发包。
- 所有权边界:引入完整 CLI、多平台 configurator 和 channel runtime 会显著增加维护面。
- 需求边界:当前本仓主要需要研究域、文档治理和质量门禁,不需要立即运行 worker supervisor。
对本仓的下一步建议
- 在
docs/research/harness/补一份“Agent Harness 控制面检查清单”。 - 为复杂文档任务定义轻量任务 artifact 契约。
- 建立“验证后沉淀规格”的收尾规则,把高频教训写回 AGENTS、README 或 skills。
- 对多 AI 入口做一致性检查,确保
AGENTS.md、llms.txt、llms-full.txt和研究索引不漂移。 - 如果未来需要多 Agent 并发执行,再研究 channel runtime 或
auto-tmux的事件化改造。
最小试用动作
下一轮可以选一个真实文档任务试用轻量 Trellis 模式:
- 写一个任务 artifact,明确目的、对象、约束、上下文、验收和验证。
- 执行修改。
- 用独立检查视角审计结果。
- 把新经验回写到稳定入口。
- 提交前确认索引和 AI 入口同步。