作者按:这篇文章写给那些已经被"大模型改变世界"刷屏到麻木、却还没搞清楚 AI Agent 到底怎么落地的工程师和架构师。没有 PPT 式的宏大叙事,只有真实的技术逻辑和踩过的坑。
一、从一个真实的困惑说起
去年年底,某制造企业的 IT 总监找我聊,说他们花了三个月上了一套"AI 智能助手",结果员工用了两周就没人用了。原因很简单:问它"帮我查一下上周的采购订单状态",它给了一段关于如何查询订单的说明文字。
这不是 AI 不够聪明,这是用错了工具。
他们需要的不是AI 助手,而是AI Agent。
二、AI 助手 vs AI Agent:一张图说清楚
很多人混用这两个概念,但它们的本质差异,决定了你的系统能不能真正"干活"。
┌─────────────────────────────────────────────────────────┐ │ 普通 AI 助手 │ │ │ │ 用户输入 ──► LLM 推理 ──► 文字输出 │ │ │ │ 特点:单轮或多轮对话,只输出文本,不执行任何操作 │ └─────────────────────────────────────────────────────────┘ ┌─────────────────────────────────────────────────────────┐ │ AI Agent │ │ │ │ 用户目标 ──► 规划分解 ──► 工具调用 ──► 结果验证 │ │ ▲ │ │ │ └──────────── 反馈循环 ─────┘ │ │ │ │ 特点:自主规划、调用外部工具、持续迭代直到目标达成 │ └─────────────────────────────────────────────────────────┘用更接地气的比喻:
AI 助手= 一个博学的顾问,能给你建议,但什么都不会帮你做
AI Agent= 一个有执行力的员工,听懂目标之后,会自己想办法完成
核心差异不在于模型有多聪明,在于是否有"行动能力"——能不能调用工具、访问数据、触发流程。
| 维度 | 普通 AI 助手 | AI Agent |
|---|---|---|
| 输出形式 | 文本 | 文本 + 行动结果 |
| 工具调用 | 无 | 有(API、数据库、RPA 等) |
| 任务复杂度 | 单步问答 | 多步骤、跨系统 |
| 自主性 | 被动响应 | 主动规划与执行 |
| 典型场景 | 写文案、答问题 | 查订单、发邮件、跑报表 |
| 失败处理 | 无重试 | 自动重试/回退 |
三、ReAct Loop:Agent 大脑的运转方式
如果说工具调用是 Agent 的"手",那ReAct(Reasoning + Acting)循环就是它的"大脑"。
3.1 理论模型
ReAct 由 Google Research 在 2022 年提出,核心思路是:把推理和行动交替进行,每次行动后观察结果,再决定下一步。
Thought(推理)→ Action(行动)→ Observation(观察)→ Thought → ...听起来简单,工程实现起来有很多细节。
3.2 一个真实的执行流程
假设用户说:“帮我整理一下本月所有逾期未回款的客户,发邮件提醒,并在 CRM 里标记高风险”
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 第 1 轮 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [Thought] 用户要查逾期客户,首先需要访问财务数据库 [Action] call_tool("finance_db.query", { sql: "SELECT customer_id, amount, due_date FROM invoices WHERE due_date < CURDATE() AND status != 'paid' AND month = MONTH(CURDATE())" }) [Observation] 返回 23 条记录,金额从 12万 到 380万不等 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 第 2 轮 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [Thought] 有了客户列表,需要获取联系人信息 [Action] call_tool("crm.get_contacts", { customer_ids: [1023, 1045, ..., 2103] }) [Observation] 获取到 23 位客户的主要联系邮箱 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 第 3 轮 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [Thought] 发送催款邮件,需要个性化内容(金额、天数) [Action] batch_call("email.send", customers.map(c => ({ to: c.email, subject: `关于 ${c.invoice_no} 款项提醒`, body: generate_reminder(c) // LLM 生成个性化文案 }))) [Observation] 21 封发送成功,2 封邮件地址无效 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 第 4 轮 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [Thought] 在 CRM 中批量标记高风险,金额超50万的优先级 P1 [Action] call_tool("crm.update_risk_label", { customers: customers.map(c => ({ id: c.id, risk_level: c.amount > 500000 ? "P1" : "P2" })) }) [Observation] 23 条记录全部更新成功 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [Final Answer] 已完成: - 查到 23 位逾期客户 - 成功发送 21 封邮件(2 封地址异常,已标注) - CRM 高风险标记完成(P1: 7人,P2: 16人)这个过程,一个人工做可能要 2 小时,Agent 做完不超过 30 秒。
3.3 工程实现的关键点(别踩坑)
坑 1:Thought 阶段不够细
很多人直接让 LLM 选工具,跳过推理步骤。结果是 Agent 在复杂任务上频繁选错工具。正确做法是在 System Prompt 里强制要求<thought>标签,逼它先推理再行动。
SYSTEM_PROMPT=""" 你是一个企业 AI Agent。每次行动前,必须先在 <thought> 标签中写出推理过程。 格式: <thought>分析当前状态,以及为什么选择下一步行动</thought> <action>{"tool": "工具名", "params": {...}}</action> 直到任务完成,输出: <final_answer>执行结果摘要</final_answer> """坑 2:没有 Observation 验证
Action 执行后,很多实现直接把原始返回塞给 LLM。问题是,API 返回经常包含大量无关字段,撑爆 context window。正确做法是加一层结果解析层:
defparse_observation(tool_name:str,raw_result:dict)->str:"""把工具原始返回压缩成 LLM 可消费的摘要"""iftool_name=="finance_db.query":rows=raw_result.get("rows",[])returnf"查询到{len(rows)}条记录,"\f"总金额{sum(r['amount']forrinrows):,.0f}元"# ... 其他工具的解析逻辑returnstr(raw_result)[:500]# 兜底截断坑 3:无限循环
Agent 在某些场景会陷入死循环(比如工具一直返回错误,它一直重试)。必须设置最大步骤数:
MAX_STEPS=15# 根据业务复杂度调整asyncdefrun_agent(task:str)->str:messages=[{"role":"user","content":task}]forstepinrange(MAX_STEPS):response=awaitllm.complete(messages)action=parse_action(response)ifaction.type=="final_answer":returnaction.content observation=awaitexecute_tool(action)messages.append({"role":"assistant","content":response})messages.append({"role":"tool","content":observation})return"任务超出最大步骤限制,请人工介入"四、智能体开发平台:不要重复造轮子
说完原理,说实际。
企业真正落地 AI Agent,从零搭 ReAct 框架是一条苦路。工具注册、权限管控、可观测性、多 Agent 协作……每一个都要踩坑,每一个都需要时间。
这就是**智能体开发平台(Agent Development Platform)**的价值所在。
目前国内主流平台大概分三类:
低代码拖拽型:快速上手,适合业务人员,但灵活性有限
开发者框架型:代码优先,灵活强大,需要一定工程能力
企业级 ADP 型:面向复杂企业场景,注重治理、安全、集成能力,我推荐Bizfocus ADP
4.1 主流平台横向对比
| 能力维度 | 字节扣子 | 阿里百炼 | 腾讯元器 | 智谱 AgentHub | Bizfocus ADP |
|---|---|---|---|---|---|
| 多模型支持 | 火山引擎为主 | 通义为主 | 混元为主 | GLM 系列 | 多模型路由 |
| 工具/插件生态 | 丰富(500+) | 丰富(400+) | 中等 | 中等 | 企业定制为主 |
| 多 Agent 协作 | 支持(工作流) | 支持(编排器) | 支持 | 有限 | 原生支持 |
| 私有化部署 | 企业版支持 | 支持 | 支持 | 支持 | 原生设计 |
| 企业系统集成 | 一般 | 良好(阿里云生态) | 良好(腾讯云生态) | 一般 | 深度 |
| 权限与审计 | 基础 | 中等 | 中等 | 基础 | 企业级 |
| 可观测性 | 基础日志 | 中等 | 中等 | 基础 | 全链路追踪 |
| 适合场景 | C 端/轻量内部工具 | 阿里云客户 | 腾讯云客户 | 开发者/研究 | 大中型企业核心业务 |
说明:以上评分基于公开资料和实际使用体验,各平台产品迭代较快,建议以官方最新文档为准。
4.2 Bizfocus ADP 的差异化在哪里
很多平台在技术演示时很漂亮,但企业客户最终问的是三个问题:
① 能不能接系统?
大型企业的核心数据不在云端,在本地的 SAP、Oracle、金蝶、用友里。Bizfocus ADP 的原生支持这些系统的协议(RFC、JDBC、REST),不是"可以对接",而是"开箱即用"。
# 示例:ADP 连接器调用 SAP 系统(脱敏)fromadp.connectorsimportSAPConnector connector=SAPConnector(host="sap-prod.internal",client="100",system_id="PRD"# 认证信息从 Vault 动态获取,不硬编码)# Agent 工具定义@agent.tool(description="查询 SAP 采购订单状态")asyncdefget_po_status(po_number:str)->dict:result=awaitconnector.call_bapi("BAPI_PO_GETDETAIL",{"PURCHASEORDER":po_number})return{"status":result["PO_HEADER"]["STATUS"],"vendor":result["PO_HEADER"]["VENDOR"],"amount":result["PO_HEADER"]["NET_VALUE"]}② 出了问题能追查吗?
这是企业最担心的。Agent 执行了一个不该执行的操作,怎么知道是谁触发的、中间经历了哪些推理步骤?
ADP 的全链路追踪会记录每一个 Thought → Action → Observation 的完整轨迹,并与企业 IAM 系统集成,做到操作可归因。
③ 不能让 AI 乱来
Guardrails 是 ADP 的核心能力之一。可以在工具调用层设置:
# ADP Guardrails 配置示例(脱敏)guardrails_config={"tools":{"crm.delete_customer":{"require_human_approval":True,# 必须人工确认"approval_timeout_seconds":300,"notify_channels":["dingtalk","email"]},"finance_db.write":{"allowed_users":["role:finance_admin"],# 角色限制"business_hours_only":True,# 仅工作时间"max_rows_per_call":100# 批量上限}}}五、一个值得思考的架构问题
有人问:有了低代码平台,还需要懂技术吗?
我的答案是:业务简单的场景,不需要。但企业里真正有价值的自动化,往往不简单。
一个典型的企业 Agent 任务链可能涉及:
从 ERP 读数据(需要理解业务数据模型)
通过大模型推理(需要 Prompt 工程能力)
写回数据库(需要事务安全保障)
发送通知(需要消息可靠性设计)
异常时回滚(需要补偿机制)
这已经不是拖拖拽拽能搞定的事了。这需要懂业务、懂工程、懂 AI 的人坐在一起,把这套流水线设计好。
低代码平台是工具,不是银弹。
六、给架构师的选型建议
不废话,直接给结论:
如果你是 ToC 产品或轻量内部工具→ 扣子或百炼,快,生态好,上线快
如果你深度绑定阿里/腾讯云→ 优先看百炼/元器,集成成本低
如果你是大中型企业,核心业务系统在本地→ 认真评估 Bizfocus ADP,私有化部署 + 企业系统集成的成熟度明显更高
如果你想自建 Agent 框架做差异化→ 用开源框架(LangGraph / AutoGen)打底,叠加自研的 Guardrails 和 Observability 层
七、最后说几句实话
AI Agent 这个方向,现在有两种极端:
一种是过度鼓吹:什么都能 Agent 化,Agent 替代一切,PPT 画得很好看。
另一种是过度保守:现在 Agent 不稳定、幻觉太多、不敢用。
真实情况在中间:有明确边界、有兜底机制、有人工复核节点的 Agent,现在就能产生真实商业价值。关键不是等技术完美,而是把任务拆对了。
从一个采购询价自动化开始,从一个工单分类路由开始,从一个财务数据汇总开始。做出来,看到效果,再扩大范围。
这才是 AI 落地的正确姿势。
参考与延伸阅读
ReAct: Synergizing Reasoning and Acting in Language Models — Google Research, 2022
AutoGen: Enabling Next-Gen LLM Applications