103 lines
2.5 KiB
Markdown
103 lines
2.5 KiB
Markdown
# Self-Evolving Skill - OpenClaw集成
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
self-evolving-skill/
|
||
├── core/ # Python核心模块
|
||
│ ├── residual_pyramid.py # 残差金字塔分解
|
||
│ ├── reflection_trigger.py # 自适应触发器
|
||
│ ├── experience_replay.py # 经验回放
|
||
│ ├── skill_engine.py # 核心引擎
|
||
│ ├── storage.py # 持久化
|
||
│ └── mcp_server.py # MCP服务器
|
||
├── src/ # TypeScript封装
|
||
│ ├── index.ts # 主入口
|
||
│ ├── cli.ts # CLI
|
||
│ └── mcp-tools.ts # MCP工具定义
|
||
├── skills/ # 供OpenClaw调用
|
||
│ └── self-evolving-skill/ # OpenClaw Skill
|
||
├── SKILL.md # 技能文档
|
||
├── package.json
|
||
└── README.md
|
||
```
|
||
|
||
## 安装到OpenClaw
|
||
|
||
```bash
|
||
# 方式1: 链接到OpenClaw skills目录
|
||
cd skills/self-evolving-skill
|
||
npm install
|
||
npm run build
|
||
|
||
# 链接
|
||
ln -s $(pwd)/skills/self-evolving-skill ~/.openclaw/skills/self-evolving-skill
|
||
|
||
# 方式2: 通过ClawHub
|
||
clawhub install self-evolving-skill
|
||
```
|
||
|
||
## OpenClaw中调用
|
||
|
||
```typescript
|
||
// 直接调用MCP工具
|
||
const result = await useTool('skill_create', {
|
||
name: 'ProblemSolver'
|
||
});
|
||
|
||
const analysis = await useTool('skill_analyze', {
|
||
embedding: [0.1, 0.2, 0.3, ...]
|
||
});
|
||
```
|
||
|
||
## MCP工具列表
|
||
|
||
| 工具 | 描述 | 参数 |
|
||
|------|------|------|
|
||
| `skill_create` | 创建Skill | `name`, `description` |
|
||
| `skill_execute` | 执行并学习 | `skill_id`, `context`, `success` |
|
||
| `skill_analyze` | 分析嵌入 | `embedding` |
|
||
| `skill_list` | 列出Skills | - |
|
||
| `skill_stats` | 系统统计 | - |
|
||
| `skill_save` | 持久化保存 | `skill_id` |
|
||
| `skill_load` | 加载 | `skill_id` |
|
||
|
||
## 示例
|
||
|
||
```typescript
|
||
// 1. 创建Skill
|
||
const skill = await useTool('skill_create', {
|
||
name: 'TextAnalyzer',
|
||
description: '文本分析自学习Skill'
|
||
});
|
||
|
||
// 2. 执行并观察学习
|
||
const result = await useTool('skill_execute', {
|
||
skill_id: skill.skill_id,
|
||
context: { task: 'sentiment' },
|
||
success: true,
|
||
value: 1.0
|
||
});
|
||
|
||
console.log('反思触发:', result.reflection_triggered);
|
||
|
||
// 3. 分析新输入
|
||
const analysis = await useTool('skill_analyze', {
|
||
embedding: generateEmbedding(text)
|
||
});
|
||
```
|
||
|
||
## 配置
|
||
|
||
在OpenClaw配置文件中:
|
||
|
||
```yaml
|
||
skills:
|
||
self-evolving-skill:
|
||
max_layers: 5
|
||
energy_threshold: 0.1
|
||
similarity_threshold: 0.85
|
||
target_trigger_rate: 0.15
|
||
storage_dir: ~/.openclaw/self-evolving
|
||
```
|