- Stars
- 122
- Forks
- 23
- License
- MIT
- Last commit
- Sep 1, 2026
- Latest release
- v0.7.0
Overview
Self-evolving skills lib for coding agents
Original README
Cached from the project repository on Sep 3, 2026. This is source content, separate from the Agents.md review above.
让你的 coding agent 的技能,从每一次真实会话里自我进化——你只管写代码。
跨会话、跨 agent、跨设备、跨同事。经验持续累积,技能不断生长。
English · 简体中文
📄 论文:xskill: Team-Level Skill Distillation, Sharing, and Evolution for Coding Agents · PDF(19 页)
为什么需要 xskill
“同事的coding agent已经做过的事情,你为什么不能直接拿来用?”
xskill是企业级的团队skill演进方案,支持轨迹自动蒸馏Skill,基于轨迹画像推送Skill,支持导入团队skillhub进行推荐,支持skill评价。
- 高手经验自动传递: 一个人的解法自动到达全组,让最短路径不再壮志难酬。
- 跨Harness和设备共享进化: Codex、Claude Code、Cursor IDE都会加入光荣的进化,齐心,协力。
- 支持专家修改Skill: 觉得skill不完美?直接修改本地的skill,改动会被云端自动学习。
- 轨迹保持私有: 会话在上传前已脱敏,秘钥密码和相关隐私不会被别人看到。
- 不让skill烂掉: 自动评价skill,支持分析用户实际使用轨迹给出评价分并绘制不同skill版本的得分趋势折线图,大数据显微镜。
一人解决,全队复用
只要团队里有一个人在自己的会话里搞定了某个问题,这个解法就会变成一条技能——其他人的 agent 自动拿到。没人需要专门写文档。
跨越每一个 agent 与设备——同一个技能库
笔记本上用 Claude Code、服务器上用 Codex、IDE 里用 Cursor。xskill 从它们全部收集脱敏后的轨迹,进化出同一个共享技能库,再把结果同步回你用的每一个 agent。
孤岛 → 集体进化
没有一个共享、自我改进的技能库,每个开发者都在孤岛里重复解决同样的问题。xskill 把这些被浪费的、隔离的努力,变成可以复利累积的共享经验。
架构
[!NOTE] xskill全流程都是Agentic-Centric的管线。首先将轨迹按照内部意图拆分为子轨迹(轨迹原子),然后对轨迹原子进行聚类并分配到对应的skill,原子积攒足够后就会触发skill编辑产出新的skill版本。 不同的skill版本会在真实的用户流量上进行测试,用户体验分高的胜出作为主版本继续迭代,每一次改动都有版本、可回滚。细节见
docs/agent.md。
精度表现
xskill是一套无监督的skill蒸馏方案,其不需要构建数据集就可以完成进化。
目前版本的算法管线精度表现如下:
Setup: DeepSeek-V4-Flash · Claude Code · single mode
Pipeline: SkillOpt built-in evaluation pipeline · Official data split
| Spreadsheet | ALFWorld | OfficeQA | Mean¹ | |
|---|---|---|---|---|
| XSkill | 88.57 | 84.33 | 60.47 | 77.79 |
| SkillOpt | 87.86 | 77.61 | 51.16 | 72.21 |
| Delta | +0.71 | +6.72 | +9.30 | +5.58 |
¹ 表内数值为测试集通过率(%),Mean 为三项基准的算术平均。Spreadsheet 与 ALFWorld 使用官方全量测试集,OfficeQA 使用官方划分的 1/4 子集。
在目前已完成的三项评测中,xskill 均高于 SkillOpt,平均分领先 5.58。
Evaluation Setup
为了尽量还原真实的团队使用场景,评测环境通过 namespace 隔离部署了:
- 3 个独立的
xskill-client - 1 个共享的
xskill-server - 多个由 LLM 模拟的用户,负责与 Agent 进行 QA 交互
[!IMPORTANT] XSkill 无需显式监督信号即可持续进化。 SkillOpt 强依赖 ValSet 提供进化所需的监督信号。 在 ALFWorld 的 Epoch 2、3、4 中,ValSet 均出现精度溢出,导致进化失败,是其算法缺陷。
xskill 支持切换算法内核来驱动技能进化,详见下方「可选:切换算法内核」。
🚀 快速开始
单人模式(尝鲜体验)
如果只想具备检索轨迹的能力,不打算蒸馏任何skill:
bashpip install xskill # Python 3.9+ xskill init # 扫描本机 agent,转换会话;不必填模型 xskill traj search 内存泄漏 xskill traj read <traj_id> # 按行号读原文
如果你有LLM API,不只想要轨迹检索,可以尝试开始skill蒸馏能力:
bashpip install xskill # Python 3.9+ xskill serve # 第一次启动只初始化配置文件 ~/.xskill/config.yaml
打开 ~/.xskill/config.yaml,填两个模型端点(一个 LLM,一个 embedding 向量模型):
yaml1skill_dir: ~/.xskill/skill 2 3llm: 4 base_url: https://api.deepseek.com 5 model: deepseek-v4-flash 6 api_key: YOUR_KEY 7 8embedding: 9 base_url: https://dashscope.aliyuncs.com/compatible-mode/v1 10 model: text-embedding-v4 11 api_key: YOUR_KEY 12 dim: 0
上面这一段 llm 就是大家共用的默认模型。已经在用的配置不用改,继续这样写完全没问题。
如果你想给流水线里的拆分、聚类、编辑各自换一个模型或地址,可以再加一段可选的 llm_agents。不写也没关系。某个阶段或某个字段没写的话,会先看看有没有 llm_skill,再回到 llm。xskill generate 还是用 llm 和 llm_skill,不会去读 llm_agents。改完这几段之后重启一下 xskill serve 就好。
yaml# 可选。不写这段的话,三个阶段都继续用上面的 llm llm_agents: split: model: qwen-plus cluster: model: deepseek-v4-flash edit: base_url: http://localhost:8000/v1 model: local-skill-editor api_key: local
再跑一次 xskill serve, 它会自动识别你机器上每一个受支持的 agent 并开始运行,收集agent的轨迹并将skill推送到对应的harness下。
[!NOTE] 单人模式下,你将会丢失很多精心设计的特性,因此只建议在以下情况进行使用。 1.希望能够自动将之前高频工作流串联成skill 2.每天有高强度的Agent运行需求
团队模式(推荐)
服务器管理员在服务器配置config.yaml后运行中心化进程:
bashxskill serve --server # 会打印connect join命令,复制给组内同事便可。
普通用户执行:
bashxskill connect <host:port> --token <token> --name <工号/姓名>
connect 成功后,指南会装进本机已探测到的 Claude Code、Codex、Cursor 等 agent。在对应 agent 里输入 /xskill-helper,就可以查 generate、search、升级这些用法。没有地址和 token 时,把上面这条命令当示例,向你们自己的 server 管理员要 host、token 和工号,不要连外网公开实例。
额外功能:管控面板
在config.yaml中可以填写管理员身份:
yamldashboard: enabled: true public: true password: "" admins: - admin_name_1 # 管理员<工号/姓名> - admin_name_2 admin_password: admin_passwd_123
然后再在任意一台pc上输入:
bashxskill dashboard
就可以打开并登录管控面面板(身份自动识别),管理员可以进行如下操作:
- 全局pin某个skill
- 暂停某个用户的轨迹上传(异常行为用户)
- 全局下线停推某个skill
- 查看skill的版本血缘,得分趋势
普通用户可以:
- 为自己pin某个喜欢的skill,防止推荐流变化
- 下线某个自己不喜欢的skill
- 查看自己的轨迹贡献给了哪些用户,谁用了自己的skill
- 查看skill的版本血缘,得分趋势
额外功能:即时生成或改写 Skill
generate 不是凭空创作 Skill:它会从 team server 上已有且有权访问的轨迹中提取经验,自然语言指令只用来描述想生成或改写什么。连接到支持 generate 的 team server 后,可以这样创建 Skill:
bashxskill generate "创建一个排查 Python 内存泄漏的 Skill,包含常用诊断命令"
同一个命令也能基于轨迹改写已有 Skill;在指令中写明 Skill 名称和修改目标即可:
bashxskill generate "改写现有的 python-memory-debug Skill,补充 Windows 排查步骤"
需要代理优先参考指定用户的历史轨迹时,使用 --name;多个工号或用户 ID 以逗号分隔。省略该参数时,代理可以在 server 授权的全部轨迹范围内检索:
bashxskill generate --name alice,bob "根据这些用户的成功案例生成数据库迁移 Skill"
任务可能会先等待 SkillEdit 池的空闲席位。CLI 会持续输出排队和运行日志;完成后,生成或改写的 Skill 会直接提交到主干,并 pin 到发起人的推荐列表。如果 CLI 提示 server 版本过旧,请联系管理员升级 team server。
额外功能:技能检索与共享
除了由服务端根据画像自动推荐 Skill 之外,客户端也可以按需主动搜索、下载与上传技能:
bashxskill search <关键词> # 搜索技能库,返回匹配技能与 ID xskill download <skill-id> # 交互式选择要安装的目标 agent xskill download <skill-id> --agent claude-code --agent codex -y # 命令行非交互式安装 xskill upload ./my-skill # 将本地技能目录打包上传至团队共享库 xskill search <关键词> --download # 临时检索并下载至本地轮转槽位
搜索默认结合关键词与语义向量进行混合排序;download 会将指定技能持久化安装至对应 agent;upload 则可将团队成员编写的有效技能一键发布至团队共享库。
额外功能:历史会话与轨迹检索
开发过程中遇到疑难问题时,可直接检索团队成员或本机历史会话(轨迹)及提炼出的原子任务(Atom),参考前人已走通的上下文与排查命令:
bashxskill traj search "内存泄漏排查" # 检索历史会话轨迹 xskill traj search --name alice,bob "内存泄漏" # 指定只检索特定成员的轨迹 xskill traj read <traj_id> --offset-start 1 --offset-end 100 # 按行号阅读会话原文 xskill atom search "OAuth token 刷新" # 检索已切分的原子任务片段 xskill atom read <atom_id> # 查看该 Atom 对应的会话内容
在未连接团队服务端时,xskill traj search 同样支持检索本机各 agent 的历史会话;也可运行 xskill init 进行交互式扫描与初始化。已连接团队服务时,默认发起团队检索,如需仅看本机可追加 --local 参数。
额外功能:SkillHub支持
Xskill支持导入skillhub并将海量skill纳入推荐和评价, 服务器管理员只需要配置~/.xskill/config.yaml:
yamlskillhub: enabled: true dir: /root/.xskill/skillhub_skills
然后将公司内网skillhub随意放置到该目录下(支持多个skillhub),xskill就会自动探测skill并纳入推荐,将相关skill自动推送给指定的用户.
可选:切换算法内核
xskill 默认使用内置 native 内核(拆分、归类、编辑三个代理)驱动技能进化。团队模式下,管理员可以在设置页把 kernel_id 切换为第三方内核(如 OpenEarth),让外部算法接管"轨迹 ready 之后生成 Skill"这一环节,其余流程不变。切换是可选的,不写 kernel 段时一切照旧。
操作步骤和详细说明见 算法内核使用指南。
🔌 与你的 agent 协同
| Agent | 状态 | 轨迹采集 | 技能安装 |
|---|---|---|---|
| Claude Code | ✅ 已验证 | ~/.claude/projects/ | 软链 → ~/.claude/skills/<name>/ |
| Codex CLI | ✅ 已验证 | ~/.codex/sessions/ + ~/.codex/archived_sessions/ | 软链 → ~/.agents/skills/<name>/ |
| OpenCode | ✅ 已验证 | SQLite ~/.local/share/opencode/opencode.db | 软链 → ~/.agents/skills/<name>/ |
| OpenClaw | 🟡 已实现 | ~/.openclaw/agents/ | 拷贝 → ~/.agents/skills/<name>/ |
| Cursor | 🟡 已实现 | ~/.cursor/projects/*/agent-transcripts/ | 软链 → ~/.cursor/skills/<name>/ |
| Trae | 🟡 已实现 | IDE state.vscdb / CLI trajectory_*.json | 软链 → ~/.trae-cn/skills/、~/.trae/skills/ |
| DeepSeek Harness (dsh) | 🟡 已实现 | ~/.dsh/sessions/(明文与默认 zstd 会话均可) | 软链 → ~/.dsh/skills/<name>/ |
| 任何其他 agent | 手动 | SDK xskill.adapters.submit_trajectory | 拷贝/软链 SKILL.md 目录 |
📖 概念
| 术语 | 含义 |
|---|---|
| Trajectory(轨迹) | 一次 agent 运行会话的完整记录,Xskill维护了一套庞大的解析生态层。 |
| TrajectoryAtom(轨迹原子) | 轨迹里最小的、单一意图的切片,是生成skill的原料。 |
| Skill(技能) | 一个 SKILL.md 加可选脚本,各自在独立的 git 目录里带版本。 |
| Canary(灰度) | 当前技能与新候选版本在真实流量上的 A/B 对比测试。 |
| UX score(体验分) | 某条技能在某个原子上服务用户的好坏,由交互本身打 1–10 分。灰度保留分更高的那个版本。 |
🗺 路线图
- 动态并发:根据内网vllm负载动态调整并发以获取更高吞吐
- 多租户:支持一台实例,外放给多个组/部门用
- 工业级推荐引擎:更精细的画像和推荐算法
- 更多 agent 适配:Goose、OpenHands、Aider
- 轨迹湖:支持管理海量轨迹,服务器端安全预警,Time-Travel功能
📰 动态
- 2026-08-27
v0.7.0:Generate 读轨迹改为 traj_search、traj_cards、atom_search、read_traj,wiki 可增量记进度;xskill init可跳过连接,已连接用户再跑不会断连。 - 2026-08-17
v0.6.32a1:流水线按新轨迹先拆先归;看板可热改席位和配额比,不重启 agent-worker;有 generate 在等大模型时硬优先;已达触发条件的 import 技能优先占编辑座。 - 2026-08-14
v0.6.31:xskill rebuild --force不再因.git/objects非空中断;全量 rebuild 会留下xskill import纳入的技能,只清蒸馏产物。 - 2026-08-14
v0.6.30:teamxskill import后钉到发起人推荐列表;技能库登录后可点空心星 pin 进自己的推荐流,并标出推给我、已钉状态;import 后技能立即出现在技能库清单。 - 2026-08-14
v0.6.30a3:xskill generate排队和执行时 CLI 及时打出状态,不再干等;旧安装账本混入倒退序号时仍能 import 并装回 harness。 - 2026-08-14
v0.6.30a2:修复 teamxskill generate上下文压缩后代理忘掉已执行工作。 - 2026-08-14
v0.6.30a1:team 模式新增xskill generate按指令写技能到主干;新增xskill import纳入已有技能。 - 2026-08-07
v0.6.29:修复推荐回填问题。 - 2026-08-03
v0.6.29a6:milvus变更为可选VDB;支持 DashBoard选择skill推送个数,支持Dashboard查询Skill的用户灰度情况; - 2026-08-03
v0.6.29a5:引入 Milvus Lite 向量索引。 - 2026-07-30
v0.6.29a4:Dashboard 新增「我的」页,普通用户默认进入,贡献去向与世界消息支持分页浏览;支持回收client端推荐变更导致产生的孤儿skill。 - 2026-07-30
v0.6.29a3:推荐引擎优化。 - 2026-07-20 ——
v0.6.25:SkillHub 支持非 UTF-8SKILL.md;Dashboard 支持暂停/恢复指定用户的轨迹入库; - 2026-07-07 ——
v0.6.2a2:修复 Windowsconnect无需管理员权限即可后台常驻,windows下常驻进程迭代至可用; - 2026-07-07 ——
v0.6.2: 引入用户画像和skill 推荐引擎;支持使用实名制工号连接服务;支持导入第三方 skillhub 纳入检索池;为Windows平台添加后台常驻(xskill start/stop/status), 支持CLI管理进程; - 2026-05-29 —— 新增 Trae IDE / Trae Agent 适配。
- 2026-05-23 ——
v0.5.0:引入团队模式(client-server)、引入轨迹脱敏功能守护隐私、支持Python 3.9、移除git依赖。 - 2026-05-20 —— MIT 开源;上线 PyPI:
pip install xskill。 - 2026-05-12 —— 支持 Claude Code、Codex、OpenCode;接通 OpenClaw 与 Cursor。
🙏 致谢
港大 OpenSpace、阿里 Trace2Skill、华东师范 AutoSkill、微软SkillOpt
🤝 贡献
欢迎提 Issue 和 PR
📝 引用
bibtex@misc{xskill2026, title = {xskill: Team-Level Skill Distillation, Sharing, and Evolution for Coding Agents}, author = {SkillNerds}, year = {2026}, howpublished = {\url{https://github.com/SkillNerds/xskill}} }