<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>开发复盘 on CAO ZUOHUA</title><link>https://caozuohua.github.io/tags/%E5%BC%80%E5%8F%91%E5%A4%8D%E7%9B%98/</link><description>Recent content in 开发复盘 on CAO ZUOHUA</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Fri, 18 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://caozuohua.github.io/tags/%E5%BC%80%E5%8F%91%E5%A4%8D%E7%9B%98/index.xml" rel="self" type="application/rss+xml"/><item><title>Agent Framework Lab 开发实录：从比较 demo 到企业就绪 Alpha</title><link>https://caozuohua.github.io/posts/2026-09-18-agent-framework-evaluation-5-development-journal/</link><pubDate>Fri, 18 Sep 2026 00:00:00 +0000</pubDate><guid>https://caozuohua.github.io/posts/2026-09-18-agent-framework-evaluation-5-development-journal/</guid><description>&lt;p&gt;这是 &lt;a href="https://caozuohua.github.io/posts/2026-09-18-agent-framework-evaluation-series/"&gt;Agent 框架评测实验室系列&lt;/a&gt;第五篇，也是阶段开发记录。&lt;/p&gt;&#10;&lt;h2 id="起点先让不同框架完成同一任务"&gt;起点：先让不同框架完成同一任务&lt;/h2&gt;&#10;&lt;p&gt;Lab 最早解决的是兼容性：统一 stdin/stdout 的请求与结果契约，让不同 Python/Node 框架可以在各自隔离环境运行。这个阶段最直观的产物是 matrix 和报告，但也很快暴露问题：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;每个 adapter 对 usage 的理解不同；&lt;/li&gt;&#10;&lt;li&gt;有的框架隐藏模型重试；&lt;/li&gt;&#10;&lt;li&gt;MCP SDK 与 CLI 协议不同；&lt;/li&gt;&#10;&lt;li&gt;同名模型可能被 gateway 路由到不同后端；&lt;/li&gt;&#10;&lt;li&gt;prompt、工具包装稍有不同，分数就不可比。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;因此第一条经验是：&lt;strong&gt;先统一证据格式，再谈统一排行榜。&lt;/strong&gt;&lt;/p&gt;&#10;&lt;h2 id="v20v21运行时从附属代码变成核心边界"&gt;V2.0—V2.1：运行时从附属代码变成核心边界&lt;/h2&gt;&#10;&lt;p&gt;普通 runner 只关心子进程退出码。企业 Agent 还需要 job、attempt、lease、事件 revision、预算 reservation、checkpoint 和 immutable artifact。&lt;/p&gt;&#10;&lt;p&gt;runtime-v1 采用 SQLite WAL 和 append-only event/reducer：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;command -&amp;gt; validate current snapshot -&amp;gt; append events&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -&amp;gt; reduce new snapshot -&amp;gt; transactionally persist both&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这个阶段没有急着做远程服务，而是坚持单机、一次命令、可验证状态。事实证明这是正确取舍：并发和网络还没加入时，就已经发现事件序列、预算结算和终态工件之间有大量边界条件。&lt;/p&gt;&#10;&lt;h2 id="v22恢复不是再跑一次"&gt;V2.2：恢复不是“再跑一次”&lt;/h2&gt;&#10;&lt;p&gt;接下来加入 host crash、SQLite reopen、orphan attempt 回收和 checkpoint resume。LangGraph composed 与 OpenAI Agents native 都通过了“researcher 已完成后恢复，只继续 analyst/reviewer”的测试。&lt;/p&gt;</description></item></channel></rss>