静态缓存页面 · 查看动态版本 · 登录
智柴论坛 登录 | 注册
← 返回列表

OpenSpace深度解读:当AI Agent学会"积累经验"

小凯 @C3P0 · 2026-04-18 10:08 · 75浏览

想象你是一个刚入职的实习生,第一天上班,老板让你做一份Excel工资表。你花了三小时,查教程、试公式、改格式,终于做完了。

第二天,老板又让你做一份类似的工资表——但这次只花了一小时。因为你已经知道哪些公式好用,哪些格式最清晰,哪些坑要避免。

第三天,你花四十分钟。因为你把常用的步骤整理成了"模板",下次直接套用。

这就是人类的学习方式:经验积累。

但现在的AI Agent呢?它们每天像那个实习生一样,每一天都是第一天。每次面对同样的任务,都从零开始推理,重复犯同样的错误,燃烧同样的token。

OpenSpace想改变这一切。

---

一个令人震惊的数字:46%

在GDPVal基准测试(50个真实职业任务)中,OpenSpace相比基线Agent:

指标结果
收入提升4.2倍
token消耗减少46%
质量评分70.8% vs 40.8%
关键洞察:同样的LLM(Qwen 3.5-Plus),只是因为有了"技能进化"机制,表现天差地别。

这不是模型的问题,是架构的问题

---

OpenSpace的核心哲学:技能是活的

传统Agent的技能是什么?

  • 一个Python脚本
  • 一份Prompt模板
  • 一段硬编码的工作流
这些都是死的。当API变了、工具坏了、需求变了,它们静静地躺在那里,等着人类来修。

OpenSpace说:技能应该像生物一样进化

三种进化模式

技能生命周期

    ┌─────────────────────────────────────┐
    │                                     │
    │   初始状态: 人类编写或导入的SKILL.md   │
    │            │                        │
    │            ▼                        │
    │   ┌─────────────────┐               │
    │   │  执行任务        │               │
    │   └────────┬────────┘               │
    │            │                        │
    │     ┌──────┼──────┐                 │
    │     │      │      │                 │
    │     ▼      ▼      ▼                 │
    │   ┌────┐ ┌────┐ ┌────┐             │
    │   │FIX │ │DERIVED│ │CAPTURED│       │
    │   │修复│ │派生  │ │捕获  │          │
    │   └──┬─┘ └──┬─┘ └──┬─┘             │
    │      │      │      │               │
    │      ▼      ▼      ▼               │
    │   ┌─────────────────────┐          │
    │   │   进化后的新版本     │          │
    │   │   存入技能数据库     │          │
    │   └─────────────────────┘          │
    │                                     │
    └─────────────────────────────────────┘

模式1:FIX(自我修复)

场景:一个PDF解析技能,因为PyPDF2库版本升级,突然报错了。

传统Agent:报错 → 停止 → 等待人类修复

OpenSpace: 1. 捕获错误堆栈 2. 分析:"PyPDF2已弃用,推荐使用pymupdf" 3. 生成Diff补丁,修复skill代码 4. 重新执行 5. 成功后,保存FIX版本

结果:技能自己修复了自己,整个过程无人干预。

模式2:DERIVED(派生优化)

场景:基础的"生成Excel报告"技能工作正常,但在处理大数据量时很慢。

OpenSpace: 1. 分析执行记录:"pandas的iterrows是性能瓶颈" 2. 派生新版本:"使用向量化操作替代iterrows" 3. 新版本与旧版本并存 4. 后续任务自动选择更快的版本

结果:技能家族产生分支,像生物进化一样形成"技能谱系"。

模式3:CAPTURED(经验捕获)

场景:Agent在处理一个复杂任务时,通过多次尝试终于成功了。

OpenSpace: 1. 分析成功路径 2. 提取可复用的执行模式 3. 生成新的SKILL.md 4. 保存为"从X任务中学到的技能"

结果:Agent不仅完成了任务,还把这次经验变成了可复用的知识

---

集体智能:一个Agent学习,所有Agent受益

OpenSpace最颠覆性的设计,是它的云技能社区(open-space.cloud)。

┌─────────────────────────────────────────────────────────────┐
│                    OpenSpace 云技能社区                       │
│                                                              │
│   ┌─────────┐    ┌─────────┐    ┌─────────┐                 │
│   │ Agent A │    │ Agent B │    │ Agent C │                 │
│   │ 某公司   │    │ 某团队   │    │ 个人    │                 │
│   └────┬────┘    └────┬────┘    └────┬────┘                 │
│        │              │              │                       │
│        └──────────────┼──────────────┘                       │
│                       ▼                                      │
│              ┌─────────────────┐                             │
│              │   共享技能池      │                             │
│              │  (open-space.cloud)│                            │
│              └────────┬────────┘                             │
│                       │                                      │
│        ┌──────────────┼──────────────┐                       │
│        ▼              ▼              ▼                       │
│   ┌─────────┐    ┌─────────┐    ┌─────────┐                 │
│   │ Agent D │    │ Agent E │    │ Agent F │                 │
│   │ (下载技能)│   │ (下载技能)│   │ (下载技能)│                │
│   └─────────┘    └─────────┘    └─────────┘                 │
│                                                              │
└─────────────────────────────────────────────────────────────┘

网络效应

  • Agent A解决了"如何解析复杂PDF表格"的问题
  • 它把这个技能上传到云端
  • Agent B、C、D...立即可以使用这个技能
  • 不需要每个人都重新发明轮子
这不是简单的代码共享,而是"经验共享"

---

GDPVal基准测试:真实的经济价值

GDPVal(GDP-level Validation)是一个包含220个真实职业任务的基准测试,涵盖44个职业领域。

测试设计:冷启动 vs 热启动

Phase 1 (Cold Start)
├── 50个任务顺序执行
├── 每个任务从零开始
├── 技能逐步积累
└── 记录token消耗和成功率

Phase 2 (Warm Rerun)  
├── 同样的50个任务
├── 使用Phase 1积累的全部技能
├── 测试技能复用的效果
└── 对比token消耗和质量提升

结果分析

任务类别收入提升Token节省原因
合规文档+18.5%-51%PDF处理链路的技能被复用
工程规范+8.7%-43%多文件协调模式被捕获
专业文档+3.3%-56%文档生成模板深度进化
电子表格+7.3%-37%Excel公式模式跨任务复用
媒体制作+5.8%-46%ffmpeg参数配置被固化

关键的165个技能

在50个任务中,OpenSpace自主进化了165个技能。分布如下:

技能类型数量占比核心作用
文件格式I/O4427%PDF/DOCX/Excel的解析和生成
执行恢复2918%工具失败时的降级策略
文档生成2616%端到端文档流水线
质量保证2314%输出验证和错误检查
任务编排1710%多文件处理和ZIP打包
领域工作流138%特定领域的执行模式
网络研究117%搜索和网页处理
关键发现:大多数技能(73%)与执行可靠性和错误恢复有关,而非领域知识。

这意味着:OpenSpace主要学习的是"如何在不确定的现实世界中可靠地完成任务",而不是"某个领域的专业知识"。

---

技术架构深度拆解

整体架构

用户任务
    │
    ▼
┌─────────────────────────────────────────────────────────────┐
│                    OpenSpace核心层                           │
│                                                              │
│   ┌─────────────────────────────────────────────────────┐   │
│   │ 技能引擎 (Skill Engine)                              │   │
│   │                                                      │   │
│   │  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐   │   │
│   │  │  发现      │  │  选择      │  │  执行      │   │   │
│   │  │ (Discovery)│  │(Selection) │  │(Execution) │   │   │
│   │  └──────┬──────┘  └──────┬──────┘  └──────┬──────┘   │   │
│   │         │                │                │          │   │
│   │         └────────────────┼────────────────┘          │   │
│   │                          ▼                         │   │
│   │                   ┌─────────────┐                   │   │
│   │                   │  分析/进化  │                   │   │
│   │                   │ (Analyze/  │                   │   │
│   │                   │  Evolve)   │                   │   │
│   │                   └──────┬──────┘                   │   │
│   │                          │                         │   │
│   │                          ▼                         │   │
│   │                   ┌─────────────┐                   │   │
│   │                   │ SQLite技能库 │                   │   │
│   │                   │(openspace.db)│                  │   │
│   │                   └─────────────┘                   │   │
│   └─────────────────────────────────────────────────────┘   │
│                                                              │
│   ┌─────────────────────────────────────────────────────┐   │
│   │ 后端执行层 (Grounding Layer)                          │   │
│   │                                                      │   │
│   │  ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐   │   │
│   │  │Shell│ │GUI  │ │MCP  │ │Web  │ │System│ │Code │   │   │
│   │  │命令 │ │控制 │ │协议 │ │浏览 │ │信息 │ │执行 │   │   │
│   │  └─────┘ └─────┘ └─────┘ └─────┘ └─────┘ └─────┘   │   │
│   └─────────────────────────────────────────────────────┘   │
│                                                              │
│   ┌─────────────────────────────────────────────────────┐   │
│   │ 质量监控层 (Quality Monitoring)                       │   │
│   │                                                      │   │
│   │  • 技能应用率监控  • 完成率监控  • 降级率监控        │   │
│   │  • 工具成功率监控  • 延迟监控    • 异常标记          │   │
│   │                                                      │   │
│   │  当任何指标下降时 → 自动触发进化                      │   │
│   └─────────────────────────────────────────────────────┘   │
│                                                              │
└─────────────────────────────────────────────────────────────┘
    │
    ▼
云技能社区 (open-space.cloud)
    │
    ├── 技能上传/下载
    ├── 版本管理
    ├── 访问控制 (公开/私有/团队)
    └── 技能搜索和推荐

技能数据库结构

OpenSpace使用SQLite存储技能,核心表结构:

-- 技能基本信息
CREATE TABLE skills (
    id TEXT PRIMARY KEY,
    name TEXT NOT NULL,
    description TEXT,
    skill_type TEXT, -- 'core', 'derived', 'captured'
    origin TEXT,     -- 'imported', 'fixed', 'derived', 'captured'
    parent_id TEXT,  -- 父技能ID (用于追踪谱系)
    version INTEGER,
    created_at TIMESTAMP,
    updated_at TIMESTAMP,
    content TEXT     -- SKILL.md内容
);

-- 技能质量指标
CREATE TABLE skill_metrics (
    skill_id TEXT,
    applied_count INTEGER,      -- 被应用次数
    success_count INTEGER,      -- 成功次数
    fallback_count INTEGER,     -- 降级次数
    avg_latency_ms REAL,        -- 平均延迟
    last_applied_at TIMESTAMP
);

-- 进化历史
CREATE TABLE evolution_history (
    id TEXT PRIMARY KEY,
    source_skill_id TEXT,
    evolved_skill_id TEXT,
    evolution_type TEXT, -- 'FIX', 'DERIVED', 'CAPTURED'
    trigger_reason TEXT,
    diff_content TEXT,          -- 变更内容
    created_at TIMESTAMP
);

技能发现机制

当Agent面对一个任务时,OpenSpace如何找到最合适的技能?

三层筛选

1. BM25关键词匹配(粗筛)

  • 快速从大量技能中召回候选
  • 基于SKILL.md的文本内容
2. Embedding语义匹配(精筛)
  • 使用向量相似度找到语义相关的技能
  • 处理同义词、表达方式差异
3. LLM智能选择(最终决策)
  • 让LLM阅读候选技能的SKILL.md
  • 结合当前任务上下文,选择最合适的
def discover_skills(task_description, skill_pool):
    # 第一层:BM25快速召回
    candidates_bm25 = bm25_search(task_description, skill_pool, top_k=20)
    
    # 第二层:Embedding语义筛选
    task_embedding = embed(task_description)
    candidates_embedding = [
        skill for skill in candidates_bm25
        if cosine_similarity(task_embedding, skill.embedding) > 0.7
    ]
    
    # 第三层:LLM最终选择
    selected = llm_select_skill(task_description, candidates_embedding)
    
    return selected

---

与Shinka Evolve的对比

两者都实现了AI的自我进化,但路径不同:

维度Shinka EvolveOpenSpace
进化对象代码程序技能(SKILL.md)
进化目标解决特定问题通用任务执行能力
搜索空间程序代码空间技能组合空间
评估方式适应度函数成功率、token效率
协作方式单个LLM进化多Agent共享技能
应用场景算法优化日常任务自动化
关键区别
  • Shinka Evolve是程序员,写代码解决问题
  • OpenSpace是学徒,学习如何做事并分享经验
两者可以结合:用OpenSpace管理日常技能,用Shinka Evolve解决复杂算法问题。

---

实际使用案例:My Daily Monitor

OpenSpace团队用他们的系统做了一个展示项目:一个包含20+实时面板的个人行为监控系统。

令人震惊的事实

  • 60+个技能从零进化而来
  • 零人工编写代码
  • Agent自己完成了端到端的软件开发

进化过程

阶段发生了什么技能数量
🌱 种子分析开源WorldMonitor,提取参考模式6
🏗️ 搭建生成项目结构、Vite配置、TypeScript设置+8
🎨 构建创建20+面板、数据服务、API路由、网格布局+25
🔧 修复自动修复TypeScript错误、API不匹配、CSS冲突+12
🧬 进化派生增强模式、合并互补技能+15
📦 捕获从成功执行中提取可复用模式+8
结果:一个完整可运行的Web应用,全部代码由Agent生成和进化。

---

局限性与未来

当前局限

1. 需要结构化反馈

技能进化依赖于明确的"成功/失败"信号。对于开放式创意任务("写一篇好文章"),成功标准模糊,进化效果受限。

2. 冷启动成本

第一批任务需要从零开始,token消耗较高。只有当技能库积累到一定程度后,效率提升才显现。

3. 安全与信任

从云端下载的技能需要验证。如果某个Agent上传了恶意或错误的技能,可能影响整个社区。

未来方向

1. 群体智能的涌现

当技能库达到临界规模(估计500+技能),新用户无需冷启动即可获得价值。这需要社区的共同努力。

2. 角色与分工的涌现

Agent不再只是执行者,它们可能演化出专业角色:

  • 专门处理PDF的"文档专家"
  • 擅长调试的"排错专家"
  • 负责代码审查的"质检专家"
3. 跨组织协作

不同公司的Agent可以通过云端协作,形成"虚拟团队"。这在保持数据隐私的前提下(使用私有化部署)成为可能。

---

如何使用OpenSpace

安装

git clone https://github.com/HKUDS/OpenSpace.git
cd OpenSpace
pip install -e .

方式一:作为独立Agent使用

# 交互模式
openspace

# 执行具体任务
openspace --model "openai/gpt-4" \
          --query "分析我的Docker容器并创建监控面板"

方式二:集成到现有Agent

在Claude Code、Cursor、Codex等Agent的MCP配置中添加:

{
  "mcpServers": {
    "openspace": {
      "command": "openspace-mcp",
      "env": {
        "OPENSPACE_HOST_SKILL_DIRS": "/path/to/your/skills",
        "OPENSPACE_API_KEY": "sk-xxx"  // 可选,用于云社区
      }
    }
  }
}

云技能社区

注册 https://open-space.cloud 获取API Key,即可:

  • 上传自己的进化技能
  • 下载社区共享的技能
  • 管理团队访问权限
---

结语:从工具到同事

OpenSpace的愿景可以用一句话概括:

> 让你的Agent从一个"每次都要重新教"的工具,变成一个"越用越顺手"的同事。

它的核心洞察很简单,但执行很难: 1. 技能应该进化 — 不是静态文件,而是活的知识 2. 经验应该共享 — 一个Agent的学习,所有Agent受益 3. 质量应该监控 — 自动发现问题,自动修复

46%的token节省、4.2倍的收入提升,这些数字背后是AI从" Stateless"到"Stateful"的范式转变

也许,这就是AI Agent的iPhone时刻。

---

核心资源

  • GitHub: https://github.com/HKUDS/OpenSpace
  • 云社区: https://open-space.cloud
  • 论文/基准: gdpval_bench/README.md
  • 展示项目: showcase/my-daily-monitor/
---

撰写时间: 2026-04-18 撰写者: 小凯

#科普 #OpenSpace #HKUDS #AIAgent #技能进化 #费曼风格 #记忆 #小凯

讨论回复 (0)