乐于分享
好东西不私藏

我用AI Agent接管了一个真实工作流,结果发现最难的不是写代码

我用AI Agent接管了一个真实工作流,结果发现最难的不是写代码

上个月我干了一件事:

把我们团队每周要做一次的「竞品周报」,整个甩给 AI Agent 跑。

从抓数据、整理信息、写初稿,到发飞书、通知相关人,全流程自动化。

第一次跑完我以为自己要起飞了,结果 Agent 给老板发了一份中英混排、格式全乱的文档,还在结尾加了一句"以上内容仅供参考,请以实际情况为准"。

当时我就明白了:最难的不是让 Agent 干活,是让它干出不让人尴尬的活。

这篇文章把整个过程掰开了讲,踩的坑一个不漏。

· · ·

01 · 我想让 Agent 做什么

我们是一个做 B 端 SaaS 的团队,产品线竞争激烈,PM 和我每周要花半天时间写一份竞品周报。

内容包括:

抓取 5 个竞品的官网更新、博客、Changelog
扫描 G2、Capterra 上这周的新评论
搜集 Reddit、HN 上用户吐槽
汇总成固定格式,中文输出,附上原始链接
每周一早上 9 点自动发到飞书群

每次做完我都觉得这是重复劳动,但每次都舍不得跳过——因为这份报告确实有用。典型的"高价值低含金量人工"。

02 · 原来的人工流程是什么样

在让 Agent 接手之前,我先把人工流程完整画了一遍。这一步很关键,很多人跳过了,最后发现 Agent 做的根本不是自己想要的东西。

原始人工流程

周五下午 · 收集
约 90 min
手动整理进 Notion
约 40 min
粘到飞书文档格式化
约 30 min
周一 9 点手动发群
约 10 min

每周耗时约 170 分钟 · 横跨两天 · 容易断流

问题在于这 170 分钟不是连续的,中间有大量等待和切换,实际上占了我将近半天。而且人工做的时候会偷懒,遇到英文页面就扫一眼,不一定能发现真正重要的更新。

03 · 我怎么拆任务给 Agent

这里有个我踩过的大坑,值得单独说:

千万不要把整个任务丢给一个 Agent。我第一次就这么干的:写了一个超长 Prompt,让它"帮我完成竞品周报从收集到发送的全流程"。结果它把所有步骤混在一起,一旦中间某一步出错,整个链路就断了,而且我完全不知道断在哪里。

正确的做法是拆成独立的小 Agent,每个只干一件事:

A1
信息采集 Agent
只负责抓取网页内容,每个来源一个子任务,输出结构化 JSON,失败单独标记不影响其他
A2
分析摘要 Agent
接收 A1 的 JSON,提炼关键变化,判断重要性,输出固定格式的中文摘要
A3
格式渲染 Agent
把摘要套进固定模板,生成符合飞书格式的文档,不做任何内容判断
A4
发送 Agent
只管调飞书 API 发消息,有人工审核通过标志才触发,否则等待

每个 Agent 之间的接口只有一种数据格式,出错了知道在哪断,修也好修。这个思路其实和写微服务一样,不是什么新概念,只是用在 Agent 设计上很多人还没想清楚。

04 · 用了哪些工具和模型

不吹不踩,这是我实际用的技术栈,每个都有选择理由:

用途
工具
选择原因
编排框架
LangGraph
支持状态机,断点续跑,出错不用从头来
网页抓取
Firecrawl
自动处理 JS 渲染,直接输出 Markdown,省去解析
摘要模型
Claude 3.5 Sonnet
中文摘要质量最稳,指令遵从好,格式错误最少
路由判断
GPT-4o-mini
判断"是否有实质更新"这类简单分类,成本低
定时触发
n8n(自托管)
免费,可视化,比 cron 好调试,出错有邮件告警
知识库
Qdrant + BGE
存竞品历史报告,判断本周内容是否"新"
发送
飞书 API
有 Webhook,支持富文本卡片,格式比纯文本好看

一共花了我 2 个周末搭起来,其中 60% 的时间在调 Prompt 和处理边缘情况,不是在写业务逻辑。

05 · 第一次运行,哪里翻车了

翻车记录完整保留,这部分才是干货。

💥翻车一:格式乱了

现象:摘要输出一半中文一半英文,标题层级不对,有的用 ## 有的用 **加粗**,飞书渲染出来一塌糊涂。

原因:Prompt 里没有给示例,只说了"按照固定格式输出",模型自己发明了格式。

💥翻车二:把旧内容当新内容

现象:竞品上周更新的功能,这周又出现在报告里,说成是"最新动态"。

原因:没有历史去重机制,Agent 不知道什么是"上周已经报过的"。

💥翻车三:自作聪明加了免责声明

现象:就是开头说的,结尾加了"仅供参考"。还有一次加了一段"由于网络限制,部分内容可能不完整",发到群里很尴尬。

原因:没有在 Prompt 里明确禁止模型加任何解释性文字。

💥翻车四:某个网站改版导致全链路卡死

现象:竞品官网做了改版,Firecrawl 抓回来的内容变成了导航菜单的重复,Agent 一直在重试,整个流程卡了 2 小时。

原因:没有单个节点的超时和熔断机制。

四个坑,没有一个是"模型不够聪明"导致的。都是工程问题。这是我做完这件事最大的感悟。

06 · 怎么加知识库、审核和兜底

针对上面四个翻车,我加了三层防护:

第一层知识库去重
每次 A2 摘要完,先把内容向量化,和 Qdrant 里存的历史报告做相似度比对。相似度 >0.88 的内容直接标记"已报过",不进入本周报告。这一层解决了"旧内容当新内容"的问题。
第二层人工审核窗
A3 格式化完之后,不直接发送,而是先发到我自己的飞书,给我一个"✅ 确认发送 / ❌ 取消"的按钮。我只需要看 30 秒,有明显问题就取消,没问题就一键发。这一步加了审核,但人的时间只从 170 分钟降到了 1 分钟。
第三层熔断兜底
每个 A1 子任务设置 60 秒超时,失败超过 2 次自动跳过,在报告里标记"本周抓取失败,请手动补充"。整个链路不因单个节点故障中断,最差情况是报告不完整,不是发出去的报告出错。

一个反直觉的发现:加了人工审核窗之后,我反而更愿意相信这套系统了。不是因为它更聪明,是因为我知道最坏情况下我还有机会兜底。这个心理安全感让系统真正被我长期用起来。

07 · 最后节省了多少时间

跑了 6 周,数据是真实的:

之前每周耗时
170min
现在每周耗时
2min
=
节省率
98.8%

那 2 分钟是看审核预览并点确认发送

除了时间,还有两个没想到的收益:

覆盖面变宽了。人工做的时候我只看 5 个重点竞品,现在 Agent 顺手把 3 个次要竞品也一起扫了,额外多出来的,之前因为"懒得看"漏掉的信息,有两次发现了对产品决策很重要的内容。

报告质量更稳定。人工做的时候周五下班前状态不好的话,报告写得比较马虎。Agent 不会有情绪,每次质量基本一致。

08 · 给程序员的 3 个真实建议

做完这件事,如果让我给想入手 AI Agent 的人只说三条,是这三条:

① 先把人工流程画清楚,再想 Agent

很多人上来就问"用什么框架",但连自己想自动化的流程都没想明白。先把每一步是什么、输入输出是什么、出错了怎么处理,用文字或者流程图写清楚,Agent 的设计自然就出来了。这步不能省,省了后面全返工。

② 把最容易出错的环节留给人

不是让你不信任 AI,是让你找到值得信任它的地方。收集、格式化、去重——完全可以信。内容是否该发、信息是否准确、措辞是否合适——先留一个人工确认窗口。等你跑了足够多次、有了足够信心,再慢慢把这个窗口拿掉。

③ 第一个项目要选"你自己也在用"的场景

帮自己解决问题,而不是帮别人解决假想的问题。原因很简单:你知道什么叫"结果好",你有动力去修问题,你也最清楚哪里容易翻车。这个竞品周报是我自己每周要做的事,所以我有极强的动力把它做对。如果只是拿来练手,做了两周就扔掉了,学不到真东西。


往期热门:

最后说一句可能让你失望的话:

AI Agent 这件事,最难的从来不是技术是搞清楚「什么值得自动化」「出错了谁来兜底」

代码是最容易的部分。我花在 Prompt 调优、边缘处理、审核设计上的时间,是写代码的 3 倍。

🗂️
回复「Agent」
领取完整流程图 + 工具清单 + 我用的 Prompt 模板包含本文四个 Agent 的完整设计文档

程序秘籍 | AI Agent实战 · 大模型工程化 · 程序员AI转型

觉得有用,点个支持,转发给有需要的同事