PostHog 自驱动模式:让产品数据自己开出修复 PR

如果用户已经连续十次点击一个失效按钮,错误追踪里也出现了同一条异常,为什么团队还要等到有人截图、提工单、排优先级之后才开始修?

这正是 PostHog 最近在解决的问题。它原本是一套开源产品分析平台,现在把分析、回放、错误、日志、功能开关和代码仓库串成了一个 Agent 闭环:产品先从真实使用数据里发现问题,Agent 调研影响范围并尝试修复,开发者只负责审查和合并 Pull Request。

项目地址:https://github.com/PostHog/posthog

截至我调研时,PostHog 约有 3.66 万 Stars,仓库当天仍有提交,并进入 GitHub Daily Trending。项目本身并不新,但这次值得写的不是它传统的产品分析能力,而是新推出的 Self-driving 模式:让产品数据成为 Agent 的主动提示词。

产品真正缺的不是又一个编码 Agent

Claude Code、Codex 这类工具拿到明确任务后,已经能读代码、改文件和跑测试。问题在任务出现之前。

代码仓库里看不到用户在哪一步反复点击,看不到某个版本上线后转化率下跌,也不知道一次报错影响了 3 个人还是 3000 个人。这些信号散落在产品分析、Session Replay、错误追踪、日志和客服反馈里。通常要由人把它们拼成一个工单,再交给编码 Agent。

PostHog 的思路是把这段人工链路接起来。它把数据源产生的异常归一为 signal,将相关 signal 去重、聚类成 report,再由研究 Agent 同时检查产品数据与代码上下文。能明确修复的报告会进入沙箱,由实现 Agent 修改代码并创建 PR;需要产品判断的内容则进入 inbox,不擅自替人做决定。

整个循环可以概括为:

1
2
3
产品数据 → signal → report → Agent 调研 → 修复 PR
↑ ↓
└──────────── 衡量上线效果 ────────────┘

这里最关键的一步是回测。PR 合并并不代表问题真的解决,PostHog 会继续观察对应指标,再把结果写回下一轮信号。这让它更像一套带反馈的维护系统,而不是一次性的代码生成器。

五个核心亮点

1. 产品数据可以主动发起工作

Self-driving 模式中的 scouts 会持续查看错误、怒点、失败查询、健康检查和 Session Replay。团队不用每天盯仪表盘,也不用先写一句 “帮我找找最近有什么问题”。

PostHog 官方文档给出的实际规模是 35 个 scouts 在监控自己的产品,posthog.com 的报告会进入公开仓库并转成 PR。这至少说明它不是只存在于演示稿里的概念。

2. 一个报告聚合多条零散证据

真实故障很少只留下一个干净信号。同一个按钮问题可能同时表现为前端异常、重复点击、转化漏斗掉点和客服消息。PostHog 会先把相关 signal 合并为 report,附上用户影响、回放和代码线索,避免 Agent 对着单条告警随机修补。

这与传统监控工具最大的区别不在于 “会不会报警”,而在于它是否能把报警变成有上下文的可执行问题。

3. Agent 能读产品上下文,也能动代码

普通编码 Agent 熟悉仓库,却不了解线上行为;分析工具拥有数据,却不能落地修复。PostHog 的 context warehouse 把产品使用数据、数据仓库内容和 Agent 上下文放在一起,研究 Agent 可以先确认问题是否真实、影响谁、从哪个版本开始,再进入代码实现。

这种 “数据侧证据 + 代码侧定位” 很适合修复错误、补埋点、处理断裂流程和持续优化小问题。对于产品愿景、新功能取舍等开放问题,它会标记为 needs input,而不是硬开一个 PR。

4. MCP 把能力带回现有编辑器

PostHog 提供托管 MCP 地址,支持 Claude Code、Cursor、Codex、VS Code、Windsurf 和 Zed。接入后可以直接问:本周出现次数最多的五个错误是什么?拉出最近一次崩溃的完整堆栈并给出修复建议;或者创建功能开关并查询实验结果。

安装命令很短:

1
npx @posthog/wizard mcp add

MCP 调用本身免费,部分内部使用 LLM 的工具会计入 PostHog AI 用量,而且组织需要先开启 AI 数据处理。也就是说,它不是把所有遥测数据无条件交给模型,管理员仍需要明确授权。

5. 从发现问题到验证结果形成闭环

Sentry 擅长错误与性能监控,Amplitude 强在产品分析,独立编码 Agent 强在执行明确需求。PostHog 的差异是把 analytics、replay、errors、logs、flags、experiments 和代码修改放进同一个循环。

它不一定在每个单项上都替代专业工具,但能减少 “发现问题后复制链接、补上下文、建工单、再叫 Agent 修” 的交接成本。对小团队而言,这个闭环比再增加一个只会生成代码的 Agent 更有实际价值。

实战:把一个产品接入自驱动模式

最直接的方式是运行官方向导:

1
npx @posthog/wizard self-driving

向导会检查或安装 PostHog SDK,打开可用的 signal sources,配置 scouts,并给出 inbox 链接。开始前建议确认四件事:

  1. 关键流程已经有稳定的事件命名,不能只依赖自动采集;
  2. 错误追踪和 Session Replay 能关联到同一个版本或用户;
  3. GitHub 仓库允许创建分支和草稿 PR,但保护主分支;
  4. 组织明确了哪些数据可以用于 AI 处理。

接入 MCP 后,可以先从只读问题开始验证:

1
2
3
列出过去 7 天影响用户最多的 5 个错误,
为每个错误补充发生次数、受影响用户数、首次出现版本,
暂时不要修改代码。

确认数据可信,再逐步放开写操作:

1
2
3
打开排名第一的错误,读取最近一次完整堆栈和相关日志,
检查仓库中的调用路径,提出最小修复方案并运行相关测试。
如果测试通过,只创建草稿 PR,不要合并。

这个顺序比一上来就允许自动开 PR 稳妥。先验证信号质量,再验证调研结论,之后才验证代码修改。Agent 的输出质量上限取决于输入数据是否一致;埋点混乱、版本信息缺失时,自动化只会更快地产生错误判断。

适用场景

PostHog Self-driving 最适合已经有真实流量、持续收到线上信号,又没有足够人力处理维护尾项的产品。典型任务包括:

  • 根据高频异常定位并修复代码;
  • 从 Session Replay 发现断裂或反复点击的流程;
  • 找出缺失、重复或命名错误的埋点;
  • 给高风险改动补功能开关和实验;
  • 将产品问题按用户影响排序,而不是按告警数量排序。

它也适合作为 AI 编程工具的上游。Claude Code 负责 “怎么改”,PostHog 负责 “为什么现在要改、谁受到影响、改完有没有好转”。两个角色清楚之后,Agent 工作流才不容易变成无目的的代码生成。

当前限制与成本

Self-driving 仍处于 open beta,团队需要保留人工审查。官方也明确说它擅长维护,不负责发明产品方向、设计新功能或在多个合理未来之间做取舍。

自动创建的 PR 按结果计费,目前每个 15 美元,每月前三个免费,报告本身免费。对于一个能直接合并的修复,这个价格可能低于人工排查;如果信号质量差,频繁产出无效 PR,成本和审查负担都会上升。

开源部署也有限制。官方 README 建议 Linux 主机至少 4GB 内存,社区版大约面向每月 10 万事件规模,且不提供支持或可用性保证。云端免费额度更高,每月包含 100 万事件、5000 条回放、100 万次功能开关请求和 10 万个异常,试用新流程会轻松一些。

还要注意授权边界。MCP 可以读取分析、日志与错误,也能写功能开关、实验和问题状态。生产环境应采用最小权限,主分支保护、草稿 PR、沙箱测试和敏感字段脱敏都不能因为 “Agent 很方便” 而取消。

总结

PostHog 这次变化最有价值的地方,是把 Agent 的起点从 “人写了一张工单” 提前到 “产品已经出现一个值得处理的信号”。它拥有 3.6 万多 Stars、活跃的开源仓库和完整的分析工具链,新加入的 Self-driving 模式让这些既有数据第一次能够主动推动代码维护。

如果你的团队已经在用 PostHog,可以先运行 MCP 向导做只读调研,再挑一个低风险错误测试完整闭环。如果还没有稳定埋点,也不用急着开启自动 PR:先把事件、版本、回放和错误关联做好。产品会不会自驱动,最终不只取决于 Agent 多聪明,还取决于数据是否足够诚实。

参考资料: