<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Worker模型 | 锤子前端</title><description>Now vibe coding, so learning hammer FE ?</description><link>https://channel.meo-ai.com</link><item><title>《如何构建你自己的Agent_Harness：从单体框架到可组合Worker架构》</title><link>https://channel.meo-ai.com/posts/655</link><guid isPermaLink="true">https://channel.meo-ai.com/posts/655</guid><pubDate>Tue, 02 Jun 2026 01:36:06 GMT</pubDate><content:encoded>&lt;span class=&quot;post-title-source&quot;&gt;《如何构建你自己的Agent_Harness：从单体框架到可组合Worker架构》&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;标签：&lt;a href=&quot;/search/result?q=%23AI%E5%B7%A5%E7%A8%8B&quot; title=&quot;#AI工程&quot;&gt;#AI工程&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23Agent%E6%9E%B6%E6%9E%84&quot; title=&quot;#Agent架构&quot;&gt;#Agent架构&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1&quot; title=&quot;#系统设计&quot;&gt;#系统设计&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23%E5%BC%80%E6%BA%90%E6%A1%86%E6%9E%B6&quot; title=&quot;#开源框架&quot;&gt;#开源框架&lt;/a&gt; &lt;a href=&quot;/search/result?q=%23Worker%E6%A8%A1%E5%9E%8B&quot; title=&quot;#Worker模型&quot;&gt;#Worker模型&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;总结：&lt;br /&gt;iii创始人Mike_Piccolo提出了一种全新的Agent_Harness构建理念——将传统单体框架拆分为15个独立的可替换Worker，通过统一的&lt;code&gt;iii.trigger()&lt;/code&gt;原语和WebSocket协议进行通信。这种架构让团队不再需要Fork或绕过现有框架，而是通过&quot;安装/替换Worker&quot;来精确组装符合自身需求的Agent运行时，实现从极简到企业级的平滑伸缩。&lt;br /&gt;&lt;br /&gt;文章要点：&lt;br /&gt;1. 传统框架的痛点：LangChain、LangGraph等将循环、工具、记忆、编排等打包成单体，团队要么全盘接受，要么Fork或Hack，导致长期运行后不得不重写整个Harness&lt;br /&gt;2. iii的核心理念：将15个Harness职责（凭证解析、模型目录、预算追踪、审批门、 durable_turn_loop等）拆分为独立Worker，每个Worker通过&lt;code&gt;iii.trigger()&lt;/code&gt;触发，可独立版本化、用任意语言编写、随时替换&lt;br /&gt;3. 实际生产栈示例：包括turn_orchestrator（11状态FSM）、approval_gate（审批路由）、llm_budget（预算管控）、hook_fanout（钩子发布）、provider_anthropic/openai/kimi（模型提供商）等11个Worker，全部通过同一引擎总线通信&lt;br /&gt;4. 替换的便利性：想换动态模型目录？写一个注册&lt;code&gt;models::list&lt;/code&gt;的新Worker即可；想从Slack审批？写一个监听slash命令并调用&lt;code&gt;approval::resolve&lt;/code&gt;的Worker；整个堆栈其他部分完全无感知&lt;br /&gt;5. 架构优势：单体框架的&quot;薄vs厚&quot;之争在这里变成配置问题——极简Harness只需4个Worker，企业级Harness安装全部13个+自定义策略引擎，距离只是&lt;code&gt;config.yaml&lt;/code&gt;的条目增减，而非重写&lt;br /&gt;6. 可观测性统一：每个Worker自动注入OpenTelemetry追踪，通过&lt;code&gt;iii.session.id&lt;/code&gt;等标签实现跨Worker的完整调用链可视化&lt;br /&gt;&lt;br /&gt;URL：&lt;a href=&quot;https://iii.dev/blog/how-to-build-your-own-agent-harness/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;https://iii.dev/blog/how-to-build-your-own-agent-harness/&quot;&gt;https://iii.dev/blog/how-to-build-your-own-agent-harness/&lt;/a&gt;&lt;a class=&quot;tgme_widget_message_link_preview&quot; href=&quot;https://iii.dev/blog/how-to-build-your-own-agent-harness&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; title=&quot;Most agent teams adopt a harness as one decision. iii decomposes it into eleven independently-replaceable workers on one engine bus. Build your own stops meaning fork a framework and starts meaning swap a few workers.&quot;&gt;
  
  &lt;div class=&quot;link_preview_site_name accent_color&quot;&gt;iii.dev&lt;/div&gt;
  &lt;img class=&quot;link_preview_image&quot; alt=&quot;How to Build Your Own Agent Harness&quot; src=&quot;/static/https://cdn4.telesco.pe/file/mVeyUr3S2yB6PnOO3JSbVxMsAiuIoq3lnhsXB2R9SO55T8SZQ3g4V4FKhnFKmXnie0BgoK60oCoPKg4HLEF_EBVf6RYvDd-GSt85XCZJfkxq-wAfRkScgR0U-lFiBAq9WCC-seQlnoD-O6mudJecIOCLMGB6BTaaVDeNXTrjs3jkLqEy2nIpU5Fq8mk3oDdZUV-LUOaD4P_3To0w9VsKXB6tmCBB4Us2Mlb3VkkNOqLUzAEhuC3zW8AJ_2yteR95fZjhUbnBCP5WLIcD0ZSsKiJhEGN7IOWLX_I0o41tXCoDgLnI1ZNKOzGp9CjedLtv1BUJbvq6O_NbZ_L1gIsuFQ.jpg&quot; width=&quot;1200&quot; height=&quot;630&quot; loading=&quot;eager&quot; /&gt;
  &lt;div class=&quot;link_preview_title&quot;&gt;How to Build Your Own Agent Harness&lt;/div&gt;
  &lt;div class=&quot;link_preview_description&quot;&gt;Most agent teams adopt a harness as one decision. iii decomposes it into eleven independently-replaceable workers on one engine bus. Build your own stops meaning fork a framework and starts meaning swap a few workers.&lt;/div&gt;
&lt;/a&gt;</content:encoded></item></channel></rss>