大模型智能体系统架构设计思路
从零构建 Agent 架构,关键技术选型与 Prompt 工程考量
原题:如果您需要从头设计一个大模型智能体系统,请描述您的设计思路、架构选择和关键技术考量
Prompt工程 · 百度真题
30 秒回答
- 明确分层架构设计(感知层、认知层、执行层)
- 工具调用与Function Calling机制设计
- 记忆系统的短期/长期记忆分离
- 规划能力(ReAct/CoT/多步推理)
回答与解析
答案要点
- 明确分层架构设计(感知层、认知层、执行层)
- 工具调用与Function Calling机制设计
- 记忆系统的短期/长期记忆分离
- 规划能力(ReAct/CoT/多步推理)
- 安全与可控性机制
- 多智能体协作与通信协议
整体架构:三层分离设计
感知层(Perception)
- 多模态输入处理:文本、图像、语音统一编码
- 意图识别模块:快速路由到对应处理流程
- 上下文窗口管理:动态压缩/筛选历史信息
认知层(Cognition)
- 核心推理引擎:支持CoT/ReAct/ToT等多范式
- 规划模块:任务拆解 → 子目标生成 → 执行序列
- 反思机制:执行后自我评估,失败时重规划
执行层(Action)
- 工具注册中心:标准化Schema定义(OpenAPI风格)
- 执行沙箱:隔离环境+超时控制+权限分级
- 结果聚合:多工具输出融合与后处理
关键技术考量
| 维度 | 设计选择 |
|---|---|
| 记忆系统 | 短期:对话上下文滑动窗口;长期:向量库+结构化知识图谱双存储 |
| 工具调用 | Function Calling原生支持 + 动态工具检索(相似度匹配Top-K) |
| 规划深度 | 简单任务单步响应;复杂任务启用多步ReAct,设置最大迭代阈值 |
| 安全可控 | 输出审核层(敏感词+意图分类);工具调用权限白名单 |
| 扩展性 | 插件化架构,新工具自动注册无需改代码 |
差异化设计点
- 人机协作回路:关键决策点引入人类确认,降低幻觉风险
- 多智能体编排:主Agent负责任务分发,子Agent并行执行,通过共享内存池通信
- 成本感知调度:根据任务复杂度动态选择模型(大小模型路由)
核心原则:不是让Agent更"聪明",而是让系统更"可靠"——通过明确的边界、完善的监控和优雅的降级策略保障生产可用。
口语版讲法(约4分钟)
- 一句话点题:本质是可靠性的工程问题
- 分层架构与边界划分
- 记忆与工具调用的具体设计
- 安全、成本与多智能体协作
- 落地风险与收尾判断
我觉得这道题问的其实不是怎么搭一个花哨的Agent,而是你怎么保证它在生产环境里稳定可用。说白了,大模型智能体系统,核心不是让模型更聪明,而是让整个系统更可靠。
我的设计思路是三层分离:感知层、认知层、执行层。先说感知层,它负责把多模态输入,文本、图像、语音,统一编码成模型能理解的表示,同时做意图识别和上下文管理。这里有个边界划分:如果输入全是结构化查询,比如订单号检索,那感知层可以很轻,甚至直接用规则路由;但如果是开放域对话,就得靠模型做语义理解,上下文窗口管理就特别重要,得动态压缩历史,不然窗口一满就丢信息。实际落地往往是两者结合,规则兜底,模型处理模糊情况。
认知层是核心,负责推理和规划。我支持多种推理范式,比如简单任务单步响应,复杂任务走 ReAct 或 Chain-of-Thought 多步推理。这里有个坑:规划深度不是越深越好。比如客服退款场景,用户说“我要退款”,如果直接调用退款工具,可能忽略订单状态、库存信息,导致执行失败。所以我加了反思机制:执行后自我评估,失败就重规划,并设置最大迭代阈值防止死循环。
执行层是工具调用的沙箱。我会用标准化的 Function Calling 接口,工具注册中心管理所有工具的 Schema。工具调用必须隔离执行,加超时控制和权限分级。比如企业 SOP 文档查询,只允许读操作,不允许改数据库。工具调用的权限白名单是安全底线,上线前必须审计。
记忆系统我分成短期和长期。短期用 Sliding Window 保存对话上下文;长期用向量库加结构化知识图谱双存储。向量库适合语义检索,知识图谱适合精确关系查询。比如用户问“上次那个退款订单怎么样了”,向量检索找到相关对话片段,知识图谱确认订单状态,两者互补。
安全和可控性方面,输出审核层用敏感词加意图分类过滤,工具调用权限白名单。扩展性靠插件化架构,新工具自动注册不用改核心代码。
这里有个延伸点:成本感知调度。我会根据任务复杂度动态选择模型,简单任务用小模型,复杂任务用大模型,甚至结合 MoE 路由。但前提是模型质量评估准确,否则小模型误判会降低用户体验。
多智能体协作方面,我倾向用主从架构:主 Agent 负责任务分发,子 Agent 并行执行,通过共享内存池通信。但协作成本不低,通信协议要轻量,避免序列化开销。
最后我的判断是:Agent 系统成败不在模型多强,而在边界划得多清楚、降级策略多优雅。所以我更倾向把精力花在监控、回滚、人工确认回路上,而不是一味堆功能。如果面试官有兴趣,我可以再讲讲成本感知调度的具体实现。
关键一句:成本感知调度:根据任务复杂度动态选择模型大小,但前提是质量评估准确。
面试官还可能这样问
- 问法 1 · 场景切入
假设我们要做一个电商客服智能体,用户问‘帮我查一下上周的订单’,然后又说‘顺便把那个退款申请提交了’。你会怎么设计这个系统,让它能理解用户意图、调用订单API和退款接口,还要记住上下文?从头说说你的思路。
- 问法 2 · 层层追问
你觉得一个智能体系统最关键的能力是什么?……那规划能力怎么实现?比如用户说‘帮我订机票,再订个酒店,要便宜的’,系统怎么一步步执行?……好,那工具调用怎么保证安全?……记忆方面呢,短期和长期怎么设计?
- 问法 3 · 直球架构
让你从零设计一个大模型智能体系统,说说你的分层架构、记忆系统、工具调用机制和规划策略,还有安全怎么考虑。直接讲设计思路和关键技术点。