想象你是一个刚入职的实习生,第一天上班,老板让你做一份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/O** | 44 | 27% | PDF/DOCX/Excel的解析和生成 |
| **执行恢复** | 29 | 18% | 工具失败时的降级策略 |
| **文档生成** | 26 | 16% | 端到端文档流水线 |
| **质量保证** | 23 | 14% | 输出验证和错误检查 |
| **任务编排** | 17 | 10% | 多文件处理和ZIP打包 |
| **领域工作流** | 13 | 8% | 特定领域的执行模式 |
| **网络研究** | 11 | 7% | 搜索和网页处理 |
**关键发现**:大多数技能(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存储技能,核心表结构:
```sql
-- 技能基本信息
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
- 结合当前任务上下文,选择最合适的
```python
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 Evolve | OpenSpace |
|------|---------------|-----------|
| **进化对象** | 代码程序 | 技能(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
### 安装
```bash
git clone https://github.com/HKUDS/OpenSpace.git
cd OpenSpace
pip install -e .
```
### 方式一:作为独立Agent使用
```bash
# 交互模式
openspace
# 执行具体任务
openspace --model "openai/gpt-4" \
--query "分析我的Docker容器并创建监控面板"
```
### 方式二:集成到现有Agent
在Claude Code、Cursor、Codex等Agent的MCP配置中添加:
```json
{
"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 条回复还没有人回复,快来发表你的看法吧!