资讯中心

Agentic AI 看起来很强,为什么真实项目里总失控?

📅 2026/8/6 23:24:15
Agentic AI 看起来很强,为什么真实项目里总失控?
聊《Agentic AI看起来很强为什么一进真实项目就容易失控》之前先说一句实在的别急着背概念先看它在真实项目里到底解决什么问题。摘要上周需求评审业务方提了一个 Agent 需求让系统自动处理客户投诉从读取工单、分析原因、调用知识库到生成回复并推送全流程自主完成。我听完问了一个问题这条链路里哪一步失败后系统该停下来等人确认业务方愣了一下说应该都能自动处理吧。我说那如果它调错了知识库、推了错误回复责任算谁的这个场景我见过太多次了。Agentic AI 的 Demo 跑起来很漂亮LLM 能拆解任务、调用工具、甚至自我反思。但一旦放到真实项目里权限怎么控、日志怎么记、失败怎么恢复这些问题没有一个被认真讨论过。今天这篇不聊概念聊边界和取舍。---目录Agentic 到底是什么自主性边界什么该让 Agent 做什么必须人管任务拆解别指望 LLM 一次性搞定复杂流程可观测性没有日志的 Agent 等于盲飞安全约束Agent 的权限比 Prompt 更重要总结Agentic 到底是什么很多人把 Agentic AI 理解成能自主做事的 AI这个定义太宽泛了。从工程角度Agentic 系统的核心特征是任务驱动 工具调用 循环决策。它不是一个被动响应问题的聊天机器人而是一个能主动规划路径、调用外部工具、并根据结果调整下一步的智能体。典型结构长这样用户输入 → 规划器(Plan) → 执行器(Act) → 观察结果(Observation) → 判断是否完成 → 循环这就是 ReAct 模式Reasoning Acting。但问题来了规划器是谁写的执行器的边界在哪观察结果谁来评估这些问题的答案决定了你的 Agent 是可控的系统还是一个会越跑越野的黑盒。我见过太多团队拿到一个 Agent 框架就急着做 DemoPrompt 写得花里胡哨工具调得飞起。但上线之后最基础的问题都没想清楚——这个 Agent 能调什么接口能改什么数据出错后谁来兜底Agentic 不是能力问题是工程约束问题。---自主性边界什么该让 Agent 做什么必须人管这是我最想强调的一点。需求评审时业务方想要的自主执行在工程师眼里应该翻译成一份权限清单。我的判断标准很简单只读操作 → 可以给 Agent比如查知识库、读工单生成内容但需人工审核 → 可以给 Agent但输出必须进人工确认队列写入/修改/删除操作 → 默认不给除非有强校验机制涉及资金、用户隐私、合规敏感的操作 → 绝对禁止 Agent 直接执行边界不是靠 Prompt 约束的是靠系统架构约束的。一个实际的例子我们做过一个工单分类 Agent它能读取工单内容、调用分类模型、写出分类结果。但分类结果不会直接写入数据库而是进入一个待确认队列由人工审核后才会生效。这个设计简单但有效。它让 Agent 承担了重复劳动同时把关键决策留给了人。自主性不等于完全放手。好的 Agentic 系统是能自主但知道什么时候停下来。---任务拆解别指望 LLM 一次性搞定复杂流程很多团队踩的第一个坑就是把一个复杂任务丢给 LLM指望它自己拆解。现实是LLM 能拆但拆得不可靠。一个真实的投诉处理流程可能包含十几个步骤读取工单 → 查询用户历史 → 检索知识库 → 生成初步回复 → 审核 → 推送。每一步都有失败的可能LLM 自己规划的路径可能在第三步就偏离了。我的建议是复杂流程用工作流编排不要依赖 LLM 的动态规划。用 LangGraph、Temporal 或者简单的状态机把流程写死让 LLM 只负责其中需要智能判断的环节。from langgraph.graph import StateGraph, END class AgentState(TypedDict): ticket_id: str user_history: dict knowledge_result: str draft_response: str status: str # pending_review | approved | rejected def read_ticket(state): # 读取工单固定逻辑 ... def query_knowledge(state): # 调用知识库固定逻辑 ... def generate_response(state): # LLM 只负责这一步 ... workflow StateGraph(AgentState) workflow.add_node(read_ticket, read_ticket) workflow.add_node(query_knowledge, query_knowledge) workflow.add_node(generate_response, generate_response) workflow.add_edge(read_ticket, query_knowledge) workflow.add_edge(query_knowledge, generate_response) workflow.add_edge(generate_response, END)这样流程是确定的LLM 只在关键节点发挥作用。确定性流程 智能节点才是工程上可靠的 Agentic 架构。---可观测性没有日志的 Agent 等于盲飞这是目前行业里最被忽视的一点。Agent 跑通了 Demo但上线一周后运维发现这个 Agent 在反复调用同一个 API每次都在重试日志里全是 500 错误但没人知道为什么。问题出在哪Agent 的每一步决策都没有被记录。一个可观测的 Agent 系统需要记录以下内容1. 输入用户原始请求是什么2. 规划Agent 决定做什么、为什么做3. 工具调用调了哪个工具、传了什么参数、返回了什么结果4. 中间状态每步执行后的状态变化5. 最终输出Agent 给出的最终结果这些信息不能只存在内存里要持久化到日志系统最好能关联到 Trace ID方便排查。import uuid import logging logger logging.getLogger(agent.tracer) def tracked_tool_call(tool_name, params, result, correlation_idNone): trace_id correlation_id or str(uuid.uuid4()) logger.info({ trace_id: trace_id, event: tool_call, tool: tool_name, params: params, result_status: success if result else failed, timestamp: datetime.utcnow().isoformat() }) return trace_id可观测性不是上线后的补救是设计时就该考虑的基础设施。---安全约束Agent 的权限比 Prompt 更重要回到最初的需求评审场景。业务方要自动处理投诉工程师要问的是这个 Agent 能访问哪些系统能写哪些数据出错后能回滚吗安全约束的层级从低到高依次是Prompt 层告诉 Agent 不要做 X——最不可靠LLM 会忽略或误解工具层给 Agent 的工具本身做了权限限制——比如分类 Agent 只能读不能写网关层所有 Agent 的 API 调用经过统一网关做鉴权和限流审计层所有操作留痕可追溯、可回滚我见过最糟糕的案例一个 Agent 被赋予了数据库写入权限Prompt 里写了只在确认信息准确后写入结果 LLM 在不确定时直接写了错误数据而且无法回滚。安全约束必须放在系统层不能依赖 LLM 的自觉。---总结Agentic AI 的 Demo 跑通很容易难的是让它在一个可控的边界内稳定运行。我给团队的验收标准就三条1. 权限清单Agent 能做什么、不能做什么写清楚不是靠 Prompt 约束2. 日志完整每一步决策可追溯出问题能还原现场3. 流程确定复杂任务用工作流编排LLM 只在关键节点介入Demo 看能力上线看约束。 这两件事一样都不能少。资料展示下面是我整理的AI大模型学习资料和工具包预览适合收藏后按主题逐步学习。如果你想看完整资料目录可以在评论区留言「资料」也欢迎告诉我你更关注AI大模型里的哪类内容。