<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

  <title><![CDATA[Category: ai | 后端技术杂谈]]></title>
  <link href="https://www.rowkey.cn/blog/categories/ai/atom.xml" rel="self"/>
  <link href="https://www.rowkey.cn/"/>
  <updated>2026-04-07T14:32:15+00:00</updated>
  <id>https://www.rowkey.cn/</id>
  <author>
    <name><![CDATA[HJ]]></name>
    <email><![CDATA[superhj1987@126.com]]></email>
  </author>
  <generator uri="http://octopress.org/">Octopress</generator>

  
  <entry>
    <title type="html"><![CDATA[一句话直出5分钟AI漫剧：OiiOii + Seedance2.0 如何打破视频工作流的瓶颈]]></title>
    <link href="https://www.rowkey.cn/blog/2026/04/07/ai-video-workflow-oii-oii/"/>
    <updated>2026-04-07T22:30:00+08:00</updated>
    <id>https://www.rowkey.cn/blog/2026/04/07/ai-video-workflow-oii-oii</id>
    <content type="html"><![CDATA[<p>最近看AI漫剧有点看疯魔了。如果你也经常刷短视频，会发现现在的AI漫剧无论是剧情（“男主活了800岁的叶家老祖扮猪吃老虎”），还是画面呈现，都已经卷到了一个新高度。</p>

<p>但过去很长一段时间，真在动手做AI短剧的创作者，都会遇到一个极其痛苦的效率瓶颈：<strong>工具割裂，工作流太散。</strong></p>

<p>即使有了 Seedance 2.0 这样强大的基座模型（单次最多生成 15 秒），距离一部完整的漫剧还差得远——写完整剧本、设计角色、拆分场景分镜、保持一致性，最后再手动连贯成完整视频，每一个环节都需要在不同的工具和页面之间反复横跳。</p>

<p>为了解决长视频制作的一致性和连贯性瓶颈，我们需要真正的<strong>全链路工作流整合</strong>。</p>

<!-- more -->


<h2>曾经的痛点：碎片化的手工拼接</h2>

<p>以前做AI漫剧，几乎是一个纯纯的“手工活”：</p>

<ol>
<li><strong>分镜切分繁琐</strong>：即使借助强大的画布工具，也需要一个个节点地把剧本切分成单个镜头。</li>
<li><strong>生成限制</strong>：大部分视频模型单次生成的时长非常受限，长视频只能通过多段拼接。</li>
<li><strong>一致性维持难</strong>：在不同的场景和镜头之间，保持相同角色的外貌、服装一致性，需要消耗大量的时间去调优 Prompt 和垫图。</li>
<li><strong>流程割裂</strong>：剧本、分镜、生成、剪辑分散在完全不同的工具里。</li>
</ol>


<p>这就导致，明明我们有了非常强大的单点生成工具，却很难高频、稳定地量产长视频内容。</p>

<h2>破局：把任务点“串”起来</h2>

<p>最近，主攻动画的AI视频工具 OiiOii 接入了满血不排队的 Seedance 2.0 API。它的核心突破并不在于模型本身，而在于<strong>工作流的封装与整合</strong>。</p>

<p>它解决了创作者最核心的痛点：</p>

<ul>
<li><strong>一站式串联</strong>：把剧本创作、角色设计、场景分镜设计、一致性控制全部连起来。</li>
<li><strong>大幅降低操作门槛</strong>：不再需要“逐个镜头”地去抠，甚至可以通过一段剧情描述（一句话），直接驱动底层引擎，一气呵成地输出长达 5 分钟的完整漫剧。</li>
</ul>


<p>这就相当于从“手动驾驶”直接进化到了“自动导航”。你只需要给出目的地（剧情描述），系统自动帮你完成中间所有的挂挡、踩油门和方向盘修正。</p>

<h2>给内容创作者的启示</h2>

<p>随着基础模型的红利期逐渐平缓，<strong>AI 视频的下半场竞争，一定是“工作流”的竞争。</strong></p>

<p>单点技术的惊艳已经不足以构成护城河，谁能把这些散落的技术节点，封装成普通用户可以轻易上手、稳定产出的标准化流水线，谁就能吃下这波内容爆发的红利。</p>

<p>对于我们日常的 AI 创作也是一样：不要局限于寻找“最强模型”，而要思考如何搭建“最顺畅的工作流”。</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[SOUL.md 和 AGENTS.md 到底有什么区别？Agent 配置别再混着写了]]></title>
    <link href="https://www.rowkey.cn/blog/2026/04/06/soul-vs-agents/"/>
    <updated>2026-04-06T00:17:00+08:00</updated>
    <id>https://www.rowkey.cn/blog/2026/04/06/soul-vs-agents</id>
    <content type="html"><![CDATA[<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>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[AI Agent 正在进入工程化深水区：从代码模型、生产框架到多智能体协作协议]]></title>
    <link href="https://www.rowkey.cn/blog/2026/03/31/ai-agent-engineering-depth/"/>
    <updated>2026-03-31T01:10:00+08:00</updated>
    <id>https://www.rowkey.cn/blog/2026/03/31/ai-agent-engineering-depth</id>
    <content type="html"><![CDATA[<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>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[OpenClaw Gateway 三种对外接口怎么选？]]></title>
    <link href="https://www.rowkey.cn/blog/2026/03/24/openclaw-gateway-protocol-comparison/"/>
    <updated>2026-03-24T16:36:02+08:00</updated>
    <id>https://www.rowkey.cn/blog/2026/03/24/openclaw-gateway-protocol-comparison</id>
    <content type="html"><![CDATA[<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>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Agent 落地不靠更强模型：后端团队先补这 4 个治理动作]]></title>
    <link href="https://www.rowkey.cn/blog/2026/03/18/agent-governance-for-backend-teams/"/>
    <updated>2026-03-18T21:00:00+08:00</updated>
    <id>https://www.rowkey.cn/blog/2026/03/18/agent-governance-for-backend-teams</id>
    <content type="html"><![CDATA[<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>
]]></content>
  </entry>
  
</feed>
