DeepSeek Harness 与 AgentScope Java 深度对比:两条不同的 Agent 工程化路线

<p>最近深度读了两个很有代表性的 Agent 项目:</p> <ul> <li><a href="https://github.com/deepseek-ai/deepseek-harness">DeepSeek Harness</a></li> <li><a href="https://github.com/agentscope-ai/agentscope-java">AgentScope Java</a></li> </ul> <p>它们都在解决同一个问题:<strong>怎样把“大模型 + 工具调用”变成一个能够长期运行、可以恢复、可扩展、可治理的 Agent 系统。</strong></p> <p>但读完代码后,我发现它们其实不在同一条赛道上。</p> <p>DeepSeek Harness 更像一套为 Coding Agent 产品准备的<strong>可组合运行时内核</strong>;AgentScope Java 更像一套面向 Java 企业应用的<strong>Agent 框架、Harness 与服务平台</strong>。</p> <p>如果只看 README,容易得出“两个项目功能差不多,只是一个用 TypeScript、一个用 Java”的结论。真正进入源码后,会看到两套完全不同的架构取向:</p> <ul> <li>DeepSeek Harness 把重点放在运行时语义:插件生命周期、事件溯源、精确回放、工具执行流水线、能力替换</li> <li>AgentScope Java 把重点放在生产运行:多租户状态、分布式恢复、长期记忆、沙箱、渠道接入和统一控制面</li> </ul> <p>先说我的结论:</p> <blockquote><p><strong>如果你想造一个 Coding Agent 产品,或者深度定制 Agent Runtime,DeepSeek Harness 更值得研究;如果你想把 Agent 纳入现有 Java 企业系统,并进一步做成可运营的服务,AgentScope Java 路线更直接。</strong></p></blockquote> <!-- more --> <h2>一、先别急着比功能:它们不是同一层级的产品</h2> <p>在讨论这两个项目之前,先要回答一个基础问题:什么是 Harness?</p> <p>一个最简单的 Agent 循环通常只有几步:</p> <ol> <li>把历史消息和工具描述发给模型</li> <li>模型决定回复,或者调用工具</li> <li>执行工具,把结果放回上下文</li> <li>继续循环,直到输出最终答案</li> </ol> <p>这只是 ReAct Loop。真正进入生产后,系统还要处理很多模型并不关心、但工程上无法回避的问题:</p> <ul> <li>任务跑到一半进程崩了,怎么恢复?</li> <li>用户中途追加指令,应该插入哪一步?</li> <li>多个工具能否并行,写操作如何避免竞争?</li> <li>哪些命令可以直接运行,哪些必须审批?</li> <li>上下文太长时,如何压缩但不破坏工具调用配对?</li> <li>子 Agent 的状态、权限和工作区如何隔离?</li> <li>同一个 Agent 如何同时服务多个用户和会话?</li> <li>如何观察、审计和干预一个正在运行的任务?</li> </ul> <p>Harness 就是包围在模型循环之外的这一整层工程系统。</p> <p>从这个定义看,两边虽然都叫 Harness,但边界不同。</p> <p>DeepSeek Harness 的产品边界从底层事件、工具和文件系统能力,一直延伸到 Web UI、CLI、SDK 和插件开发体系。运行中的 <code>dsh</code> 本身就是一棵插件树。</p> <p>AgentScope Java 则更明确地分成三层:</p> <ul> <li><code>agentscope-core</code> 提供模型、消息、工具、事件和 <code>ReActAgent</code></li> <li><code>agentscope-harness</code> 在 Core 之上叠加工作区、记忆、压缩、技能、子 Agent、沙箱等能力</li> <li><code>agentscope-service</code> 再向上提供 Agent 注册、Session 管理、团队编排、Dashboard 和分布式控制面</li> </ul> <p>所以,更准确的对比不是“框架 A 对框架 B”,而是:</p> <blockquote><p><strong>一套高度可组合的 Agent 产品运行时,对比一套 Java Agent 框架及其生产服务平台。</strong></p></blockquote> <h2>二、DeepSeek Harness:把整个 Agent Runtime 做成插件树</h2> <p>DeepSeek Harness 最鲜明的设计不是工具多,也不是 UI 完整,而是它真的贯彻了“一切皆插件”。</p> <p>底层的 <a href="https://github.com/cordiverse/cordis">Cordis</a> 提供共享 Context、服务注册、类型化事件和可撤销副作用。模型适配器、工具注册表、会话日志、Agent Loop,甚至持久化与沙箱策略,都是挂载在同一棵树上的插件。</p> <p>这意味着系统里没有一个必须不断打补丁的“神圣内核”。一个插件注册服务、工具或监听器时,这些注册都会绑定到插件生命周期;插件卸载时,副作用也会被撤销。依赖服务消失,消费它的插件会一起卸载;服务恢复后,再重新加载。</p> <p>这套设计带来三个很强的能力。</p> <h3>1)运行时能力可以真正替换</h3> <p>传统框架常见的“可插拔”,其实只是允许你传一个接口实现。DeepSeek Harness 的粒度更细:</p> <ul> <li>模型是 provider</li> <li>文件系统是 provider</li> <li>Shell、PTY、LSP 是 provider</li> <li>Session Persistence 是 provider</li> <li>Subagent 也是 provider</li> <li>工具、提示词片段、审批和遥测都通过事件与服务组合</li> </ul> <p>例如把本地文件系统和进程执行替换成 E2B provider,Shell、文件工具等消费者可以继续复用同一套上层语义。它强调的是“能力接缝”(capability seam),而不是在每个工具内部判断当前跑在本机、容器还是远端。</p> <p>这很适合构建 Coding Agent:底层执行世界会变化,但上层 Agent Loop 不应该跟着分叉。</p> <h3>2)插件卸载和 HMR 是架构能力,不是开发便利</h3> <p>因为注册本身就是可撤销副作用,DeepSeek Harness 可以在运行时卸载、替换、重新挂载插件。配置文件变化时,Loader 会比较配置项,只重载发生变化的部分;无效的新配置不会摧毁当前可用的插件树。</p> <p>这不只是“保存文件后少重启一次”。它说明这个系统从一开始就在处理一个困难问题:<strong>动态变化的能力集合,如何不留下失效引用和脏状态。</strong></p> <p>对于需要安装第三方插件、切换 Agent Profile、运行不同产品形态的系统,这个底座很有价值。</p> <h3>3)扩展行为主要通过事件进入,而不是修改主循环</h3> <p>DeepSeek Harness 把事件分成三个域:</p> <ul> <li>Session Event:需要持久化、重启后仍然存在的事实</li> <li><code>agent/*</code> Event:正在运行的 Agent 状态与控制</li> <li>Capability Event:文件系统、工具、遥测等能力自己的策略扩展点</li> </ul> <p>例如工具执行不是简单调用一个函数,而是经过:</p> <p><code>pre-execute → 单调守卫 → execute → post-execute → finalize → result</code></p> <p>审批、沙箱、超时、重试、指标、结果改写都可以挂在流水线上,不必让具体工具直接依赖这些策略。</p> <p>这类设计的好处是扩展面非常清楚;代价则是概念多、学习曲线陡。你必须理解 Context、Service、Effect、Scope、Waterfall Event、Profile、Bundle 和 Patch,才能真正驾驭它。</p> <h2>三、DeepSeek Harness 最值得看的设计:事件日志才是真相</h2> <p>我认为 DeepSeek Harness 最有含金量的部分,不是插件,而是它对 Session 的定义。</p> <p>它把会话建模为一份<strong>只追加的事件日志</strong>。<code>turn/start</code>、<code>step/start</code>、用户消息、模型流式 chunk、完整 assistant message、工具调用、工具结果和结束边界都会进入日志。</p> <p>模型看到的上下文不是另一份独立状态,而是通过 <code>deriveMessages()</code> 从日志投影出来。</p> <p>它甚至把原则写得非常直接:</p> <blockquote><p>模型可见即已记录。</p></blockquote> <p>这句话很重要。很多 Agent 系统同时维护三份相似但不完全一致的状态:</p> <ul> <li>发给模型的上下文</li> <li>展示给用户的聊天记录</li> <li>用于恢复任务的持久化快照</li> </ul> <p>一旦三者漂移,就会出现最难查的 Agent Bug:界面上看到了某条消息,但模型没看到;模型根据某段隐藏上下文做了决定,但重启恢复后这段上下文丢了。</p> <p>DeepSeek Harness 试图从结构上消灭这种分叉。原始流式 chunk 保证 UI 可以精确回放;完整消息用于派生模型历史;压缩通过 surface replacement 表达;fork、resume、transcript 和 telemetry 都从同一事件流产生。</p> <p>Crash Recovery 也遵循这个思路:如果载入时发现一个 <code>turn/start</code> 没有对应的 <code>turn/end</code>,系统不会粗暴截断已经持久化的长任务,而是补上一个 <code>interrupted</code> 结束事件,保留中断前已经发生的事实。</p> <p>这种做法更像事件溯源系统,而不是传统聊天记录。</p> <p>它的收益是:</p> <ul> <li>可重放</li> <li>可审计</li> <li>可恢复</li> <li>可 fork</li> <li>UI 与模型上下文更容易保持一致</li> </ul> <p>但它也把兼容性压力集中到了事件协议上。当前 Session 格式版本仍是 <code>0</code>,官方明确表示没有兼容承诺;一旦事件含义变化,迁移就会成为非常严肃的问题。</p> <h2>四、工具执行:DeepSeek Harness 更像调度器,AgentScope 更像企业框架</h2> <p>工具调用是比较两个项目时最能体现设计差异的地方。</p> <h3>DeepSeek Harness:每次调用动态分类</h3> <p>DeepSeek Harness 会为每一个待执行调用查询 <code>executionMode</code>:</p> <ul> <li><code>parallel</code> 可以与相邻安全调用重叠</li> <li><code>exclusive</code> 必须独占执行,并形成顺序屏障</li> </ul> <p>Agent Loop 使用滚动并发池执行安全调用,同时保证结果仍按模型调用顺序写回。更关键的是,分类发生在调用级,而不只是工具级。理论上,同一个工具可以根据本次参数判断它是只读操作,还是需要独占的写操作。</p> <p>它的工具流水线还把权限、单调守卫、沙箱、超时、重试、结果规范化和持久化观察分开。任何一层失败,都要被转成唯一、可记录的最终结果。</p> <h3>AgentScope Java:默认并发,加安全标记</h3> <p>AgentScope Java 2.0 的 Toolkit 默认开启并行执行。工具可以通过 <code>concurrencySafe</code> 标记自己是否能安全并发;连续的安全工具会并发运行,不安全工具形成串行槽位,输出顺序仍然保留。</p> <p>这已经比“整个批次要么全并行、要么全串行”细很多,也很符合 Java 工程团队的使用习惯。但它当前主要还是工具定义级标记,表达力不如 DeepSeek Harness 的调用级动态分类。</p> <p>因此,如果你在做文件编辑、终端、数据库变更这类副作用复杂的 Coding Agent,DeepSeek Harness 的执行语义更精细;如果大多数工具本身就是业务 API,AgentScope 的模型更直接,也更容易让普通团队理解。</p> <h2>五、Code Mode:不是让 Agent 写业务代码,而是让它编排工具</h2> <p>DeepSeek Harness 还有一个很有辨识度的能力:Code Mode。</p> <p>普通 Function Calling 会把每个工具的完整 JSON Schema 暴露给模型,模型每调用一次工具,结果又会进入对话上下文。工具一多,Schema 和中间结果会持续占用 Token。</p> <p>Code Mode 则只向模型暴露一个 <code>run_code</code> 入口和一份自动生成的 TypeScript 或 Python SDK。模型在临时程序中调用:</p> <figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span> <span class='line-number'>2</span> <span class='line-number'>3</span> <span class='line-number'>4</span> <span class='line-number'>5</span> </pre></td><td class='code'><pre><code class=''><span class='line'>const files = await tools.glob({ pattern: "**/*.java" }) </span><span class='line'>const results = await Promise.all( </span><span class='line'> files.slice(0, 10).map(file =&gt; tools.read({ path: file })) </span><span class='line'>) </span><span class='line'>return results.map(item =&gt; extractWhatMatters(item))</span></code></pre></td></tr></table></div></figure> <p>中间工具结果留在本次执行局部,只有 <code>return</code> 或 <code>console.log</code> 的内容回到模型上下文。</p> <p>这带来的价值不是“模型会写代码”——Coding Agent 本来就会——而是:</p> <ul> <li>用程序表达循环、分支和聚合</li> <li>独立只读调用可以显式并发</li> <li>大量中间结果不必全部进入对话</li> <li>工具返回值保留结构化类型,而不是来回解析文本</li> </ul> <p>它本质上是把一部分 Agent 编排从自然语言推理迁移到一次性的确定性程序中。</p> <p>不过 Code Mode 也不是免费午餐。当前每次运行都是全新状态,不是持久 REPL;中间值不能从会话日志重建,而且执行局部没有统一字节上限。如果程序拿回超大对象,仍然可能造成 worker 内存压力。</p> <h2>六、AgentScope Java:Core、Harness、Service 三层一起解决生产问题</h2> <p>如果说 DeepSeek Harness 的关键词是“可组合”,AgentScope Java 的关键词就是“可运营”。</p> <p>它的双层 Agent 结构很清楚。</p> <p><code>ReActAgent</code> 负责核心推理循环,把模型、Toolkit、权限、Middleware、事件和 <code>AgentState</code> 组合起来;<code>HarnessAgent</code> 是外层包装,通过固定顺序的 Middleware 和工具,增加工作区、长期记忆、上下文压缩、技能、子 Agent、沙箱和 Plan Mode。</p> <p>这种设计没有追求“一切皆插件”的纯粹性,而是刻意保留一个容易使用的 Builder:</p> <figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span> <span class='line-number'>2</span> <span class='line-number'>3</span> <span class='line-number'>4</span> <span class='line-number'>5</span> </pre></td><td class='code'><pre><code class=''><span class='line'>HarnessAgent agent = HarnessAgent.builder() </span><span class='line'> .name("assistant") </span><span class='line'> .model("dashscope:qwen-plus") </span><span class='line'> .workspace(Paths.get(".agentscope/workspace")) </span><span class='line'> .build();</span></code></pre></td></tr></table></div></figure> <p>对于 Java 团队,这种体验很熟悉:核心抽象稳定,基础设施通过 Builder 和 Spring Boot Starter 接入,扩展行为走 Middleware。</p> <p>更重要的是,AgentScope Java 没有停在 SDK 层。仓库中的 <code>agentscope-service</code> 已经把 Agent 运行进一步拆成 Gateway、Control Plane、Dataplane 和 Scheduler,并提供 Dashboard、Managed Agents 与 Agent Teams。</p> <p>因此它真正想解决的不是“如何写出一个聪明的 Agent”,而是:</p> <blockquote><p><strong>一家公司里有很多 Agent、很多用户和很多运行副本时,怎样统一注册、恢复、观察、调度和治理。</strong></p></blockquote> <h2>七、状态模型:一个强调重放,一个强调恢复与隔离</h2> <p>两边都重视持久化,但设计中心不同。</p> <h3>DeepSeek Harness:从事件重建会话</h3> <p>DeepSeek Harness 以 append-only Session Event Log 为 Source of Truth。状态恢复、模型历史和 UI 展示尽量从事件投影得到。</p> <p>这是偏运行时语义的选择:重点是“过去到底发生了什么”。</p> <h3>AgentScope Java:从 RuntimeContext 找到 AgentState</h3> <p>AgentScope Java 把状态分成几层:</p> <ul> <li><code>RuntimeContext</code>:当前调用的 <code>userId</code>、<code>sessionId</code> 和临时属性,不持久化</li> <li><code>AgentState</code>:对话上下文、权限、Plan Mode 和工具状态,通过 <code>AgentStateStore</code> 跨调用恢复</li> <li>Session JSONL:长期保留的对话流水账</li> <li>Workspace Memory:每日只追加记忆和聚合后的 <code>MEMORY.md</code></li> <li>Sandbox Snapshot:容器文件、安装依赖和运行环境的快照</li> </ul> <p>同一个 Agent 实例可以服务多个用户和会话。系统通过 <code>(userId, sessionId)</code> 定位状态;同一 Session 的调用串行化,不同 Session 可以并行。再配合 Redis、MySQL、PostgreSQL、OSS 或 COS 等后端,实例本身可以保持无状态并水平扩容。</p> <p>这是偏服务架构的选择:重点是“下一次请求由任何副本接手时,怎样继续运行”。</p> <p>两种模型没有绝对高下。</p> <ul> <li>要做可回放、可 fork、过程保真的 Agent 产品,事件溯源更有吸引力</li> <li>要融入现有用户、租户、数据库和服务治理体系,状态存储模型更容易落地</li> </ul> <h2>八、沙箱:同样是隔离,关注点完全不同</h2> <p>DeepSeek Harness 的本地 Sandbox 更贴近开发者桌面和 Coding Agent。Linux 可使用 bubblewrap / Landlock,macOS 使用 Seatbelt,Windows 有 ACL restricted-token runner。它强调同一宿主执行世界里的文件写入边界,并且在无法落实策略时 fail closed,而不是悄悄降级为无限制执行。</p> <p>远端执行则不被塞进同一个进程沙箱接口,而是通过替换文件系统与进程 provider,把整个执行世界一起移动。目前仓库也已经提供 E2B 的文件系统和进程实现。</p> <p>AgentScope Java 的沙箱更偏服务部署。它把 Docker、Kubernetes、Daytona、E2B 和 AgentRun 视为同类后端,并进一步考虑:</p> <ul> <li>按 User、Session、Agent 或 Global 隔离</li> <li>容器消失后从快照恢复</li> <li>快照放在本机、Redis、JDBC 或对象存储</li> <li>多副本同时操作同一沙箱时使用分布式锁</li> <li>对话状态和可执行环境一起跨请求续跑</li> </ul> <p>所以,DeepSeek Harness 更关心“这条命令在当前执行世界里是否越界”;AgentScope Java 更关心“这个租户的执行环境能否隔离、持久并被另一台机器接手”。</p> <h2>九、多 Agent:一个先抽象 provider,一个先建设运营体系</h2> <p>DeepSeek Harness 把 Subagent 做成可替换 capability seam。不同 provider 可以在同一 Context 共存:进程内 spawn、基于历史 fork,以及对接 Codex、Claude Code、ACP 或 DSH SDK 的外部执行器。</p> <p>它还区分一次性子 Agent 和可继续对话的子 Agent。后者拥有持久 Session、可冷恢复的 Activation、唯一 inbox 和明确的父子授权关系。实验性的 Agent Teams 则在其上增加 roster、task board 和 mailbox。</p> <p>AgentScope Java 的多 Agent 更贴近业务使用:</p> <ul> <li><code>agent_spawn</code> 创建同步或后台子任务</li> <li><code>agent_send</code> 向已创建的子 Agent 继续发消息</li> <li>超时的同步任务可以自动转为后台任务</li> <li>后台结果通过消息总线反向通知父 Agent</li> <li>Agent Teams 提供成员、任务认领、任务板和邮箱</li> <li>Service 控制面负责跨实例注册、路由与观察</li> </ul> <p>简单说,DeepSeek Harness 优先解决的是“如何把不同 Subagent 实现放到同一个抽象后面”;AgentScope Java 优先解决的是“如何让一组 Agent 在企业平台里持续协作”。</p> <h2>十、一张表看懂核心差异</h2> <table> <thead> <tr> <th> 维度 </th> <th> DeepSeek Harness </th> <th> AgentScope Java </th> </tr> </thead> <tbody> <tr> <td> 核心定位 </td> <td> 可组合 Agent Runtime 与产品底座 </td> <td> Java Agent 框架、Harness 与服务平台 </td> </tr> <tr> <td> 技术栈 </td> <td> TypeScript / Node.js,含 Web、Native 与 Python SDK </td> <td> Java 17 / Reactor / Maven / Spring Boot,Service 含 Go 与前端 </td> </tr> <tr> <td> 核心抽象 </td> <td> Cordis Context、Plugin、Service、Event、Effect、Scope </td> <td> Agent、ReActAgent、HarnessAgent、Middleware、RuntimeContext、AgentState </td> </tr> <tr> <td> 执行循环 </td> <td> Turn / Step 边界明确,行为大量通过事件拦截 </td> <td> ReAct 核心循环稳定,Harness 通过 Middleware 叠加能力 </td> </tr> <tr> <td> 状态真相 </td> <td> Append-only Session Event Log </td> <td> AgentStateStore + Session Log + Workspace / Memory </td> </tr> <tr> <td> 回放能力 </td> <td> 强,原始 chunk、调用与结果都进入事件日志 </td> <td> 更偏事件流展示和状态恢复,不以统一事件溯源为核心 </td> </tr> <tr> <td> 工具并发 </td> <td> 调用级 <code>parallel</code> / <code>exclusive</code> 分类与屏障 </td> <td> Toolkit 批量并发,工具级 <code>concurrencySafe</code> 标记 </td> </tr> <tr> <td> 工具扩展 </td> <td> 多阶段 waterfall、守卫、审批、沙箱、结果规范化 </td> <td> Toolkit、权限系统、Middleware、执行配置 </td> </tr> <tr> <td> Code Mode </td> <td> 原生支持 TypeScript / Python 工具编排 </td> <td> 不是当前核心设计 </td> </tr> <tr> <td> 沙箱 </td> <td> 本机强制隔离 + E2B provider,可替换整个执行世界 </td> <td> Docker / K8s / Daytona / E2B / AgentRun,快照与分布式锁完整 </td> </tr> <tr> <td> 多 Agent </td> <td> 多 provider、一次性与可继续子 Agent、实验性 Teams </td> <td> 同步/后台子 Agent、持久任务、Teams 与控制面 </td> </tr> <tr> <td> 企业集成 </td> <td> 需要自行组合和建设 </td> <td> Redis、MySQL、PostgreSQL、OSS、COS、Nacos、Spring Boot、Channel </td> </tr> <tr> <td> 产品形态 </td> <td> CLI、Web、Headless、SDK、插件 Profile </td> <td> Core、Harness、Extensions、Service、Dashboard </td> </tr> <tr> <td> 当前成熟度 </td> <td> <code>0.1.0-rc.8</code>,Developer Preview </td> <td> 2.0 已 GA,主干继续快速迭代 </td> </tr> </tbody> </table> <h2>十一、两边各自最需要警惕什么</h2> <h3>DeepSeek Harness:架构漂亮,不等于现在就适合所有生产系统</h3> <p>它的风险主要有三个。</p> <p>第一,项目仍处于 Developer Preview,当前版本是 <code>0.1.0-rc.8</code>,官方明确提示后续会有破坏性变化。Session 格式也是预发布的 v0,没有内置迁移链。</p> <p>第二,Cordis 的抽象能力很强,但认知成本也高。插件树、Service 注入、Scope 隔离、Effect 回收、Waterfall Event、Bundle 和 Patch 共同工作时,调试难度不低。</p> <p>第三,它更像一个完整产品底座,而不是一个轻量 SDK。如果团队只是想在已有业务里增加几个 Agent 能力,引入整套运行时未必划算。</p> <h3>AgentScope Java:生产面完整,但核心类正在承受复杂度</h3> <p>AgentScope Java 的风险也很明显。</p> <p>首先,<code>ReActAgent</code> 和 <code>HarnessAgent</code> 都已经是体量很大的中心类。大量能力虽然通过 Middleware、Toolkit 和 Builder 暴露,但编排与兼容逻辑仍集中在核心实现里。未来功能继续增加时,维护成本值得关注。</p> <p>其次,它的“可扩展”更接近企业框架的扩展方式,而不是 DeepSeek Harness 那种运行时级可替换。你可以加 Middleware、工具和 Store,但很难像 Cordis 一样把整个 Agent Loop 当成普通插件换掉。</p> <p>最后,AgentScope Service 已经覆盖控制面、托管运行时和 Teams,能力很诱人,但这也意味着更重的部署和运维成本。只有当组织真的存在多 Agent、多租户、多副本和统一治理需求时,这一层平台才有足够回报。</p> <h2>十二、到底怎么选</h2> <p>如果你的目标是下面这些,优先研究 DeepSeek Harness:</p> <ul> <li>做自己的 Coding Agent、IDE Agent 或桌面 Agent</li> <li>希望替换模型、文件系统、Shell、Subagent 和持久化实现</li> <li>强调会话回放、fork、恢复和过程保真</li> <li>需要插件市场、动态装卸或多种产品 Profile</li> <li>想研究 Code Mode 和更精细的工具执行语义</li> </ul> <p>如果你的目标是下面这些,优先考虑 AgentScope Java:</p> <ul> <li>企业核心系统本来就在 Java / Spring Boot 生态</li> <li>一个 Agent 需要服务大量用户和 Session</li> <li>需要 Redis、数据库、对象存储与跨副本恢复</li> <li>需要长期记忆、技能治理、Channel 和多租户隔离</li> <li>希望进一步建设 Agent Dashboard、Managed Agents 或统一控制面</li> </ul> <p>还有一种常见情况:团队只是验证一个小型 Agent 功能。</p> <p>这种时候,两套方案都可能太重。直接使用简单的模型 SDK、少量工具和一个清楚的状态边界,往往更合适。<strong>不要因为 Harness 很先进,就默认所有 Agent 都需要 Harness。</strong></p> <h2>十三、最后的判断:它们代表了 Agent 工程化的两种未来</h2> <p>DeepSeek Harness 展示的是一种 Runtime-first 路线:</p> <blockquote><p>把 Agent 的每一项能力都变成可组合、可替换、可回收的运行时部件,再用统一事件日志保证执行语义。</p></blockquote> <p>AgentScope Java 展示的是一种 Production-first 路线:</p> <blockquote><p>把 Agent 纳入成熟的应用服务体系,解决租户、状态、沙箱、存储、渠道、调度和控制面,再让企业真正运营它。</p></blockquote> <p>前者更像在设计 Agent 时代的“运行时内核”,后者更像在建设 Agent 时代的“应用服务器与控制平台”。</p> <p>两边最终很可能会互相靠近:DeepSeek Harness 会继续补生产基础设施,AgentScope Java 也会继续细化运行时语义。但至少在当前阶段,选型边界非常清楚:</p> <blockquote><p><strong>造 Agent Runtime 和产品,选 DeepSeek Harness;在企业系统里运行和治理 Agent,选 AgentScope Java。</strong></p></blockquote> <p>这也说明 Agent 开发已经进入了一个新阶段。竞争不再只是“谁的模型更聪明”或“谁的 Demo 工具更多”,而是:</p> <p><strong>谁能把不确定的模型行为,装进一套可恢复、可解释、可扩展、可治理的软件系统。</strong></p> <hr /> <p>本文阅读基线为 2026 年 8 月 21 日,主要参考两个仓库当时的主干源码与文档:DeepSeek Harness <code>141eb6f</code>(<code>0.1.0-rc.8</code>)和 AgentScope Java <code>643905e</code>。关键资料包括 <a href="https://github.com/deepseek-ai/deepseek-harness/blob/141eb6fef83422698aef7a981029e843e8161534/docs/architecture.zh.md">DeepSeek Harness 架构</a>、<a href="https://github.com/deepseek-ai/deepseek-harness/blob/141eb6fef83422698aef7a981029e843e8161534/docs/agent-lifecycle.zh.md">Agent 生命周期</a>、<a href="https://github.com/deepseek-ai/deepseek-harness/blob/141eb6fef83422698aef7a981029e843e8161534/docs/tool-execution-pipeline.zh.md">工具执行流水线</a>、<a href="https://github.com/agentscope-ai/agentscope-java/blob/643905e6bfdaabae50264048f69d58a43628c64c/docs/v2/zh/docs/harness/architecture.md">AgentScope Harness 架构</a>、<a href="https://github.com/agentscope-ai/agentscope-java/blob/643905e6bfdaabae50264048f69d58a43628c64c/docs/v2/zh/docs/building-blocks/agent.md">AgentScope Agent</a> 与 <a href="https://github.com/agentscope-ai/agentscope-java/blob/643905e6bfdaabae50264048f69d58a43628c64c/agentscope-service/README_zh.md">AgentScope Service</a>。</p>

2026/8/20
阅读更多

从 Agent Readable 到 IM 群协作:我对企业 AI Native 改造的终局思考

<p>最近一直在深度思考和实践“企业如何实现 AI Native”。</p> <p>在看了大量架构方案、也踩了不少落地坑之后,我越来越确信一件事:<strong>AI Native 绝不是买几个大模型账号,也不是强行造一个新系统给员工用。</strong></p> <p>如果脱离了企业的真实数据生态和员工的习惯路径,所谓的 AI Native 改造只是一场昂贵的“技术自嗨”。</p> <p>今天把最近关于 AI Native 落地的前提、短中期痛点、协同载体以及终局形态的思考梳理出来,供大家参考。</p> <!-- more --> <h2>一、企业级 AI Native 落地全景架构</h2> <p>在探讨具体协同载体之前,我们先拉高视角,看一张企业级 AI Native 落地全景架构图。</p> <p>整个架构从上到下分为应用场景层、能力解耦层、核心 Runtime 运行时以及底座资源支撑层:</p> <p><img src="https://www.rowkey.cn/images/2026-08-06-enterprise-ai-native-architecture.png" alt="" /></p> <p>这张架构图体现了两个核心逻辑: 1. <strong>能力解耦与治理(Skill/MCP Hub)</strong>:将数据、工具和系统能力标准化暴露,解决安全鉴权与复用问题。 2. <strong>场景双轮驱动</strong>:既包含了研发侧的 Vibe Coding,也涵盖了全公司业务与职能形态的 Agent 化。</p> <p>后文讨论的所有“Agent Readable”、“IM 协同”以及“私有 Runtime”,本质上都是这张架构图在具体工程和组织管理中的落地延伸。</p> <hr /> <h2>二、AI Native 的首要前提:解决 Agent Readable</h2> <p>绝大多数企业在喊 AI Native 时,第一步就卡住了。</p> <p>原因很简单:大模型虽然聪明,但它对企业内部的真实情况一无所知。</p> <p>企业要真正走向 AI Native,第一个关键基础设施不是选哪个模型,而是实现 <strong>Agent Readable(Agent 可读化)</strong>:</p> <ul> <li><strong>数据可读</strong>:数据库、数据仓库、日志、指标是否暴露成了 Agent 可领会的结构?</li> <li><strong>文档与知识可读</strong>:PRD、合同、FAQ、研发文档是否离散在各种乱七八糟的本地文件夹里?</li> <li><strong>系统与资源可读</strong>:企业的各种业务后台、HR 系统、财务系统、CI/CD 管道,是否有标准的 MCP Server 或 API 供 Agent 发现与调用?</li> </ul> <p><strong>只有企业的核心数据、知识与资源变成了 Agent 可以安全获取、读取和理解的形式,AI Native 的改造才有底座。</strong></p> <hr /> <h2>三、冷静看效益:短期是成本,长期才是提效</h2> <p>很多人对 AI Native 抱有不切实际的幻想,认为一旦引入立刻就能全员提效。</p> <p>现实往往相反:<strong>短期内,AI Native 改造大概率是降效的。</strong></p> <p>引入新技术必然带来额外的成本:</p> <ul> <li><strong>学习成本</strong>:员工需要学习如何与 Agent 交互、如何撰写规范的 Prompt 和设计约束。</li> <li><strong>改造成本</strong>:系统 API 的 MCP 化改造、数据治理、安全与风控护栏的搭建。</li> <li><strong>磨合成本</strong>:人机协同流程中的摩擦与失控风险。</li> </ul> <p>管理者必须有清醒的认知:<strong>短期内我们在为“认知升级和工程基础设施”买单,长期来看,当 Agent 能够自主吞吐数据与执行流程时,指数级的提效才会真正爆发。</strong></p> <hr /> <h2>四、为什么办公 IM 是 AI Native 的最佳协作载体?</h2> <p>最近观察到飞书、钉钉、企微等办公软件频繁调整组织架构和 AI 战略,这与我们探索的“企业 Workspace”方向完全吻合。</p> <p>未来企业真的需要为了 AI 专门再开发一套全新的协作平台吗?答案大概率是:<strong>不需要,甚至应该坚决避免。</strong></p> <p>重新造一个新平台,面临最大的阻力就是<strong>用户习惯路径的迁移</strong>。而钉钉/飞书/企微有着得天独厚的优势:</p> <ol> <li><strong>资源天然沉淀</strong>:企业的组织架构、文档、审批、知识库早已沉淀在上面,天然具备实现 Agent Readable 的基础。</li> <li><strong>零迁移阻力</strong>:员工早已习惯了每天在上面沟通和协同,不需要改变任何工作习惯。</li> <li><strong>天然的 Agent 学习场(群聊即 SOP)</strong>: <ul> <li>协作最好的形式可能就是<strong>群聊</strong>(正如海外企业在 Slack 中实现的那样)。</li> <li>传统企业写 SOP 是极其昂贵且容易过期的,但群聊历史天然是“带有上下文、有纠错过程、有结果验证”的真实表达。Agent 驻留在群里,只需观察群里的历史沟通,就能通过无感的 In-Context Learning 隐性学习到团队的业务 SOP 和规则,自然而然掌握这项技能。</li> </ul> </li> </ol> <hr /> <h2>五、终局思考:私有大脑 + 标准 IM 接口</h2> <p>虽然用户界面不需要自研,但这并不意味着企业不需要自己的基础设施。</p> <p>从数据安全性、模型路由与 Runtime 多样性的角度来看,企业<strong>必须拥有私有的 Agent 运行与治理能力</strong>。</p> <p>因此,理想的终局形态是明确的解耦:<strong>UI 交互层归办公 IM,运行治理层(私有大脑)归企业自建。</strong></p> <ul> <li><strong>交互层(办公 IM)</strong>:提供人类最熟悉的 UI 和消息通道,零成本承载人机协同。</li> <li><strong>治理层(私有 Runtime)</strong>:承载真正的核心逻辑、私有模型路由(TokenHub)、代码沙箱隔离(Sandbox)以及自定义 MCP 工具链。</li> </ul> <p>试想这样一个未来的产研闭环场景:</p> <ol> <li><strong>需求提出</strong>:你在钉钉/飞书的项目协作群里,直接 <code>@产品经理 Agent</code>:“我们需要增加一个根据用户行为自动生成周报的功能。”</li> <li><strong>需求细化</strong>:产品经理 Agent 接到需求,在群里进行需求拆解与澄清,生成结构化 PRD,随后自动 <code>@研发 Agent</code>。</li> <li><strong>代码与部署</strong>:研发 Agent 分析需求、设计架构、编写代码,并通过 CI/CD 自动部署到测试环境,最后 <code>@产品经理 Agent</code> 验收。</li> <li><strong>验收上线</strong>:产品经理 Agent 完成验收,自动触发发布流程,并在群里汇报“已上线”。</li> </ol> <p>在这个过程中:</p> <ul> <li><strong>全流程透明</strong>:人类管理者和团队成员可以在群里看到所有的执行节点与进度。</li> <li><strong>随时介入</strong>:一旦 Agent 在任何一步偏离预期或遇到风险,人类可以随时 <code>@</code> 介入打断或修正。</li> <li><strong>闭环打通</strong>:完全打通了从需求到上线的产研全流程。</li> </ul> <hr /> <h2>六、总结</h2> <p>总结来看,企业 AI Native 改造的底层主线已经非常清晰:</p> <ol> <li><strong>以 Agent Readable 为基石</strong>:搞好数据治理与能力暴露。</li> <li><strong>以成熟 IM 为协同界面</strong>:借力钉钉/飞书/企微,降低用户迁移门槛,用群聊作为 Agent 学习与交互的场。</li> <li><strong>以私有 Runtime 为安全大脑</strong>:保证数据安全、管控模型成本(TokenHub),并实现多 Agent 的群流转。</li> </ol> <p>打破幻想,扎实建设基础设施,才能真正拥抱 AI Native 的时代。</p>

2026/8/6
阅读更多

从管人到管系统行为:AI时代技术管理者的全新认知框架

<p>最近大量使用 AI 进行开发,我逐渐意识到一个趋势:随着 AI 编程的普及,被颠覆的不仅仅是一线工程师的工作方式,对 CTO、技术总监、技术 Leader 这些技术管理者的要求,正在发生截然不同的改变。</p> <p>过去,技术管理的核心在于“人”与“确定性”;而现在,当 AI 开始接管代码生成,系统正在变得“非确定性”。如何理解和控制这种非确定性,将成为下一代技术管理者的核心壁垒。</p> <!-- more --> <h2>传统的确定性时代:管组织与做平衡</h2> <p>在传统的软件工程时代,代码由工程师一行行敲出来,系统严格按照设定的逻辑执行。</p> <p>这种模式下,系统是高度确定性的:输入相同,输出必然相同。如果出了 Bug,顺着调用栈一层层 Debug,总能找到引发异常的那行代码。因此,技术管理者不需要每天盯着系统的细枝末节,核心精力主要放在以下三件事:</p> <ul> <li><strong>管理复杂组织</strong>:搭建梯队、拆分团队、把控研发效能。</li> <li><strong>决策技术路线</strong>:选型、架构演进、技术债务管理。</li> <li><strong>平衡业务与工程</strong>:在有限的资源下,平衡需求交付进度与系统长期健康度。</li> </ul> <h2>AI 编程时代:非确定性带来的失控感</h2> <p>当研发流程全面接入 AI,情况变了。</p> <p>现在是工程师设计约束,AI 负责生成代码。这种模式打破了传统的确定性——同样的输入,AI 每次给出的实现细节可能完全不同。这带来了一系列连锁反应:</p> <ul> <li><strong>调试极其复杂</strong>:代码不再是人类思维的直接映射,遇到 Bug 时,由于存在机器生成的不可解释性,排查链路变长。</li> <li><strong>系统难以理解</strong>:大量 AI 生成的代码交织在一起,如果不加以严格规范,系统会变成一个连创造者都看不透的黑盒。</li> <li><strong>风险更难控制</strong>:非确定性的代码直接进入工程环节,边界变得模糊,安全和可用性风险急剧上升。</li> </ul> <h2>技术管理者的新定位</h2> <p>在这样的背景下,技术管理者的核心工作,正在从单纯的“管人”向“管系统行为”演进。未来的首要任务,是解决<strong>“如何完全理解系统为什么这么运行”</strong>的问题。</p> <p>技术管理者的新角色正在转变为:</p> <ul> <li><strong>系统约束设计者</strong>:从设计架构,转变为设计“AI 生成与运行的约束条件”。通过制定严格的上下文准入边界、静态检查校验规则以及自动化测试拦截网,让 AI 在可控轨道内工作。</li> <li><strong>AI 能力整合者</strong>:准确判断系统的哪些模块该用传统逻辑保底,哪些模块可以放权给 AI 生成。将大模型能力无缝、安全地整合进既有的工程开发链路中。</li> <li><strong>风险控制负责人</strong>:面对非确定性输出,必须建立一套全新的兜底与熔断机制。从架构设计上控制 AI 产生错误代码或不可控行为的爆炸半径。</li> </ul> <h2>结语:建立全新的认知框架</h2> <p>本质上,AI 时代的研发管理,需要建立一套全新的认知框架。</p> <p>从管理“人类开发者的产能”,升级为管理“人机协同系统的行为边界”。对现有的技术管理者来说,这不仅是脱离舒适区的巨大挑战,更是抓住下一次技术代差、重塑团队战斗力的绝佳机会。</p>

2026/5/17
阅读更多

SOUL.md 和 AGENTS.md 到底有什么区别?Agent 配置别再混着写了

<p>很多人开始配置自己的 Agent 时,都会很快遇到一个问题:</p> <p><strong><code>SOUL.md</code> 和 <code>AGENTS.md</code> 看起来都像是在“定义 Agent”,它们到底有什么区别?</strong></p> <p>如果这两个文件不分清,后面就很容易出现一种典型混乱:人格写进岗位说明,业务流程写进行为准则,文件越写越多,Agent 反而越来越不像一个稳定的助手。</p> <p>先说结论:</p> <ul> <li><code>SOUL.md</code> 负责定义 <strong>这个 Agent 怎么做人、怎么做事、什么不能碰</strong></li> <li><code>AGENTS.md</code> 负责定义 <strong>这个 Agent 是干什么的、服务谁、交付什么、按什么流程工作</strong></li> </ul> <p>一句话:</p> <p><strong><code>SOUL.md</code> 是灵魂,<code>AGENTS.md</code> 是岗位说明书。</strong></p> <!-- more --> <h2>一、为什么很多人会把这两个文件写混</h2> <p>原因其实很简单:这两个文件都在描述 Agent,而且都不是技术配置项,而是自然语言规则。</p> <p>于是很容易出现下面这种误写:</p> <ul> <li>在 <code>SOUL.md</code> 里写“每周发 3 篇小红书”</li> <li>在 <code>AGENTS.md</code> 里写“说话别太啰嗦,先给结论”</li> </ul> <p>表面上看都能运行,但问题在于:</p> <ul> <li>文件边界开始模糊</li> <li>后续维护的人不知道该改哪</li> <li>Agent 接收到的行为信号会互相打架</li> </ul> <p>这就像你在公司里把“企业文化”和“岗位 KPI”写进同一张纸。</p> <p>短期看没事,长期一定乱。</p> <h2>二、<code>SOUL.md</code> 适合放什么</h2> <p><code>SOUL.md</code> 更适合放那些<strong>跨任务长期有效的行为原则</strong>。</p> <p>也就是:不管这个 Agent 今天在写文章、查资料、做排期,还是和你对话,它都应该稳定遵守的那一层规则。</p> <p>它更像下面这些问题的答案:</p> <ul> <li>我应该怎么说话?</li> <li>我做判断时遵循什么原则?</li> <li>遇到边界问题时,什么必须先请示?</li> <li>我的默认工作风格是什么?</li> </ul> <p>它适合放的内容,大致可以分成 4 类:</p> <h3>1)表达风格</h3> <p>比如:</p> <ul> <li>少客套,直接给价值</li> <li>先结论,后细节</li> <li>默认中文简体</li> <li>可以适度直接,但不要油腻</li> </ul> <h3>2)行为原则</h3> <p>比如:</p> <ul> <li>先做功课再提问</li> <li>先保护用户,再追求效率</li> <li>不编造来源</li> <li>不确定信息必须标注待核实</li> </ul> <h3>3)边界与禁区</h3> <p>比如:</p> <ul> <li>未经确认,不对外发布</li> <li>不擅自联系他人</li> <li>不替用户做超出授权的决定</li> <li>涉及隐私和敏感内容默认谨慎</li> </ul> <h3>4)协作偏好</h3> <p>比如:</p> <ul> <li>输出长度偏中等</li> <li>不要太啰嗦</li> <li>允许直接指出低效做法</li> <li>遇到复杂问题先自己查,不要先把问题甩回给用户</li> </ul> <p>这些东西有一个共同点:</p> <p><strong>它们不依赖具体业务,而定义的是这个 Agent 的稳定人格和做事方式。</strong></p> <h2>三、<code>AGENTS.md</code> 适合放什么</h2> <p>如果说 <code>SOUL.md</code> 解决的是“怎么做人”,那么 <code>AGENTS.md</code> 解决的就是“你到底是干什么的”。</p> <p>它更适合放那些<strong>业务身份、职责范围、目标、流程和输出物</strong>。</p> <p>它更像下面这些问题的答案:</p> <ul> <li>这个 Agent 的岗位是什么?</li> <li>它服务谁?</li> <li>它追求什么业务目标?</li> <li>它平时交付哪些内容?</li> <li>它按照什么 workflow 工作?</li> </ul> <p>通常来说,<code>AGENTS.md</code> 更适合放 5 类内容。</p> <h3>1)角色定位</h3> <p>比如:</p> <ul> <li>你是内容运营助理</li> <li>你是产品助理</li> <li>你是客服助理</li> <li>你是销售支持助理</li> </ul> <h3>2)业务目标</h3> <p>比如:</p> <ul> <li>沉淀知识资产</li> <li>建立个人品牌</li> <li>提升团队交付效率</li> <li>降低重复沟通成本</li> </ul> <h3>3)服务对象 / 平台 / 受众</h3> <p>比如:</p> <ul> <li>主要平台:公众号、小红书</li> <li>目标受众:AI 从业者、程序员、Java 工程师</li> <li>服务对象:HJ 本人和他的内容业务</li> </ul> <h3>4)核心工作流</h3> <p>比如:</p> <ul> <li>收集输入</li> <li>梳理观点</li> <li>生成提纲</li> <li>产出长文 / 短帖 / 配图提示词</li> <li>发布前检查</li> <li>复盘内容表现</li> </ul> <h3>5)默认交付物和衡量标准</h3> <p>比如:</p> <ul> <li>默认产出长文、小红书文案、短帖摘要、封面文案</li> <li>复盘优先级:阅读 > 收藏 > 转发</li> <li>每周更新频率和平台节奏</li> </ul> <p>这些内容有一个共同点:</p> <p><strong>它们定义的是这个 Agent 的工作岗位,而不是性格。</strong></p> <h2>四、最直白的判断方法:一句规则到底回答了什么问题</h2> <p>如果你拿到一条规则,不知道该放哪,就问自己一句:</p> <p><strong>它到底在回答“我怎么做事”,还是“我做什么事”?</strong></p> <h3>如果它回答的是“我怎么做事”</h3> <p>放进 <code>SOUL.md</code>。</p> <p>例如:</p> <ul> <li>少废话</li> <li>先查再问</li> <li>不编造</li> <li>敏感动作先确认</li> </ul> <h3>如果它回答的是“我做什么事”</h3> <p>放进 <code>AGENTS.md</code>。</p> <p>例如:</p> <ul> <li>默认输出公众号长文和小红书文案</li> <li>主要平台是公众号和小红书</li> <li>工作流是收集 → 梳理 → 成文 → 检查 → 复盘</li> <li>复盘指标优先看阅读和收藏</li> </ul> <p>这是区分这两个文件最省脑子的办法。</p> <h2>五、一个常见误区:把所有东西都堆进 <code>SOUL.md</code></h2> <p>很多人喜欢把一切“对 Agent 的要求”都堆进 <code>SOUL.md</code>,因为它名字听起来更高级。</p> <p>但这会带来两个问题:</p> <ul> <li><code>SOUL.md</code> 变成一个无边界的大杂烩</li> <li><code>AGENTS.md</code> 反而变空,只剩一句角色介绍</li> </ul> <p>这样做的后果是,Agent 会越来越像“有很多态度,但没什么明确职责”。</p> <p>反过来也一样。</p> <p>如果你把所有业务流程和 KPI 都塞进 <code>AGENTS.md</code>,却不定义风格和原则,那 Agent 通常会变成另一个问题:</p> <ul> <li>很像流程机器人</li> <li>但没有稳定的判断框架</li> <li>做事时容易僵、容易飘、容易忽冷忽热</li> </ul> <p>所以真正合理的方式,不是二选一,而是:</p> <ul> <li><code>SOUL.md</code> 负责“人格和准则”</li> <li><code>AGENTS.md</code> 负责“业务和工作”</li> </ul> <p>两者配合,Agent 才会既稳定,又有明确产出。</p> <h2>六、如果你要自己配 Agent,我建议按这个方式写</h2> <p>最简单的模板可以是这样。</p> <h3><code>SOUL.md</code></h3> <p>只保留 4 类:</p> <ul> <li>风格</li> <li>原则</li> <li>边界</li> <li>协作偏好</li> </ul> <h3><code>AGENTS.md</code></h3> <p>只保留 5 类:</p> <ul> <li>角色</li> <li>目标</li> <li>受众 / 平台</li> <li>工作流</li> <li>交付物 / KPI</li> </ul> <p>如果你按这个思路来写,后面维护会轻松很多。</p> <p>因为每次新增规则时,你都知道自己是在改:</p> <ul> <li>“这个 Agent 的做事方式”</li> <li>还是“这个 Agent 的业务职责”</li> </ul> <p>这两个东西一旦分清,整个 Agent 配置就会明显稳定下来。</p> <h2>结语</h2> <p>Agent 配置这件事,表面上看是在写几个 Markdown 文件,本质上其实是在回答两个问题:</p> <ul> <li>这个助手应该成为什么样的人?</li> <li>这个助手应该承担什么样的工作?</li> </ul> <p>前一个问题,交给 <code>SOUL.md</code>。</p> <p>后一个问题,交给 <code>AGENTS.md</code>。</p> <p>如果你把这两个文件的边界理顺了,后面很多配置问题都会变简单。</p> <p>因为你终于不是在“堆规则”,而是在真正地设计一个有灵魂、也有岗位职责的 Agent。</p>

2026/4/5
阅读更多

AI Agent 正在进入工程化深水区:从代码模型、生产框架到多智能体协作协议

<p>过去一年,围绕 AI Agent 的讨论大多集中在模型能力本身。</p> <p>但如果把最近几篇有代表性的内容放在一起看,一个更关键的变化已经出现:<strong>AI Agent 的竞争重心,正在从“模型能力展示”转向“工程系统能力”。</strong></p> <p>这里的“工程系统能力”,不是一句空话。它至少包含四层:</p> <ul> <li>面向特定任务优化的模型能力</li> <li>可接入生产环境的框架能力</li> <li>能控制复杂度的架构能力</li> <li>支撑协作扩展的协议能力</li> </ul> <p>如果只记一条:<strong>2026 年的 Agent,已经不再只是“大模型 + 工具调用”,而是在走向一套完整的软件工程体系。</strong></p> <!-- more --> <h2>一、模型层正在专用化:从“全能模型”转向“任务最优模型”</h2> <p>以 Cursor 发布 Composer 2 为例,这类发布最容易被表面解读为“又一个新模型上线”。但如果只盯着 benchmark 分数,其实会错过真正重要的信息。</p> <p>真正值得关注的是:<strong>垂直场景优化,正在从提示词层面的工程技巧,变成底层模型层面的产品策略。</strong></p> <p>过去大家默认的路径是:</p> <ul> <li>先用一个尽可能强的通用模型</li> <li>再通过 system prompt、工具定义、上下文拼接去适配业务场景</li> </ul> <p>而现在,越来越多产品开始反过来做:</p> <ul> <li>先承认模型不需要全能</li> <li>再针对核心任务做专门训练和强化</li> <li>最后用更低成本、更高稳定性去打场景穿透</li> </ul> <p>在代码生成领域,这个逻辑尤其成立。因为对开发者来说,关键指标从来不是“会不会聊天”,而是:</p> <ul> <li>多步修改是否稳定</li> <li>大工程上下文下是否少犯错</li> <li>工具调用链条是否顺</li> <li>生成结果是否更接近可运行状态</li> <li>成本是否足够低,能支撑高频使用</li> </ul> <p>所以代码模型的价值,不在于“像人一样懂很多”,而在于“在狭窄但高价值的任务里做到足够可靠”。</p> <p>从工程视角看,这一步非常重要。因为一旦模型专用化开始成立,系统设计就会自然进入下一阶段:</p> <ul> <li>不同任务会使用不同模型</li> <li>模型之间会形成分工</li> <li>上层调度必须决定何时调用哪个能力</li> <li>成本控制开始成为架构问题,而不是单次推理问题</li> </ul> <p>一句话:<strong>模型层一旦专用化,Agent 系统就不再是单核结构,而开始具备多能力模块化特征。</strong></p> <h2>二、框架层正在生产化:企业真正要的不是“聪明”,而是“可治理”</h2> <p>如果模型层的关键词是“专用化”,那么框架层的关键词就是“生产化”。</p> <p>以 AgentScope Java 这类框架为代表,可以明显看到一个趋势:<strong>企业级 Agent 框架的卖点,已经从“快速做 Demo”转向“纳入生产治理体系”。</strong></p> <p>一个 Demo 能跑起来,解决的是“能不能演示”;而一个生产系统能跑下去,解决的是另一组完全不同的问题:</p> <ul> <li>能否中断执行</li> <li>能否保存状态并恢复</li> <li>能否限制文件、网络、工具访问权限</li> <li>能否观察中间推理过程</li> <li>能否记录请求链路和成本</li> <li>能否融入已有服务体系、监控体系和发布体系</li> </ul> <p>这些问题很少出现在社交媒体上的 Agent 演示视频里,但它们决定了系统是否能进入真实业务。</p> <p>这也是为什么 Java 框架在企业 Agent 讨论里开始重新获得存在感。不是因为 Java 在模型创新上领先,而是因为大量企业核心系统、权限体系、服务治理体系本来就在 Java 世界里。谁更容易接入这些系统,谁就更容易跨过“从试验到生产”的门槛。</p> <p>从架构角度看,生产化框架至少意味着三件事。</p> <h3>1)Agent 不再只是一次性调用,而是一个有生命周期的执行体</h3> <p>它可能被启动、暂停、中断、恢复、观察、接管。这说明 Agent 已经不再是单纯的“函数调用”,而更接近“状态化任务单元”。</p> <h3>2)Agent 不再只追求最终答案,而要暴露过程</h3> <p>生产环境里,最终结果固然重要,但更重要的是:</p> <ul> <li>它是怎么得出这个结果的</li> <li>过程中调用了哪些工具</li> <li>哪一步失败了</li> <li>到底是模型错了,还是工具错了,还是上下文错了</li> </ul> <p>没有过程可见性,就没有治理能力。</p> <h3>3)Agent 必须服从企业原有系统边界</h3> <p>企业不会为了 Agent 重写整套权限和运维体系。真正可落地的框架,必须反过来适应既有系统,而不是要求企业围着 Agent 转。</p> <p>因此,从这一步开始,Agent 就越来越像软件基础设施问题,而不是一个单独的 AI 功能问题。</p> <h2>三、架构层正在分层化:多智能体不是默认架构,而是复杂度阈值后的选择</h2> <p>过去一段时间,“多智能体”几乎成了 Agent 讨论里的政治正确。但真正有实践经验的团队,反而越来越强调另一条原则:<strong>Single Agent First。</strong></p> <p>这个原则看起来保守,其实非常工程化。原因很简单:多智能体架构虽然听起来强大,但它天然会引入新的系统成本:</p> <ul> <li>角色划分成本</li> <li>上下文切分成本</li> <li>调度链路成本</li> <li>状态同步成本</li> <li>调试与排障成本</li> <li>Token 与时延成本</li> </ul> <p>如果业务复杂度还没高到需要这些机制,那么多智能体带来的收益,很可能不足以覆盖它引入的复杂度。</p> <p>因此,更合理的路径不是“先上多智能体,再想办法降复杂度”,而是:</p> <ul> <li>先用单智能体 + 工具解决大多数任务</li> <li>只有在复杂度跨过阈值时,才引入多角色协作</li> </ul> <p>这个“阈值”通常出现在几类场景:</p> <ul> <li>上下文无法放进一个窗口</li> <li>不同职责需要严格隔离</li> <li>子任务天然适合并行</li> <li>流程必须分段控制与校验</li> <li>不同团队需要分别维护不同智能体能力</li> </ul> <p>这意味着,多智能体的本质不是“更聪明”,而是更适合处理复杂系统中的职责拆分与流程编排问题。</p> <p>从这一点看,多智能体更像微服务演进中的服务拆分:</p> <ul> <li>在规模小、逻辑简单时,单体更高效</li> <li>在复杂度上升后,拆分才开始有意义</li> <li>拆分本身不是目标,控制复杂度才是目标</li> </ul> <h2>四、协议层正在标准化:Agent 系统开始进入“协作时代”</h2> <p>当模型专用化、框架生产化、架构分层化之后,会自然冒出下一个问题:<strong>多个 Agent 之间如何协作?</strong></p> <p>如果没有标准协议,所谓“多智能体”很容易退化成一种脆弱的私有编排:</p> <ul> <li>谁都能发消息,但格式不统一</li> <li>上下文传递全靠手工拼接</li> <li>能力授权边界模糊</li> <li>任务交付物缺少稳定结构</li> <li>一旦换一个 Agent 实现,协作链路就断掉</li> </ul> <p>这也是 A2A 这类协议值得关注的原因。它的价值,不是又发明了一个新缩写,而是试图回答协作系统里最基础的几个问题:</p> <ul> <li>如何发现具备特定能力的 Agent</li> <li>如何把任务以结构化方式委托出去</li> <li>如何只传递最小必要上下文</li> <li>如何定义可验证的交付规格</li> <li>如何在协作过程中进行受控授权</li> </ul> <p>这件事为什么重要?因为它标志着“上下文工程”的边界正在上移。</p> <p>过去谈上下文工程,大家主要关注的是:</p> <ul> <li>prompt 怎么写</li> <li>检索内容怎么塞</li> <li>tool schema 怎么设计</li> <li>memory 如何注入</li> </ul> <p>但在多 Agent 系统里,这些问题不再只发生在“人和模型之间”,还发生在“Agent 和 Agent 之间”。</p> <p>于是新的工程问题出现了:</p> <ul> <li>哪些上下文应该共享</li> <li>哪些上下文必须隔离</li> <li>信息切片粒度如何定义</li> <li>任务目标如何结构化描述</li> <li>结果如何自动验收和回流</li> </ul> <p>当这些问题成为主问题时,Agent 系统的本质就已经变了。它不再只是“一个大模型加若干外挂工具”,而是在向“分布式协作系统”靠近。</p> <h2>五、把四层放在一起看:Agent 正在从能力组件变成系统基础设施</h2> <p>把前面四层连起来,可以看到一条非常清晰的演进链路:</p> <ul> <li>模型层专用化,解决特定任务的能力效率问题</li> <li>框架层生产化,解决生产环境的治理问题</li> <li>架构层分层化,解决复杂度与职责分工问题</li> <li>协议层标准化,解决系统扩展与协作问题</li> </ul> <p>这四者不是并列关系,而是递进关系。</p> <p>因为一旦你开始使用专用模型,就会需要调度;一旦你进入调度,就会需要框架与治理;一旦任务复杂度提高,就会需要角色拆分;一旦角色拆分发生,就会需要标准化协作协议。</p> <p>所以今天讨论 Agent,最容易犯的错误,就是仍然把它理解成一个单点能力增强工具。实际上,它正在逐步变成一套软件系统的基础设施层。</p> <p>从这个意义上说,<strong>Agent 的下半场竞争,本质上是软件工程能力的竞争。</strong></p> <h2>六、对技术团队的实际启示</h2> <p>如果这个判断成立,那么技术团队下一步最值得做的,不是继续沉迷“模型榜单更新”,而是反过来重建自己的落地顺序:</p> <h3>1)先定义任务,再定义智能</h3> <p>不要先问“哪个模型最强”,要先问:</p> <ul> <li>这个任务到底是问答、执行、编排还是协作</li> <li>结果是开放式输出,还是结构化交付</li> <li>容错成本高不高</li> <li>有没有人工接管点</li> <li>是否需要审计与追踪</li> </ul> <p>没有任务边界,讨论 Agent 架构几乎一定会失真。</p> <h3>2)先做单智能体闭环,再决定是否升级多智能体</h3> <p>先验证这几个东西:</p> <ul> <li>工具链路是否稳定</li> <li>上下文设计是否有效</li> <li>失败主要来自哪里</li> <li>哪些环节真的需要拆角色</li> <li>并发是否真的带来收益</li> </ul> <p>很多“多智能体需求”,最后会发现其实是“单智能体上下文和工具设计没做好”。</p> <h3>3)尽早补齐治理面,而不是最后补</h3> <p>包括:</p> <ul> <li>状态保存</li> <li>权限隔离</li> <li>中断恢复</li> <li>过程观测</li> <li>成本统计</li> <li>回放与审计</li> </ul> <p>这些能力越晚补,代价越大。因为它们通常不是外挂功能,而是会反向影响你的框架选择与系统边界。</p> <h2>结语</h2> <p>如果只看单个新闻,最近这些变化看起来是分散的:一个代码模型升级了,一个 Java Agent 框架火了,一篇多智能体选型文章刷屏了,又出现了新的协作协议。</p> <p>但把它们放在一起,就会看到更本质的趋势:<strong>AI Agent 正在从“可演示的智能能力”,演化成“可治理、可扩展、可协作的软件系统”。</strong></p> <p>这意味着接下来的竞争,不只是“谁更聪明”,而是:</p> <ul> <li>谁的模型更适合任务</li> <li>谁的框架更适合生产</li> <li>谁的架构更能控制复杂度</li> <li>谁的协议更能支撑协作扩展</li> </ul> <p>对于真正做落地的人来说,这反而是个好消息。因为从这一刻开始,Agent 不再只是模型厂商的游戏,而重新变成了系统设计者、架构师和工程团队的主战场。</p>

2026/3/30
阅读更多

OpenClaw Gateway 三种对外接口怎么选?

<p>很多团队在接 OpenClaw Gateway 时,第一反应是:到底该用哪个接口?</p> <p>答案不是“哪个更新就用哪个”,而是看你的目标:是先把能力接入,还是把系统做成可控、可观测、可治理的平台。</p> <p>如果你只记一条:<strong>Chat Completions 适合快接入,OpenResponses 适合复杂编排,Gateway WS 适合平台控制面。</strong></p> <p>本文按工程落地视角,把三种协议放到同一张决策图里讲清楚。</p> <p>先明确一个问题:同一个 Gateway 为什么要提供三种接口?</p> <p>这是“分层设计”而不是“重复造轮子”——兼容层负责接入效率,原生协议负责控制力与系统治理。</p> <!-- more --> <h2>一、三种接口各自解决什么问题</h2> <h3>1)Gateway 协议(WebSocket)</h3> <p>这是 OpenClaw 的原生控制面协议。客户端通过 WebSocket 握手(connect),声明 role/scopes/caps,然后以 req/res/event 方式通信。</p> <p>它最适合做:</p> <ul> <li>自研控制台</li> <li>会话与节点能力统一编排</li> <li>审批、配置、设备配对、运维级治理</li> </ul> <p>一句话:<strong>最完整,但接入门槛最高。</strong></p> <hr /> <h3>2)OpenAI Chat Completions(<code>/v1/chat/completions</code>)</h3> <p>这是面向存量生态的兼容接口。你已有 OpenAI SDK 或上层框架时,几乎可以低改造迁移。</p> <p>它最适合做:</p> <ul> <li>快速打通业务链路</li> <li>验证模型+工具能力</li> <li>已有 OpenAI 生态资产复用</li> </ul> <p>一句话:<strong>上手最快,迁移成本最低。</strong></p> <hr /> <h3>3)OpenResponses(<code>/v1/responses</code>)</h3> <p>这是更现代的兼容接口,强调 item 化输入、工具回合、多模态输入(文件/图片)和更细颗粒度的流式事件。</p> <p>它最适合做:</p> <ul> <li>复杂工具调用回合</li> <li>多模态上下文输入</li> <li>需要更强可观测事件流的 Agent 系统</li> </ul> <p>一句话:<strong>语义更完整,适合复杂场景。</strong></p> <hr /> <h2>二、工程决策矩阵(可直接拿去评审)</h2> <h3>维度 1:接入复杂度</h3> <ul> <li>最低:Chat Completions</li> <li>中等:OpenResponses</li> <li>最高:Gateway WS</li> </ul> <h3>维度 2:生态兼容性</h3> <ul> <li>最强:Chat Completions</li> <li>次之:OpenResponses</li> <li>最弱(但可控性最高):Gateway WS</li> </ul> <h3>维度 3:工具与回合表达能力</h3> <ul> <li>Chat Completions:够用,偏经典函数调用形态</li> <li>OpenResponses:更适合复杂工具回合与结构化交互</li> <li>Gateway WS:可做全链路控制与事件编排</li> </ul> <h3>维度 4:可观测性与治理</h3> <ul> <li>Chat Completions:偏业务调用视角</li> <li>OpenResponses:事件语义更细,观测更自然</li> <li>Gateway WS:控制面最完整,适合平台治理</li> </ul> <h3>维度 5:长期演进空间</h3> <ul> <li>Chat Completions:适合作为入口层</li> <li>OpenResponses:适合作为复杂业务主接口</li> <li>Gateway WS:适合作为平台核心控制面</li> </ul> <hr /> <h2>三、三类典型团队该怎么选</h2> <h3>场景 A:你要“这周上线”</h3> <p>选 Chat Completions。</p> <p>原因:复用现有 SDK,改造最小,最快出结果。</p> <h3>场景 B:你要“复杂 Agent 工作流”</h3> <p>选 OpenResponses。</p> <p>原因:输入输出语义更现代,工具回合、多模态、事件流更顺手。</p> <h3>场景 C:你要“公司级 AI 平台控制面”</h3> <p>选 Gateway WS。</p> <p>原因:只有原生协议能把角色、权限、节点能力、审批、配置纳入一套统一治理模型。</p> <hr /> <h2>四、推荐落地路径(避免一步到位翻车)</h2> <h3>Phase 1:先用 Chat Completions 跑通业务闭环</h3> <p>目标:验证价值,不纠结架构完美。</p> <h3>Phase 2:把复杂链路迁到 OpenResponses</h3> <p>目标:提升工具编排能力和事件可观测性。</p> <h3>Phase 3:控制治理能力下沉到 Gateway WS</h3> <p>目标:统一权限、审批、配置与节点编排,做成平台而不是脚本集合。</p> <hr /> <h2>五、生产防坑清单</h2> <ol> <li><strong>协议选型不要脱离组织能力</strong>:团队不会维护 WS 客户端,就别上来就全量 WS。</li> <li><strong>先定义会话键与幂等策略</strong>:没有幂等,重试就是事故放大器。</li> <li><strong>日志字段跨协议统一</strong>:requestId/sessionKey/runId 必须统一,才能追踪问题。</li> <li><strong>权限边界先于功能边界</strong>:先做“能不能做”,再做“做什么更快”。</li> <li><strong>演进路线写进技术方案</strong>:短期兼容层、长期控制面,避免每次重构都推倒重来。</li> </ol> <hr /> <h2>结语</h2> <p>OpenClaw Gateway 三种接口不是替代关系,而是分层协作关系。</p> <p>对工程团队来说,真正重要的不是“选哪个最先进”,而是:</p> <ul> <li>当前阶段怎么最快交付价值</li> <li>下一阶段怎么平滑升级</li> <li>最终怎么形成可控、可观测、可治理的平台能力</li> </ul> <p>这才是协议选型的终局。</p>

2026/3/24
阅读更多

Agent 落地不靠更强模型:后端团队先补这 4 个治理动作

<p>最近一轮知识库信息放在一起看,结论很清楚: Agent 已经从“能不能做”进入“能不能稳定做、持续做、规模做”。</p> <p><strong>真正决定成败的,不是模型上限,而是工程治理下限。</strong></p> <p>很多团队现在都能把 Agent 跑起来:接 IM、调工具、跑自动化流程。 但一上真实业务就出问题:串会话、误操作、成本飙升、结果不可复盘。 这类问题本质上不是 Prompt 问题,而是系统边界没有建好。</p> <!-- more --> <h2>一、会话与并发治理:先保证可预测,再谈性能</h2> <p>第一步不是提并发,而是先把并发“关进笼子”:</p> <ul> <li>同会话串行执行,避免上下文串台</li> <li>消息队列策略固定(collect / followup)</li> <li>设置会话排队上限、超时与丢弃规则</li> </ul> <p>如果这一层没做,业务一上量就会出现“同一用户前后文互相污染”,后面所有优化都白做。</p> <h2>二、工具权限治理:把“会执行”变成“可控执行”</h2> <p>Agent 接了终端、文件、外部 API 后,风险不再是“答错一句话”,而是“做错一件事”。</p> <p>必须落地三件事:</p> <ul> <li>工具最小权限(默认 deny)</li> <li>高风险动作审批(删除、外发、系统修改)</li> <li>审计日志留痕(谁在何时执行了什么)</li> </ul> <p>没有这层,任何一次误调用都可能直接变生产事故。</p> <h2>三、稳定性与成本治理:把失败设计成默认路径</h2> <p>生产环境里,失败不是例外,是常态。 要提前把“故障时怎么继续”设计好:</p> <ul> <li>模型/密钥 fallback 链</li> <li>限流与错误指数退避</li> <li>上下文压缩 + 工具结果修剪</li> </ul> <p>目标只有一个:在坏环境下还能跑,不把服务打穿。</p> <h2>四、内容运营治理:把一次经验变成团队资产</h2> <p>纯技术落地如果不转成“可复用内容”,团队学习曲线会重复踩坑。</p> <p>建议固定复盘模板:</p> <ul> <li>本次问题与触发条件</li> <li>处置动作与回滚策略</li> <li>可复用检查项</li> <li>下一次默认配置</li> </ul> <p>技术治理 + 内容沉淀同时做,才能形成长期复利。</p> <h2>上线前最小检查清单(可直接执行)</h2> <ul> <li>[ ] 会话边界明确,DM/群聊不串台</li> <li>[ ] 队列策略配置并压测通过</li> <li>[ ] 工具最小权限与审批生效</li> <li>[ ] 关键执行链路可审计</li> <li>[ ] 模型故障有 fallback 与退避</li> <li>[ ] 上下文与成本可观测</li> <li>[ ] 复盘模板落盘并可复用</li> </ul> <h2>结语</h2> <p>Agent 落地不是“再接一个模型”,而是“先建一套护栏”。 先把系统变成可控工程,再把效率放大。 这一步做对了,后面才是真正的规模化红利。</p>

2026/3/18
阅读更多

OpenClaw多Agent方案

<p>很多团队把 Agent 做到第二阶段都会遇到同一个问题:</p> <ul> <li><p>单个 Agent 已经不够用,要拆“角色分工”。</p></li> <li><p>一台机器放不下所有任务,要跨多台主机部署。</p></li> <li><p>代理之间需要通信协作,但又不能互相污染上下文。</p></li> </ul> <p>这篇文章基于 OpenClaw 官方文档,系统讲清四件事:<strong>单机多 Agent 怎么搭</strong>、<strong>单主机多 OpenClaw 实例何时可用</strong>、<strong>多 OpenClaw 主机怎么协作</strong>、<strong>代理间如何通信才稳定可控</strong>。</p> <!-- more --> <h2>1. 先统一心智模型:OpenClaw 的多 Agent 不是“多人格提示词”</h2> <p>在 OpenClaw 里,一个 agent 本质是一个“完整隔离单元”,它拥有自己的:</p> <ul> <li><p>workspace(包括 AGENTS.md/SOUL.md/USER.md 与本地文件上下文)</p></li> <li><p>agentDir(认证与 agent 级状态)</p></li> <li><p>sessions(会话与路由状态)</p></li> </ul> <p>所以“多 Agent”是工程级隔离,而不是同一上下文里改几段提示词。</p> <hr /> <h2>2. 单机多 Agent:推荐的标准架构</h2> <p>先给结论:<strong>一个 Gateway + 多个 agent + 显式 bindings 路由</strong> 是官方推荐范式。</p> <h3>2.1 架构骨架</h3> <ul> <li><p>一台主机只跑一个 Gateway(官方架构约束)。</p></li> <li><p>Gateway 持有所有渠道连接(Telegram/WhatsApp/Slack/&hellip;)。</p></li> <li><p>通过 <code>bindings</code> 把不同 channel/account/peer 的入站消息,确定性路由到不同 agent。</p></li> <li><p>每个 agent 使用独立 workspace 和 agentDir,避免认证与会话冲突。</p></li> </ul> <h3>2.2 最小配置示例(单机多 Agent)</h3> <figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span> <span class='line-number'>2</span> <span class='line-number'>3</span> <span class='line-number'>4</span> <span class='line-number'>5</span> <span class='line-number'>6</span> <span class='line-number'>7</span> <span class='line-number'>8</span> <span class='line-number'>9</span> <span class='line-number'>10</span> <span class='line-number'>11</span> <span class='line-number'>12</span> <span class='line-number'>13</span> <span class='line-number'>14</span> <span class='line-number'>15</span> <span class='line-number'>16</span> <span class='line-number'>17</span> <span class='line-number'>18</span> <span class='line-number'>19</span> <span class='line-number'>20</span> <span class='line-number'>21</span> <span class='line-number'>22</span> <span class='line-number'>23</span> <span class='line-number'>24</span> <span class='line-number'>25</span> <span class='line-number'>26</span> <span class='line-number'>27</span> <span class='line-number'>28</span> <span class='line-number'>29</span> <span class='line-number'>30</span> </pre></td><td class='code'><pre><code class=''><span class='line'>{ </span><span class='line'> "agents": { </span><span class='line'> "list": [ </span><span class='line'> { </span><span class='line'> "id": "assistant", </span><span class='line'> "default": true, </span><span class='line'> "workspace": "~/.openclaw/workspace-assistant", </span><span class='line'> "agentDir": "~/.openclaw/agents/assistant/agent" </span><span class='line'> }, </span><span class='line'> { </span><span class='line'> "id": "research", </span><span class='line'> "workspace": "~/.openclaw/workspace-research", </span><span class='line'> "agentDir": "~/.openclaw/agents/research/agent" </span><span class='line'> } </span><span class='line'> ] </span><span class='line'> }, </span><span class='line'> "bindings": [ </span><span class='line'> { </span><span class='line'> "agentId": "research", </span><span class='line'> "match": { </span><span class='line'> "channel": "telegram", </span><span class='line'> "peer": { "kind": "direct", "id": "tg:123456789" } </span><span class='line'> } </span><span class='line'> }, </span><span class='line'> { </span><span class='line'> "agentId": "assistant", </span><span class='line'> "match": { "channel": "telegram" } </span><span class='line'> } </span><span class='line'> ] </span><span class='line'>}</span></code></pre></td></tr></table></div></figure> <h3>2.3 单机模式下的通信方式</h3> <p>同一 Gateway 内,agent 间协作优先走 session 工具:</p> <ul> <li><p><code>sessions_send</code>:向另一个 session 发消息并等待结果(可超时控制)。</p></li> <li><p><code>sessions_spawn</code>:派生隔离子代理执行长任务,完成后回传摘要。</p></li> </ul> <p>这两类通信在同一 Gateway 内是“内生通信”,上下文边界更清晰、可追踪性更好。</p> <h3>2.4 单主机多 OpenClaw 实例:可做,但要明确边界</h3> <p>有些团队会在同一台机器上启动多个 OpenClaw 进程(而不是一个 Gateway 托管多个 agent)。这个方案不是主路径,但在“强隔离”诉求下可用。</p> <p>适用场景:</p> <ul> <li><p>你需要把不同业务线彻底隔离到不同进程生命周期。</p></li> <li><p>你希望为不同实例配置不同端口、不同状态目录、不同系统服务策略。</p></li> </ul> <p>必须满足的工程约束:</p> <ul> <li><p>每个实例使用独立 <code>OPENCLAW_STATE_DIR</code>。</p></li> <li><p>每个实例使用独立 Gateway 端口(避免 WS/HTTP 端口冲突)。</p></li> <li><p>每个实例的 channel 账号登录状态独立管理,避免同账号并发占用。</p></li> <li><p>每个实例独立 workspace/agentDir,避免会话与认证污染。</p></li> </ul> <p>实践建议:如果目标只是“多人格/多角色协作”,优先选择<strong>单 Gateway + 多 agent + bindings</strong>。只有当你明确需要“进程级隔离”时,再采用单主机多实例。</p> <hr /> <h2>3. 多 OpenClaw 主机:现实可用的 3 种协作拓扑</h2> <p>这里最容易误解:<strong>OpenClaw 官方当前核心是“单 Gateway 控制面”</strong>。跨主机协作不是默认内建成“跨 Gateway 透明 RPC”。</p> <p>所以工程上要用“桥接层”把多主机连起来。</p> <h3>3.1 拓扑 A:渠道桥接(推荐起步)</h3> <ul> <li><p>Host-A 的 agent 通过消息渠道(如 Telegram Bot/群)发任务。</p></li> <li><p>Host-B 作为另一个 OpenClaw 实例在同渠道接收并处理。</p></li> <li><p>处理结果再通过渠道回发到 Host-A 或人工会话。</p></li> </ul> <p>优点:部署快,稳定性高,几乎不用改 OpenClaw 内核。</p> <h3>3.2 拓扑 B:Webhook / Hook 事件桥接</h3> <ul> <li><p>Host-A 将任务打包成结构化事件(JSON)投递给 Host-B 的接收端。</p></li> <li><p>Host-B 的 Hook/入口会话消费事件并触发 agent 执行。</p></li> <li><p>回传可走 webhook 回调或消息渠道。</p></li> </ul> <p>优点:便于与现有后端系统集成,适合平台化。</p> <h3>3.3 拓扑 C:外部任务总线桥接(企业场景)</h3> <ul> <li><p>两台 OpenClaw 通过外部队列/任务系统(如 Redis Streams、Kafka、SQS)解耦。</p></li> <li><p>OpenClaw 只做“智能执行器”,任务编排交给外部工作流层。</p></li> </ul> <p>优点:吞吐与治理能力最好,但实施复杂度最高。</p> <hr /> <h2>4. 代理间通信与协作:建议采用“分层协议”</h2> <h3>4.1 协作协议(建议)</h3> <ul> <li><p>控制消息:任务编号、优先级、超时、重试策略。</p></li> <li><p>业务消息:输入参数、上下文摘要、期望输出格式。</p></li> <li><p>回执消息:状态(accepted/running/done/failed)、结果摘要、错误分类。</p></li> </ul> <h3>4.2 角色分工(建议)</h3> <ul> <li><p>Orchestrator Agent:接任务、拆解、派发、汇总。</p></li> <li><p>Worker Agent:按契约执行单一子任务。</p></li> <li><p>Reviewer Agent:做一致性检查与质量门禁。</p></li> </ul> <h3>4.3 三条硬规则</h3> <ul> <li><p><strong>幂等键</strong>:每个任务都要有业务 id,重复投递可安全去重。</p></li> <li><p><strong>超时与降级</strong>:<code>sessions_send</code>/外部桥接必须有 timeout 与 fallback。</p></li> <li><p><strong>上下文最小化</strong>:跨代理只传“必要上下文 + 结构化结果”,不要整段历史硬转发。</p></li> </ul> <h3>4.4 协议补充:A2A(Google Agent2Agent)与 ANP(Agent Network Protocol)</h3> <p>在跨系统、跨组织的多代理协作里,可以把 OpenClaw 作为运行时,把 A2A/ANP 当作“外部互联协议层”。</p> <ul> <li><p><strong>A2A(Agent2Agent)</strong>:Google 发起的开放互操作协议,强调任务生命周期、能力发现(Agent Card)、长任务状态同步,以及基于 HTTP / SSE / JSON-RPC 的标准化通信。</p></li> <li><p><strong>ANP(Agent Network Protocol)</strong>:国内社区推动的开源协议,重点放在开放网络中的智能体身份与安全通信(例如 DID 身份、认证与加密通道)。</p></li> </ul> <p>一个实用落地方式:</p> <ul> <li><p>OpenClaw 内部(同 Gateway 或同实例)优先用 <code>sessions_send</code> / <code>sessions_spawn</code>。</p></li> <li><p>OpenClaw 与外部 Agent 平台协作时,可通过桥接层接入 A2A。</p></li> <li><p>在跨组织、需要身份自治与安全互信的场景,可评估引入 ANP 作为身份与通信补充层。</p></li> </ul> <p>注意:协议选型要看你的治理边界——企业内统一平台优先 A2A 生态兼容,开放网络互联优先关注 ANP 的身份与安全模型成熟度。</p> <hr /> <h2>5. 实操中的常见坑</h2> <ul> <li><p>把多个 agent 复用同一个 <code>agentDir</code>,导致认证/会话冲突。</p></li> <li><p>bindings 规则不够具体,出现“路由命中漂移”。</p></li> <li><p>把跨主机协作当成同机 <code>sessions_send</code>,结果通信链路设计不完整。</p></li> <li><p>没有幂等,重试时重复执行副作用(重复发消息/重复写库)。</p></li> <li><p>没有统一状态模型,排障时看不到“任务卡在哪一跳”。</p></li> </ul> <hr /> <h2>6. 给团队的落地建议(从 0 到 1)</h2> <ul> <li><p>第一步:先在单机把“多 Agent + bindings + sessions_spawn”跑顺。</p></li> <li><p>第二步:引入一种跨主机桥接(先渠道桥接,再升级 webhook/队列)。</p></li> <li><p>第三步:补齐治理(幂等、重试、审计、告警、权限边界)。</p></li> </ul> <p>这样做的好处是:每一步都可验证,不会把复杂度一次性打满。</p> <hr /> <h2>7. 总结</h2> <p>OpenClaw 的多 Agent 架构要点可以压缩成一句话:</p> <blockquote><p><strong>同机协作用 Gateway 内生会话工具,跨机协作用外部桥接层;隔离、路由、幂等是稳定性的三根柱子。</strong></p></blockquote> <p>如果你正在做多代理系统,不要先追求“最智能”,先把“能稳定协作”做出来。</p> <hr /> <h2>参考资料(权威来源)</h2> <ul> <li><p>OpenClaw 官方文档:Gateway Architecture<br/> <a href="https://docs.openclaw.ai/concepts/architecture">https://docs.openclaw.ai/concepts/architecture</a></p></li> <li><p>OpenClaw 官方文档:Multi-Agent Routing<br/> <a href="https://docs.openclaw.ai/concepts/multi-agent">https://docs.openclaw.ai/concepts/multi-agent</a></p></li> <li><p>OpenClaw 官方文档:Session Tools(sessions_send / sessions_spawn)<br/> <a href="https://docs.openclaw.ai/concepts/session-tool">https://docs.openclaw.ai/concepts/session-tool</a></p></li> <li><p>OpenClaw 官方文档:Sub-Agents<br/> <a href="https://docs.openclaw.ai/tools/subagents">https://docs.openclaw.ai/tools/subagents</a></p></li> <li><p>OpenClaw 官方文档:Configuration Reference<br/> <a href="https://docs.openclaw.ai/gateway/configuration-reference">https://docs.openclaw.ai/gateway/configuration-reference</a></p></li> <li><p>Google Developers Blog:Announcing the Agent2Agent Protocol (A2A)<br/> <a href="https://developers.googleblog.com/en/a2a-a-new-era-of-agent-interoperability/">https://developers.googleblog.com/en/a2a-a-new-era-of-agent-interoperability/</a></p></li> <li><p>A2A 协议官方文档(Linux Foundation 托管)<br/> <a href="https://a2a-protocol.org/latest/">https://a2a-protocol.org/latest/</a></p></li> <li><p>ANP 官方文档(中文)<br/> <a href="https://www.agent-network-protocol.com/zh/guide/">https://www.agent-network-protocol.com/zh/guide/</a></p></li> <li><p>ANP 身份与加密通信层<br/> <a href="https://agentnetworkprotocol.com/docs/concepts/identity/">https://agentnetworkprotocol.com/docs/concepts/identity/</a></p></li> </ul>

2026/3/11
阅读更多

OpenClaw 架构剖析

<p>上一篇聊了「OpenClaw 是什么」。这一篇更偏工程视角:<strong>OpenClaw 到底怎么实现一个可长期运行的 Agent 系统?消息是怎么进来的?怎么路由到 Agent?工具调用与定时任务如何编排?</strong></p> <p>如果你做过 Agent 落地,会很熟悉这些关键词:channel、tool、session、cron、memory、安全边界、幂等、观测……OpenClaw 的价值在于把这些抽象成一套可部署的 runtime。</p> <!-- more --> <h2>1. OpenClaw 由哪些模块组成?</h2> <p><img src="https://www.rowkey.cn/post_images/openclaw/arch.jpg" width="450"/></p> <p>你可以把 OpenClaw 想成三层:</p> <p>1) <strong>接入层(Channels)</strong>:连接外部世界(Telegram/钉钉/QQ/…),负责收消息、发消息。</p> <p>2) <strong>编排层(Gateway + Routing + Sessions)</strong>:决定“这条消息交给哪个 Agent/哪个会话”,并维护状态与生命周期。</p> <p>3) <strong>执行层(Agents + Tools/Skills + Jobs)</strong>:Agent 负责决策,Tools 负责执行,Jobs(cron 等)负责触发。</p> <p>对应到工程实体,大致是:</p> <blockquote><p>关键约束(和官方架构一致):<strong>一台主机一个 Gateway</strong>、<strong>连接首帧必须是 <code>connect</code> 握手</strong>、<strong>事件流默认不回放(客户端需自行补拉状态)</strong>。</p></blockquote> <ul> <li><strong>Gateway(守护进程)</strong>:常驻运行,连接多个 channel provider,维护连接与重连。</li> <li><strong>Channel Plugin</strong>:每个渠道一个适配器,实现 inbound/outbound。</li> <li><strong>WebChat/UI 客户端</strong>:本质是通过 WebSocket 连接 Gateway 的控制平面客户端。</li> <li><strong>Agent</strong>:可配置多个(不同模型/不同工作空间/不同权限),按路由绑定到渠道。</li> <li><strong>Session</strong>:把对话与任务上下文组织起来(类似“对话线程 + 状态机”)。</li> <li><strong>Skills</strong>:可复用的工具说明与脚本集合,给 Agent 一个“可靠使用工具”的方法。</li> <li><strong>Cron/Jobs</strong>:把定时触发变成一等公民,支持隔离执行、送达与可配置去重策略。</li> <li><strong>Memory</strong>:长期/短期记忆(以文件记忆为主 + 语义检索),为跨会话连续性服务。</li> </ul> <h2>2. 核心流程 1:一条消息从“外部”到“Agent”的路径</h2> <p>把它拆成 8 步,你会发现它是一条典型的事件驱动流水线:</p> <p>1) <strong>Channel 收到事件</strong></p> <ul> <li>可能是文本、图片、语音、文件、按钮回调等。</li> </ul> <p>2) <strong>插件标准化(Normalize)</strong></p> <ul> <li>把不同平台的 message schema 归一:from/to/messageId/timestamp/chatType/attachments…</li> </ul> <p>3) <strong>封装输入(Envelope)</strong></p> <ul> <li>给 Agent 一个稳定的“输入格式”,避免每个渠道都写一套提示词。</li> </ul> <p>4) <strong>路由(Routing/Binding)</strong></p> <ul> <li>根据规则把消息交给指定 agent(例如 QQ 走 hang-ai,Telegram 走 main)。</li> </ul> <p>5) <strong>会话选择(Session Key)</strong></p> <ul> <li>同一用户/群聊映射到固定 session,确保上下文连续。</li> </ul> <p>6) <strong>Agent 推理(Decide)</strong></p> <ul> <li>Agent 选择:直接回复,还是调用工具(搜索/执行/写文件/定时任务)。</li> </ul> <p>7) <strong>工具执行(Tools/Skills)</strong></p> <ul> <li>工具是“副作用层”:读写文件、访问网络、调用 API、跑命令。</li> </ul> <p>8) <strong>回传与发送(Outbound Deliver)</strong></p> <ul> <li>将 Agent 结果交给 channel 插件发送,处理分段、markdown、富媒体等。</li> </ul> <blockquote><p>这条链路里,最容易做坏的其实是第 2~5 步:输入不干净、路由不清晰、session 混乱,都会让 Agent “聪明但不稳定”。OpenClaw 的设计重点正是在这里。</p></blockquote> <h2>3. 核心流程 2:工具调用如何“可靠地执行”?</h2> <p>一个可落地的 Agent 系统,工具调用必须具备三种属性:</p> <h3>3.1 可控(Controllable)</h3> <ul> <li>工具入口有限且明确(不是什么都能 exec)。</li> <li>敏感能力要有策略(allowlist/denylist/人工确认)。</li> </ul> <h3>3.2 可观测(Observable)</h3> <ul> <li>能看到:调用了什么工具、参数是什么、耗时多久、失败原因。</li> <li>能复盘:某次输出是怎么来的。</li> </ul> <h3>3.3 可恢复(Recoverable)</h3> <ul> <li>失败要能重试/降级(例如 web fetch 失败就换来源)。</li> <li>长链路要能分段(先产出,再补充)。</li> </ul> <p>OpenClaw 的 skill 机制,本质是在做“<strong>把提示词工程变成可维护的工程资产</strong>”。你不希望每次靠大模型临场发挥写一堆 shell;你希望它遵循一个稳定的脚本与约定。</p> <h2>4. 核心流程 3:Cron/Jobs(定时任务)为什么是 Agent 生产化的关键?</h2> <p>很多 Agent 项目死在“能对话,但不能跑”。原因是:</p> <ul> <li>任务不能准点触发</li> <li>不能隔离执行(被主会话上下文污染)</li> <li>失败后没有送达保障</li> <li>会重复发送(没有幂等)</li> </ul> <p>OpenClaw 的 cron 设计可以抽象成:</p> <ul> <li><strong>触发器(schedule)</strong>:cron / every / at</li> <li><strong>执行体(payload)</strong>:systemEvent 或 agentTurn(隔离会话跑)</li> <li><strong>投递(delivery)</strong>:把结果发到指定 channel/target</li> <li><strong>幂等/去重</strong>:通常用 state 文件(last_date/last_hash)或业务键</li> </ul> <blockquote><p>一个很实用的经验:<strong>凡是“每天推送/定时汇总/提醒”的任务,都要把幂等写成硬性要求</strong>。这比“写得更聪明”重要得多。</p></blockquote> <h2>5. 语音/图片等多媒体:为什么“把内容注入正文”很关键?</h2> <p>以语音为例,很多系统会把语音转写结果作为“附件描述”塞进消息里,但 Agent 可能把它当噪声过滤掉,最后表现为“不回复”。</p> <p>更可靠的做法是:</p> <ul> <li>语音 → 转写</li> <li><strong>把转写文本当作用户输入正文</strong>(例如前缀“(语音转写)xxx”)</li> <li>同时保留附件元信息(可选):文件路径、时长、来源</li> </ul> <p>这其实是一条通用原则:</p> <blockquote><p><strong>Agent 真正在乎的是“它以为用户说了什么”。</strong> 所以多模态处理的结果要进入“正文层”,而不是“旁注层”。</p></blockquote> <h2>6. 可复用的方法论:如何用 OpenClaw(或任何 Agent Runtime)做出稳定的系统?</h2> <p>下面这套方法论与 OpenClaw 强相关,但本质上是通用的 Agent 工程原则。</p> <h3>方法论 1:把 Agent 系统拆成“决策层 vs 执行层”</h3> <ul> <li>决策层:LLM/Agent(可变、概率性)</li> <li>执行层:脚本/工具/skill(确定性、可测试)</li> </ul> <p>越早把副作用收敛到执行层,你的系统越稳。</p> <h3>方法论 1.5:模块化优先——Plugin 与 Skill 是“可加载的工程单元”</h3> <p>很多 Agent 项目后期会失控,本质原因是:所有能力都堆在一个巨大的代码/提示词里,无法升级、无法替换、也无法复用。</p> <p>OpenClaw 的架构里有两个非常值得复用的抽象:</p> <ul> <li><strong>Plugin(插件)</strong>:面向“渠道/外部系统”的适配层。它把不稳定、强耦合的外部差异隔离掉(消息格式、鉴权、富媒体、限流、重连…)。</li> <li><strong>Skill(技能)</strong>:面向“工具使用”的可维护模块。它把“如何调用某个工具”沉淀成文档/脚本/约定,让 Agent 可靠执行。</li> </ul> <p>你在研发其他项目时可以照搬这套思想:</p> <ul> <li><strong>把所有 I/O 做成插件接口</strong>(inbound/outbound 都走统一协议)</li> <li><strong>把执行能力做成可装卸的模块</strong>(每个模块有清晰的输入输出契约)</li> <li><strong>把运行时策略配置化</strong>(允许按项目/按环境切换能力组合)</li> </ul> <p>这样系统才具备“长期演进能力”:</p> <ul> <li>想换搜索引擎/供应商?替换 skill 即可。</li> <li>想多接一个渠道?加一个 plugin,不影响核心。</li> <li>想做权限收敛?在 runtime/策略层统一控制。</li> </ul> <h3>方法论 2:事件驱动 + 明确的状态机</h3> <p>你会发现 OpenClaw 的心智模型很像: - event in → route → session → agent → tools → deliver</p> <p>这其实就是一个状态机。把“会话键/幂等键/任务键”定义清楚,系统就会稳定。</p> <h3>方法论 2.5:把“配置”当成系统契约(Contract),而不是参数堆</h3> <p>OpenClaw 里很多稳定性来自于“约束前置”:</p> <ul> <li>绑定规则(哪个 channel → 哪个 agent)</li> <li>工具权限(哪些 tool 可用/哪些 elevated 禁止)</li> <li>推送策略(cron 的去重文件、重试退避)</li> </ul> <p>工程上你可以把它抽象成:</p> <ul> <li><strong>配置即策略</strong>:把可变决策(谁能做什么、什么时候做)从代码里拿出来。</li> <li><strong>配置可审计</strong>:出现事故时能追溯“当时允许了什么”。</li> <li><strong>配置可迁移</strong>:换环境/换机器/换团队时,复制配置即可复现能力。</li> </ul> <h3>方法论 3:任何自动推送都必须幂等</h3> <p>推荐最低配:</p> <ul> <li><code>last_date</code>(今天发过就退出)</li> <li><code>last_hash</code>(内容一致就退出)</li> </ul> <p>把它当成产品级需求,而不是“优化项”。</p> <h3>方法论 4:先做可观测,再做智能</h3> <p>一个很反直觉的点:</p> <ul> <li>你以为“让模型更聪明”能解决问题</li> <li>实际上,80% 的线上问题来自:超时、失败重试、权限、消息格式、平台限制</li> </ul> <p>所以先把日志、运行记录、失败原因打通,后面再谈“更聪明”。</p> <h3>方法论 5:安全边界要前置</h3> <p>建议至少做到:</p> <ul> <li>渠道 allowlist / groupPolicy</li> <li>敏感工具禁用或需要确认</li> <li>不信任外部内容(把网页/邮件当不可信输入)</li> </ul> <p>Agent 的安全不是模型能解决的,是架构要解决的。</p> <h2>7. 总结</h2> <p>OpenClaw 的架构并不神秘:它把 Agent 的生产化问题拆解为一组工程模块(channel、session、tool、cron、memory、安全策略),并把“核心流程”做成可运行、可观测、可扩展的系统。</p> <p>如果你要复用它的方法论,记住一句话就够:</p> <blockquote><p><strong>让 LLM 做决策,让系统做约束,让工具做执行。</strong></p></blockquote> <p>这就是把 Agent 从 demo 推向长期运行系统的关键。</p>

2026/3/2
阅读更多

OpenClaw 是什么

<p>这两年大家对「Agent」的讨论越来越多:能自动查资料、能写代码、能跑流程、还能定时汇总。但真要把它放进日常工作流,会立刻遇到几个现实问题:<strong>它怎么和你的消息渠道连起来?怎么定时?怎么拿到你本机/服务器的上下文?怎么安全地执行命令?怎么长期稳定运行?</strong></p> <p>OpenClaw 解决的不是“再做一个聊天机器人”,而是把这些“让 Agent 变成生产力”的工程问题打包成一套可部署、可扩展的运行时。</p> <!-- more --> <h2>1. OpenClaw 到底是什么?</h2> <p>一句话:<strong>OpenClaw 是一个面向个人/团队的 Agent 运行时(Agent Runtime)</strong>。</p> <p>它更像一个“智能操作系统/中枢”,把三件事连接起来:</p> <p>1) <strong>你的输入输出渠道(Channels)</strong>:比如 Telegram、钉钉、QQ、Slack…你在哪里说话,它就在哪里接收与回复。</p> <p>2) <strong>可执行的工具系统(Tools/Skills)</strong>:不仅是“搜索”,还包括:跑脚本、读写文件、定时任务、发消息、抓网页、处理媒体、接入第三方服务等。</p> <p>3) <strong>Agent 的会话与状态(Sessions/Memory/Jobs)</strong>:把对话、任务、定时推送、长期记忆等组织起来,能持续运行、可追踪、可回放。</p> <p>从使用感受上,它像一个“你自己的 AI 助理平台”,而不是单次问答。</p> <h2>2. 为什么会出现 OpenClaw?(解决 Agent 落地的 4 个痛点)</h2> <h3>2.1 只靠 Chat,不够</h3> <p>把大模型当聊天工具,最多做到“回答问题”。但现实工作更像“完成任务”:</p> <ul> <li>每天 10:00 推送 AI 新闻</li> <li>监控某些关键词/博客更新</li> <li>把语音转文字、把图片转摘要</li> <li>在你允许的情况下执行命令、生成文件、提交仓库</li> </ul> <p>这些都需要一个稳定的执行层。</p> <h3>2.2 工具碎片化,拼起来很痛</h3> <p>你可以用各种 bot、脚本、cron、Webhook、爬虫、自动化平台……但拼在一起时,常见问题是:</p> <ul> <li>触发点分散(消息、定时、网页变化)</li> <li>状态难管理(重复发送、幂等、去重)</li> <li>缺少统一的权限与审计</li> <li>失败重试、降级策略没人兜底</li> </ul> <p>OpenClaw 的定位就是把这些“胶水层”标准化。</p> <h3>2.3 Agent 需要“能跑得起来”的生命周期</h3> <p>Agent 不应该只存在于一次对话里,而应该具备:</p> <ul> <li><strong>可持续运行</strong>(daemon/service)</li> <li><strong>可定时触发</strong>(cron jobs)</li> <li><strong>可隔离执行</strong>(isolated sessions)</li> <li><strong>可观察</strong>(日志、运行记录、失败原因)</li> </ul> <h3>2.4 更重要的是:安全边界</h3> <p>Agent 一旦能执行命令、能发消息、能访问外部链接,就一定会遇到:</p> <ul> <li>prompt injection(内容里夹带指令)</li> <li>权限扩大(工具链越接越多越危险)</li> <li>数据泄露(日志、外发、第三方 API)</li> </ul> <p>OpenClaw 的思路是:把工具权限、通道策略、定时任务、敏感能力控制放进同一套配置与运行时里。</p> <h2>3. 怎么使用 OpenClaw?(一个最小心智模型)</h2> <p>OpenClaw 里你可以把系统理解成:</p> <ul> <li><strong>Gateway(网关/守护进程)</strong>:负责连接各个 channel、接收消息、派发给 agent、把回复送回去。</li> <li><strong>Agent(智能体)</strong>:负责“思考与决策”,选择调用哪些工具。</li> <li><strong>Skills(技能)</strong>:一套可复用的“说明 + 脚本 + 约定”,让 agent 可靠地使用工具。</li> <li><strong>Cron(定时任务)</strong>:把“每天/每小时/某个时刻做事”变成一等公民。</li> </ul> <p>一个典型的工作流是:</p> <p>1) 你在 Telegram/钉钉/QQ 里发一句话:</p> <blockquote><p>“每天 10 点给我推送 AI 新闻”</p></blockquote> <p>2) Agent 把它变成一个 cron job(带去重与失败重试)。</p> <p>3) 到点了 cron 自动触发,agent 做检索→整理→发送消息。</p> <p>4) 你觉得格式不对,再要求调整;之后就稳定每天按你的格式推送。</p> <h2>3.5 一个“最小 Quickstart”(不追求完美,只求跑通)</h2> <p>如果你只想快速体验 OpenClaw 的核心价值,可以按这个顺序:</p> <p>1) <strong>选一个入口渠道</strong>:先接 Telegram/钉钉/QQ 其中一个(你日常最常用的)。</p> <p>2) <strong>跑通一条闭环任务</strong>:例如“每天 10:00 推送 AI 新闻”。</p> <p>3) <strong>把输出格式固定下来</strong>:标题、条目数量、每条的字段(描述/日期/链接)。</p> <p>4) <strong>加入幂等/去重</strong>:同一天已发送就退出(避免重复轰炸)。</p> <p>5) <strong>再逐步加技能</strong>:比如从“新闻推送”升级到“跟踪你的关注源 + 只推相关内容”。</p> <p>这一套的关键是:<strong>先让系统进入稳定运行状态</strong>,而不是一上来追求大而全。</p> <h2>4. OpenClaw 能做哪些场景?(从轻到重)</h2> <h3>4.1 信息获取与整理</h3> <ul> <li>每日 AI/科技新闻推送(可指定来源、语言、数量、格式)</li> <li>监控 RSS/博客更新(发现新文章就提醒)</li> <li>追踪某个领域的关键词(模型发布、投融资、政策)</li> </ul> <h3>4.2 沟通与会议辅助</h3> <ul> <li>语音消息自动转写 + 生成纪要</li> <li>多轮对话里的 TODO 提取与跟踪</li> <li>帮你写邮件/公告/总结,统一口吻</li> </ul> <h3>4.3 工程与开发工作流</h3> <ul> <li>代码库问答、PR 说明、变更总结</li> <li>自动生成文档/模板(比如周报、复盘、技术方案)</li> <li>结合 GitHub CLI 做 issue/PR 维护(在权限允许时)</li> </ul> <h3>4.4 你的“个人自动化中枢”</h3> <ul> <li>定时行情(BTC/黄金/宏观指标)</li> <li>定时提醒(喝水、会议前提醒、月底结算)</li> <li>把零散工具串成稳定流程(抓取→处理→分发)</li> </ul> <h3>4.5 两个“最像生产力”的 Demo(建议你自己也这么配)</h3> <p><strong>Demo 1:每日新闻推送(带去重)</strong></p> <ul> <li>触发:每天 10:00</li> <li>动作:检索过去 24h 的 AI/科技新闻 → 按固定模板输出 10 条 → 发送到钉钉/Telegram</li> <li>关键点:写入 <code>last_date</code>/<code>last_hash</code> 做幂等;发送失败有退避重试</li> </ul> <p><strong>Demo 2:语音消息→转写→直接回复</strong></p> <ul> <li>触发:你在聊天里发一条语音</li> <li>动作:自动下载语音文件 → 转码(如 AMR/SILK→WAV)→ Whisper 转写 → 把转写文本当作“用户输入正文”让 Agent 回复</li> <li>关键点:如果只把转写当作“附件描述”,很多 Agent 会把它当噪声忽略;要注入到正文里。</li> </ul> <h2>5. 一些实践建议(把它用成生产力,而不是玩具)</h2> <p>1) <strong>先从一个强需求开始</strong>:例如“每天 10 点新闻推送”。从 0 到 1 跑通,价值立刻可见。</p> <p>2) <strong>格式标准化</strong>:输出要固定模板,后面才能自动化复用。</p> <p>3) <strong>幂等与去重</strong>:定时推送必须有“今天已发则退出”的逻辑。</p> <p>4) <strong>给 Agent 明确的权限边界</strong>:哪些能访问、哪些不能执行,越早设定越省心。</p> <p>5) <strong>把它当成一个长期系统</strong>:日志、状态文件、失败重试、降级策略都要有。</p> <h2>6. 总结</h2> <p>OpenClaw 的价值在于:它让 Agent 具备“能接入你真实工作流、能长期稳定运行、能安全执行工具”的工程底座。</p> <p>当你不再把 AI 当成一次性问答,而是当成一个可以持续协作的“数字员工/助理”,你需要的就不是一个聊天窗口,而是一套运行时——这就是 OpenClaw 为什么会出现。</p>

2026/2/28
阅读更多

推荐订阅

Chen's Blog,分享安全领域的所思、所想、所学。

空鸣深语

无论你是游戏死忠,还是轻度的休闲玩家,在这里都能找到感兴趣的东西。

分享免费、小巧、实用、有趣、绿色的软件

Cloudflare 官方博客中文版,涵盖安全、AI 和开发者相关内容