<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Sandbox on KnightLi的博客</title>
        <link>https://www.knightli.com/tags/sandbox/</link>
        <description>Recent content in Sandbox on KnightLi的博客</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <lastBuildDate>Fri, 10 Apr 2026 09:22:56 +0800</lastBuildDate><atom:link href="https://www.knightli.com/tags/sandbox/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Anthropic 的 Harness 思路：Agent 基础设施正在走向 Agent OS</title>
        <link>https://www.knightli.com/2026/04/10/anthropic-harness-agent-os/</link>
        <pubDate>Fri, 10 Apr 2026 09:22:56 +0800</pubDate>
        
        <guid>https://www.knightli.com/2026/04/10/anthropic-harness-agent-os/</guid>
        <description>&lt;p&gt;Anthropic 最近发布了一篇关于 Harness 的工程实践。表面看是在讲产品实现，实质上回答的是一个更长期的问题：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;当模型能力持续变化时，Agent 系统哪些层要稳定，哪些层应该允许快速替换？&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;核心判断&#34;&gt;核心判断
&lt;/h2&gt;&lt;p&gt;我对这篇文章的核心理解是：Agent 基础设施会越来越像一个轻量的 &lt;strong&gt;Agent OS&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;重点不在“把今天的最佳流程写死”，而在“定义长期稳定的系统抽象”。&lt;/p&gt;
&lt;h2 id=&#34;为什么这点重要&#34;&gt;为什么这点重要
&lt;/h2&gt;&lt;p&gt;很多 Agent 框架常见的问题是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;把模型的临时短板固化为永久架构&lt;/li&gt;
&lt;li&gt;把 prompt 工程误当成系统边界&lt;/li&gt;
&lt;li&gt;把一次有效的补丁写成长期依赖&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;模型会变强，今天合理的补丁，明天可能就是技术债。&lt;/p&gt;
&lt;h2 id=&#34;anthropic-的解法从具体-harness-到-meta-harness&#34;&gt;Anthropic 的解法：从具体 Harness 到 Meta-Harness
&lt;/h2&gt;&lt;p&gt;这套思路不是承诺某一种固定编排方式，而是抽象出三层稳定接口：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;session&lt;/code&gt;：可恢复的事件与状态历史&lt;/li&gt;
&lt;li&gt;&lt;code&gt;harness&lt;/code&gt;：推理与调度循环（brain）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sandbox&lt;/code&gt;：执行环境与工具能力（hands）&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;它们分离后，系统更容易替换、恢复和扩展。&lt;/p&gt;
&lt;h2 id=&#34;1-session-不是上下文窗口&#34;&gt;1) Session 不是上下文窗口
&lt;/h2&gt;&lt;p&gt;一个关键观点是：&lt;strong&gt;Session 不等于模型上下文。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Session 应该是可查询、可回放、可恢复的事件日志，而不是直接塞给模型的历史拼接。&lt;/p&gt;
&lt;p&gt;这样做的价值：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;trimming 不等于历史消失&lt;/li&gt;
&lt;li&gt;compaction 不等于事实丢失&lt;/li&gt;
&lt;li&gt;崩溃恢复可以回到事件层，而不是依赖摘要记忆&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;2-harness-是可替换的编排层&#34;&gt;2) Harness 是可替换的编排层
&lt;/h2&gt;&lt;p&gt;Harness 应专注于调度，而不是持有业务状态。&lt;/p&gt;
&lt;p&gt;理想接口更接近：&lt;/p&gt;
&lt;p&gt;&lt;code&gt;execute(name, input) -&amp;gt; string&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;这意味着模型只关心“我能调用什么能力”，而不强绑定具体设备、容器或操作系统。&lt;/p&gt;
&lt;h2 id=&#34;3-sandbox-是手不是脑&#34;&gt;3) Sandbox 是“手”，不是“脑”
&lt;/h2&gt;&lt;p&gt;当 brain 和 hands 解耦：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;工具环境可以独立演进&lt;/li&gt;
&lt;li&gt;不同基础设施可以并行接入&lt;/li&gt;
&lt;li&gt;不必每个会话都预热完整执行环境&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这直接带来更好的启动与扩展表现。&lt;/p&gt;
&lt;h2 id=&#34;性能与安全启发&#34;&gt;性能与安全启发
&lt;/h2&gt;&lt;p&gt;这种拆分通常会同时改善性能和安全。&lt;/p&gt;
&lt;p&gt;性能上：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;可以先启动 brain，再按需拉起 hands&lt;/li&gt;
&lt;li&gt;降低首 token 延迟（TTFT）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;安全上：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;不把高敏凭证直接暴露给模型&lt;/li&gt;
&lt;li&gt;用受控 proxy / vault 做间接凭证访问&lt;/li&gt;
&lt;li&gt;安全边界建立在系统约束上，而不是“模型应该做不到”&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;相关链接&#34;&gt;相关链接
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://claude.com/blog/claude-managed-agents&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Usage patterns and customer examples&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.anthropic.com/engineering/managed-agents&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;The design of Claude Managed Agents&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://platform.claude.com/docs/en/managed-agents/quickstart&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Onboarding, quickstart, overview of the CLI and SKDs &lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        
    </channel>
</rss>
