Harness Agent 的组成要素:从七层到八层横切面的完整模型
从 Harness Engineering 的实践出发,讨论 Harness Agent 的完整组成要素。将初始的七层体系演进为八层加横切控制面的模型,逐一分析每层的职责、现有覆盖和缺失,重点讨论状态/记忆/产物/技能的区分、在线验证与离线评测的分离、以及 AHE 作为独立演进回路的定位。
共 36 篇文章
从 Harness Engineering 的实践出发,讨论 Harness Agent 的完整组成要素。将初始的七层体系演进为八层加横切控制面的模型,逐一分析每层的职责、现有覆盖和缺失,重点讨论状态/记忆/产物/技能的区分、在线验证与离线评测的分离、以及 AHE 作为独立演进回路的定位。
重新通读了 Anthropic 工程博客全部 25 篇文章,按八 个阶段完整梳理 Claude 从「Building Effective Agents」到「Managed Agents」的工程化演进路径,抽象出可复用的方法论,并结合我自己的 Harness Engineering 实践给出对照思考。
对比 Pi agent-core harness 与 Claude Code 如何保存会话记录、恢复运行时状态、构造模型上下文、压缩历史和处理工具输出,说明两套 Agent Runtime 在状态与资源管理上的实现差异。
Graph Engineering 将 Agent 的任务执行、验证、权限和长期评估显式组织为图。它解释了何时应从单个闭环升级到多节点编排,以及未来的重点为何会落在运行时治理上。
拆 pi-ai 多 provider 适配层:约 10 个线缆协议实现如何覆盖 37 家 provider,compat 标志矩阵如何抹平 OpenAI 兼容生态,重试判定为什么是带 issue 编号的正则库,上下文溢出的三种检测路径,以及模型 catalog 为什么走构建期生成与手工 override。
分析 pi-tui 如何将组件输出约束为字符串行数组,比较相邻两帧以重绘变化区间,并处理滚动区、终端尺寸、内联图片和 IME 光标等差分渲染的正确性条件。
拆 pi 正在进行的客户端/服务端拆分:为什么先重构出 repository 接缝再沿接缝拆进程,CBOR 协议为什么传输中立且快照权威,attach 与会话租约如何建模多前端共享,以及双栈并存的过渡工程。
拆 pi 的会话与上下文层:为什么会话建模成 entry 树而不是消息数组,模型切换和 compaction 如何成为持久化的一等条目,树结构如何支持分支导航与分支摘要,compaction 的安全切割点、文件账本与缓存隔离怎么做。
拆 pi 的 agent 主循环:为什么 StreamFn 契约禁止抛异常、失败如何编码成 stopReason=error 的 assistant 消息进入会话历史、截断的 tool call 为什么整批拒绝执行、并行工具调度如何保证 transcript 确定性,以及工具输出截断的工程细节。
通读 pi(Mario Zechner 的 coding agent harness)源码:四层包结构如何划分关注点与策略归属,为什么它不内置权限弹窗、MCP、子代理和 plan mode,以及 Extensions、Skills 与本地文档按需加载如何构成其扩展机制。
通读 Matt Pocock 的 agent-skills 仓库:它针对 AI 编程的四个失败模式给出对策,用 user-invoked 与 model-invoked 两层 skill 组织工程纪律,本文梳理它 的设计、收益、代价和适用场景。
通读 OpenSpec、Spec Kit、Superpowers、GSD、ECC、GStack 六个仓库的源码,按研发生命周期逐一对比它们的命令、产物、核心机制、优缺点与适用场景,给出基于事实的选型建议。
Claude Code 泄露源码的 20 篇深度拆解索引,覆盖 Agent 主循环、工具系统、上下文压缩、记忆、权限、沙箱、MCP、Skills、多 Agent 等完整技术面。
基于 Claude Code 的一次需求交付实践,梳理如何将既有 Agent 经验落实为 Harness Engineering:把上下文、工具边界、验证和反馈组织成可持续运行的工程系统。
重新审视 Ralph 和 Superpowers 的区别。两者不是敏捷与瀑布的对立,分歧在纠偏时机:Ralph 靠事后快改容错,Superpowers 靠执行前确认容错。
系统梳理 Ralph 这一自主 AI 编程循环技术:它是什么、解决什么约束、工作原理与设计原则、如何落地、适用与不适用的场景,以及三个实践案例分析,包括 aimo 项目从 Ralph 迁移到 superpowers 的完整记录。
Agent Skills 发布后用了一段时间,和我项目里 rules 按需加载的做法对照:渐进式披露的机制、与工具的分工、以及几个实际的坑。
应用层动不了模型权重,但可以动外部资产。记录我们在失败复盘、经验库、记忆整理和提示词自动优化上的做法,以及为什么这一切的前提是评估集。
对照 Claude Code、Gemini CLI 与 OpenHands 的上下文压缩策略,整理触发阈值、递归摘要、原文保留、摘要结构和存储回退的实现取舍。
Agent 评估不能只报一个通过率。本文从 Coding Agent 和巡检 Agent 出发,拆开评估维度、任务契约、终态与轨迹判据、LLM 裁判、稳定性协议、线上回归和工具选型。
以线上智能巡检系统为例,记录把 Agent 从"人发问题才回答"改造成事件驱动常驻服务的过程:事件队列统一告警、回调与定时任务,自动发现、定位与处理,高危动作转人工,下一步接入自动化测试主动验证。
从语音入口和 Computer Use 的实验出发,讨论一个更实际的问题:现有软件大多只为人设计。Agent 要跨系统完成任务,关键不是更会点屏幕,而是拥有以 CLI、文件和脚本打通系统的执行环境。
从 2024 年 Vue 转 React 与 Native 动态化转码实践出发,拆解专业技术债治理 Agent 的状态机、知识、工具、验证与人工升级机制,再推导通用 Coding Agent 所需的运行时和生产治理架构。
MCP 发布三个月后的一点实战记录:架构是怎么回事,接入内部系统后省掉了什么,以及工具描述膨胀和第三方 server 权限两个新问题。
以超过两万行的 Vue 页面迁移到 React 为例,讨论长任务如何通过行为规格、checkpoint、上下文压缩与执行校验持续推进。
基于 2024 年的 Agent、工具调用、迁移、记忆与检索实践,讨论 LangGraph 的真正边界:什么应交给可扩展的模型搜索,什么必须由确定性的编排框架承担。
迁移 Agent 每轮调用都把全部历史重发给 API,账单和延迟一起涨。从 KV cache 的原理讲清 prompt caching 为什么有效,以及消息顺序怎么决定缓存命中率。
上一篇给迁移 Agent 建了三层记忆,但经验条目越积越多后,纯向量检索捞不准了。这篇把 RAG 工程细节拉到迁移场景里:混合检索解决组件名精确匹配,重排解决沾边经验混进上下文,拒答阈值拦住不该套用的旧经验。
RAG 接入前应评测 embedding。本文说明如何从真实迁移任务整理查询集、定义召回判据、对比多个 embedding 模型,以及为什么平均相似度和公开榜单不足以替代本地评测。
Vue 转 React 的迁移 Agent 做到一半就会话中断,新 Agent 不知道做到哪了。本文整理记忆的三层结构——短期、项目、长期——以及写入门槛、读取难点和遗忘不是删除的四类情况。
Vue 转 React 不只是改写组件。面对业务页面、共享资产和隐式约定,迁移 Agent 需要先建立依赖与契约,再按风险切分上下文,把转换规则、验收证据和实际操作分开处理。
Agent 跑起来之后,大部分问题出在工具定义上。记录我在内部订单系统上踩过的坑:工具描述怎么写、参数 schema 怎么收口、错误返回怎么设计模型才能自我修正。
不用框架,用一百行 TypeScript 手写一个 ReAct 循环,记录从 chat 模式到 Agent 的第一次动手,以及跑通之后踩到的坑。