本文へ移動
cccskills
無料GitHub で公開

coding-agent-harness

搭建 Coding Agent 或设计 Agent 护栏时使用——当你要构建能自主读写代码、跑测试、自我纠错的编码 Agent,或为已有 Agent 系统补约束/验证/纠正机制、设计执行边界与验收基线、判断某类任务是否适合交给 Agent、优化 Harness 提示词与工具集时使用。

覆盖 Harness 四组件、任务四象限、四条设计原则与业界实践。

インストール方法を見る

含まれるファイル(1)

  • SKILL.md7.5 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Coding Agent 与 Harness 工程

何时使用

  • 从零搭建 Coding Agent(选工具集、定工作流、接测试反馈)
  • 为已有 Agent 补可靠性:加护栏、验收基线、执行边界、回退手段
  • 评估一个任务是否适合交给 Agent 自主执行(四象限判断)
  • Agent "能跑但不可靠":跑偏、走破坏性捷径、过早宣布完成
  • 优化 Harness 本身(提示词、工具中间件、自验证循环)而不是换模型

核心原则

Agent = Model + Harness,Harness = 上下文管理 + 工具接口 + 约束 + 验证 + 纠正。 Harness 是"Agent 边界内、模型之外"的运行与治理层:工具定义、调用适配器、沙箱权限属于 Harness;沙箱内的文件进程、外部数据库、用户属于 Environment。模型能力趋同后,竞争力在 Harness。

Coding Agent 场景的 Harness 四组件(把抽象机制落地成工程件):

组件回答的问题落地形态
验收基线什么算做完了测试套件、CI 管道、代码审查标准
执行边界能碰什么不能碰什么模块边界、依赖规则、权限控制
反馈信号自动化的对错判断Linter 输出、测试结果、类型检查错误
回退手段出了问题怎么恢复Git 版本控制、沙盒隔离、快照回滚

任务四象限(目标清晰度 × 验证自动化程度)——Harness 的目标是把任务推向"目标明确 + 可自动验证":

  • 目标明确 + 可自动验证 = 最佳区域(修复有测试用例的 bug)
  • 目标明确 + 需人工验证 = 吞吐量受限,天花板是人的审查速度
  • 目标模糊 + 可自动验证 = 高效地跑偏(如拿 linter 分数优化"代码质量")
  • 目标模糊 + 需人工验证 = 难以启动(如"让 UI 更好看")

代码编写天然处于象限核心:测试套件给验收标准,Linter/类型检查给即时验证,Git 给版本控制与回退。Coding Agent 成熟度最高不是因为代码模型最强,而是软件工程几十年积累的基础设施天然就是一套 Harness。

四条可迁移的设计原则:

  1. 约束优先于指导——能用代码强制的规则不要用文档建议。Linter 规则、类型约束、CI 检查是"做不了",系统提示词里"请遵循..."只是"建议别做"。
  2. 验证要自动化——人工审查是不可扩展的瓶颈,测试/检查/监控的投入回报率远高于加人力。
  3. 反馈越快越好、越结构化越好——错误信息越详细、越接近出错时刻,Agent 纠正效率越高。
  4. 回退要可靠——有安全网 Agent 才敢试错;Git 分支、沙盒、快照确保任何错误可逆。

约束管动作,不只是管结果。 验收基线管结果对不对,执行边界管过程:删库重建"修复"了故障但数据没了,删光重写让编译通过但实现没了。这类破坏性捷径 Agent 总能绕开指标找到(reward hacking 的日常形态),因此 rm -rf、删生产数据、覆盖未读文件要设专门检查与审批。

并行调用的故障边界控制:一个工具失败时,故障只在同一批并行调用内传播(级联中止依赖它的调用),不取消独立调用,不上升到父级操作、不让整个任务中止。每个工具声明是否支持并发(默认否,失败安全)。

业界经验:

  • 大规模代码迁移成功靠三件事:知识必须存在于代码库本身(Agent 看不到的等于不存在)、约束编码进 Linter/CI 而非文档、验证与纠正全链路自动化。
  • LangChain 只优化 Harness(提示词、工具中间件、自验证循环)就把 Terminal Bench 2.0 从 52.8% 提到 66.5%,并用 Agent 分析失败轨迹反哺 Harness,让 Harness 工程从经验驱动变数据驱动。
  • Anthropic 拆两个角色:初始化 Agent 分解任务清单,执行 Agent 逐步推进并留下清晰的交接产物,解决"一次想做太多"和"过早声称完成"。

实践模式

建一个 Coding Agent 的最小清单:

  1. 工具集:文件读写(read/write/edit)、目录浏览(glob/ls)、内容搜索(grep)、命令执行(bash)七件套;每个工具命名直观、参数带例子、边界有说明(防呆设计)。
  2. 工作流:先理解项目(读文档、建认知框架)→ 设计 → 实现 → 立即写测试并跑 → 失败则分析-定位-修复循环,直到测试全绿。把"测试通过"而非"代码写完"定义为完成标准——跳过测试直接报完成是 Coding Agent 最常见的偷懒方式。
  3. 验收基线:接入现成的测试套件、Linter、类型检查、CI;没有就先补最小可跑的。
  4. 执行边界:默认权限最小化(故障安全默认值,能力默认关闭、显式开放);危险命令走审批。
  5. 回退手段:每次任务前开 Git 分支或快照;沙盒内执行不可逆操作。
  6. 反馈回路:把 Linter/测试/编译错误结构化地喂回上下文(附行号、文件路径、错误类型)。
  7. 持续改进:收集失败轨迹,让 Agent 分析轨迹反哺 Harness 修改。

上下文与环境注入(Harness 的上下文层):大文件按行号范围读取并给每行加行号前缀;长命令输出只保留头部(错误上下文)与尾部(错误总结)并说明完整输出已落盘;每次推理前以状态栏形式动态注入当前工作目录、git 分支、最近提交、未暂存变更(动态追加,别硬编码进系统提示词以免破坏 KV Cache);维护持久化终端会话保留 cd/环境变量状态。

常见陷阱

  • 把指导写进提示词而不落成代码约束——模型会忽略"请遵循..."式建议
  • 没有验收基线就放权:Agent 高效地往错误方向跑,或走破坏性捷径(删库重建、删光重写)
  • 写完代码不跑测试就报告"任务完成"
  • 把整个代码库一股脑塞进上下文,既不经济也没必要
  • 一个工具失败就中止整批并行调用甚至整个任务
  • 只换模型不修 Harness:基准提升往往来自 Harness 而非模型
  • 环境信息硬编码在静态系统提示词里

配套代码

  • chapter5/coding-agent/ — 纯 Python 实现的生产级 Coding Agent:16 个工具、patch 应用、测试/lint 验收反馈与失败路径
  • chapter1/context/ — 上下文感知 Agent 与消融实验:量化 history/reasoning/工具调用/工具结果各自的作用
  • chapter1/web-search-agent/ — 基于 Kimi Formula API 的自主 ReAct 搜索 Agent,展示"模型即 Agent"的最小闭环
  • chapter1/search-codegen/ — Responses API 深度研究 Agent:托管 web_search + code_interpreter 的编排
  • chapter1/learning-from-experience/ — LLM 上下文学习 vs 传统 RL 对照,理解 Agent 经验从哪来
  • chapter1/image-gen-workflow/ — 工作流路线 vs 原生生成路线对照:何时该用固定 Harness、何时该交给模型自主

深度阅读

  • book/chapter5.md「Coding Agent」→「Harness 工程在 Coding Agent 中的实践」
  • book/chapter1.md「Harness 工程:模型之外的竞争力」

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

为 Agent 建立或改进评估体系时使用——设计评估指标(Pass@k/Pass^k/成本)、搭建可重复运行的评估环境、选择确定性验证器或 LLM-as-a-Judge 及各自适用边界、编写 Rubric、做失败归因与回归任务、评估驱动的模型选型、判断统计显著性、建设可观测性与内部评估基础设施(消融、AB 测试、特性开关、提示词回归)、从 Benchmark 报告走到系统改进。

日本語の概要は準備中です。原文の説明を表示しています。

bojieli/ai-agent-book5.4万2026年10月9日 更新

让 Agent 从运行经验中持续学习、构建自进化闭环时使用——涵盖从运行轨迹提取学习信号(三层轨迹验证)、四种进化方式(经验知识库、Prompt/Skill、程序/Harness、模型参数)的适用边界与选择依据、Prompt 自动优化、轨迹编译为程序、Agent 自我修改与安全门禁、睡眠学习与长期分层评估。触发词:持续进化、自进化、经验学习、轨迹验证器、自我修改、进化闭环。

日本語の概要は準備中です。原文の説明を表示しています。

bojieli/ai-agent-book5.4万2026年10月9日 更新

Agent 陷入无限循环、数不清工具调用次数、遗忘 TODO 或目标偏离、长任务中思考 token 持续膨胀时使用——Agent 状态栏机制、作为 user 消息注入末尾的 KV Cache 理由、每轮替换与持久追加两种实现及成本模型、五种状态栏技术(时间戳、工具计数器、TODO、详细错误、系统状态)与维护铁律。

日本語の概要は準備中です。原文の説明を表示しています。

bojieli/ai-agent-book5.4万2026年10月9日 更新

ai-style

無料

中文文案去「AI 味」检查清单,由用户纠正反馈持续提炼而来

日本語の概要は準備中です。原文の説明を表示しています。

bojieli/ai-agent-book5.4万2026年10月9日 更新

构建异步/事件驱动 Agent,或让 Agent 响应外部事件(新邮件、webhook 回调、IM 消息、定时器、系统告警)、 处理工具执行期间的用户打断与多任务并发时使用。覆盖事件循环与安全点、三类事件触发工具、用户沟通与多渠道召回、 虚拟身份与隔离执行环境、队列式/取消式/并行式三种事件处理策略及紧急度判定,以及模型原生异步与同步接口兼容两条路线。 触发词:异步 Agent、事件驱动、event-driven、webhook、定时器、心跳、任务句柄、打断、steering、并行工具执行。

日本語の概要は準備中です。原文の説明を表示しています。

bojieli/ai-agent-book5.4万2026年10月9日 更新

把生产 bad case / 失败轨迹转成训练数据时使用——从失败归因、轨迹前缀截取、DPO 偏好对构造、LoRA 训练到边界集与保留集双集验证的完整链路;也用于判断某类问题该走 SFT、DPO、RL 还是先修 Harness/工具/tokenizer,以及如何从运行轨迹中提取带证据的结构化学习信号。触发词:bad case、失败归因、DPO、偏好对、轨迹前缀、拒绝采样、过度矫正、边界集、保留集、过早结束、reward hacking、LoRA 微调、训练评估隔离。

日本語の概要は準備中です。原文の説明を表示しています。

bojieli/ai-agent-book5.4万2026年10月9日 更新

bojieli のスキルをすべて見る

このスキルの問題を報告する