OpenClaw + Skill + Agent:为什么“能跑”不等于“能上线”?
一个周末写出来的原型可以在你的笔记本电脑上完美运行,但同样的代码放到生产环境中,面对真实的流量、真实的数据、真实的用户,可能会在几分钟内崩溃。:控制平面不直接解决这个问题,但它提供了可观测性——你可以看到Agent 在哪些 Skill 上经常选错,从而针对性地优化 Skill 描述或拆分 Skill。:控制平面提供声明式的错误处理策略——开发者定义“如果 Skill B 失败,则执行 Skill
一、Demo 与生产之间的鸿沟
在软件工程的每一个领域,“能跑”和“能上线”之间都存在着一条鸿沟。一个周末写出来的原型可以在你的笔记本电脑上完美运行,但同样的代码放到生产环境中,面对真实的流量、真实的数据、真实的用户,可能会在几分钟内崩溃。
在 Agent 系统领域,这条鸿沟比传统软件更大、更深、更隐蔽。原因在于:传统软件的“能跑”和“能上线”之间的差异,主要是量的差异——更多的用户、更多的数据、更长的运行时间。而 Agent 系统的差异,除了“量”之外,还有质的差异——Demo 阶段和规模化阶段的系统行为本质上是不同的。
本章将拆解这条鸿沟的具体表现,解释为什么 OpenClaw + Skill + Agent 的典型架构在 Demo 阶段看起来完美,但在生产环境中会遭遇系统性失败。更重要的是,我们将说明 MCP 控制平面如何成为跨越这条鸿沟的“桥梁”。
二、Demo 阶段:为什么看起来“完美”?
让我们回到第四章中智享科技的故事,但这次我们聚焦于他们的 Demo 阶段。
Demo 的环境
在向第一个客户展示之前,智享科技的团队搭建了一个完美的 Demo 环境:
- 5 个精心挑选和测试的 Skill,覆盖最常见的用户场景
- 一个预定义的测试数据集,包含 200 个典型用户问题和期望答案
- 一个本地运行的 OpenClaw 实例,没有任何网络延迟
- 一个固定的、经过调优的 Prompt
- 开发者手动监控每一次 Agent 调用,随时准备干预
在这个环境中,Agent 的表现近乎完美。200 个测试用例,准确率 98%,平均响应时间 2 秒。客户看着Demo,连连点头:“太棒了!这正是我们需要的。”
Demo 为什么“能跑”?
Demo 阶段的 Agent 系统之所以能跑,是因为以下几个因素共同作用:
因素一:Skill 数量少
5 个 Skill 意味着 Agent 的选择空间很小。大模型从 5 个选项中选出正确的那一个,准确率很高。Agent 的调用路径有限,团队可以在上线前手动测试所有可能的路径组合。
因素二:环境受控
Demo 环境是纯净的、可预测的。没有网络延迟,没有外部服务超时,没有并发请求冲突。每一个 Skill 调用都能在预期时间内返回预期结果。
因素三:输入可预测
测试数据集是固定的、经过筛选的。用户不会问“奇怪”的问题,不会用不规范的语法,不会尝试“越狱”或攻击。输入分布是平稳的,没有长尾场景。
因素四:人类随时介入
在 Demo 中,开发者就在旁边盯着。如果 Agent 做出了错误的决策,开发者可以立即终止演示,解释“这是一个边界情况,我们还在优化”。但在生产环境中,没有人 7x24 小时盯着每一个请求。
因素五:没有安全要求
Demo 不需要考虑凭证管理、权限控制、审计日志、人工审批。这些“生产环境才需要的东西”在 Demo 阶段完全可以忽略。
Demo 的幻觉
Demo 阶段最大的危险不是“系统跑不起来”,而是“系统跑起来了,但跑的方式有问题”。团队很容易产生一种幻觉:“我们的系统已经可以工作了,剩下的只是‘优化’和‘规模化’。”
这种幻觉是致命的。因为它掩盖了一个事实:Demo 阶段的“能跑”和生产环境的“能上线”之间,不是量变,而是质变。
三、生产环境:为什么同样架构“跑不通”?
现在,让我们把同一个 OpenClaw + Skill + Agent 架构放到生产环境中。智享科技的团队做了他们认为“正确”的事情:增加 Skill、接入真实数据、处理并发请求、部署到云端。
然后,问题开始浮现。
问题一:Skill 数量从 5 到 50,选择准确率从 98% 降到 67%
这不是偶然。大模型从 5 个选项中做选择的准确率,远高于从 50 个选项中做选择。原因包括:
- Prompt 变长了,模型更容易“遗忘”中间部分的指令
- Skill 描述可能相似,模型难以区分细微差异
- 模型的注意力机制在处理大量选项时效率下降
团队尝试了各种方法:优化 Skill 描述、给 Skill 分类、使用检索增强生成来动态选择相关 Skill。但这些方法各有局限,而且增加了系统复杂度。最终,67% 的准确率意味着近三分之一的请求调用了错误的 Skill——这在生产环境中是不可接受的。
问题二:网络延迟和超时改变了 Agent 的行为模式
在 Demo 中,所有 Skill 都是本地调用,响应时间在毫秒级。Agent 可以在几秒内完成多轮推理。
在生产环境中,Skill 调用需要通过网络访问外部服务。一个查询物流信息的 API 可能需要 2 秒才能返回;一个调用大模型情感分析的 API 可能需要 3 秒;一个生成发票的 API 可能需要 5 秒。
Agent 的推理过程依赖于 Skill 的返回结果。当 Skill 调用变慢时,Agent 的“等待时间”变长。这导致两个问题:
- 用户体验下降:用户等待 20 秒才能得到回复
- 超时处理复杂:Agent 需要决定“等多久算超时”“超时后重试还是放弃”
OpenClaw 框架提供了一些超时和重试机制,但它们是通用的、静态的。真实生产环境中的超时模式是动态的、依赖上下文的。一个在下午 2 点只需要 1 秒的 API,在双十一晚上 8 点可能需要 10 秒。静态的超时配置无法适应这种变化。
问题三:并发请求暴露了状态管理缺陷
在 Demo 中,只有一个用户在测试。在生产环境中,可能有成百上千个用户同时与 Agent 对话。
OpenClaw 的默认架构中,每个 Agent 实例通常维护自己的对话状态。当并发请求到来时,团队需要决定:
- 每个用户分配一个独立的 Agent 实例?(资源消耗大)
- 多个用户共享一个 Agent 实例?(状态可能混淆)
- 如何在不同实例之间同步状态?
更糟糕的是,Skill 调用本身可能不是线程安全的。两个 Agent 同时调用同一个 Skill 修改共享资源,可能导致数据竞争和不一致。
团队发现,他们在 Demo 阶段从未考虑过这些问题。当他们匆忙加上锁、事务、隔离级别时,系统变得缓慢而脆弱。
问题四:错误处理不再是“可选项”
在 Demo 中,如果某个 Skill 调用失败,开发者可以手动处理。在生产环境中,错误处理必须是自动化的、鲁棒的。
当 Agent 调用 Skill A 成功,调用 Skill B 失败时,系统应该怎么办?
- 回滚 Skill A 的操作?(如果 Skill A 是不可逆的,如“发送邮件”,则无法回滚)
- 重试 Skill B?(重试多少次?重试间隔多长?)
- 放弃整个任务?(如何通知用户?)
- 转人工处理?(人工如何接管?)
OpenClaw 框架提供了一些基础的错误处理钩子,但真正的挑战在于业务语义。同一个“调用失败”,在不同的业务上下文中需要不同的处理策略。这些策略无法被通用框架覆盖,必须由开发者针对每个 Skill、每个场景单独实现。
问题五:安全事件从“理论可能”变成“每天发生”
在 Demo 阶段,安全问题是“理论上的”——“理论上,Agent 可能调用 cancel_order”。在生产环境中,安全问题是“每天都在发生的”——攻击者会主动尝试让 Agent 做不该做的事。
智享科技的团队在系统上线后的第一周就遭遇了:
- 一个用户通过巧妙的 Prompt 诱导 Agent 调用了 cancel_order,取消了已发货的订单
- 一个用户的对话历史中包含恶意指令,被 Agent 在后续对话中误执行
- 开发者调试时打印的日志包含了 API Key,被采集到日志平台
这些问题在 Demo 阶段从未出现,不是因为系统“更安全”,而是因为没有人“尝试攻击”。
问题六:运维复杂度超出预期
OpenClaw + Skill + Agent 架构在生产环境中需要运维多个组件:
- OpenClaw 运行时(需要监控、重启、扩容)
- 每个 Skill 对应的后端服务(可能有几十个)
- 大模型 API 的调用(需要管理配额、处理限流、优化成本)
- 对话状态的存储(需要持久化、备份、清理)
团队发现,维护这些组件的正常运行已经占用了一个全职运维工程师的所有时间。他们没有精力去优化 Agent 的行为、改进 Skill 的质量、分析用户反馈。
问题七:审计合规成为“拦路虎”
当系统上线两周后,安全团队要求提供完整的审计报告:谁在什么时间调用了什么 Skill,传入了什么参数,结果是什么。
智享科技发现:
- OpenClaw 本身不提供审计日志
- 他们自己加了一些日志,但分散在 5 个不同的服务中
- 日志格式不统一,缺少关键字段(如调用者身份)
- 日志量巨大(每天几百万条),查询和分析极其困难
安全团队的结论是:不满足合规要求,系统需要下线整改。
四、为什么“能跑”不等于“能上线”?根本原因分析
现在,我们可以归纳出“能跑”和“能上线”之间的根本差异:
差异一:规模 vs 治理
Demo 阶段的核心问题是“规模”——让系统处理更多的请求、更多的 Skill、更复杂的场景。但生产环境的核心问题是“治理”——让系统在规模扩大的同时保持可控、可观测、可审计。
OpenClaw 这样的执行框架擅长解决“规模”问题——它提供了工具调用、状态管理、流程编排等能力。但“治理”问题——凭证管理、权限控制、审计日志、人工审批——不在 OpenClaw 的设计范围内。
差异二:理想环境 vs 真实环境
Demo 在理想环境中运行:低延迟、无故障、无攻击、可预测的输入。生产环境恰恰相反:高延迟、各种故障、恶意攻击、不可预测的长尾输入。
执行框架无法消除这些“环境的不完美”。它只能提供基础的超时、重试、错误处理机制。真正能够应对真实环境的,是围绕执行框架构建的“治理层”——监控、告警、熔断、降级、隔离、恢复。
差异三:单次正确 vs 持续正确
在 Demo 中,测试一次正确,就可以认为“正确”。在生产中,今天正确的系统,明天可能因为模型更新、数据变化、依赖服务变更而变得不正确。
执行框架没有“持续验证”的能力。它不能自动检测 Agent 的行为是否偏离了预期,不能在行为异常时自动回滚,不能在没有人工干预的情况下自我修复。
差异四:功能需求 vs 非功能需求
Demo 关注的是功能需求——Agent 能不能完成任务。生产环境同样关注非功能需求——安全性、可靠性、可观测性、可维护性、成本。
OpenClaw 解决的是功能需求。非功能需求需要额外的架构组件来满足——这正是 MCP 控制平面的定位。
五、跨越鸿沟:MCP 控制平面作为“桥梁”
那么,如何跨越这条鸿沟?答案不是“换掉 OpenClaw”,也不是“在 OpenClaw 内部打补丁”,而是在OpenClaw 之外、Agent 和 Skill 之间,插入一个 MCP 控制平面。
MCP 控制平面提供的“生产级”能力
|
生产需求 |
Demo 阶段 |
OpenClaw 提供 |
MCP 控制平面提供 |
|
凭证管理 |
明文写在配置里 |
无 |
加密存储 + 短期令牌 |
|
权限控制 |
靠 Prompt “劝说” |
无 |
细粒度策略引擎 |
|
审计日志 |
无或简单 |
无 |
完整审计追踪 + 安全信息事件管理导出 |
|
人工审批 |
无 |
无 |
人在回路审批工作流 |
|
调用追踪 |
无 |
基础日志 |
端到端调用链追踪 |
|
安全隔离 |
无 |
无 |
Skill 级别的隔离和限流 |
|
合规报告 |
不需要 |
无 |
一键生成合规报告 |
架构演进路径
从 Demo 到生产的演进路径应该是:
- 原型阶段:用 OpenClaw 快速搭建,5-10 个 Skill,验证业务价值。这个阶段不需要 MCP。
- 发现痛点:当 Skill 数量增长、并发增加、安全问题出现时,意识到“能跑”不等于“能上线”。
- 引入 MCP 协议:将 Skill 封装成 MCP 服务器,Agent 通过 MCP 客户端调用。这一层不改变业务逻辑,但标准化了接口。
- 引入 MCP 控制平面:部署 Peta 这样的控制平面,接管凭证、权限、审计、审批。Agent 和 Skill 都不再需要关心这些治理问题。
- 持续优化:基于审计日志分析 Agent 行为,优化权限策略,发现异常模式,持续改进。
MCP 控制平面如何解决具体问题?
- Skill 数量增长导致准确率下降:控制平面不直接解决这个问题,但它提供了可观测性——你可以看到Agent 在哪些 Skill 上经常选错,从而针对性地优化 Skill 描述或拆分 Skill。
- 网络延迟和超时:控制平面提供统一的超时配置、重试策略、熔断机制,不需要每个 Skill 单独实现。
- 并发状态管理:控制平面将对话状态的管理从 Agent 实例中抽离出来,通过外部存储实现状态共享和持久化。
- 错误处理:控制平面提供声明式的错误处理策略——开发者定义“如果 Skill B 失败,则执行 Skill C”,而不是在代码中写复杂的条件分支。
- 安全事件:控制平面通过权限策略、人工审批、审计日志,将安全事件从“每天发生”变成“极少发生”,且发生时可以快速追溯。
- 运维复杂度:控制平面统一管理所有 MCP 服务器的生命周期——懒加载、自动伸缩、健康检查、故障恢复。开发者不需要为每个 Skill 单独配置运维。
- 审计合规:控制平面自动记录每一次调用,提供标准化的日志格式和查询接口,一键导出安全信息事件管理兼容的审计报告。
六、小结:跨越鸿沟需要“执行 + 治理”的双层架构
本章的核心结论是:
- Demo 阶段的“能跑”和生产环境的“能上线”之间,存在一条巨大的鸿沟。 这条鸿沟不仅是“量”的差异,更是“质”的差异。
- OpenClaw 这样的执行框架解决了“如何让 Agent 执行任务”的问题,但它没有解决“如何让 Agent 安全、可控、可观测地执行任务”的问题。
- 生产环境的核心需求不是“更强的执行能力”,而是“更强的治理能力”——凭证管理、权限控制、审计日志、人工审批、调用追踪、安全隔离、合规报告。
- 跨越鸿沟的正确路径是引入 MCP 控制平面,在 OpenClaw 和 Skill 之间插入一个治理层。OpenClaw 负责执行,MCP 控制平面负责治理。
- Peta 这样的产品是 MCP 控制平面的具体实现,它将协议层从“纸面规范”变成了“生产级基础设施”。
在下一章,我们将继续深入这个主题,探讨另一个关键问题:为什么 Prompt、规则和经验,撑不起一个多Skill Agent 系统? 这个问题的答案将帮助我们理解,为什么“靠 Prompt 约束 Agent”是一种危险的幻觉。
更多推荐




所有评论(0)