主 README 聚焦早报 Quick Start,Bot 文档迁至 bot/README.md 并标 experimental。 Co-authored-by: Cursor <cursoragent@cursor.com>
4.6 KiB
4.6 KiB
bot/ — 企微 API 模式智能机器人
EXPERIMENTAL — 本模块不在 daily-robots v1 开源支持范围内。
主产品为根目录 早报推送(webhook),见 README。
Bot 需独立 venv、企微 API 凭证、常驻进程;问题请自行排查或提 issue 标注bot。
在企微里 @ 机器人即可:
- 快查:
trending 10、hot 10、搜索 react(本地 skills 数据,秒回) - 截图预览:
preview/截图(基于CURSOR_CWD启动前端并发图) - 通用任务:任意自然语言需求,由 Cursor Agent 执行并回传结果
数据层与早报共用 shared/skills_data.py。
1. 创建 API 模式机器人
- 企业微信管理后台 → 安全与管理 → 管理工具 → 智能机器人 → 创建机器人
- 选择 API 模式创建 → 使用长连接
- 记录 Bot ID 和 Secret(Secret 只显示一次,请立即保存)
- 设置可见范围,将机器人 添加到目标群 或允许成员单聊
普通成员路径:工作台 → 智能机器人 → 手动创建 → API 模式 → 长连接
2. 启动本地服务
cd path\to\daily-robots\bot
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
playwright install chromium
copy .env.example .env
# 编辑 .env:WECOM_BOT_ID / WECOM_BOT_SECRET / CURSOR_API_KEY
python main.py
服务需 常驻运行(本机、服务器或 Docker)。长连接模式下机器人进程须在线才能收消息。
3. 路由模式(ROUTING_MODE)
| 模式 | 行为 |
|---|---|
hybrid(默认) |
trending/hot/搜索/详情 走本地快查;其余 @ 消息交给 Cursor |
cursor |
所有消息都交给 Cursor 执行 |
skills |
仅本地 skills 快查 |
Cursor 任务示例(群里发送):
@test 总结 trending top10,并推荐 3 个适合前端团队的 skill
@test 对比 mattpocock/skills 和 obra/superpowers 各有哪些热门 skill
@test 帮我写一段 npx skills add 的安装说明
Cursor 在本机 CURSOR_CWD 目录下运行(见 bot/.env)。复杂任务可能需要 1–10 分钟,流式消息会显示「Cursor 正在执行任务…」。
4. 前端截图预览(API 模式发图)
项目路径读取 .env 中的 CURSOR_CWD。机器人会:
- 在
CURSOR_CWD检测package.json,若有dev脚本则执行PREVIEW_DEV_COMMAND(默认npm run dev) - 等待
PREVIEW_PORT(默认5173)就绪,或用PREVIEW_URL直接访问 - Playwright 打开页面并截图
- 通过 API 模式 上传图片 + 回复 image 消息 到群
| 命令 | 说明 |
|---|---|
preview / 截图 / 预览 |
访问 http://127.0.0.1:5173/ 并截图 |
preview /login |
指定路径 |
preview / 3000 |
指定端口 |
preview http://127.0.0.1:8080/ |
指定完整 URL |
.env 可选配置:
CURSOR_CWD=.
PREVIEW_PORT=5173
PREVIEW_URL=http://127.0.0.1:5173/
PREVIEW_DEV_COMMAND=npm run dev
PREVIEW_STARTUP_TIMEOUT=120
4b. 网页操作(Playwright 步骤引擎)
支持三种方式定义操作流程,无需改 Python 代码:
1. 自然语言(企微里直接说)
@test 访问登录页,输入账号密码,点击登录后进入主页,点击智能体管理菜单然后截图
账号密码从 .env 读取({{PREVIEW_LOGIN_USER}} / {{PREVIEW_LOGIN_PASSWORD}}),勿在群里发密码。
2. 场景文件 YAML — 见 scenarios/,触发:@test browser <场景名>
3. 消息内 DSL — 以 browser: 开头的多行步骤
支持的步骤:goto · fill · click · wait · screenshot · press
5. 快查命令
| 命令 | 说明 |
|---|---|
trending 10 / 趋势 10 |
近期增长榜 Top N(默认 10,最大 30) |
hot 10 / 实时 10 |
实时热度榜 |
all 10 / 总榜 10 |
历史总安装榜 |
搜索 react / search tdd |
关键词搜索 |
详情 find-skills |
单个 skill 详情 + 安装命令 |
preview / 截图 |
启动 CURSOR_CWD 前端并截图发群 |
帮助 |
命令列表 |
6. 本地测试(无需企微凭证)
cd path\to\daily-robots\bot
python -c "from skills_service import handle_command; print(handle_command('trending 5'))"
配置
| 文件 | 说明 |
|---|---|
bot/.env |
WECOM_BOT_ID、WECOM_BOT_SECRET、CURSOR_API_KEY 等 |
.env.example |
模板 |
与根目录 .env(早报 webhook)相互独立,勿混用。