9 min read

OpenSpace 实战:给 Agent 接个自进化 Skill 引擎,token 消耗直接少一半

OpenSpace 是 HKUDS 开源的 Agent 自进化 Skill 引擎,接入 OpenClaw 只需 15 分钟,实测 token 消耗可减少约 46%。本文从原理、接入步骤到踩坑记录全程实战拆解。

做了这么久 Agent,我踩过最大的坑就是:同一个任务,今天能跑,明天换个工具版本就挂了;挂了之后重新推理,一通乱试,token 烧了一堆,最后才想起来这个问题上周已经解决过了。

这种事情反复发生,根子在哪?Agent 没有记忆。 每次任务对它来说都是第一次——不管你上周成功解决了多少次类似的问题,它依然要从零开始推理,从零开始踩坑。

上个月 HKUDS(香港大学数据科学实验室)开源了 OpenSpace,专门解决这个问题。我把它接进 OpenClaw 用了一段时间,有点东西,写一篇实战记录。


为什么 Agent 会一直重复犯同样的错误?

今天主流的 AI Agent——OpenClaw、Claude Code、Codex、Cursor——功能都挺强,但它们有一个共同的死穴:

没有任务级别的学习机制。

具体表现:

问题症状
Token 大量浪费每次做相似任务都从头推理,之前成功的路径不会复用
重复踩坑同一个 API 的正确调用姿势,这次探索完,下次又探索一遍
Skill 悄悄失效工具升级之后旧 Skill 失效,Agent 自己不知道,继续调用直到报错

OpenSpace 的思路是:把每一次任务的成功/失败模式记下来,变成可复用的 Skill,然后持续演进、共享给所有 Agent。


OpenSpace 三个核心能力

1. 自进化引擎(Self-Evolution Engine)

OpenSpace 有三种进化模式,任务跑完后自动触发:

  • FIX — Skill 执行失败?自动分析报错,生成修复版本
  • DERIVED — 任务成功?提取这次的成功模式,生成改进版 Skill
  • CAPTURED — 从头推理的新任务成功了?把整个解题思路抽象成新 Skill

这三种模式加上三类触发机制(任务后分析、性能下降检测、定期健康检查),构成了一套持续演进的闭环。

💡 提示:Skill 并不是一写就定死的,每次执行都可能触发演进。经过十几轮真实任务的洗礼,一个 Skill 的稳定性和效率会显著提升。

2. 集体智能(Collective Intelligence)

进化不只在单个 Agent 内部发生。OpenSpace 有一个云端社区 open-space.cloud,任何进化出来的 Skill 都可以一键同步上去,供其他 Agent 下载复用。

网络效应很清晰:接入 OpenSpace 的 Agent 越多,可用的 Skill 库越丰富,所有人都跑得越快、烧的 token 越少。

3. Token 效率(Token Efficiency)

这是最值得关注的地方,也是官方 benchmark 数据最硬核的部分。

OpenSpace 在 GDPVal(一个包含 44 种职业、220 个专业任务的真实场景 benchmark)上的测试结果:

指标结果
Token 消耗(第二轮 vs 第一轮)**减少 45.9%**
收入产出 vs baseline**4.2 倍**
任务价值捕获率72.8%(总价值 $15,764 中实际拿到 $11,484)
平均任务质量70.8%(baseline 为 40.8%)

这不是玩具任务,是真实的薪资计算、税务申报、法律备忘录、工程设计等专业工作。用同一个底座模型(Qwen 3.5-Plus),仅靠 Skill 积累带来的差距,说老实话超出了我的预期。


接入 OpenClaw:Path A 实战步骤

OpenSpace 支持两种用法:Path A 是把它当 MCP 工具接进你的 Agent(推荐),Path B 是直接把 OpenSpace 当独立 AI 助手用。这里专门讲 OpenClaw + OpenSpace(Path A)

Step 1:安装 OpenSpace

git clone https://github.com/HKUDS/OpenSpace.git
cd OpenSpace
pip install -e .
openspace-mcp --help  # 验证安装成功

⚠️ 注意:仓库里的 assets/ 文件夹有约 50MB 的图片,国内网络直接 clone 容易卡,建议用精简克隆:

git clone --filter=blob:none --sparse https://github.com/HKUDS/OpenSpace.git
cd OpenSpace
git sparse-checkout set '/*' '!assets/'
pip install -e .

Step 2:配置 MCP 服务器

找到 OpenClaw 的配置文件(一般是 ~/.openclaw/openclaw.json),在 mcpServers 里加入 OpenSpace:

{
  "mcpServers": {
    "openspace": {
      "command": "openspace-mcp",
      "toolTimeout": 600,
      "env": {
        "OPENSPACE_HOST_SKILL_DIRS": "/root/.openclaw/workspace/skills",
        "OPENSPACE_WORKSPACE": "/path/to/OpenSpace",
        "OPENSPACE_API_KEY": "sk-xxx(可选,接入云端社区)"
      }
    }
  }
}
💡 OPENSPACE_HOST_SKILL_DIRS 填你的 OpenClaw skills 目录的绝对路径,一般是 ~/.openclaw/workspace/skills/

>

OPENSPACE_API_KEY 是云端社区的密钥,去 open-space.cloud 免费注册可以拿到。没有也没关系,所有本地功能完全可用。

Step 3:复制两个核心 Skill

# 把这两个 Skill 复制到你的 OpenClaw skills 目录
cp -r OpenSpace/openspace/host_skills/delegate-task/ ~/.openclaw/workspace/skills/
cp -r OpenSpace/openspace/host_skills/skill-discovery/ ~/.openclaw/workspace/skills/

delegate-task 告诉 Agent 什么时候应该把任务交给 OpenSpace 处理;skill-discovery 让 Agent 知道如何检索和复用已有的 Skill。两个 Skill 缺一不可。

Step 4:重启 OpenClaw 验证连接

openclaw gateway restart

重启后,在 OpenClaw 里问一句"你现在有哪些 MCP 工具可用?",如果能看到 openspace 相关工具出现在列表里,就接好了。


三种传输模式怎么选?

OpenSpace MCP 服务器支持三种启动方式:

模式启动命令适用场景
**stdio**(默认)MCP config 里直接配 command本地 Agent,最简单
**SSE**`openspace-mcp --transport sse --host 127.0.0.1 --port 8080`需要持久连接
**streamable HTTP**`openspace-mcp --transport streamable-http --host 127.0.0.1 --port 8081`远程主机、避开 stdio 超时限制

如果你的 OpenClaw 部署在 VPS 上(参考这篇部署教程),建议用 SSE 或 HTTP 模式,稳定性更好。本地日常使用 stdio 就够了。


本地 Dashboard:可视化 Skill 进化过程

OpenSpace 提供了一个本地可视化面板,可以看 Skill 的进化谱系、版本对比、执行统计。

# 终端 1:启动后端 API
openspace-dashboard --port 7788

# 终端 2:启动前端(需要 Node.js ≥ 20)
cd OpenSpace/frontend
npm install  # 第一次需要
npm run dev

跑起来之后打开 http://localhost:5173,能看到每个 Skill 从初版到当前版本的完整演化路径。如果你是搞 Agent 开发的,这个面板挺有意思,能直观看出哪些任务在推动 Skill 往哪个方向演进。


实际效果:从"冷启动"到"热复用"

OpenSpace 有一个经典的两阶段模型:

Phase 1(冷启动):第一次跑任务,没有历史 Skill 可用,Agent 需要完整推理,token 消耗最高。任务结束后,成功模式被自动提取为 Skill 存入本地数据库。

Phase 2(热复用):相同或相似的任务再次出现,Agent 直接检索 Skill 库,用预验证的解决方案执行,跳过重复推理。官方 benchmark 里这个阶段的 token 消耗比 Phase 1 少了 45.9%

以文档生成任务为例,benchmark 里各类任务的降本数据:

任务类型Token 减少幅度主要原因
文件与文书(7个)**-56%**文档结构、错误恢复路径已固化
合规与表单(11个)**-51%**PDF 生成管道完整演化后整体复用
工程项目(4个)**-43%**跨项目协调 Skill 通用化
媒体制作(3个)**-46%**ffmpeg 参数和编解码回退路径已记录

云端社区:一个 Agent 学了,所有人都会

如果你注册了 open-space.cloud 账号,进化出来的 Skill 可以一键发布:

# 下载社区里的 Skill
openspace-download-skill <skill_id>

# 上传你自己进化出来的 Skill
openspace-upload-skill /path/to/skill/dir

权限可以设置为 public、private 或 team。如果你维护了一套特定场景的工作流(比如博客运营、SEO 自动化),把跑得好的 Skill 发布出去,社区里其他人的 Agent 就能直接复用。

这个逻辑跟 ClawHub 的 Skill 分发有点像,但 OpenSpace 的 Skill 是从真实任务中自动提取并持续打磨的,而不是手写一次就定死——实际场景打磨出来的东西,容错性往往更高。


踩坑记录

坑 1:toolTimeout 必须设够

OpenSpace 处理复杂任务时,MCP 工具调用时间可能超过默认超时。一定要在 MCP 配置里加 "toolTimeout": 600,否则长任务跑到一半会被强制中断,进化也触发不了。

坑 2:两个 host_skill 必须都复制

只复制 delegate-task 不够,skill-discovery 是让 Agent 学会主动检索已有 Skill 的关键。两个都放进 skills 目录才能形成完整闭环。如果你不熟悉 OpenClaw 的 Skill 机制,可以先看这篇自定义 Skill 教程

坑 3:OPENSPACE_HOST_SKILL_DIRS 路径要用绝对路径

这个环境变量告诉 OpenSpace 去哪找 host-side 的 Skill 文件。路径写错或使用相对路径,Skill 就找不到。OpenClaw 的 skills 目录建议填完整的绝对路径。

坑 4:国内克隆仓库慢

官方仓库的 assets 目录有 50MB 图片。国内网络直接 clone 容易中途断,用上面说的 --sparse 参数跳过图片目录,能快很多。


总结

维度结论
Token 节省Phase 2 相比 Phase 1 减少约 46%
任务质量提升比无 Skill baseline 高约 30pp
接入复杂度MCP 配置 + 两个 Skill 文件,15 分钟内可完成
云端共享可选,不影响本地任何功能

对于已经在用 OpenClaw 的用户,接入成本极低。长期来看,随着任务量积累,Skill 库越来越成熟,token 消耗会持续下降,是少数"用得越多越省钱"的工具之一。

如果你还没有自己的 OpenClaw 实例,可以先看从零部署教程,装好之后回来接 OpenSpace。

📦 项目地址:github.com/HKUDS/OpenSpace

🌐 云端社区:open-space.cloud