mirror of
https://github.com/nagisa77/OpenIsle.git
synced 2026-02-20 22:11:01 +08:00
2.9 KiB
2.9 KiB
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_IDDAILY_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.tsnpx tsx bots/instance/open_source_reply_bot.tsnpx tsx bots/instance/daily_news_bot.tsnpx tsx bots/instance/coffee_bot.ts
- 验证时至少确认:可启动、可调用 MCP、异常时退出码非 0。
8) 输出要求
- 说明改动影响哪个 Bot、哪个 workflow。
- 说明是否改变了工具调用边界(MCP tools / 发帖次数 / 回复策略)。
- 说明是否需要同步更新文档或运维配置。