作者按: 这篇文章写给那些已经被"大模型改变世界"刷屏到麻木、却还没搞清楚 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。正确做法是加一层结果解析层:
def parse_observation(tool_name: str, raw_result: dict) -> str:"""把工具原始返回压缩成 LLM 可消费的摘要"""if tool_name == "finance_db.query":rows = raw_result.get("rows", [])return f"查询到 {len(rows)} 条记录," \f"总金额 {sum(r['amount'] for r in rows):,.0f} 元"# ... 其他工具的解析逻辑return str(raw_result)[:500] # 兜底截断
坑 3:无限循环
Agent 在某些场景会陷入死循环(比如工具一直返回错误,它一直重试)。必须设置最大步骤数:
MAX_STEPS = 15 # 根据业务复杂度调整async def run_agent(task: str) -> str:messages = [{"role": "user", "content": task}]for step in range(MAX_STEPS):response = await llm.complete(messages)action = parse_action(response)if action.type == "final_answer":return action.contentobservation = await execute_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 系统(脱敏)
from adp.connectors import SAPConnectorconnector = SAPConnector(host="sap-prod.internal",client="100",system_id="PRD"# 认证信息从 Vault 动态获取,不硬编码
)# Agent 工具定义
@agent.tool(description="查询 SAP 采购订单状态")
async def get_po_status(po_number: str) -> dict:result = await connector.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
