跳转到主要内容

用 K8s 理解 Trellis

如果你熟悉 Kubernetes,这篇文档会帮你快速理解 Trellis 的设计思想。

目录

  1. K8s 核心概念速览
  2. Trellis 与 K8s 的类比
  3. 调谐机制详解
  4. 完整工作流
  5. 为什么这样设计

一、K8s 核心概念速览

1.1 命令式 vs 声明式

命令式:描述”怎么做”
声明式:描述”要什么”

1.2 控制循环

K8s 的核心是 控制循环(Control Loop):
威力示例

二、Trellis 与 K8s 的类比

2.1 架构对应

2.2 核心组件对照

2.3 关键洞察

K8s 解决的问题:基础设施的复杂性 —— 用声明式屏蔽底层细节,Controller 负责调谐。 Trellis 解决的问题:AI 开发的不确定性 —— 用声明式定义期望(prd.md + 规范),Ralph Loop 负责调谐。 两者的共同点:
  • 用户只声明”要什么”,不操心”怎么做”
  • 系统持续调谐,直到实际状态符合期望
  • 出现偏差时自动修复
接下来,第三章将详解调谐机制(Hook + Ralph Loop),第四章将展开完整工作流(Phase 1-4)。

三、调谐机制详解

Trellis 的调谐由两个机制配合完成:Hook 注入Ralph Loop

3.1 Hook 注入

时机:每次调用 Subagent 时自动触发 作用:将 jsonl 中引用的文件内容注入到 Agent 的上下文
jsonl 文件示例
为什么这样设计
  • 避免上下文过载(Context Rot)—— 只注入当前阶段需要的内容
  • 可追溯 —— jsonl 记录了每个 task 用了哪些上下文
  • 解耦 —— Agent 不需要自己搜索,专注于执行

3.2 Ralph Loop

本质:一个程序化的质量门禁,拦截 Agent 的停止请求,验证未通过就强制继续。 触发时机:Check Agent 尝试停止时 流程
verify 配置示例(worktree.yaml):
为什么用程序而不是让 AI 自己判断
  • 程序验证可靠 —— lint 通过就是通过,不依赖 AI 的判断
  • 可配置 —— 不同项目可以配置不同的验证命令
  • 防止无限循环 —— 最多 5 次迭代,超过强制放行
局限性
  • 复杂的架构问题或逻辑 bug 可能需要人工介入
  • 依赖规范文件的质量,规范不清晰则检查效果有限

四、完整工作流

4.1 阶段总览

4.2 异常路径

如果 Check Agent 报告无法修复的问题,Dispatch 可以调用 Debug Agent 进行深度分析。这不是默认流程,而是异常处理。

五、为什么这样设计

5.1 一键启动完整工作流

/trellis:start/trellis:parallel(Claude Code 专有)一键启动,AI 自动完成整个流程:
用户不需要一步步指导,每个阶段该做什么、该参考哪些规范,都已经定义好了。

5.2 开发规范的持续沉淀

Thinking Guides 帮助发现”didn’t think of that”的问题。

5.3 防止上下文腐烂

上下文过多会导致 LLM:
  • 分心(Distraction)—— 被无关信息干扰
  • 混淆(Confusion)—— 信息相互矛盾
  • 冲突(Clash)—— 新旧信息打架
Trellis 分阶段注入:
  • implement 阶段:需求 + 相关代码
  • check 阶段:开发规范
  • finish 阶段:提交检查清单
每个阶段的 Agent 只收到与其任务相关的上下文。

5.4 程序化质量控制

不依赖 AI 自己判断,用程序强制验证。

5.5 可追溯

出问题时可以追溯是缺了哪个文件,或者规范不清晰。

总结

核心思想一致:声明期望 → 系统调谐 → 最终一致。