Skip to content

Agent · 技术问答

用法:先口述 60–90 秒,再对照要点。加分句选 1 句。课件里的投顾 / OpenManus / 浏览器案例标成示例,不要背成自己的上线经历。

机制细节看 Agent 笔记。平台选型看 平台与业务笔记 / 问答


必会

重点 什么是 LLM Agent?和单轮调用、Function Calling 有什么区别?

答题要点

  • Agent ≈ LLM + 工具 + 记忆 + 规划循环:运行中自己决定调什么、读什么、何时结束。
  • 单轮调用:一份 prompt 进、一段文本出,一次结束。
  • Function Calling 是「模型能吐结构化工具调用」;Agent 是上层循环——要不要调、调完还要不要继续、何时停。

加分句:没有循环和停止条件,只是包了一层 SDK,还不是 Agent。


重点 MCP 和 Function Calling 有什么区别?已经有了 MCP 还要 FC 吗?

答题要点

  • Function Calling:各家模型私有插头,换模型往往要改工具描述和解析。
  • MCP:通用插槽。Server 写一次,多种 Client 都能连;List Tools 热插,不必改 Agent 本体。
  • 模型侧往往还是 FC / tool call,连上的可以是 MCP Server。不是二选一。
  • 简单、原子任务直接 FC 更省事:少一层协议,延迟更低。

加分句:项目里文档检索走 MCP,和网页共用一套检索;鉴权在服务端,不靠课件里的桌面 TXT 例子。


重点 编写一个 Agent 框架要解决哪些核心问题?

口述:四件事。少一块就只是脚本套模型。

  1. LLM 适配层 — 统一聊天、流式、tool calling。换模型不能改业务。
  2. 工具注册与调度 — 名字、说明、参数 schema、执行;超时、重试、权限。
  3. Context 管理 — 系统提示、历史、工具返回怎么进窗口,爆了要裁。
  4. 控制流编排 — ReAct:想 → 调工具 → 观察 → 再想。要分支、重试、人审,链不够就上图。

口条:大脑可换、双手可插、记忆可裁、中枢能停。


重点 LLM 是如何看见工具的?

口述:模型看不见函数体,只看见 JSON Schema(名字、干什么、参数)。框架把函数编成 schema 塞进 tools;模型回 tool call,运行时再执行。

说明写糊了就会乱填参数;执行失败是框架的事,模型只负责点名 + 填表。


重点 Agent 死循环怎么办?

答题要点

  • 检测:连续多次 Action 语义极像且没有新 Observation → 强制打断。
  • 系统提示:换策略或问用户;必须有全局步数上限。
  • ReAct 会死循环:反复同一工具、不给 Final Answer。

为什么需要 Context 管理?记忆怎么分层?

口述:LLM 无状态,窗口又贵。短的管窗口,长的管检索。

  1. 短期session_id 隔开多用户;滑动窗口只留最近 N 轮。
  2. 长期 — RAG:按相关性捞,不是按时间倒全部历史。
  3. 关键槽位用结构化状态,不要只靠散文摘要。

控制流:Chain、Loop、DAG 怎么选?

  1. Chain — 步数写死,线性 RAG / 格式化。
  2. Loop — ReAct,下一步由模型选,要步数上限。
  3. DAG — 接力依赖写死、无环;要重试/人审再上带环的图(LangGraph)。

口条:流水线走链,试错走环,接力走 DAG。


进阶

重点 如何平衡响应速度和思考深度?

  • 双层:简单查询直接调 API;复杂再 Planner 拆任务。
  • 前面加路由:意图简单就短路。
  • 能 Workflow 写死的别上自主循环。

重点 为什么代码执行要沙箱?

  • 模型生成的代码可能删盘、死循环,不能在宿主机裸跑。
  • 隔离容器只回传 stdout/stderr;超时或内存超限销毁。
  • 没落地就说「原则 + 自己项目还没有代码执行」,不要虚构。

什么时候单 Agent,什么时候多 Agent?

  • 单:工具少、步骤短、上下文单一。
  • 多:窗口太长会忘需求、角色指令冲突(规划 / 写码 / 测试拆开)。
  • 先拆上下文和职责,再拆进程。

Agent 如何自我修复?工具原子性怎么把控?

  • 报错 + 旧代码回灌,要求分析并重写;max_retries(如 3),超限抛给用户。
  • 一事一工具,参数尽量少;不要一个万能 analyze_data

如何降低 Token、Agent 很慢怎么查?

  • 模型分级:路由用小模型,推理用强模型。
  • 压缩 System Prompt,少塞重复上下文。
  • 慢先看 Trace:是 LLM 吐字慢还是工具(网络 / DB)慢;给工具 timeout,能并行就并行。

你的 Agent 设计哲学是什么?

  • 能写代码解决的,少靠纯 CoT。
  • 流程确定就用 Workflow / 图。
  • 转账、发邮件等关键步必须 Human-in-the-loop。

Dify 怎么把 OA / CRM 接到 Agent?MCP 的价值?

  • Workflow 里 HTTP 节点调 REST;自定义工具用 OpenAPI Schema。
  • MCP:企业系统做成 Server,按同一协议发现和调用,避免每个 Bot 一套适配。

了解

Agent 怎么处理数值计算?

LLM 当指挥官,算术交给 Python。理解意图 → 写代码 → 执行 → 解释。数用引擎算,模型只写结论。

介绍你最复杂的 Agent?

没做过浏览器就别编。可以讲 ThingJS 文档 RAG:MCP + 混合检索 + 权限 + 索引门禁。复杂要讲失败模式和降级。

浏览器 Agent:动态加载怎么等?DOM 不准怎么结合 VLM?

  • 不要只靠 sleep;Playwright 用 wait_for_selector / networkidle
  • DOM 会撒谎时:截图给 VLM 要坐标再点。没写过就当概念题,项目回到 RAG/MCP。

思考很久,前端怎么做体验?

SSE 流式;调工具时气泡「正在检索…」,减少卡死感。

Agent 怎么评测?

别只说准不准。Agent 必看计划遵循度;还要测过程(不该走 Planner 却走了 = Fail)。重要门禁仍要黄金集和人工抽检。

速记口条

  1. MCP 是通用插槽,FC 是各家私有插头。
  2. 简单短路,复杂再规划。
  3. 大脑可换、双手可插、记忆可裁、中枢能停。
  4. 模型指挥,代码计算;生成代码进沙箱。
  5. 用户输入是数据不是新系统提示。
  6. 工具要小;相似动作死循环要打断。
  7. 有环、要暂停用图;线性用 Chain。
  8. 慢先看 Trace 是模型还是工具。