每周更新自动化代理
在Confluence中生成和维护每周更新文档的自动化系统,从Jira、Glean和Pendo那里获取见解。
特性
- 星期一文件创建:每周一自动创建一个新的每周更新文档
- 每日更新:每天晚上8点用新内容更新当前的每周文件
- 周五编译:周五晚上8:30,将本周的内容汇编成一个连贯的文档(无重复)
- 多源综合:从Jira、Glean、Pendo和Granola中提取数据
- 音调匹配:从过去的文档中学习,以匹配你的写作风格
- 高级副总裁焦点:突出与产品高级副总裁相关的战略项目
- 防止重复:跟踪添加的内容以避免重复
设置
- 安装依赖项:
pip install -r requirements.txt- 配置环境变量(可选):
export PENDO_INTEGRATION_KEY="your-key-here"
export TIMEZONE="America/New_York"- 确保在Cursor中配置了MCP服务器:
- Atlassian(Jira/Confluence) - 收集 - 彭多
用法
作为服务运行:
python main.py
# or
python scheduler.py重要提示: 调度程序作为一个长时间运行的进程运行。你必须 保持终端窗口打开 (或者在里面运行它 tmux/screen)使周一、每日和周五的作业按计划运行。如果关闭终端或停止进程,则在重新启动之前,不会运行任何计划作业。
手动运行作业(用于测试):
from scheduler import WeeklyUpdateScheduler
scheduler = WeeklyUpdateScheduler()
scheduler.run_now("daily") # or "monday" or "friday"松弛(斜线命令)
您可以通过以下方式触发Slack的每周更新 /weekly-update 斜线命令。
先决条件
- 带有Slash命令的Slack应用程序,其请求URL指向您正在运行的Slack应用服务器(请参阅 SLACK.md 用于设置)。
环境变量
SLACK_SIGNING_SECRET(必填):从您的Slack应用程序→ 基本信息→ 签名秘密。用于验证请求。SLACK_BOT_TOKEN(可选):仅当您通过以下方式发布后续消息时才需要chat.postMessage而不是内置response_url.
运行Slack应用程序
python slack_app.py
# or: flask --app slack_app run --port 5000将斜线命令请求URL设置为 https://your-host/slack/weekly-update (例如使用 吸烟 用于本地测试)。
用法
/weekly-update--运行 日常 更新(默认)。/weekly-update daily--同样的。/weekly-update monday--创建新的每周文件(周一作业)。/weekly-update friday--编译本周(周五作业)。
应用程序立即响应并在后台运行作业;作业完成后,它会向同一通道发布成功或失败消息(如果 response_url 由Slack提供)。
部署到渲染(这样您的团队就可以在不本地运行的情况下使用它)
- 将此仓库推送到GitHub(如果还没有)。
- 首选 dashboard.render.com → 新 → 蓝图.
- 连接您的GitHub帐户并选择
weekly_updates_agent回购。渲染将读取render.yaml并创建一个免费的 网络服务. - 在新服务中,打开 环境 并添加:
- 密钥: SLACK_SIGNING_SECRET - 价值: Slack应用程序的签名密码(来自 api.slack.com → 你的应用→ 基本信息)。 - 如果希望后台作业在Render上成功运行,请在服务器上添加您每周更新作业所需的任何其他环境变量(例如Confluence/Jira/Glean/Pendo凭据)。
- 部署(或等待第一次自动部署)。一旦上线,复制服务URL(例如。
https://weekly-updates-slack.onrender.com). - 在Slack中: api.slack.com → 你的应用→ 斜杠命令 → 编辑您的命令。集 请求URL 到
https://YOUR-RENDER-URL/slack/weekly-update(例如。https://weekly-updates-slack.onrender.com/slack/weekly-update).保存。
然后,您工作区中的任何人都可以使用 /weekly-update 不在本地运行任何东西。在免费套餐中,服务可能会在大约15分钟的不活动后休眠;之后的第一个请求可能需要几秒钟才能唤醒。
建筑
scheduler.py-运行作业的主调度程序file_manager.py-管理Confluence页面的创建和更新content_generator.py-从聚合数据生成内容jira_aggregator.py-从Jira获取数据glean_aggregator.py-从Glean获取数据pendo_aggregator.py-从Pendo获取数据granola_aggregator.py-从Granola获取会议数据tone_analyzer.py-分析过去的文档的语气/风格svp_filter.py-根据SVP相关性过滤内容confluence_client.py-汇流API包装器config.py-配置管理slack_app.py-用于Slack slash命令的Flask应用程序(/weekly-update)
文档结构
每周更新包括:
- 亮点:主要成就和阻碍因素简明摘要
- 本周:项目层面的更新和倡议进展
- 下周:行动项目和计划采取的下一步行动
- 客户专区:前一周客户通话记录的链接
备注
- 代理使用MCP服务器进行API访问(已在Cursor中配置)
- 内容以增量方式附加,以避免覆盖现有条目
- 音调和风格是从过去3-5周的文档中学习的
- 客户电话从Granola(主要)或Glean(备用)接听
- Granola需要OAuth身份验证-您需要在首次连接时进行身份验证
