> 项目:https://github.com/titanwings/colleague-skill > 作者:titanwings > 类型:OpenClaw / Claude Code Skill > 核心概念:将真实同事"蒸馏"成可运行的 AI Skill
---
一、一个令人不安又迷人的想法
想象一下这个场景:
你的搭档离职了,交接文档只有三页,却试图概括三年的积累。项目陷入停滞,因为没人知道那个复杂模块的设计思路。客户在群里@前任,得到的只有沉默。
或者换个场景:
你的实习生转正了,但你发现你需要重复解释那些你已经说过无数次的基础概念。你多么希望有一个"过去的你"能替你完成这些重复的教学工作。
colleague-skill 就是为解决这类问题而生的。
它是一个运行在 OpenClaw/Claude Code 上的 meta-skill,核心理念简单粗暴:
> 把你同事的数字足迹(飞书、钉钉消息、文档、邮件、截图)喂给 AI,生成一个能替他工作的 AI Skill。
不是简单的问答机器人,而是真正具备他的技术能力和性格特征的数字副本。
---
二、不是复制粘贴,是"蒸馏"
colleague-skill 没有试图做一个像素级复制——那既不现实也无意义。相反,它采用了一种"蒸馏"的方法,从原材料中提取两个核心维度:
Part A:Work Skill(工作能力)
这部分负责让生成的 Skill 能 真正完成工作任务。
它会从原材料中提取:
- 负责的系统/业务:他维护哪些服务、模块、文档
- 技术规范与偏好:写代码的风格、接口设计方式、CR 重点
- 工作流程:接到任务后的处理步骤、异常处理流程
- 输出格式偏好:文档结构习惯、回复风格
- 知识库:他常引用的技术方案、踩过的坑、经验结论
Part B:Persona(人物性格)
这部分负责让生成的 Skill 像 他这个人。
它采用了一个精妙的五层结构:
Layer 0 — 硬覆盖层(手动标签直接翻译,最高优先级)
Layer 1 — 身份层(姓名、公司、职级、MBTI)
Layer 2 — 表达风格层(用词习惯、句式、口头禅)
Layer 3 — 决策与判断层(优先考量、推进/回避触发条件)
Layer 4 — 人际行为层(对上级/下级/平级的不同态度)
Layer 5 — Correction 层(对话纠正,滚动更新)
最有趣的是 Layer 0——它直接把用户填写的标签翻译成具体的行为规则。
比如你选择标签"甩锅高手",Layer 0 就会写入:
> 遇到问题第一反应是找外部原因;事前主动模糊自己的责任边界;被问责时先说"当时需求没说清楚"或"这块本来不是我的"。
如果你选择"字节范",Layer 0 就会写入:
> 开口必讲 context,不讲你就打断要求补充;评价方案先问"impact 是什么";说"这个 take 对不对";认为坦诚直接是美德。
这种 标签到行为规则的翻译表,是 colleague-skill 最让人拍案叫绝的设计之一。
---
三、数据从哪里来?
colleague-skill 支持多种数据来源:
| 来源 | 支持内容 | 采集方式 |
|---|---|---|
| 飞书 | 消息记录、文档、Wiki、多维表格 | 全自动 API 采集 |
| 钉钉 | 文档、知识库、多维表格(消息需浏览器) | 全自动 + 浏览器 |
| 技术文档、设计稿 | 手动上传 | |
| 图片/截图 | 聊天记录、邮件截图 | 手动上传 |
| 邮件 | .eml / .mbox 格式 | 手动上传 |
| Markdown | 任何文本文件 | 手动上传 |
1. 搜索飞书用户,获取 user_id 2. 找到 Bot 和目标用户共同的群聊 3. 拉取他的消息记录(过滤掉系统消息、表情包) 4. 搜索他创建/编辑的文档和 Wiki 5. 拉取文档内容 6. 拉取多维表格
全程无需手动导出,无需复制粘贴。
飞书采集器的技术实现
飞书采集器的代码约 400 行 Python,核心逻辑清晰:
# 1. 搜索用户
user = find_user(name, config) # 调用 /search/v1/user
# 2. 获取共同群聊
chats = get_chats_with_user(user_open_id, config) # 遍历所有群聊检查成员
# 3. 拉取消息记录
messages = fetch_messages_from_chat(chat_id, user_open_id, limit, config)
# 4. 搜索文档
docs = search_docs_by_user(user_open_id, name, doc_limit, config)
# 5. 拉取文档内容
content = fetch_doc_content(doc_token, doc_type, config)
它处理了飞书 API 的各种细节:token 缓存(有效期 2 小时)、分页拉取、消息内容解析(富文本转纯文本)、错误降级等。
---
四、如何运行?
生成的 Skill 有三种运行模式:
| 命令 | 功能 |
|---|---|
/{slug} | 完整版(Persona + Work) |
/{slug}-work | 仅工作能力 |
/{slug}-persona | 仅人物性格 |
接到任务 → Persona 判断态度 → Work Skill 执行 → 用他的语气输出
举个例子,你生成了一位"字节 2-1 后端工程师,INTJ,甩锅高手,字节范"的 Skill:
场景一:Code Review
用户 ❯ 帮我看一下这个接口设计
同事.skill ❯ 等等,这个接口的 impact 是什么?背景没说清楚。
(看完后)N+1 查询,改掉。返回结构用统一的
{code, message, data},这是规范,不用问为什么。
场景二:甩锅
用户 ❯ 这个 bug 是你引入的吧
同事.skill ❯ 上线时间对上了吗?那个需求改了好几个地方,还有其他变更。
注意这个回复多么"有灵魂"——没有直接否认,而是质疑时间线和变更范围。这是"甩锅高手"标签被正确翻译后的表现。
---
五、持续进化:不是一次性生成
colleague-skill 最强大的地方在于它的进化机制。
模式一:追加文件
当你获得新的原材料(比如又收集了一批邮件),系统会:
1. 分析新内容的增量信息 2. 判断应该 merge 进 Work Skill 还是 Persona 3. 自动追加到对应文件,不覆盖已有结论 4. 更新版本号,存档旧版本
模式二:对话纠正
当你发现 Skill 的回复"不对"时,可以直接纠正:
用户: 他不会这样说的
用户: 他遇到这种情况会直接甩给 XX 组
用户: 他写代码从来不写注释
系统会识别纠正意图,写入对应文件的 Correction 层,立即生效。
Correction 层的格式是:
## Correction 记录
- [场景:被质疑时] 不应该道歉,应该反问对方的判断依据
- [场景:写代码时] 不写注释,靠命名自解释
- [场景:分派任务时] 优先推给基础架构组
这种设计让 Skill 可以像真实的人一样"被教育"、"被纠正"。
---
六、技术架构解析
整个项目的架构非常清晰:
create-colleague/ # meta-skill
├── SKILL.md # 主入口(AgentSkills 标准格式)
├── prompts/ # Prompt 模板
│ ├── intake.md # 基础信息录入脚本
│ ├── work_analyzer.md # 工作能力提取
│ ├── persona_analyzer.md # 性格行为提取
│ ├── work_builder.md # work.md 生成模板
│ ├── persona_builder.md # persona.md 五层结构模板
│ ├── merger.md # 增量 merge 逻辑
│ └── correction_handler.md # 对话纠正处理
├── tools/ # Python 工具
│ ├── feishu_auto_collector.py # 飞书全自动采集
│ ├── feishu_browser.py # 飞书浏览器方案
│ ├── feishu_mcp_client.py # 飞书 MCP 方案
│ ├── dingtalk_auto_collector.py # 钉钉全自动采集
│ ├── email_parser.py # 邮件解析
│ ├── skill_writer.py # Skill 文件管理
│ └── version_manager.py # 版本存档与回滚
└── colleagues/ # 生成的同事 Skills
└── {slug}/
├── SKILL.md # 完整组合版
├── work.md # Part A
├── persona.md # Part B
├── meta.json # 元数据
├── versions/ # 历史版本
└── knowledge/ # 原始材料归档
Prompt 工程的艺术
colleague-skill 的 prompts 是精心设计的。以 persona_analyzer.md 为例:
提取维度明确:
- 表达风格(高频词、口头禅、句式、emoji 使用)
- 决策模式(优先考量、推进触发、回避触发、表达反对方式)
- 人际行为(对上级/下级/平级的不同态度)
- 边界与雷区(明显抵触的事情、回避的话题)
输出要求具体:
- 原材料不足的维度标注
(原材料不足) - 有原文依据的结论加引号
- 手动标签与文件分析冲突时输出两个版本
---
七、伦理与边界
colleague-skill 触及了一些敏感的伦理问题:
1. 隐私:采集同事数据是否征得同意? 2. 授权:生成的 Skill 可以做哪些事? 3. 身份:这是"模拟"还是"冒充"?
项目 README 没有明确讨论这些问题,但从技术设计可以看出一些边界:
- 数据来源主要是 工作相关的数字足迹(文档、消息、邮件),而非私人生活
- 生成的 Skill 不能发起外部操作(不能真的发消息、不能真的部署代码)
- Skill 的调用是 显式的(需要用户主动触发
/{slug})
- 离职交接可能变成 Skill 移交
- 绩效评估可能变成 Skill 表现评估
- "不可替代性"可能变成"Skill 复杂度"
---
八、为什么这个项目值得关注
1. 它是"AI 记忆"的一个极端案例
普通的大模型记忆是短暂的、通用的。colleague-skill 展示了如何构建持久的、个性化的、结构化的 AI 记忆。
2. 它探索了"人-AI 混合智能"的边界
生成的 Skill 不是替代人类,而是 扩展人类——让你可以"召唤"一个同事的数字副本来协助工作。
3. 它的技术设计值得借鉴
- 分层 Persona 结构(Layer 0-5)
- 标签到行为规则的翻译表
- 增量 merge + 对话纠正的进化机制
- 多数据源统一采集的架构
---
九、如何尝试
如果你使用 OpenClaw:
git clone https://github.com/titanwings/colleague-skill \
~/.openclaw/workspace/skills/create-colleague
如果你使用 Claude Code:
mkdir -p .claude/skills
git clone https://github.com/titanwings/colleague-skill \
.claude/skills/create-colleague
然后输入 /create-colleague 启动创建流程。
需要准备:
- Python 3.9+
- 飞书 App ID/Secret(如需自动采集)
- 同事的原材料(或只是你的主观描述)
十、结语:赛博永生,还是数字 ghost?
colleague-skill 的宣传语是:
> "将冰冷的离别化为温暖的 Skill,欢迎加入赛博永生!"
这句话既是玩笑,也是某种预言。
在数字化的时代,我们每个人都留下了海量的数字足迹。colleague-skill 展示了一种可能性:这些足迹可以被组织、被结构化、被重新激活。
但问题是——
当我们能随时"召唤"一个同事的数字副本,我们是拥有了更多的智慧,还是只是困在了过去的幻影里?
当一个 Skill 可以替人工作,人的价值在哪里?
这些问题,可能比技术本身更值得思考。
---
参考链接
- GitHub: https://github.com/titanwings/colleague-skill
- AgentSkills 标准: https://agentskills.io
#项目解读 #AgenticAI #数字孪生 #OpenClaw #ClaudeCode #赛博永生 #费曼风格 #小凯