跳到正文

Agent模块协作机制与失败场景

感知、规划、记忆、行动模块的协作机制与设计依据

原题:请设计一个具备自主决策与工具使用能力的AI Agent,系统阐述其整体架构及核心模块(如感知、规划、记忆、行动等)的设计思路与内在逻辑,并说明各模块的功能作用、协作机制及设计依据,体现对Agent系统性构建的深入理解。

Agent · 百度真题

回答与解析

整体架构:受控反馈循环

Agent 将输入解析、规划、状态、记忆和工具执行解耦。LLM 负责生成候选计划或结构化决策,确定性状态机、权限系统和工具层负责执行边界。

1. 感知与状态

把用户请求、工具结果和环境事件转换为带来源的结构化状态,保留原始输入引用。意图分类不是不可变真值;低置信或高风险场景应请求澄清。

2. 规划

简单任务直接选择下一动作,复杂任务拆成有完成条件的子目标。系统可以保存简洁的计划摘要和决策依据,但不依赖展示隐藏 Chain-of-Thought。每轮检查最大步数、时间、成本、重复状态和人工确认点。

3. 记忆

  • 工作记忆保存当前目标、约束和已验证观察。
  • 长期记忆写入前检查来源、权限、用户隔离、有效期和纠错机制;重要性分数只能辅助排序,不能替代真实性验证。
  • 摘要和向量检索都可能丢失或误召回信息,关键事实应回查权威记录。

4. 行动

工具先注册 Schema、返回协议和风险等级。调用时完成参数、权限、幂等、副作用和资源预算检查;执行结果以 Observation 返回状态机。失败时根据错误类型重试、换工具、降级、请求确认或终止。

5. 协作与评测

模块通过版本化协议和 trace_id 连接,记录状态迁移、工具调用、结果和停止原因。评测任务完成率、错误副作用、工具成功率、循环率、延迟、成本和人工介入率。RAG 只是可选知识工具,不应把检索结果自动写成长期真值。

结论:自主性来自可反馈的规划,可靠性来自状态机、权限、预算和可回滚工具执行。

口语版讲法(约4分钟)

  • 整体分层循环架构
  • 感知模块做结构化输入
  • 规划模块用ReAct循环
  • 记忆模块分三层并设重要性评分
  • 行动模块的工具调用与异常处理
  • 融合RAG作为工具之一

如果让我设计一个具备自主决策和工具使用能力的 Agent,我会用一个“受控闭环”架构。它不是让大模型自由发挥,而是由状态管理器串起感知、规划、记忆、行动和反馈,每一轮都更新状态,并且受权限、超时、步数和审计约束。

先看感知模块。它负责接收用户输入、工具返回、环境事件,做意图识别和信息抽取,形成结构化状态。比如用户说“帮我处理这个退款异常”,感知层要抽取订单号、用户身份、当前意图、缺失信息,并判断是否需要鉴权。这样下游模块拿到的是清晰状态,而不是一段原始自然语言。

规划模块负责决定下一步。简单任务可以直接映射到工具调用;复杂任务才交给 LLM planner 或 ReAct 做多步拆解。这里我会加一个原则:高风险业务流程不能完全让模型自由规划,比如退款、发券、改订单,必须走状态机或审批流;模型可以负责解释和参数建议,但最终执行路径由系统约束。

记忆模块分短期和长期。短期记忆保存当前任务上下文、已完成步骤、工具 observation;长期记忆保存用户偏好、历史工单、领域知识和工具经验。长期记忆可以用向量库、关系库或图数据库,但写入时要做重要性评分和去重,不然越存越乱。读取时也要带权限和时间过滤,避免拿到过期或无权访问的信息。

行动模块负责工具调用。每个工具都要有 schema、权限等级、超时配置、是否有副作用、是否可重试。模型生成 tool call 后,系统先做参数校验和权限检查,再执行工具。对于写操作,比如发起退款、发送通知、修改配置,要支持 dry-run、人工确认或二次授权。工具返回结果后,要转换成标准 observation,回到状态管理器。

反馈模块负责判断任务是否完成,以及是否需要重试、换工具、请求用户补充信息或转人工。比如工具超时,可以重试一次;参数缺失,就问用户;连续多轮失败,就停止自动执行,避免 Agent 死循环。

RAG 在这个架构里可以作为一种工具,也可以作为长期记忆的一部分。规划模块在需要外部知识时调用 knowledge retrieval,拿到资料后再决定是否继续调用业务工具。这样比每次对话都强制检索更灵活,也能减少无意义调用。

我认为这个系统的设计依据有三点:模块化,方便每层独立优化;反馈驱动,让每次工具执行都能改变下一步决策;受控自治,让 Agent 有决策能力,但不越过业务和安全边界。

这里有个高级问题:如果长期记忆、RAG 文档和实时工具结果互相冲突,应该信谁?我的做法是按来源可信度和时效性排序:实时业务系统优先,其次是有版本的知识库,再其次是历史记忆;冲突无法解决时,让模型明确提示不确定,而不是强行合并。

关键一句:生产级 Agent 是受控自治,LLM 负责规划建议,但状态机、权限和工具系统负责执行边界。

面试官还可能这样问

  1. 问法 1 · 场景切入

    假设我们做一个智能客服Agent,用户问“帮我查上个月的订单”,它需要先查用户信息,再调用订单API,最后回复。如果中间某个API超时了,它该怎么自己决定重试还是换别的办法?你整体上怎么设计这样一个能自主决策、调用工具的Agent?

  2. 问法 2 · 层层追问

    你做过那种能调用外部工具的AI系统吧?……那它拿到一个用户请求,怎么决定下一步做什么?……如果任务很复杂,比如订机票要查航班、比价格、下单,它怎么规划步骤?……再深入一点,每一步执行完,怎么把结果反馈回来指导下一步?你完整说一下架构吧。

  3. 问法 3 · 直球架构

    设计一个具备自主决策与工具使用能力的AI Agent,要求说清感知、规划、记忆、行动四个模块的设计思路和协作机制。你从整体架构开始讲,重点说明每个模块为什么这么设计,以及它们怎么协同完成闭环。

同模块相关题目