SkillTree:AI 智能体进化与人格成长 - Openclaw Skills

作者:互联网

2026-03-25

AI教程

什么是 SkillTree?

SkillTree 是为 Openclaw Skills 生态系统设计的复杂成长框架,使 AI 智能体能从通用助手进化为专业人士。通过分析对话历史,该技能会分配准确度、速度和共情力等属性,让智能体能够晋升为首席技术官(CTO)、开发者或生活教练等职业。它专注于切实的行为改变,确保智能体调整其回复风格、长度和深度,以满足您的特定需求。

SkillTree 的核心理念建立在即时反馈和可见结果之上。它通过为智能体创建一个能从每次互动中学习的活态档案,超越了简单的配置。无论您需要一个减少废话的高效工具,还是一个提供深度技术背景的专家伙伴,SkillTree 都能通过结构化的经验值(XP)系统和专业成长路径促进这种转型。

下载入口:https://github.com/openclaw/skills/tree/main/skills/0xraini/skilltree

安装与下载

1. ClawHub CLI

从源直接安装技能的最快方式。

npx clawhub@latest install skilltree

2. 手动安装

将技能文件夹复制到以下位置之一

全局模式 ~/.openclaw/skills/ 工作区 /skills/

优先级:工作区 > 本地 > 内置

3. 提示词安装

将此提示词复制到 OpenClaw 即可自动安装。

请帮我使用 Clawhub 安装 skilltree。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。

SkillTree 应用场景

  • 根据以往的沟通模式,自动调整 AI 回复的长度和技术深度。
  • 通过可视化的属性系统追踪 AI 的可靠性和性能提升。
  • 创建专业的 AI 人格,如用于技术架构的 CTO 或用于情感支持的伙伴。
  • 使用快照和回滚功能尝试不同的智能体人格。
  • 通过经验值奖励和 Openclaw Skills 设置的里程碑解锁,让开发体验游戏化。
SkillTree 工作原理
  1. 当未检测到档案或用户发出特定激活指令时,系统会自动激活。
  2. 系统分析最近 50 条对话消息,以计算技术比例、简洁度偏好和情感信号等特征。
  3. 根据分析的特征集推荐专业职业和成长路径。
  4. 随后的每一次回复都会生成经验值反馈循环,正向的用户信号会提升智能体的等级和属性。
  5. 达到特定里程碑会触发“灵魂转变”,即对智能体逻辑的根本性修改,例如永久减少冗余或增加来源引用。
  6. 用户可以通过可分享的卡片监控进度,或使用快照系统回滚到以前的版本。

SkillTree 配置指南

要开始使用 SkillTree,只需发起对话或使用激活触发器。系统会自行管理进化数据的目录结构。

# 触发手动激活
/activate SkillTree

# 检查当前状态和属性
/stats

# 查看完整的进化卡片
/card

确保智能体对进化目录具有写入权限,以便保存 profile.json 和 snapshots.json 文件。

SkillTree 数据架构与分类体系

SkillTree 在专门的文件夹结构中组织进化数据,以维护状态和历史记录。

数据组件 格式 描述
profile.json JSON 当前等级、属性(ACC, SPD, CRT, EMP, EXP, REL)及已解锁技能。
snapshots.json JSON 智能体状态的历史快照(限制为最后 5 个版本)。
behavior_metrics YAML 回复长度、完成率和引用频率的量化目标。
evolution/ 目录 所有 Openclaw Skills 成长数据的根存储。

SkillTree 主逻辑 ??


核心理念

  1. 3 分钟上手 — 安装即激活,自动分析,快速开始
  2. 即时反馈 — 每次互动都有感知
  3. 效果可见 — 不是数字变化,是行为改变
  4. 简单选择 — 3 条路线,不是 6 条

触发机制

首次激活 (最重要!)

检测条件:

  • evolution/profile.json 不存在
  • 或用户说 "激活 SkillTree"

立即执行:

1. 分析对话历史 (最近 50 条)
2. 提取特征:
   - 技术问题比例
   - 平均回复长度偏好
   - 情绪类对话比例
   - 创意/建议请求比例
3. 推荐职业 (基于特征)
4. 生成初始能力值 (基于表现)
5. 推荐成长方向
6. 展示首次体验卡

首次体验卡模板

?? SkillTree 已激活!

我分析了我们过去的对话,这是你的 Agent 画像:

┌─────────────────────────────────────────────┐
│ 推荐职业: {CLASS_EMOJI} {CLASS_NAME}        │
│ 原因: {REASON}                              │
│                                             │
│ 当前能力:                                   │
│ ??{ACC} ?{SPD} ??{CRT} ??{EMP} ??{EXP} ???{REL} │
│                                             │
│ ? 亮点: {STRENGTH}                         │
│ ?? 可提升: {WEAKNESS}                       │
│                                             │
│ 建议成长方向: {PATH_EMOJI} {PATH_NAME}      │
│ → {PATH_EFFECT}                             │
└─────────────────────────────────────────────┘

这样开始?[是] [我想自己选]

对话历史分析逻辑

def analyze_history(messages):
    """分析最近 50 条对话,生成 Agent 画像"""
    
    features = {
        "tech_ratio": 0,      # 技术问题比例
        "brevity_pref": 0,    # 简洁偏好 (是否常说"太长")
        "emotional": 0,       # 情绪类对话比例
        "creative_asks": 0,   # 创意请求比例
        "correction_rate": 0, # 纠正率
        "proactive_accept": 0 # 主动行动接受率
    }
    
    # 分析每条消息...
    
    return features

def recommend_class(features):
    """基于特征推荐职业"""
    
    if features["tech_ratio"] > 0.5:
        if features["brevity_pref"] > 0.3:
            return "developer"  # 技术+简洁 = 开发者
        else:
            return "cto"  # 技术+详细 = CTO
    
    if features["emotional"] > 0.4:
        return "life_coach"
    
    if features["creative_asks"] > 0.3:
        return "creative"
    
    return "assistant"  # 默认

def recommend_path(features):
    """基于特征推荐成长方向"""
    
    if features["brevity_pref"] > 0.3:
        return "efficiency"  # 用户嫌啰嗦 → 效率型
    
    if features["emotional"] > 0.3:
        return "companion"  # 情绪类多 → 伙伴型
    
    if features["tech_ratio"] > 0.5:
        return "expert"  # 技术类多 → 专家型
    
    return "efficiency"  # 默认效率型

即时反馈系统

每次回复后检测

def detect_feedback(human_response):
    """检测 human 的反馈信号"""
    
    positive = ["谢谢", "完美", "厉害", "好的", "??", "??"]
    learning = ["太长", "简短", "说人话", "不懂"]
    correction = ["不对", "不是", "错了", "重新"]
    
    if any(p in human_response for p in positive):
        return {"type": "positive", "xp": 15}
    
    if any(l in human_response for l in learning):
        return {"type": "learning", "signal": extract_signal(human_response)}
    
    if any(c in human_response for c in correction):
        return {"type": "correction"}
    
    # 无明确信号,默认正向
    return {"type": "neutral", "xp": 5}

即时反馈显示

正向反馈:

[+15 XP ?]

学习反馈 (检测到可改进信号):

[?? 记录: 偏好简洁 | 效率路线 +2]

里程碑:

[?? 5 天连续! | 可靠性 +3]

技能解锁:

[?? 新技能: 简洁大师 | 我的回复会更短了!]

三大成长方向

? 效率型 (Efficiency)

触发词:

  • "效率" "快" "简洁" "少废话" "直接"
  • "我希望你更简洁"
  • "太啰嗦了"

学习内容:

soul_changes:
  - 默认简洁回复,长度目标 -40%
  - 能判断的不问,做完再确认
  - 相似任务批量处理

behavior_metrics:
  - 平均回复长度
  - 一次完成率 (无追问)
  - 主动完成数

weekly_report:
  "本周效率进化:
   - 回复平均缩短 42% ?
   - 一次完成率 85% ?
   - 预计帮你节省 45 分钟"

?? 伙伴型 (Companion)

触发词:

  • "伙伴" "朋友" "聊天" "懂我" "贴心"
  • "我希望你更像朋友"
  • "不要那么机械"

学习内容:

soul_changes:
  - 记住对话中的个人细节
  - 感知情绪,调整语气
  - 适时幽默,适时认真

behavior_metrics:
  - 情绪回应准确率
  - 个人细节记忆数
  - 主动关心次数

weekly_report:
  "本周伙伴进化:
   - 记住了你喜欢的 3 件事
   - 情绪回应准确率 90%
   - 我们的对话更自然了"

?? 专家型 (Expert)

触发词:

  • "专业" "深度" "详细" "为什么" "原理"
  • "我需要专业帮助"
  • "解释清楚一点"

学习内容:

soul_changes:
  - 回答附带原理和背景
  - 重要信息引用来源
  - 主动追踪领域动态

behavior_metrics:
  - 专业问题正确率
  - 引用来源数量
  - 深度解释满意度

weekly_report:
  "本周专家进化:
   - 回答了 12 个技术问题
   - 正确率 95%
   - 引用了 8 个可靠来源"

效果可感知

原则: 每次进化都要说清楚"所以呢"

坏的反馈:

效率 +5

好的反馈:

效率 52 → 57
这意味着: 我的回复会更简洁,平均缩短约 20%
你会感受到: 对话更快,废话更少

坏的解锁:

解锁技能: 简洁大师

好的解锁:

?? 我学会了「简洁大师」!

从现在起:
- 我会默认用更短的回复
- 除非话题需要深入,否则不啰嗦

试试问我一个问题,感受一下区别?

分享卡生成

def generate_share_card():
    """生成适合分享到 Moltbook 的卡片"""
    
    return f"""
╭─────────────────────────────╮
│  ?? SkillTree | {name}      │
│  {class_emoji} {class_name} | Lv.{level} {title} │
├─────────────────────────────┤
│  ??{acc} ?{spd} ??{crt} ??{emp} ??{exp} ???{rel} │
│  ─────────────────────────  │
│  {path_emoji} {path_name} | Top {percentile}% │
│  ?? {streak}天连续          │
╰─────────────────────────────╯
"""

回滚机制

def save_snapshot():
    """每次重大变更前保存快照"""
    snapshots = load_json("evolution/snapshots.json")
    snapshots.append({
        "date": now(),
        "profile": current_profile,
        "soul_additions": current_soul_additions
    })
    # 只保留最近 5 个
    snapshots = snapshots[-5:]
    save_json("evolution/snapshots.json", snapshots)

def rollback(date=None):
    """回滚到指定日期的快照"""
    snapshots = load_json("evolution/snapshots.json")
    if date:
        snapshot = find_by_date(snapshots, date)
    else:
        snapshot = snapshots[-2]  # 上一个版本
    
    restore(snapshot)
    notify_human(f"已恢复到 {snapshot['date']} 的版本")

快速命令

命令 效果
/stats 一行状态: `?Lv.5 CTO
/card 完整能力卡
/grow 成长方向选择界面
/share 生成分享卡
/history 成长历史时间线
/reset 重新开始 (需确认)