海康威视 AI Agent 开发一面:可靠工具与任务状态

岗位:AI Agent开发 · 14 道题 · 更新于 2026-10-19

本场面试题

  1. Agent 从输入到完成任务,循环与终止条件怎样设计?
  2. 上下文怎样构造,工具结果怎样放回上下文?
  3. 谁决定调用工具,怎样校验参数和格式错误?
  4. 外部工具失败或超时,重试与快速响应怎样取舍?
  5. 叫车或行程规划中的工具依赖,怎样编排并处理需求变化?
  6. 车辆紧张或自动流程走不通,怎样沟通和转人工?
  7. 出行 Agent 除准确率外,还应评估什么?
  8. 上下文增长时怎样压缩,并评估信息损失?
  9. 多 Agent 怎样同步状态,并检查子 Agent 的错误结果?
  10. Trace 应记录哪些信息,线上故障先看什么?
  11. 重试如何避免重复操作,幂等键怎样设计?
  12. 怎样控制 Token 成本,并证明节省有效?
  13. 多轮状态和长期偏好怎样区分与保存?
  14. 怎样求和为 k 的最长连续子数组长度?

面经与参考答法

问题选自作者自述的海康威视AI Agent开发一面记录。以下短答用于备面讲解,不代表作者当场作答。页面发表于2026-10-15,未披露面试绝对日期;出行情境不作为具体部门证据。

(1)Agent 从输入到完成任务,循环与终止条件怎样设计?

先把用户目标、约束和当前状态整理成可检查的任务,再循环决策、校验工具输入、执行和吸收结果。完成条件来自用户目标与业务后置状态,另设失败、无进展、超预算和转人工出口;模型说“完成了”或某次工具返回成功,都不能单独证明目标实现。

(2)上下文怎样构造,工具结果怎样放回上下文?

区分稳定指令、用户目标、近期对话、结构化任务状态、工具描述和带来源的观测。工具结果应标明调用ID、状态、时间及可信边界,放入宿主支持的工具消息或观测结构;无关大结果按需提取,外部文本不能借“工具结果”身份覆盖系统规则。具体消息顺序以实际接口合同为准。

(3)谁决定调用工具,怎样校验参数和格式错误?

模型可提出工具及参数,运行时负责工具白名单、Schema、业务规则与权限校验。结构错误返回明确字段错误,让模型在有限预算内修正;语义不完整时先澄清,不能用合法JSON掩盖错误目的地、越权或缺失确认。固定流程也可由代码直接决定节点,未必每一步都交给模型。

(4)外部工具失败或超时,重试与快速响应怎样取舍?

区分可重试的暂时错误、应修参的错误、权限拒绝和执行结果未知。让排队、调用、退避和重试共同消耗剩余deadline,有限次重试并加入退避与抖动;状态未知先查账。用户赶时间时可先给已核实的阶段结果或提供降级选项,不能无条件提高重试次数,也不能声称未执行的动作已经成功。

(5)叫车或行程规划中的工具依赖,怎样编排并处理需求变化?

先澄清起终点、时间与预算;互不依赖的天气、路况等查询可受控并行,依赖前一步结果的询价或下单按顺序执行。用户改需求时使旧计划失效,重新核对已发生的外部动作;已下单的动作要走业务允许的取消或补偿,不能靠撤回一条内存状态当作真实回滚。

(6)车辆紧张或自动流程走不通,怎样沟通和转人工?

先说明已核实的供给、等待时间及不确定性,提供改时间、车型或出行方式等可执行选项。对高风险决定、连续失败、用户明确要求或能力边界外的任务转人工,携带当前状态、已尝试动作和待决问题;不能把“已经发通知”当作人工已接手。

(7)出行 Agent 除准确率外,还应评估什么?

按任务定义成功条件,观察完成率、端到端时延、取消与失败率、人工介入率、费用和用户反馈,并按场景切分。用真实失败形成脱敏回归集,比较候选变更对质量、成本和安全的共同影响;指标口径、样本量与业务目标要写清,不能捏造作者系统的提升百分比。

(8)上下文增长时怎样压缩,并评估信息损失?

优先保存目标、否定条件、预算、关键事实、出处及未完成状态,将冗长记录转成可回查索引和结构化摘要。用原文对照检查事实遗漏,再比较压缩前后同批任务的完成率、约束违反和错误动作;压缩比例由数据和预算实测,不能用字数变少证明信息保真。

(9)多 Agent 怎样同步状态,并检查子 Agent 的错误结果?

为子任务约定输入、输出、状态版本与证据,由明确的写入者提交共享状态,避免并发覆盖。主Agent应检查输出结构、证据与后置条件,处理矛盾、失败和重复执行;必要时重查或交人工,不能因为另一个模型也同意,就把未经核实的结果当事实。

(10)Trace 应记录哪些信息,线上故障先看什么?

用一次任务的trace关联检索、模型调用和工具等span,记录父子关系、时间、版本、状态、错误、重试、token与成本,并对输入输出脱敏。先从失败步骤和耗时分布定位,再比对状态与依赖服务;工具调用应作为相应操作span,不能把所有操作都记成模型生成,也不能把Trace本身等同根span。

(11)重试如何避免重复操作,幂等键怎样设计?

给同一业务意图使用稳定键,并把用户或租户、操作类型、关键业务对象与有效期纳入边界;保存请求指纹与状态,重复请求返回已有结果或查询处理中状态。键的检查与副作用提交需要一致性保障,不能每次重试生成新键,也不能只在内存做一次“查了没有再写”。

(12)怎样控制 Token 成本,并证明节省有效?

先按任务和调用环节统计输入输出token、重试、模型与实际计费,再比较上下文裁剪、缓存、按需检索、路由或减少空转的效果。用同一评估集同时报告完成率、时延和单任务成本,缓存还需考虑失效与权限;原帖没有披露节省数字,因此不代作者填写收益。

(13)多轮状态和长期偏好怎样区分与保存?

会话状态保存当前任务阶段、约束及待办,长期记忆保存经确认且可复用的事实或偏好。记录来源、时间、适用用户与置信度,提供更新、过期和删除机制;模型抽取只是候选,不能把一次临时指令固化为永久偏好,也不能把私有记忆跨用户检索。

(14)怎样求和为 k 的最长连续子数组长度?

用前缀和与“某个前缀和最早出现的位置”哈希表:若当前前缀和为s,之前出现过s−k,则两位置之间的和为k,更新最大长度;相同前缀和只保留最早位置,并初始化前缀和0在下标−1。平均时间O(n)、额外空间O(n),支持负数;原题未限定全为正数,不能直接套正数滑动窗口。

面经是候选人自述,解析为 Agent Journey 整理。更多大厂 AI / Agent 岗面经 · 按目标公司模拟面试