Warp 自改进 Agent 架构深度解读:基于 Claude Skills 的反馈闭环实践
Warp 自改进 Agent 架构深度解读:基于 Claude Skills 的反馈闭环实践
来源:Anthropic 官方博客,2026 年 8 月 26 日发布,作者 Michael Segner。
Warp:融资 $73M,80 万月活开发者,财富 500 强 56% 在用,Claude Code 会话 1000 万+。
问题:Agent 的反馈在会话结束后消失
Warp 是一个 AI 驱动的终端和 Agent 开发环境,基于 Claude Platform 构建。团队在内部代码审查 Agent 上遇到了一个典型痛点:Agent 给出了无用评论和低质量输出。
尝试过的中间方案
| 方案 | 效果 | 局限 |
|---|---|---|
| 手动重写 Prompt | 输出更可用 | 不可扩展——每次失败都要手改 |
改进 AGENTS.md 上下文文件 |
有帮助 | 远非完整修复 |
| 根本问题 | 反馈在会话结束时消失,关键上下文从 Agent 循环中丢失 | — |
Warp 团队最终意识到,无论 Agent 的用途是什么,对它的反馈通常在会话结束后就消失了。解决方案:基于 Agent Skills 的框架创建自改进 Agent,让反馈随时间积累,持续优化输出。
核心:双层 Skill 自改进架构
Warp 演化出的自改进 Agent 架构由两个 Skill组成,中间嵌入人类反馈:
┌─────────────────────┐
│ 外层 / Improver Skill │
│ (观察者 Agent) │
│ - 定时调度(非每任务) │
│ - 拉取累积的人类反馈 │
│ - 对比 Agent 建议 vs │
│ 人类响应 │
│ - 提议对 Base Skill │
│ 的小型聚焦编辑 │
└──────────┬──────────┘
│ 提议 PR
▼
┌─────────────────────┐
│ 内层 / Base Skill │
│ (功能领域知识) │
│ - PR 打开时执行 │
│ - 持有领域知识和指令 │
│ - 生成 Agent 输出 │
└──────────┬──────────┘
│ Agent 输出
▼
┌─────────────────────┐
│ 人类反馈 │
│ - 在 PR/Issue 上评论 │
│ - 具体说明为什么好/差 │
│ - 低摩擦捕获 │
└─────────────────────┘
内层 / Base Skill
持有功能领域知识和指令。例如 PR 打开时,Warp 的代码审查 Agent 使用 Base Skill 和上下文生成审查意见。
关键:Skills 是纯文件——Agent 非常擅长更新它们。更新可走正常的 PR/代码审查工作流;合并后,下一次运行内层 Skill 即继承改进。
人类反馈
"一个人可以说'这是个好评论',但也可以给出详细原因——比如'你建议重命名这个变量,但我们代码库的全局变量命名约定是特定的'——这告诉 Agent 下次怎么做对。"——Zach Lloyd,Warp 创始人
反馈越具体越好。二元赞踩不够——需要解释为什么。
外层 / Improver Skill
作为观察者 Agent按计划运行(非每任务触发)。它拉取累积的人类反馈,对比 Agent 建议了什么 vs 人类如何回应,然后对 Base Skill 提出最小化聚焦编辑。
"文件化 Skills 是编码 Agent 知识的方式——不把知识直接放 Prompt 里,而是让 Agent 在工作过程中查阅。框架其实很简单:一个领域特定 Skill + 一个改进者 Skill。简单性就是这个方法的美。"——Zach Lloyd
Warp 现在在整个开源仓库上运行这个模式——独立的规格编写 Agent、审查 Agent、分诊 Agent,每个都有自己的自改进循环。
实战案例:Issue Triage Agent
触发流程
用户提交 GitHub Issue
│
▼
GitHub Action 触发 Agent
│
▼
┌─────────────────────────────────┐
│ 内层 Skill(Triage 领域知识) │
│ - 分析 Issue 复杂度和可行性 │
│ - 分配标签(label) │
│ - 建议修复方向 │
└──────────────┬────────────────┘
│ Agent 输出
▼
维护者在 Issue 上留反馈
(解释期望什么 + 为什么期望)
│
▼
┌─────────────────────────────────┐
│ 外层 Skill(Improver Agent) │
│ 在 Oz 平台上定时运行: │
│ 1. 认证 GitHub │
│ 2. 运行 Skill 自带 Python 脚本 │
│ 拉取带反馈的近期 Issues │
│ 3. 汇总为 JSON 文件 │
│ 4. 读回上下文 │
│ 5. 识别具体反馈信号 │
│ 6. 提议最小编辑 │
│ 7. 开 PR 编辑内层 Skill │
└─────────────────────────────────┘
│
▼
人类审查 → 批准 → 合并
→ 下次 Triage 继承新知识
具体案例
在某次 Issue 分诊中,内层 Skill 表现不错但漏了一个标签 ready to spec(表示贡献者可以开始编写产品和技术规格)。一位 Warp 维护者在 Issue 上直接留了反馈——关键是他解释了期望什么以及为什么期望:
"当 Issue 描述了一个真实问题,即使确切的 UI/UX 形态尚未定义,也应该标
ready to spec。"
Improver Skill 识别了这个反馈信号,提出对内层 Skill 的最小编辑:在满足条件时自动应用 ready to spec 标签。它开了 PR 编辑内层 Skill,PR 描述解释了哪些信号促使了变更以及改了什么。人类审查、批准、合并后,下一次运行 Triage Skill 就继承了新知识。
关键设计
- Skill 自带脚本:Improver Skill 自带 Python 脚本拉取带反馈的 Issues——Skills 可以引用资源文件而非每次重写代码
- PR 描述解释变更:不是黑箱——PR 描述清楚说明哪些反馈信号促使了什么变更
- 人类关闭循环:最终合并步骤由人类完成,保持对实际变更的控制
六条 Skill 编写最佳实践
1. 写原则,不是规则
"像指导一个聪明人那样构建 Skill,而不是像给计算机编程。"——Zach Lloyd
| 反面 | 正面 |
|---|---|
| 详尽的变量命名规则(规则) | "寻找重复代码"(原则) |
原则让 Agent 推理而非执行死板指令,泛化能力更强。
2. 解释 Why
提供规则背后的原理,让 Agent 能够对问题进行推理,而非遵循僵硬指令。
3. 让反馈零摩擦
在人们已经工作的地方捕获反馈——直接在 PR 或 Issue 上评论。自动捕获,无需额外提交步骤。
"低摩擦是让信号持续流动的关键。太难了你就得不到反馈,就没法改进 Skill。"——Zach Lloyd
4. Skill 保持小 + 渐进式披露
好的 Skill 文件不大——它引用资源文件和脚本,而非一次性把所有内容塞进上下文。
5. 反馈质量 > 数量,但数量有帮助
| 反馈类型 | 价值 |
|---|---|
| 少量详细领域专家反馈 | 极高——包含 Agent 无法获取的领域知识 |
| 大量粗略赞踩反馈 | 低——不说明"为什么" |
| 大量详细反馈 | 最高——Warp 有数百人贡献,数千次代码审查 |
"来自资深工程师的小量详细领域反馈,比大量粗略反馈更有价值。"——Zach Lloyd
6. 在 Improver Skill 上投入额外精力
写 Improver Skill(观察者 Agent)的投入回报超出当前 Agent 循环——因为 Improver Skill 在不同用例间高度可复用。
"代码审查 Agent 的 Improver Skill 和任何其他 Agent 的 Improver Skill 没有太大区别。"——Zach Lloyd
五个常见问题
Q1:Skill 和 Memory 混淆了?
| Skills | Memory | |
|---|---|---|
| 本质 | 程序性、稳定 | 自动写入 |
| 内容 | "如何做 X" | Agent 在推理时写 |
| 运行无关 | 是——跨运行一致 | 否——永不停变化 |
| 变更方式 | 刻意的人类审批 | Agent 自主更新 |
Q2:需要一个还是多个 Improver 循环?
折中方案:模板化基础循环捕获 Agent 间的共性,叠加领域特定权重。少数 Improvers 各自负责一个;上百个应该共享。
Q3:反馈是错的怎么办?
假设反馈会是错的。不要让 Agent 盲目接受——给它上下文做 sanity-check、过滤谁的反馈算数、在过滤或最终审查阶段保持人类在环。
Q4:你的领域可验证吗?
先建验证 Harness,再让 Agent 对标调优:生成参考语料 → 对比输出与参考 → 修复 → 重复。
Q5:不可验证的领域呢?
在有 Golden Output 的地方用确定性评估。必须用人类反馈时,限制在领域专家——不要开闸放水。
Q6:怎么知道整个系统在改进?
追踪人类已经在看的全局指标——合并时间、贡献者数量、成本——反馈给 Improver Agent。部署走 crawl-walk-run 渐进策略。
技术栈全景
| 层 | 技术 | 说明 |
|---|---|---|
| 终端 | Warp | AI 驱动终端和 Agent 开发环境 |
| 核心语言 | Rust + Golang | 高性能终端 + 后端服务 |
| CI/CD | GitHub Actions | 触发 Triage Agent |
| Agent 编排 | Oz(内部平台) | 定时调度 Improver Agent |
| LLM 平台 | Claude Platform | Agent 推理引擎 |
| Skill 存储 | Git 仓库中的文件 | 版本化、可审查、可合并 |
规模数据
| 指标 | 数值 |
|---|---|
| 融资 | $73M |
| 月活开发者 | 800,000 |
| 财富 500 强渗透 | 56% |
| Claude Code 会话总量 | 10,000,000+ |
| 每周 Claude Code 会话 | 400,000+ |
| Warp Agent 对话总量 | 40,000,000+ |
与 Claude AI-Native SDLC Playbook 的关联
本文的 Self-Improving Agent 架构与上一篇 Claude AI-Native SDLC Playbook 中的Skills 体系直接呼应:
| Playbook 概念 | Warp 实践 |
|---|---|
| Skills = 策略即代码 | Base Skill 编码领域知识,版本化在 Git |
| 治理即代码 | Improver Skill 提议变更走 PR 审查流程 |
| 人类聚焦判断 | 人类审批 Skill 变更,关闭循环 |
| 制品链 = 审计轨迹 | Skill 文件的提交链 = 改进历史 |
Warp 的实践是 Claude AI-Native SDLC Playbook 中 Skills 理念的最佳工程验证——不是理论,而是支撑 80 万开发者的生产系统。
总结
Warp 的自改进 Agent 架构核心思想极其简洁:Agent 的反馈不应随会话消失,而应编码为版本化的 Skill 文件,随时间积累改进。
三个核心洞察
- 双层 Skill 架构:内层做执行(领域知识),外层做改进(观察+提议),中间嵌人类反馈
- Skill 是纯文件:Agent 擅长更新文件,更新走正常 PR 审查,人类保持控制
- Improver 高度可复用:不同领域的 Improver Skill 差异不大,投入一次多次复用
适用范围
任何 Agent——无论什么任务——只要从一开始就构建反馈循环(捕获人类反馈→转为 Skill 更新→扩展为跨组织的能力系统),就能随时间持续改进。Warp 已在 spec-writing、review、triage 三个 Agent 上验证了这一模式,支撑数百人贡献、数千次代码审查的开源仓库。
来源:How Warp builds self-improving agents on Claude — Anthropic Blog
作者:Michael Segner
发布日期:2026 年 8 月 26 日

浙公网安备 33010602011771号