Files
colleague-skill/INSTALL.md
titanwings b8305a38f3 feat: add Slack auto collector
- tools/slack_auto_collector.py: Slack Bot API 自动采集消息
- requirements.txt: 新增 slack-sdk 依赖
- INSTALL.md: 新增 Slack 配置章节(6 步配置流程、Scope 列表、报错解决)
- README.md: 新增 Slack 数据来源行及工具文件

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 18:41:54 +08:00

254 lines
7.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 同事.skill 安装说明
---
## 选择你的平台
### A. Claude Code推荐
本项目遵循官方 [AgentSkills](https://agentskills.io) 标准,整个 repo 就是 skill 目录。克隆到 Claude skills 目录即可:
```bash
# ⚠️ 必须在 git 仓库根目录执行!
cd $(git rev-parse --show-toplevel)
# 方式 1安装到当前项目
mkdir -p .claude/skills
git clone https://github.com/titanwings/colleague-skill .claude/skills/create-colleague
# 方式 2安装到全局所有项目都能用
git clone https://github.com/titanwings/colleague-skill ~/.claude/skills/create-colleague
```
然后在 Claude Code 中说 `/create-colleague` 即可启动。
生成的同事 Skill 默认写入 `./colleagues/` 目录。
---
### B. OpenClaw
```bash
# 克隆到 OpenClaw 的 skills 目录
git clone https://github.com/titanwings/colleague-skill ~/.openclaw/workspace/skills/create-colleague
```
重启 OpenClaw session`/create-colleague` 启动。
---
## 依赖安装
```bash
# 基础Python 3.9+
pip3 install pypinyin # 中文姓名转拼音 slug可选但推荐
# 飞书浏览器方案(内部文档/需要登录权限的文档)
pip3 install playwright
playwright install chromium # 仅需安装 chromium不需要完整 Chrome
# 飞书 MCP 方案(公司授权文档,通过 App Token 读取)
npm install -g feishu-mcp # 需要 Node.js 16+
# 其他格式支持(可选)
pip3 install python-docx # Word .docx 转文本
pip3 install openpyxl # Excel .xlsx 转 CSV
```
### 平台方案选择指南
| 场景 | 推荐方案 |
|------|---------|
| 飞书用户,有 App 权限 | `feishu_auto_collector.py` |
| 飞书内部文档(无 App 权限)| `feishu_browser.py` |
| 飞书手动指定链接 | `feishu_mcp_client.py` |
| 钉钉用户 | `dingtalk_auto_collector.py` |
| 钉钉消息采集失败 | 手动截图 → 上传图片 |
| Slack 用户 | `slack_auto_collector.py` |
**飞书自动采集初始化**
```bash
python3 tools/feishu_auto_collector.py --setup
# 输入飞书开放平台的 App ID 和 App Secret
```
**钉钉自动采集初始化**
```bash
python3 tools/dingtalk_auto_collector.py --setup
# 输入钉钉开放平台的 AppKey 和 AppSecret
# 首次运行加 --show-browser 参数以完成钉钉登录
```
**飞书 MCP 初始化**(手动指定链接时使用):
```bash
python3 tools/feishu_mcp_client.py --setup
```
**飞书浏览器方案**(首次使用会弹窗登录,之后自动复用登录态):
```bash
python3 tools/feishu_browser.py \
--url "https://xxx.feishu.cn/wiki/xxx" \
--show-browser # 首次使用加这个参数,登录后不再需要
```
**Slack 自动采集初始化**
```bash
pip3 install slack-sdk
python3 tools/slack_auto_collector.py --setup
# 按提示输入 Bot User OAuth Tokenxoxb-...
```
> Slack 详细配置见下方「[Slack 自动采集配置](#slack-自动采集配置)」章节
---
## Slack 自动采集配置
### 前置条件
- Python 3.9+
- Slack Workspace需要**管理员权限**安装 App或联系管理员帮你安装
- `pip3 install slack-sdk`
> **免费版 Workspace 限制**:只能访问最近 **90 天**的消息记录。付费版Pro / Business+ / Enterprise无此限制。
---
### 步骤 1创建 Slack App
1. 前往 [https://api.slack.com/apps](https://api.slack.com/apps) → **Create New App**
2. 选择 **From scratch**
3. 填写 App Name`colleague-skill-bot`),选择目标 Workspace → **Create App**
---
### 步骤 2配置 Bot Token Scopes
进入 **OAuth & Permissions****Bot Token Scopes****Add an OAuth Scope**,添加以下权限:
| Scope | 用途 |
|-------|------|
| `users:read` | 搜索用户列表(必需) |
| `channels:read` | 列出 public channels必需 |
| `channels:history` | 读取 public channel 历史消息(必需) |
| `groups:read` | 列出 private channels必需 |
| `groups:history` | 读取 private channel 历史消息(必需) |
| `mpim:read` | 列出群 DM可选 |
| `mpim:history` | 读取群 DM 历史消息(可选) |
| `im:read` | 列出 DM可选需用户授权 |
| `im:history` | 读取 DM 历史消息(可选,需用户授权) |
---
### 步骤 3安装 App 到 Workspace
1. 仍在 **OAuth & Permissions** 页面,点击 **Install to Workspace**
2. Workspace 管理员审批后,复制 **Bot User OAuth Token**(格式:`xoxb-...`
---
### 步骤 4将 Bot 加入目标频道
Bot 只能读取**它已加入**的频道。在 Slack 中,进入每个目标频道,输入:
```
/invite @your-bot-name
```
> 提示:如果你不知道目标同事在哪些频道,可以先不邀请,运行采集时脚本会告知 Bot 加入了哪些频道,再补充邀请。
---
### 步骤 5运行配置向导
```bash
python3 tools/slack_auto_collector.py --setup
```
按提示粘贴 Bot Token脚本会自动验证并保存到 `~/.colleague-skill/slack_config.json`
配置成功后你会看到:
```
验证 Token ... OK
WorkspaceYour CompanyBotcolleague-skill-bot
✅ 配置已保存到 /Users/you/.colleague-skill/slack_config.json
```
---
### 步骤 6采集同事数据
```bash
# 基本用法(输入同事的中文名或英文用户名)
python3 tools/slack_auto_collector.py --name "张三"
python3 tools/slack_auto_collector.py --name "john.doe"
# 指定输出目录
python3 tools/slack_auto_collector.py --name "张三" --output-dir ./knowledge/zhangsan
# 限制采集量(大 Workspace 建议先小量测试)
python3 tools/slack_auto_collector.py --name "张三" --msg-limit 500 --channel-limit 20
```
输出文件:
```
knowledge/张三/
├── messages.txt # 按权重分类的消息记录
└── collection_summary.json # 采集摘要(用户信息、频道列表、时间)
```
---
### 常见报错与解决
| 报错 | 原因 | 解决 |
|------|------|------|
| `missing_scope: channels:history` | Bot Token 缺少权限 | 回到 api.slack.com → OAuth & Permissions 添加对应 Scope重新安装 App |
| `invalid_auth` | Token 无效或已吊销 | 重新运行 `--setup` 配置新 Token |
| `not_in_channel` | Bot 未加入该频道 | 在 Slack 里 `/invite @bot` 邀请 Bot |
| 未找到用户 | 姓名拼写不对 | 改用英文用户名(如 `john.doe`)或 Slack display name |
| 消息只有 90 天 | 免费版限制 | 升级 Workspace 或手动补充截图 |
| 速率限制429| 请求太频繁 | 脚本会自动等待重试,无需手动处理 |
## 快速验证
```bash
cd ~/.claude/skills/create-colleague # 或你的项目 .claude/skills/create-colleague
# 测试飞书解析器
python3 tools/feishu_parser.py --help
# 测试 Slack 采集器
python3 tools/slack_auto_collector.py --help
# 测试邮件解析器
python3 tools/email_parser.py --help
# 列出已有同事 Skill
python3 tools/skill_writer.py --action list --base-dir ./colleagues
```
---
## 目录结构说明
本项目整个 repo 就是一个 skill 目录AgentSkills 标准格式):
```
colleague-skill/ ← clone 到 .claude/skills/create-colleague/
├── SKILL.md # skill 入口(官方 frontmatter
├── prompts/ # 分析和生成的 Prompt 模板
├── tools/ # Python 工具脚本
├── docs/ # 文档PRD 等)
└── colleagues/ # 生成的同事 Skill 存放处(.gitignore 排除)
└── {slug}/
├── SKILL.md # 完整 SkillPersona + Work
├── work.md # 仅工作能力
├── persona.md # 仅人物性格
├── meta.json # 元数据
├── versions/ # 历史版本
└── knowledge/ # 原始材料归档
```