mirror of
https://github.com/nagisa77/OpenIsle.git
synced 2026-02-24 07:00:49 +08:00
69 lines
2.9 KiB
Markdown
69 lines
2.9 KiB
Markdown
# Bots 协作指引
|
||
|
||
## 1) 适用范围
|
||
|
||
- 作用于 `bots/` 目录及其子目录。
|
||
- 本文件用于统一 Bot 脚本开发、调度与发布规范。
|
||
|
||
## 2) 模块结构与职责
|
||
|
||
- `bot_father.ts`:Bot 基类,统一 Agent 初始化、MCP 工具接入、CLI 运行入口。
|
||
- `instance/reply_bot.ts`:常规互动回复 Bot(提及/评论自动处理)。
|
||
- `instance/open_source_reply_bot.ts`:开源问答 Bot(偏代码与贡献流程)。
|
||
- `instance/daily_news_bot.ts`:每日新闻帖 Bot。
|
||
- `instance/coffee_bot.ts`:早安抽奖帖 Bot。
|
||
|
||
## 3) 开发约定(新增/改造 Bot)
|
||
|
||
- 新 Bot 统一继承 `BotFather`,最少实现:
|
||
- `getAdditionalInstructions()`
|
||
- `getCliQuery()`
|
||
- 保持导出约定:`export const runWorkflow = ...`,并保留 `if (require.main === module)` CLI 入口。
|
||
- 不随意改动 `bot_father.ts` 的 MCP 工具白名单;若必须调整,需同步评估 `mcp/` 契约与线上可用性。
|
||
|
||
## 4) 环境变量与密钥规范
|
||
|
||
- 必需:`OPENAI_API_KEY`(缺失会直接失败)。
|
||
- 常用:
|
||
- `OPENISLE_TOKEN`(用于 OpenIsle MCP 鉴权;GitHub Actions 中可映射不同 secret)
|
||
- `APIFY_API_TOKEN`(天气 MCP 鉴权)
|
||
- News Bot 可选参数:
|
||
- `DAILY_NEWS_CATEGORY_ID`
|
||
- `DAILY_NEWS_TAG_IDS`
|
||
- 严禁在代码中硬编码真实 token;仅通过 CI secrets 或本地环境变量注入。
|
||
|
||
## 5) 工作流同步规则(与 GitHub Actions 对齐)
|
||
|
||
- 相关工作流:
|
||
- `.github/workflows/reply-bots.yml`
|
||
- `.github/workflows/open_source_reply_bot.yml`
|
||
- `.github/workflows/news-bot.yml`
|
||
- `.github/workflows/coffee-bot.yml`
|
||
- 若改脚本入口、依赖或 env 键名,必须同步更新对应 workflow。
|
||
- 若改触发节奏(cron)或 Bot 行为边界,需在变更说明中写明影响(频率、成本、风险)。
|
||
|
||
## 6) 行为约束(防重复/防失控)
|
||
|
||
- 回复类 Bot 需保持幂等:避免对同一上下文重复回复。
|
||
- 处理未读后应调用 `mark_notifications_read` 清理通知。
|
||
- 批量处理建议保持上限(当前提示词约定为最多 10 条)。
|
||
- 发帖类 Bot(news/coffee)必须控制 `create_post` 调用次数(一次任务最多一次发帖)。
|
||
- Open Source Reply Bot 保持专业技术风格,避免跑题到非开源问答。
|
||
|
||
## 7) 本地验证建议
|
||
|
||
- 依赖安装(与 CI 一致):
|
||
- `npm install --no-save @openai/agents tsx typescript`
|
||
- 单脚本运行示例:
|
||
- `npx tsx bots/instance/reply_bot.ts`
|
||
- `npx tsx bots/instance/open_source_reply_bot.ts`
|
||
- `npx tsx bots/instance/daily_news_bot.ts`
|
||
- `npx tsx bots/instance/coffee_bot.ts`
|
||
- 验证时至少确认:可启动、可调用 MCP、异常时退出码非 0。
|
||
|
||
## 8) 输出要求
|
||
|
||
- 说明改动影响哪个 Bot、哪个 workflow。
|
||
- 说明是否改变了工具调用边界(MCP tools / 发帖次数 / 回复策略)。
|
||
- 说明是否需要同步更新文档或运维配置。
|