这套架构拆解我基于真实落地经验来写。平时总有人问我,说AI获客到底是不是噱头,能不能真的把销售从重复劳动里解放出来。我自己的答案很明确:能,但前提是你别把“AI获客”理解成装一个聊天机器人,而是要把一整条获客链路拆开,让不同环节交给最合适的自动化工具,再通过数据和反馈把它们串成一个不断自我优化的闭环。这篇文章就是一次完整复盘,覆盖Agent协同、RPA执行、数据飞轮这三个核心组件,以及它们如何配合实现从“找到潜在客户”到“把线索喂给销售”的全链路自动化。
1. 整体架构思路:为什么把 Agent、RPA 和数据飞轮绑在一起
先讲一个我自己的经历。早两年我帮一家做企业服务的公司搭获客系统,他们当时的问题特别典型:市场部每天从公开渠道扒线索,销售助理手动去各个平台找联系方式,加了微信之后还要手动给客户打标签、写备注、录CRM。这套流程跑下来,人均一天真正能触达的潜在客户不超过20个,大量时间都花在复制粘贴和页面跳转上。更麻烦的是,经验全部留在几个老销售脑子里,新人来了要从零摸索,线索质量忽高忽低。
后来我给他们搭了一套现在回头看非常朴素的自动化脚本,解决了“手动重复操作”的问题,但很快发现新的瓶颈:脚本只能按照固定规则办事,一旦客户的回复偏离预期,整个流程就卡住了。比如脚本发出“您好,我们提供数据分析服务”之后,客户回一句“你们和XX公司有什么区别”,脚本就不知道怎么接。这时候我才意识到,获客这件事,本质上不是一个“执行”问题,而是一个“决策”问题。
这正好是Agent和RPA的分工逻辑。Agent负责所有需要判断的环节:判断这个线索值不值得跟、判断客户这句话背后的意图是什么、判断应该用哪套话术去回应。RPA负责所有不需要动脑子的环节:打开网页、翻页、填表、点击、复制、粘贴。两者一配合,才能既保证速度,又保证应变能力。
但只有这两个还不够。因为Agent的“聪明”不是天生的,它依赖数据和反馈。今天发的100条消息里,哪条话术打开了率最高?哪个渠道来的线索最终成交了?这些问题不回收答案,系统就只能永远用一个固定套路去获客,本质上还是“自动化执行”,谈不上“智能增长”。所以第三个组件是数据飞轮:把运行时产生的所有行为数据、结果数据、反馈数据收集起来,清洗加工后反哺给Agent的策略和模型,让系统每一轮获客都比上一轮更准。简单讲,Agent负责思考,RPA负责动手,数据飞轮负责让系统越用越聪明。
这个架构真正解决的不是某一个环节的效率问题,而是获客这件事的整体系统性问题。适合谁参考呢?我建议这么分:
- 如果你手里有10个以上的获客渠道、每周要处理上千条线索,这套架构能明显降低人力和时间成本;
- 如果你已经用了某种CRM或营销工具,但数据散落、复盘靠猜,数据飞轮部分尤其值得认真看;
- 如果你是技术负责人或独立开发者,想从“写脚本”升级到“搭智能体”,Agent和RPA的协同设计思路可以直接迁移。
2. Agent 协同层:多智能体如何分工干活
很多刚接触Agent开发的人,第一反应是“用一个万能Agent搞定所有事”。实际落地下来,这种方式在处理获客这种长链路任务时非常脆弱。原因很简单:获客涉及的子任务类型差异太大,有的需要创造力和语言能力,比如写推广文案;有的需要严谨的结构化输出,比如判断线索所属行业;还有的涉及敏感操作,比如发送好友申请,必须严格按照频控执行。
所以我在架构里很少用单体Agent,更多是把任务拆给多个职责单一的Agent,再用一套编排机制让它们协作。这叫Agent协同,也叫多智能体架构。下面是我的具体设计。
2.1 场景定义与角色划分
以B2B获客为例,我把整条链路拆成五个Agent:
- 线索挖掘Agent:根据设定的行业、地区、公司规模等画像条件,在公开数据源中筛选潜在客户,输出结构化线索列表;
- 内容生成Agent:针对不同客户类型、不同触达阶段,生成个性化的沟通内容,包括首访消息、跟进的文案、FAQ应答话术;
- 调度执行Agent:统一接收上层目标,判断当前应该调用哪个Agent干活,并整合结果做下一步决策,相当于“主编”;
- 触达执行Agent:对接RPA,负责按节奏发起好友申请、发送消息、评论互动,同时记录每次触达的时间窗口和反馈;
- 质量评估Agent:对每条已触达线索进行打分,评估意向等级,判断是否应转入工跟进或者进入培育池。
这里有一个关键原则:角色划分必须和业务流程一一对应,而不是按照技术方便来分。比如“触达执行”在技术上可能也就是“调一个API”,但如果后续要调整发送策略,独立抽出来会方便得多,不用动其他Agent。
2.2 目标分解与任务编排
有了角色之后,调度执行Agent要做的事就是把用户或运营设置的宽泛目标,比如“这个月获取300条MQL(市场认可线索)”,拆成可以执行的具体任务步骤。这个过程业内通常叫规划(Planning)。
实操中我会让调度Agent输出一个JSON格式的任务清单。示例:
{ "goal": "本月获取300条有效线索,华东地区优先", "tasks": [ {"agent": "lead_miner", "action": "search", "params": {"industry": "SaaS", "region": "East_China", "size": "50-500"}, "priority": 1}, {"agent": "content_generator", "action": "compose_variants", "params": {"count": 5, "style": "professional"}, "priority": 1}, {"agent": "outreach_coordinator", "action": "check_channels", "params": {"channels": ["linkedin", "wechat", "email"]}, "priority": 2}, {"agent": "lead_miner", "action": "enrich", "params": {"fields": ["email", "phone", "title"]}, "priority": 2}, {"agent": "quality_evaluator", "action": "score_leads", "params": {"min_score": 70}, "priority": 3} ] }生产环境中,这个任务清单不一定要以这种固定的方式生成,可以结合规则的优先级和Agent的动态判断来生成。比如线索挖掘Agent发现某个公开数据源结构改了,返回“抓取失败”状态,调度Agent会自动调整策略,换一个数据源,或者要求内容生成Agent改用另一种话术补偿。这种动态调整能力,是固定的脚本流程很难实现的。
2.3 协同机制:上下文管理与信息共享
多Agent之间怎么共享信息?这是最容易踩坑的地方。如果每个Agent都把结果写在各自的文件里,调度Agent每次都要去翻文件找答案,那效率低不说,还很容易因为格式不一致导致解析出错。
更好的方式是用一个独立的记忆模块来管理上下文。所有Agent产出的结构化结果统一写入这个模块,并且每一条数据都带上“谁写的、什么时候写的、数据来源是什么”。调度Agent在决策时,只从记忆模块里取它需要的内容。
这里我不建议一开始就上特别复杂的向量数据库,先用最简单的关系表或KV存储完全够用。关键是定义好数据格式。以下是我常用的一段数据结构示例:
{ "thread_id": "20250607_lead_001", "agent_name": "lead_miner", "message_type": "lead_record", "payload": { "company": "某某科技有限公司", "industry": "SaaS", "employee_count": 120, "source": "industry_directory", "contact": {"name": "张经理", "title": "市场总监"} }, "timestamp": "2025-06-07T10:30:00Z" }统一结构带来的好处是:后续无论是质量评估Agent消费这份数据,还是数据飞轮做分析,都不需要再写一堆解析逻辑。这是我在多次重构后总结出的教训:Agent协同的第一步不是选最花哨的框架,而是先把“交流的语法”统一好。
2.4 模型选型与成本控制
Agent层离不开大模型,但并不是每个Agent都需要用最强的模型。如果什么都用顶配模型,线索量大一点,成本立刻失控。我一般会按任务难度做模型分层,大致策略如下表:
| Agent类型 | 典型任务 | 推荐模型档位 | 原因 |
|---|---|---|---|
| 调度执行 | 任务分解、意图判断 | 强模型(如顶配推理模型) | 决策错误影响全局,值得花成本 |
| 内容生成 | 个性化文案、改写 | 中档模型 | 需要一定创造力,但不要求极致推理 |
| 线索挖掘 | 信息提取、结构化输出 | 轻量模型 | 主要靠规则和提示词约束 |
| 质量评估 | 打分、分类 | 轻量到中档模型 | 逻辑简单,重吞吐低延迟 |
| 触达执行 | 不涉及模型推理 | 无需模型 | 判断交给RPA和规则执行 |
实践中可以给每个Agent配置一个“模型开关”,低频时期用轻量模型,核心链路跑不通再升级。不要一上来就追求全智能、全顶配,先把流程跑通,再根据瓶颈位置逐步升级。
2.5 上下文压缩与记忆维护
多Agent协同跑久了,上下文中会堆满历史信息。尤其是触达执行Agent和客户来回对话十几轮之后,如果每次都把完整聊天记录丢给调度Agent做决策,一方面浪费token,另一方面模型很容易被无关细节干扰。
我的做法是引入记忆压缩机制:每次对话结束,由质量评估Agent顺带生成一段摘要,把客户的关键信息(行业、痛点、意向等级、下一次建议动作)浓缩成几条结构化记录。后续决策只读取摘要,只有需要完整回溯时才去翻原始对话。这个策略能让长期运行的智能体保持稳定,不至于聊着聊着“忘掉前文”。
3. RPA 执行层:把决策变成物理动作
Agent的产出是“决定做什么”,但如果真的要去网页上操作、在系统里点按钮、跟外部平台交互,就需要另一个层面的工具来执行。这就是RPA的位置。我最早用RPA时,觉得它很笨,就是机械地录屏回放;后来才发现,真正用得好的RPA,和Agent配合起来几乎可以伪装成一个真人运营。
3.1 为什么需要RPA而不是直接写脚本
理论上,所有网页操作都能用脚本模拟HTTP请求完成。但实际上,获客过程往往要操作的对象是别人的平台,比如脉脉、LinkedIn、企业微信管理后台,这些平台大多有反爬策略,接口也不公开。如果写纯脚本去请求页面,不仅容易被封,而且一旦平台前端改版,脚本就全废。
RPA的优势在于它模拟的是人操作浏览器的行为,通过元素定位和点击事件来操控界面。它走的是正常用户的操作路径,风控识别难度更高,而且大部分RPA工具都提供了可视化元素选择器,页面变化时只需要重新定位元素,不需要像纯脚本那样重写逻辑。
所以在获客场景下,我的结论是:凡是和外部平台交互、没有公开API的场景,一律交给RPA;凡是内部系统之间的数据传输,优先走API或数据库直连。
3.2 影刀RPA的实际落地配置
市面上主流RPA产品我基本都试过,影刀是让团队上手最快的一个,尤其在中文互联网生态的适配度上表现得比较省心。它的元素选择器能直接拾取按钮、输入框、下拉菜单,还能自定义选择器来应对动态页面,这对业务同学来说很友好,不需要懂代码就能搭出基础流程。
我简单描述一个用影刀RPA实现“自动发送企业微信好友申请”的流程搭建思路,方便没有接触过的读者有个直观参考:
- 准备一份线索列表,来源可以是Agent生成的CSV,也可以直接读数据库视图;
- 在影刀中创建工作流,第一步是读取Excel或API接口数据,解析出待添加的微信号或手机号;
- 第二步,打开企业微信或其他触达工具,使用“搜索联系人”组件,定位到搜索框,输入号码;
- 第三步,找到“添加到通讯录”按钮,点击;
- 第四步,填写验证消息。验证消息这里可以直接读取Agent生成的话术字段,实现千人千面的个性化触达;
- 第五步,点击发送,并记录发送结果到日志表;
- 最后加上随机延时逻辑,比如发送完一条后随机等待30到60秒再处理下一条,以降低被平台判定为机器操作的风险。
这套流程跑起来之后,一个人可以维护多个企业微信账号同时执行,只需要定期检查日志。
这里尤其要对没有RPA经验的读者强调一点:RPA的“录屏”功能用来做原型验证很方便,但正式流程千万别只依赖录屏。比如你录了一个“点击按钮”的动作,录制时按钮在屏幕固定位置,下次运行时窗口大小或屏幕分辨率变了,它就找不到按钮了。所有关键元素都应该用元素选择器去绑定,而不是坐标定位。
3.3 与Agent的接口设计:指令协议与状态回传
这是Agent和RPA协同最核心的部分。Agent要有办法把“下一步做什么”告诉RPA,RPA做完后还要把结果反馈给Agent,两边才能形成闭环。我的做法是引入一个简单的指令队列,本质上就是一个数据库表,两个部分各自读写。
表结构大致如下:
| 字段 | 说明 | 示例 |
|---|---|---|
| task_id | 任务唯一ID | oa_20250607_001 |
| agent_source | 指令来源Agent | outreach_coordinator |
| action_type | 指令动作 | send_friend_request |
| payload | 动作参数JSON | {"contact": "138xxxx", "message": "张总您好..."} |
| status | 执行状态 | pending / running / success / failed |
| result | 执行结果信息 | success / timeout / blocked |
| retry_count | 重试次数 | 1 |
| created_at | 创建时间 | 2025-06-07 10:30:00 |
| executed_at | 执行完成时间 | 2025-06-07 10:31:12 |
Agent发现某个客户需要被触达,就在表里插入一条记录;RPA以轮询或消息通知的方式获取待办指令,执行完成后更新状态和结果。Agent读取状态,决定下一步动作:是继续跟进该客户,还是转入培育池,还是标记为无效线索。
这个设计的好处是Agent和RPA完全解耦。Agent不需要关心RPA怎么打开页面、怎么点击,RPA也不需要知道Agent的意图判断逻辑。哪边出问题都可以独立替换,这是系统稳定运行的关键。
3.4 稳定性设计:异常处理、重试与人工介入
RPA跑线上流程,最大的敌人不是写不出脚本,而是流程跑崩了没人知道。所以我特别强调异常处理机制。影刀本身支持“异常捕获”和“流程失败后跳转”逻辑,生产环境中我会在每个关键节点都埋上日志:
- 打开页面失败:记录截图,自动重试一次;再失败则切换备用浏览器环境;
- 找不到目标元素:说明页面结构变了,把错误信息写入日志,并自动降级为“人工处理”,不是无限重试;
- 发送被拦截或触发风控:立即暂停该渠道的所有任务,通知管理员介入,避免账号被进一步限制。
另外,所有的RPA流程都应该支持手动按钮——一键暂停、一键恢复。不要把所有操作都交给自动化,关键时刻人的介入可以避免很多不必要的麻烦。
4. 数据飞轮:让每一轮获客都成为下一次的燃料
前面两大部分解决的是“自动化执行”的问题,数据飞轮解决的是“越用越聪明”的问题。没有数据飞轮的系统,就像一个人每天都重复同样的动作却从不记录哪些动作有效,运气好时来几个客户,运气差时颗粒无收。而有了数据飞轮,每一轮触达的结果都会变成下一轮优化的依据。
4.1 数据采集:哪些数据值得回收
很多团队做数据回收时有个误区,什么数据都存。实际上,数据存得越多,清洗成本越高,分析时噪声也越大。我在获客系统里只回收四类核心数据:
- 触达数据:什么时间、通过哪个渠道、用了什么话术版本、触达了几次;
- 响应数据:客户是否回复、回复内容、响应耗时、是否点击了外链或查看了资料;
- 转化数据:是否加微成功、是否进入CRM、是否参加demo会议、是否最终成交;
- 过程异常数据:哪些环节报错、哪些平台触发了风控、哪些页面结构频繁变化。
每一类数据都对应一个明确的分析目的。比如响应耗时这个字段,是为了给调度Agent提供“什么时候联系客户效果最好”的依据;过程异常数据,是为了给RPA的稳定性优化提供线索。
4.2 反馈闭环:把转化结果送回Agent策略
数据回收之后,下一步是做反馈闭环。这个环节如果做得不好,数据就只躺在数据库里变成一堆数字。我的做法是做两级反馈:
第一级是短期反馈,面向单次触达的对话策略。例如触达执行Agent发出一条消息后,客户回了某个高频问题,这个回合的记录被自动标记,并由内容生成Agent更新FAQ话术库,下次再接客户问同样问题时,能直接给出更好的回答。
第二级是长期反馈,面向获客策略的整体效果。例如,通过数据解读发现“华东地区SaaS类企业,30人以内的初创公司,最优触达时间在上午10点前后”,这些洞察会被写回策略表,调度Agent在做任务计划时直接读取这个表作为约束条件。
在实际工程实现上,我用了一个比较轻量的策略引擎,本质上就是一张“策略配置表”加一段“策略解释器”代码。数据飞轮产出洞察后,通过人工审核或者半自动确认的方式,写入策略表。Agent在跑任务前,会先加载策略表,再动态调整自己的执行计划。这样既不会让数据直接控制Agent造成失控,又能持续把有效经验沉淀到系统里。
4.3 飞轮指标:怎么衡量系统是否在变聪明
如果搭建了一套系统却无法衡量它是否真的在变好,那数据飞轮就沦为了空转。我常用的指标有几个:
- 线索响应率:发出的触达中,获得回复的比例。这是一个结果指标,短期看话术和触达时机,长期看线索挖掘Agent的画像筛选质量;
- 有效线索率:进入CRM并且被销售跟进后,标记为“有效”的比例。这个衡量的是从线索到商机的质量,防止系统只顾数量不管质量;
- 内容采纳率:内容生成Agent给出的文案,有多少比例被直接采用,多少需要人工修改。这个指标能反向检验Agent生成内容的质量;
- 流程自动化覆盖率:整条获客链路中,无需人工介入的环节数量占比。衡量自动化本身的落地程度;
- 单条有效线索成本:总成本除以有效线索数。这是最终业务负责人最关心的指标。
每个月我会回顾一次这组指标,观察变化曲线。如果响应率在涨但有效线索率没涨,说明话术更吸引人了,但线索画像筛选可能变宽了,需要回头调Agent的筛选阈值。如果自动化覆盖率很高但单条成本没降,说明RPA执行中可能重复跑了太多无效任务,需要优化任务调度。
4.4 数据质量与飞轮护栏
这里我要特别提醒一个容易忽略的点:数据飞轮也可能“越转越歪”。原因是训练反馈的数据本身有噪声。比如触达执行Agent发出100条消息,其中30条被系统判定为“已读未回”,如果直接把“已读未回”当成“不感兴趣”喂回策略,可能就误判了一批只是还没来得及回复的高意向客户。
所以我在设计数据飞轮时,专门加了一个“护栏”环节:所有回流给Agent优化的数据,必须先经过质量门槛校验。比如“意向降低”这个结论,至少要满足两个条件:客户已经超过7天没有响应,且至少触达3次,不能因为一次未读就打上消极标签。这个校验逻辑用规则写死,不交给模型判断,因为规则更稳定、更可解释。
5. 常见问题与排查技巧实录
这套架构从开发到上线,我有几个踩过的坑印象特别深刻,这里逐一列出来。如果你也在搭类似的AI获客系统,大概率会遇到同样的问题。
5.1 Agent上下文爆炸,决策越来越慢
刚开始跑时,调度Agent会参与所有环节的决策,导致它的上下文越来越长,响应速度直线下降,成本也一路涨。后来我改成了“关键节点汇报制”:调度Agent不需要每步都参与,只有在线索评分低于阈值、触达被拒、数据源切换这些关键节点才由它做决策,其他常规流程都走预设规则。
排查技巧:如果Agent响应超出预期时间,先检查它的上下文token数,再检查最近的对话是否都是“不需要决策”的重复性请求。如果是,果断把这类请求交给预设规则处理。
5.2 RPA选择器频繁失效,流程中断
影刀RPA这类工具的选择器,在页面稳定时很可靠,一旦目标平台改版,比如按钮class名变了、页面结构调整,老选择器立刻失效。最严重的一次,我的一套选品自动化流程在一周内中断了三次。
解决办法是给关键步骤做“多级降级”:优先用元素名称定位,失败后用父级元素+文本组合定位,还失败就利用OCR识别点击。最后兜底方案是指派人工处理并截屏留档。不到万不得已不彻底改流程,因为频繁改会造成新的不稳定。
另外建议给每个关键节点配置“失败截图自动上传”功能,出问题不用人工跑去看现场,直接看图定位,排查效率提升一个量级。
5.3 数据噪声导致策略漂移
第一次跑数据飞轮时,我遇到一个典型问题:运营反馈说系统推荐的话术越来越“软”,没有全盛期那种进攻性了。排查后发现,大部分高意向线索的成交都发生在“客户主动追问产品价格”这个场景下,而这类追问大多出现在活动促销期,非促销期素材很少。结果显示,数据里有个别高意向客户触达了“询价”类话术并成交,导致飞轮把“多问价类问题”错误地强化成了通用策略。
这就是数据漂移。解法是给飞轮数据加上“环境标签”,比如是否促销期、渠道是否在投广告、行业是否旺季,让分析过程排除外部因素的干扰。任何结论产出后,运营都需要人工复核才能写入策略表,不能完全自动更新。
5.4 账号风控与频控问题
做触达类RPA最怕的就是账号被限制。我经历过同一台设备上了三个企业微信账号后被批量封禁的事故。后来总结出的经验是:
- 每台设备最多跑一个主账号,其余用低频率辅助操作;
- 每次登录之间要做随机延时,不要一开机就同时执行,模拟人的操作习惯;
- 设定每日触达上限,比如每个账号每天新增好友申请不超过30个,超过后自动切换别的渠道;
- 定期更换用户代理和设备指纹,保持环境相对真实。
5.5 常见问题速查表
| 问题场景 | 可能原因 | 排查与处理动作 |
|---|---|---|
| Agent响应速度慢 | 上下文过长 | 查看token使用量,开启记忆压缩与摘要机制 |
| RPA定位不到元素 | 页面改版 | 切换多级定位策略,失败后自动截图并转人工 |
| 线索质量下降 | 飞轮数据漂移 | 检查环境标签,人工复核策略配置 |
| 账号被限制 | 触达频率过高 | 降低每日上限,启用随机延时,切换备用设备 |
| 触达后无响应 | 话术或时机问题 | 对比不同时段和话术版本的响应率,优化策略表 |
| 指令队列堆积 | Agent产出任务过多 | 检查调度Agent的目标分解参数,增加RPA执行节点 |
最后分享一个我个人的体会
在多次迭代这套架构之后,我最大的感受是:技术本身不复杂,复杂的是让各个模块真正配合起来。Agent再聪明,如果RPA执行层不稳定,一切决策都停留在“嘴上”;RPA再稳定,如果没有Agent的智能调度,也只是多了一个能自动点击的干电池;数据飞轮设计得再完美,不回流到Agent策略,也只是数据库里多了几张没人看的报表。
所以给准备动手搭建的朋友一个建议:不要一上来就追求大而全的“AI超级系统”。先把一个最小的链路跑通,比如“线索挖掘Agent + 影刀RPA自动发消息 + 日志回收”。跑通后你会发现,数据会源源不断告诉你下一步该优化哪里。这个架构最迷人的地方就在于此:它不是一套固定死板的系统,而是一台能自我生长的机器,你给它喂数据和反馈,它还你更多好线索。后续可以考虑往哪个方向扩展呢?我个人下一步计划是加一个AI拨号外呼的Agent来覆盖电话渠道,再把短视频平台的私信场景也接进来。模块化设计的好处就是,这些扩展基本不会动到底层架构。