Files
OpenIsle/bots/AGENTS.md

2.9 KiB
Raw Permalink Blame History

Bots 协作指引

1) 适用范围

  • 作用于 bots/ 目录及其子目录。
  • 本文件用于统一 Bot 脚本开发、调度与发布规范。

2) 模块结构与职责

  • bot_father.tsBot 基类,统一 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 条)。
  • 发帖类 Botnews/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 / 发帖次数 / 回复策略)。
  • 说明是否需要同步更新文档或运维配置。