<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Codex on 星澜</title>
    <link>/tags/codex/</link>
    <description>Recent content in Codex on 星澜</description>
    <generator>Hugo</generator>
    <language>zh-CN</language>
    <lastBuildDate>Wed, 01 Apr 2026 09:00:00 +0800</lastBuildDate>
    <atom:link href="/tags/codex/rss.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>06. AI Agent 与 Harness：Harness 是终局还是中间态？</title>
      <link>/post/2026/04/01/2026040106/</link>
      <pubDate>Wed, 01 Apr 2026 09:00:00 +0800</pubDate>
      <guid>/post/2026/04/01/2026040106/</guid>
      <description>&lt;h2 id=&#34;引言&#34;&gt;引言&lt;/h2&gt;&#xA;&lt;p&gt;Anthropic 和 Codex 的分歧，最近算是公开了。&lt;/p&gt;&#xA;&lt;p&gt;同样都在做 coding agent，但对 harness 的判断，两边已经走出了明显不同的方向。一边是 Anthropic 的工程博客，系统展示了他们怎么把 harness 做得更强、更厚。另一边是 Codex 开源负责人 Michael Bolin 在一场访谈里给出的信号——几乎是反着来的。一个在继续加厚，一个在说别做那么厚。&lt;/p&gt;&#xA;&lt;p&gt;这把一个本来没什么争议的问题顶到了台面上：harness 到底是终局，还是只是中间态？&lt;/p&gt;&#xA;&lt;h2 id=&#34;anthropic-在做什么&#34;&gt;Anthropic 在做什么&lt;/h2&gt;&#xA;&lt;p&gt;为了让 Claude Code 能稳定跑完长任务、构建完整应用，Anthropic 往 harness 里加了不少重的结构：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;planner&lt;/code&gt;：把一句话需求展开成完整规格&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;generator&lt;/code&gt;：负责真正去实现&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;evaluator&lt;/code&gt;：模拟真实用户去跑页面、接口、数据库状态&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;context reset&lt;/code&gt;：上下文快脏掉的时候直接清空，重新起一个新 agent，通过结构化交接文件把状态接过去&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;这套路线的核心判断是：模型本身还不够稳，所以得靠更强的外部编排来兜住长任务里的跑偏风险。复杂任务之所以能落地，靠的不是单次生成能力，而是整套控制结构够不够强。&lt;/p&gt;&#xA;&lt;p&gt;说白了就是：模型做事，harness 保证别失控。&lt;/p&gt;&#xA;&lt;h2 id=&#34;codex-在说什么&#34;&gt;Codex 在说什么&lt;/h2&gt;&#xA;&lt;p&gt;Michael Bolin 在访谈里给出的方向几乎是反过来的。他说他们理想中的 harness 应该尽可能小、尽可能轻。&lt;/p&gt;&#xA;&lt;p&gt;不是说 harness 不重要，而是：不要把太多决策硬编码进外部框架，不要疯狂堆专用工具，不要让模型每走一步都被人类写好的规则牵着走。&lt;/p&gt;&#xA;&lt;p&gt;Codex 的思路更像是给模型一个真实的运行环境——终端、沙盒、必要的上下文连接能力——但探索路径、调用方式、执行策略，尽量让模型自己决定。&lt;/p&gt;&#xA;&lt;p&gt;打个比方：脚手架可以有，但别把它做成一栋楼。因为模型早晚会涨到能自己处理更多东西。&lt;/p&gt;&#xA;&lt;h2 id=&#34;两边真正的分歧在哪&#34;&gt;两边真正的分歧在哪&lt;/h2&gt;&#xA;&lt;p&gt;表面看是 harness 该做厚还是做薄，但其实两边都没有否认 harness 的价值。他们真正分歧的，是对模型能力曲线的判断不一样。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Anthropic 在回答：模型还不够稳的时候，怎样让复杂任务真的跑起来&lt;/li&gt;&#xA;&lt;li&gt;Codex 在回答：模型越来越强之后，哪些外部结构还值得保留&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;这不是技术细节的分歧，而是两个不同时间假设下的工程选择。&lt;/p&gt;&#xA;&lt;p&gt;如果模型的大幅提升还很远，Anthropic 那条路就是现阶段最务实的选择。如果模型跃迁来得很快，Codex 那条路是在提醒你：别把过渡期的脚手架做成未来的长期负担。&lt;/p&gt;&#xA;&lt;h2 id=&#34;底线&#34;&gt;底线&lt;/h2&gt;&#xA;&lt;p&gt;Bolin 也没有说 harness 会彻底消失。他保留了一个底线：环境和安全不退场。&lt;/p&gt;</description>
    </item>
    <item>
      <title>04. AI Agent 与 Harness：Repo Instructions、Skills 与团队工作流</title>
      <link>/post/2026/03/29/2026032904/</link>
      <pubDate>Sun, 29 Mar 2026 13:00:00 +0800</pubDate>
      <guid>/post/2026/03/29/2026032904/</guid>
      <description>&lt;h2 id=&#34;引言&#34;&gt;引言&lt;/h2&gt;&#xA;&lt;p&gt;前面两篇篇把概念、演进背景和验证设计铺开了，从这篇开始落地。&lt;/p&gt;&#xA;&lt;p&gt;《&lt;a href=&#34;/post/2026/03/29/2026032901/&#34;&gt;01. AI Agent 与 Harness：概念梳理&lt;/a&gt;》里提到两类场景，这篇先讲第一类：对大多数团队来说，眼前更现实的任务并不是马上造一套业务 agent 系统，而是先把 &lt;code&gt;Codex&lt;/code&gt;、&lt;code&gt;Claude Code&lt;/code&gt; 这类现成 agent 用稳。&lt;/p&gt;&#xA;&lt;p&gt;这时候真正需要补的，就是团队自己的那层 harness——仓库里的这些东西：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;repo instructions&lt;/li&gt;&#xA;&lt;li&gt;skills&lt;/li&gt;&#xA;&lt;li&gt;MCP 使用约定&lt;/li&gt;&#xA;&lt;li&gt;验证命令&lt;/li&gt;&#xA;&lt;li&gt;交付格式&lt;/li&gt;&#xA;&lt;li&gt;review / CI workflow&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;放到一个典型的后端团队里，这件事会变得很具体：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Web 框架用 &lt;code&gt;gin&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;数据层用 &lt;code&gt;gorm&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;缓存用 &lt;code&gt;redis&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;已经有链路追踪&lt;/li&gt;&#xA;&lt;li&gt;也能通过 MCP 查日志、查 traces、查数据库&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;问题也会跟着收敛成一句话：&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;在这种团队里，怎么把默认工作方式写成 agent 也能稳定遵守的仓库规则？&lt;/code&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;团队上下文要写清楚&#34;&gt;团队上下文要写清楚&lt;/h2&gt;&#xA;&lt;p&gt;很多团队装了 MCP、写了几句提示词，就以为自己已经在做 harness。&lt;br&gt;&#xA;但如果 agent 连“这个仓库到底怎么工作”都不知道，它其实还是进不了团队的真实语境。&lt;/p&gt;&#xA;&lt;p&gt;所以第一步不是堆工具，而是把上下文写明白。&lt;/p&gt;&#xA;&lt;p&gt;像一个 &lt;code&gt;gin + gorm + redis&lt;/code&gt; 的 Go 团队，至少要把这些共识显式化：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;项目目录结构&lt;/li&gt;&#xA;&lt;li&gt;HTTP 层怎么组织&lt;/li&gt;&#xA;&lt;li&gt;service / repository 怎么分层&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;gorm&lt;/code&gt; 查询和事务怎么写&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;redis&lt;/code&gt; key 命名、TTL 和失效策略怎么定&lt;/li&gt;&#xA;&lt;li&gt;trace 和日志字段怎么打&lt;/li&gt;&#xA;&lt;li&gt;什么命令算基本验证&lt;/li&gt;&#xA;&lt;li&gt;什么结果才算 done&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;这些东西如果只存在于资深同事脑子里，agent 是用不稳的。&lt;/p&gt;</description>
    </item>
    <item>
      <title>03. AI Agent 与 Harness：V2 Harness 的验证设计</title>
      <link>/post/2026/03/29/2026032903/</link>
      <pubDate>Sun, 29 Mar 2026 12:00:00 +0800</pubDate>
      <guid>/post/2026/03/29/2026032903/</guid>
      <description>&lt;h2 id=&#34;引言&#34;&gt;引言&lt;/h2&gt;&#xA;&lt;p&gt;前面两篇把概念和演进背景铺开了，但真正落到工程里，最难的一层往往不是”怎么让 agent 开始做事”，而是”怎么确认它真的做成了”。&lt;/p&gt;&#xA;&lt;p&gt;很多团队已经有 prompt、skill、&lt;code&gt;AGENTS.md&lt;/code&gt;、MCP 和常用工具，agent 也确实能开始干活。&lt;br&gt;&#xA;问题通常出在交付阶段：测试会漏跑，状态会漏校验，模型会以为自己完成了，系统却没有真的过关。&lt;/p&gt;&#xA;&lt;p&gt;所以这一篇只想回答一个非常落地的问题：&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;验证阶段的 harness，到底应该怎么设计？&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;尤其是下面这个追问：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;coding agent 里，我们已经会在 &lt;code&gt;AGENTS.md&lt;/code&gt;、&lt;code&gt;CLAUDE.md&lt;/code&gt;、skill 里要求“写完要补测试并运行”，但模型还是会偶尔忘记&lt;/li&gt;&#xA;&lt;li&gt;那业务 agent 的验证到底该怎么做&lt;/li&gt;&#xA;&lt;li&gt;动作后验证到底是什么&lt;/li&gt;&#xA;&lt;li&gt;它在 &lt;code&gt;agent harness&lt;/code&gt; 里怎么落，以及在仓库规则、验证命令和 CI 流程里怎么体现&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;如果你还没看前面两篇，可以先从《&lt;a href=&#34;/post/2026/03/29/2026032901/&#34;&gt;01. AI Agent 与 Harness：概念梳理&lt;/a&gt;》和《&lt;a href=&#34;/post/2026/03/29/2026032902/&#34;&gt;02. AI Agent 与 Harness：从 Prompt 到 Harness&lt;/a&gt;》开始，再回来看这一篇会更顺。&lt;/p&gt;&#xA;&lt;p&gt;很多团队其实已经有了 &lt;code&gt;V1&lt;/code&gt; 级别的 agent setup，但还没有真正进入 &lt;code&gt;V2 agent harness&lt;/code&gt;。&lt;/p&gt;&#xA;&lt;p&gt;比如开发团队里，大家已经开始做这些事：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;指定统一使用 &lt;code&gt;Codex&lt;/code&gt; 或 &lt;code&gt;Claude Code&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;写 &lt;code&gt;AGENTS.md&lt;/code&gt; / &lt;code&gt;CLAUDE.md&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;把代码规范、框架规范、提交流程整理成 skill&lt;/li&gt;&#xA;&lt;li&gt;推荐安装 &lt;code&gt;dbhub MCP&lt;/code&gt;、&lt;code&gt;GitHub MCP&lt;/code&gt;、&lt;code&gt;fetch MCP&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;固定常用命令、目录结构和交付格式&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;这些都很有价值，而且已经远远不只是“写好提示词”了。&lt;br&gt;&#xA;但它们更多解决的是：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;怎么给 agent 足够的上下文&lt;/li&gt;&#xA;&lt;li&gt;怎么统一团队使用方式&lt;/li&gt;&#xA;&lt;li&gt;怎么让 agent 更容易做事&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;这更多还是：&lt;/p&gt;</description>
    </item>
    <item>
      <title>01. AI Agent 与 Harness：概念梳理</title>
      <link>/post/2026/03/29/2026032901/</link>
      <pubDate>Sun, 29 Mar 2026 09:00:00 +0800</pubDate>
      <guid>/post/2026/03/29/2026032901/</guid>
      <description>&lt;h2 id=&#34;引言&#34;&gt;引言&lt;/h2&gt;&#xA;&lt;p&gt;最近一直在反复想几个词：&lt;code&gt;agent&lt;/code&gt;、&lt;code&gt;harness&lt;/code&gt;、&lt;code&gt;skill&lt;/code&gt;、&lt;code&gt;tool&lt;/code&gt;、&lt;code&gt;MCP&lt;/code&gt;、&lt;code&gt;context&lt;/code&gt;、&lt;code&gt;memory&lt;/code&gt;。&lt;br&gt;&#xA;它们在视频、推文、产品宣传、框架文档里经常被混着说，结果就是每个词都像懂了，又都不算真懂。&lt;/p&gt;&#xA;&lt;p&gt;这篇文章想做的事很简单：把这些词放回工程语境里，先理顺它们之间的关系，再把这组文章的阅读顺序摆清楚。&lt;/p&gt;&#xA;&lt;h2 id=&#34;总结&#34;&gt;总结&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;Model / LLM&lt;/code&gt; 是底层推理与生成能力，不等于完整 agent&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;Agent&lt;/code&gt; 是带有目标、状态、工具使用和多步行动能力的 LLM 系统&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;Harness&lt;/code&gt; 不是某个单独组件，而是让 agent 稳定完成任务的整套工程化装置&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;Skill&lt;/code&gt;、&lt;code&gt;Tool&lt;/code&gt;、&lt;code&gt;MCP&lt;/code&gt; 往往都是 harness 的组成部分，但它们单独都不等于 harness&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;Prompt engineering&lt;/code&gt; 解决的是“怎么说”，&lt;code&gt;context engineering&lt;/code&gt; 解决的是“让模型看到什么”，&lt;code&gt;harness engineering&lt;/code&gt; 解决的是“怎么让整个系统稳地做完”&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;压成一句话就是：&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;model 负责想，agent 负责持续做，harness 负责让它做得稳、做得可控。&lt;/code&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;概念地图&#34;&gt;概念地图&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;Model&lt;/code&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;提供理解、推理、生成能力&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;Prompt&lt;/code&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;决定你怎么和模型说话&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;Context&lt;/code&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;决定当前这一轮让模型看见什么&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;Memory&lt;/code&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;决定哪些经验和状态可以跨轮次复用&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;Tool&lt;/code&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;决定 agent 能调用哪些外部能力&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;MCP&lt;/code&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;决定外部系统如何以统一方式接进来&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;Skill&lt;/code&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;决定一类任务该按什么方法做&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;Agent&lt;/code&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;决定系统是否能围绕目标持续行动&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;Harness&lt;/code&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;决定这个 agent 最终能不能稳定、可控、可交付&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;从工程视角，三者的包含关系更像：&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;harness 包含 agent，agent 使用 model&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;也就是：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;model&lt;/code&gt; 是能力底座，是 agent 的推理内核&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;agent&lt;/code&gt; 是基于 model 搭起来的行动闭环：&lt;code&gt;model + state + tool use + planning + action loop&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;harness&lt;/code&gt; 是把整个 agent 包裹起来的工程装置：上下文、工具、权限、验证、返工、观测——都在里面&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;modelpromptcontextmemory-到底是什么关系&#34;&gt;Model、Prompt、Context、Memory 到底是什么关系&lt;/h2&gt;&#xA;&lt;p&gt;&lt;code&gt;Model&lt;/code&gt; 比较像大脑。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
