1. 什么是智能体 Agent?
Agent 是能围绕目标进行感知、规划、调用工具、执行动作并根据结果迭代的智能系统。
和普通 Chatbot 的区别:
- Chatbot 主要回答问题。
- Agent 会拆解任务、选择工具、执行步骤、观察结果、继续调整。
一个典型 Agent 包含:
- LLM:负责理解、推理、规划。
- Tools:搜索、数据库、业务 API、代码执行、浏览器、文件系统等。
- Memory:短期上下文和长期记忆。
- State:任务状态。
- Planner:计划生成。
- Executor:执行工具。
- Guardrails:权限、安全和格式约束。
面试话术:
我理解 Agent 不是单个模型,而是 LLM + 工具 + 状态 + 记忆 + 权限 + 评测组成的系统。它适合目标明确但路径不完全固定的任务。
2. Agent 和工作流 Workflow 有什么区别?
Workflow:
- 步骤固定。
- 可预测。
- 容易测试和审计。
- 适合订单、审批、图像生成流水线等。
Agent:
- 路径动态。
- 根据上下文选择下一步。
- 更灵活但更不确定。
- 适合研究、排障、复杂客服、数据分析、代码修改等。
面试话术:
我不会为了追热点什么都上 Agent。可预测流程优先用工作流,开放式任务才引入 Agent。生产系统经常是 Workflow 外壳 + Agent 节点,既保留可控性,也提供智能决策能力。
3. ReAct 思想是什么?
ReAct 是 Reasoning + Acting:
- Reasoning:模型先思考下一步。
- Acting:调用工具执行。
- Observation:观察工具结果。
- 再继续推理和执行。
简化流程:
- 用户提出目标。
- Agent 思考需要什么信息。
- 调用搜索或业务工具。
- 读取结果。
- 决定下一步。
- 最终输出答案或执行结果。
面试话术:
ReAct 的价值是把模型推理和外部行动结合起来。但生产里不能完全暴露自由行动,必须限制工具集合、参数范围、调用次数和权限。
4. 什么是 Tool Calling?
Tool Calling 是 Agent 调用外部能力的基础。
例如用户说:
帮我查一下订单 123 是否可以退款。
Agent 可能调用:
getOrder(orderId=123)checkRefundPolicy(orderId=123)createRefundRequest(orderId=123),但这个步骤需要用户确认。
关键设计:
- 工具描述要清晰。
- 参数 Schema 要严格。
- 工具返回要结构化。
- 高风险工具要审批。
- 工具调用要可追踪。
5. 什么是 MCP?
MCP 是 Model Context Protocol,可以理解为连接模型/Agent 与外部工具、数据源的开放协议。
它解决的问题:
- 每个 AI 应用都重复接工具成本高。
- 工具接口、资源、Prompt 缺少统一协议。
- Agent 需要标准方式访问文件、数据库、代码仓库、浏览器、内部系统。
可以类比:
MCP 像 AI 时代的 USB-C,让不同模型客户端用统一方式连接工具和数据源。
面试话术:
我会关注 MCP,不是因为它本身神奇,而是它可能成为 Agent 工具生态的标准化连接层。企业内部可以把 CRM、订单、知识库、工单系统封装成 MCP Server,Agent 通过权限控制后的 MCP Client 访问。
6. Agent 的记忆怎么设计?
记忆分几类:
- 短期记忆:当前会话上下文。
- 长期记忆:用户偏好、历史任务、知识沉淀。
- 情景记忆:过去类似任务的过程。
- 语义记忆:知识类内容,通常用向量库。
- 程序记忆:可复用的工具和工作流。
设计注意:
- 长期记忆不能无限写入。
- 敏感信息需要脱敏和权限控制。
- 记忆要可编辑、可删除。
- 检索记忆时要考虑时效性和相关性。
7. Agent 如何保证可靠性?
常用手段:
- 明确任务边界。
- 限制最大步骤数。
- 工具白名单。
- 参数校验。
- 状态机约束。
- 高风险动作人工确认。
- 超时和重试。
- 输出结构化。
- 执行过程 Trace。
- 离线评测和在线监控。
面试话术:
Agent 的可靠性不是靠"模型更聪明"单点解决,而是靠系统工程:状态管理、权限、工具约束、观测、评测和人在回路。
8. 多 Agent 协作有什么价值和风险?
价值:
- 角色分工:规划、执行、审查、总结。
- 并行处理:多个子任务同时执行。
- 专业化:不同 Agent 处理不同领域。
- 自我检查:Reviewer Agent 审核结果。
风险:
- 成本增加。
- 延迟增加。
- 上下文膨胀。
- 相互误导。
- 调试复杂。
适用场景:
- 复杂研发任务。
- 多步骤数据分析。
- 投研报告。
- 自动化运营。
- 多系统排障。
面试话术:
多 Agent 不是越多越好。我会先把任务拆清楚,只有当角色边界明确、并行收益大于沟通成本时才使用多 Agent。
9. Agent 平台的核心模块是什么?
生产级 Agent 平台通常包括:
- Agent 配置:角色、目标、工具、模型、策略。
- 工具市场:业务 API、搜索、文件、数据库、浏览器。
- 工作流编排:状态机、条件分支、循环、人工节点。
- 记忆系统:会话、用户画像、长期知识。
- 权限系统:租户、角色、工具级权限。
- 任务调度:异步执行、队列、重试、超时。
- 观测系统:Trace、日志、Token、延迟、工具调用链。
- 评测系统:标准任务集、回放、对比、人工评分。
- 安全系统:Prompt Injection 防护、内容审核、审计。
10. Agent 什么时候不适合?
不适合场景:
- 流程完全固定,普通工作流即可。
- 高风险金融/支付/删除操作,且不能人工确认。
- 强一致性事务。
- 低延迟强实时场景。
- 规则明确、成本敏感的小任务。
回答:
Agent 的价值在动态决策,不在替代所有后端逻辑。规则明确的地方应该用确定性代码;需要灵活推理的地方才交给 Agent。
11. 如何做 Agent 的权限控制?
分层控制:
- 用户权限:用户能访问什么数据。
- Agent 权限:这个 Agent 能用什么工具。
- 工具权限:工具能执行哪些动作。
- 参数权限:参数范围是否允许。
- 动作确认:高风险动作需人确认。
- 审计日志:谁在什么时候通过哪个 Agent 调用了什么工具。
示例:
客服 Agent 可以查询订单状态,但不能直接退款;退款工具需要用户确认和客服主管审批。
12. Agent 如何与 Java 后端集成?
推荐架构:
- Java 后端提供业务 API、权限、计费、任务状态。
- Agent 服务可以用 Python/Node/Java 实现,作为独立智能编排层。
- 模型调用走模型网关。
- 工具调用走内部 API 网关。
- 异步任务用 MQ。
- Trace 回写到观测平台。
如果是 Java 优先:
- Spring AI:适合 Spring 体系接入模型、工具、RAG。
- LangChain4j:Java 生态的 LLM 应用框架。
- Dify/Coze 等平台:适合快速搭建原型。
- LangGraph / LlamaIndex:适合复杂 Agent/RAG,可作为独立 AI 服务。
13. 如何评测 Agent?
比普通问答更复杂,要评测过程和结果:
- 是否完成任务。
- 工具调用是否正确。
- 步骤是否合理。
- 是否越权。
- 是否超预算。
- 是否需要人工接管。
- 最终用户是否满意。
方法:
- 构建任务集。
- 回放真实任务。
- 对比不同模型和策略。
- 用 LLM-as-a-Judge 辅助评分。
- 人工抽样审核。
- 线上监控任务完成率。
14. Agent 失败的常见原因
- 目标不清楚。
- 工具描述不清楚。
- 工具返回不可读。
- 缺少状态管理。
- Prompt 太长。
- 模型选择不合适。
- 没有限制循环。
- 权限边界缺失。
- 缺少评测和回放。