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

8.1 KiB
Raw Blame History

mindfold-ai/Trellis 深度研究

一句话判断

Trellis 的底层设计是:把 AI 编程从“聊天驱动”改造成“仓库控制面驱动”,让任务、规格、上下文、 会话、验证和平台适配都成为可版本化对象。

结构拆解

层级 关键对象 作用
仓库控制面 .trellis/ 承载 workflow、spec、tasks、workspace、scripts、config,是 Agent 行为的本地真相源。
任务层 .trellis/tasks/{MM-DD-name}/ 每个任务保存 task.jsonprd.mddesign.mdimplement.mdimplement.jsonlcheck.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.jsonlcheck.jsonl 选择性注入给实现 Agent 与检查 Agent。这里的关键不是“多写文档”,而是让文档参与运行时:

  • spec 是长期规则;
  • task artifact 是短期目标;
  • jsonl manifest 是本次任务需要加载的上下文清单;
  • implement/check Agent 只读与本次任务相关的部分,避免上下文膨胀。

对本仓的启示:AGENTS.mdREADME.mdllms.txtassets/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.jsonlcheck.jsonl 保存进入实现/检查阶段的上下文文件和原因。

对本仓的启示:复杂研究和文档治理任务不能只靠聊天推进。至少要能在文件里回答:目标是什么、上下文在哪里、 验收是什么、验证命令是什么、未完成项是什么。

3. workflow breadcrumb 把状态注入每一轮

Trellis 在 .trellis/workflow.md 中维护 [workflow-state:STATUS] 块,并通过 hook 在每轮用户输入时注入当前状态。 这解决的是 Agent 常见失败:忘记先计划、忘记进入检查、忘记提交前验证、忘记收尾沉淀。

关键设计点:

  • no_task 要求先判断是否创建任务。
  • planning 要求轻量任务至少有 PRD,复杂任务补齐 design.mdimplement.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.mdllms.txtassets/ai-citation/llms-full.txt 和工具目录不能各讲各的。

5. channel runtime 把多 Agent 协作变成事件系统

Trellis 的 channel API 暴露 channel、thread、message、context、worker、inbox、interrupt、watch、supervisor 等能力。 CLI 侧提供 createsendwaitinterruptspawnrunlistmessageskillpost 等命令。

这说明 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.mddocs/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.mdllms.txtllms-full.txt 和研究索引不漂移。
  5. 如果未来需要多 Agent 并发执行,再研究 channel runtime 或 auto-tmux 的事件化改造。

最小试用动作

下一轮可以选一个真实文档任务试用轻量 Trellis 模式:

  1. 写一个任务 artifact,明确目的、对象、约束、上下文、验收和验证。
  2. 执行修改。
  3. 用独立检查视角审计结果。
  4. 把新经验回写到稳定入口。
  5. 提交前确认索引和 AI 入口同步。