AI PM Agent · GitHub Actions · 零服务器

tempov2

给小团队的 AI 项目经理。
每天按节拍推进度,按需开 issue,
带温度,不打鸡血。

飞书 + Slack GitHub Actions 多 repo plan 模式自动开 issue NVC 三段 emo
GitHub
TL;DR

小团队 PM
的三类开销

我们团队 4 个人,每周花在"协调"上的时间,比花在"执行"上的多。 不是懒,是因为这三件事没人能省掉。

I

信息同步

状态会议、进度追踪、问"搞完了没"。每次打断都是 15 分钟的上下文切换。

II

任务颗粒度模糊

任务太大,工程师不知道从哪下手;太小,PM 累得要死。拆任务本身就是工作。

III

团队情绪看不见

代码在动但人卡住了。看 commit 数发现不了这个。冷 dashboard 更发现不了。

Jira 太重——一个 3 人团队用 Jira 的摩擦成本比收益高。Linear 好一些,但还是 dashboard 思维:你得主动去看,它不会来找你。

tempo 的出发点是反过来:让 AI PM 来主动驱动,人的时间用在判断和执行,而不是协调和同步。

PM 不应该是盯着 dashboard 的人,
应该是感受团队节拍的人。

— tempo 设计原则

一个 Agent,
六种节拍

不同时段需要不同视角。六个预设 prompt 共享底层工具集—— 同一个 PM,早上是指挥,下午是检查员,晚上是记录员, 遇到 issue 关闭时是情绪教练。

01
kickoff
每天 09:00 · cron
推今日 P0,@ 每人具体的 issue 编号,距 deadline 倒计时,风险预警。
02
midday
14:00 · cron
看上午有没有人的 issue 停滞超过 3 小时。有就 @,没有就不推(避免噪音)。
03
eod
19:00 · cron
收一天工:几个 close、几个没动、明天 P0 是什么。越近 deadline 语气越紧。
05
replan
手动 · sprint 切换
整理当前 milestone:哪些关、哪些转下期、下期 P0 各人分工。只推建议,不直接操作。

为什么这样
设计

1

工具最小化:4 read + 3 write

Agent 有 7 个工具——4 个只读(GitHub issue、用户活动、Supabase 指标),3 个写(通知、创建 issue)。 PM 不直接 close / move / reassign issue。 AI 改 issue 状态难以 review,错了一次就破坏整个 sprint 视图。LLM 推建议,人手动执行。

2

零服务器,跑在 GH Actions

PM Agent 是定时任务 + 事件驱动,不是请求-响应。GitHub Actions cron 是最合适的基础设施——不需要 HTTP 端点,不需要常驻进程,跟主服务完全解耦,PM 挂了不影响生产。

3

plan 模式的任务颗粒度

每个 issue 必须做到"工程师无需追问就能开始"。坏任务 vs. 好任务:

完成飞书 bot 集成 在 feishu_webhook.py:handle_message() 中,当 event.chat_type == 'p2p' 且 message 含商品关键词时调用 shop_agent.process(),验收:tests/test_feishu_p2p.py 全绿
4

emo 模式的风格红线

把这些词写进 prompt 的 forbidden list,LLM 生成时会主动避开:

赋能 闭环 抓手 对齐 落地 加油 冲冲冲 我们一定能 必胜

替换成人话:"我看到了" / "有点担心" / "这个能不能" / "试一下"。

看见 · 感受 · 期待

借鉴非暴力沟通(NVC)四步框架,适配团队场景简化为三段。 每段 prompt 里给 ❌ 错例 / ✅ 对例对比——有了对比,LLM 就不容易偷懒写空话。

EMO · LIVE OUTPUT · 2026-05-09 issue #42 closed · by S2
🌟
@S1 今天合了 5 个 commit,完成 agents/ 重构,所有测试全绿。这块逻辑之前一直是我们的 debt,终于干净了。
🌟
@S2 7 天 0 commit,但我看到你在飞书群发了 3 条供应商对话记录,两家价格,一个合同草稿。这是实实在在的推进。
💭
做物流这种没"代码就 ✓"快反馈的活,做起来确实没成就感,我懂。代码改一行测试就跑,物流谈一周还不知道结果。
💪
@S2 明天就先去闲鱼搜个 ¥300 内的二手冰箱看,不用决定,先有 option。
💪
@S3 PR #89 已经 review 完了,明天开始合就行,不需要重写。

真实输出 522 字。三段结构清晰,0 个 jargon,0 个鸡血词。实测团队反馈:"感觉比我还了解我在干嘛"

节流设计:同一 issue 5 分钟内重复触发只跑最新一次(concurrency cancel-in-progress),LLM 自己判断"没有新东西就 skip 不发"。

五步部署

1

Claude Code 内一键安装向导

在任意项目目录下运行 /team-pm-agent,交互式收集团队信息,自动生成所有文件并填入真实配置。

2

配置 GitHub Secrets & Variables

安装向导会打印精确的 secret 列表(只列你用的平台)。飞书用 FEISHU_APP_ID,Slack 用 SLACK_WEBHOOK_URL,两个都用设 NOTIFY_PLATFORM=both

3

本地 dry-run 验证

不发真消息、不创建 issue,只看 LLM 输出质量。满意了再 live。

4

推代码,cron 自动启动

commit 包含 .github/workflows/ 即可。GitHub Actions 会在每天 09:00 / 14:00 / 19:00(北京时间)自动跑。

5

用 plan 模式开始规划

在 GitHub Actions 手动触发 mode=plan,填入目标描述,Agent 自动拆解并创建结构化 issue。

/team-pm-agent

Claude Code skill · 交互式安装向导 · 自动填入团队信息 · 5 步部署

# 安装依赖 $ pip install -r requirements.txt # dry-run:看 LLM 输出,不发消息 $ export ANTHROPIC_API_KEY=sk-ant-... $ python -m agents.pm --mode kickoff --dry-run → [pm_agent] mode=kickoff model=claude-sonnet-4-6 dry_run=True → [step 0] stop=tool_use in=1842 out=312 → [tool] github_audit({"milestone": "Sprint W1"}) # plan 模式:按目标自动开 issue $ python -m agents.pm --mode plan \ --goal "完成飞书 bot 接入,支持用户查询商品" → 已创建 issue #43: feat(feishu): handle_message() 商品查询路由 → 已创建 issue #44: feat(shop): search_products() API 对接 → 已创建 issue #45: test: tests/test_feishu_p2p.py 集成测试 # GitHub Actions 手动触发 $ gh workflow run pm-cron.yml -f mode=plan \ -f goal="完成支付模块" -f dry_run=true

开始给团队
加一个 AI PM

MIT 开源,不需要服务器,5 步部署,支持飞书 + Slack,已在真实创业项目中运行 3 个月。