快速回顾
| 项目 | 内容 |
|---|---|
| 工作流 | 理解目标 → 获取信息 → 准备方案 → 后端校验 → 人工确认 → 执行前复核 → 执行与审计 |
| 业务场景 | 作业调度、维保建议、经营分析和知识问答 |
| 模型与规则 | 模型理解目标、组织步骤和提出方案;后端判断权限、资源、冲突和状态 |
| 工具入口 | 统一处理参数、权限、超时和预算,调用已有业务 Service |
| 确认与执行 | 确认关联具体草案版本,关键参数变化后重新确认,确认不替代权限与审批 |
| 重复与失败 | 稳定执行标识、逐项回执,结果不确定时先核对业务状态 |
| 审计 | 关联发起人、草案、确认记录、工具调用、证据和实际业务记录 |
面试主回答
我参与了 Agent 工作流和工具调用的实现,覆盖作业调度、维保建议、经营分析和知识问答。Agent 先理解目标,再调用业务查询和知识检索工具获取信息;涉及业务操作时,先准备草案,由后端检查资源可用性、任务冲突和权限。
工具执行器统一处理参数校验、权限、超时和调用预算,具体操作复用已有业务 Service,模型不直接修改数据库。调度和维保方案经用户确认后执行,确认关联具体草案版本,执行前再次检查当前状态。
写操作通过稳定执行标识和逐项回执处理重复请求及部分失败,结果不确定时先核对业务状态,避免盲目重试。全过程记录确认、工具调用和业务结果,保证建议、草案和实际执行能够区分并追溯。
工作流与业务场景
面试回答
这条工作流从理解用户目标开始,先补齐必要条件,再通过业务工具查询当前数据、通过知识工具取得专业资料,生成可检查的草案。后端先校验权限、资源和业务约束,把草案及依据展示给用户,人工确认后才进入实际执行。
比如用户要求安排下周作业并避开维修设备,Agent 先查询任务要求、设备、人员和已有安排,再准备调度方案。确认期间资源可能变化,所以执行前还会复核当前状态和冲突,通过业务 Service 写入,并记录结果与审计。模型负责理解和组织步骤,设备能否调度、用户是否有权操作由后端确定。
实现细节
目标理解、信息获取、草案、校验、确认、执行与反馈分别记录状态。缺少时间、设备或作业要求时先补问;建议生成成功、草案确认与业务写入成功是不同结果。
面试回答
我按需要取得的信息选择工具。作业调度查询任务、设备、人员和已有安排;维保建议结合设备档案、维修记录与手册检索;经营分析从业务记录中取得指标;知识问答则检索说明书、规范和资料页,保留引用。
动态状态通过业务工具查询,维修方法这类专业知识通过检索取得,不能把历史对话里的设备状态当成当前事实。金额、工时等指标由确定性的业务查询和计算产生,模型负责组织方案或解释结果,避免它根据零散记录自行估算。各场景最终返回草案、指标或带证据的答案,写操作再经过确认和业务校验。
实现细节
各场景的信息来源和输出见表。统计结果同时保留组织、时间和有效记录口径;业务状态、专业知识和历史背景各有来源,不能互相替代。
| 场景 | 获取的信息 | 输出 |
|---|---|---|
| 作业调度 | 任务要求、候选设备、人员及已有安排 | 调度草案、冲突与待补充条件 |
| 维保建议 | 设备档案、维保记录、相关手册 | 维保建议及资料依据 |
| 经营分析 | 指定期间的作业、维保和成本记录 | 指标、分析及数据口径 |
| 知识问答 | 说明书、维修资料和操作规范 | 带页码引用的回答 |
工具设计与资源校验
面试回答
我把查询资产、查询任务、检查冲突、检索维修资料和准备调度草案等能力封装成工具,明确名称、说明、参数 Schema、读写属性、返回结构和幂等要求。执行器统一处理参数、权限、超时和预算,实际业务仍调用已有 Service。
这样可以复用普通接口的组织范围、状态流转和审计规则。比如创建维保工单,需要校验资产、用户权限和必填信息,不能让模型拼一条 SQL 就插入表。模型提出工具和参数,后端决定是否合法并执行;写操作还要关联用户确认和稳定执行标识,避免一次重试产生多条业务记录。
实现细节
工具元数据的职责见表。数据库持久化留在业务层内部,工具暴露的能力范围应当足够清晰,让模型能区分查询、准备草案和真正执行,避免把建议结果误认为写入回执。
| 内容 | 作用 |
|---|---|
| 名称、说明和参数 Schema | 帮助模型选择工具并生成参数 |
| 读写属性与权限要求 | 控制调用范围 |
| 超时与重试规则 | 限制执行开销 |
| 结构化结果 | 返回证据、草案、错误或执行回执 |
| 幂等要求 | 避免重试产生重复业务记录 |
面试回答
后端根据草案中的设备、执行人和时间范围做确定性检查。先确认资源存在且在授权范围内,再看设备当前状态、维保占用、已有任务,以及人员和设备在相关时段是否冲突,同时核对作业要求和候选资源是否匹配。
失败时返回具体资源、冲突记录和原因,Agent 据此换设备、调时间或请求补齐条件。用户确认期间其他请求可能改变安排,所以真正写入前还要再次复核,并在业务写入环节控制并发,避免两个请求都查到空闲后同时占用。模型生成方案本身不能代表资源已经被预留。
实现细节
检查项与处理方式见表。方案校验解决当前草案是否可行,执行复核与并发控制保护实际写入;两者缺一时,确认等待期间的状态变化都可能造成错误安排。
| 检查项 | 依据 | 失败后的处理 |
|---|---|---|
| 资源与范围 | 设备、执行人及当前授权范围 | 返回具体资源和原因 |
| 可用状态 | 设备当前状态及维保占用 | 更换候选或调整安排 |
| 时间冲突 | 已有任务与相关时段占用 | 调整时间或候选 |
| 作业匹配 | 作业要求与候选资源条件 | 补齐条件或重新准备方案 |
| 写入前复核 | 当前安排与并发约束 | 避免检查后被其他请求占用 |
人工确认与执行恢复
面试回答
用户确认的是一份内容确定的草案,里面明确设备、操作、时间和关键参数。后端把真实确认动作关联到具体草案版本,执行也使用这个版本;设备、时间或其他关键参数改动后,要重新展示并确认,不能沿用旧确认执行新方案。
确认表示用户接受这份安排,权限和审批仍按业务规则检查。执行时会重新核对成员关系、资源状态和任务冲突,模型生成一句“用户已同意”不能替代确认记录。这样既知道用户同意了什么,也能保证实际执行内容与确认内容一致。
实现细节
草案展示、真实确认、关键参数变化和执行校验的关系见表。确认记录需要可核验,业务审批是否满足仍由业务流程判断,确认不会扩大角色或数据权限。
| 时点 | 检查内容 | 处理方式 |
|---|---|---|
| 展示草案 | 资源、操作、时间与关键参数 | 关联具体草案版本 |
| 用户确认 | 真实用户操作及对应版本 | 保存可核验确认记录 |
| 关键参数变化 | 设备、时间等是否变化 | 重新展示并确认 |
| 实际执行 | 当前权限、资源状态、冲突及审批要求 | 重新检查,确认不扩大权限 |
面试回答
每个业务动作都有稳定执行标识和执行记录。重复请求先查记录,已经成功的返回已有业务结果,避免再次创建。一个批量方案有部分成功、部分冲突时,逐项保存回执,只处理未完成或需要修正的项,不能整体重放。
写操作超时尤其要先核对执行记录和实际业务状态,因为可能已经写入,只是响应没回来。确认未执行后才考虑重试,重试时继续检查权限、草案版本和确认状态。只读查询可以在预算内有限重试;明确失败的写操作返回具体原因,必要时调整草案并重新确认。
实现细节
明确成功、明确失败与结果不确定的后续动作见表。稳定执行标识关联具体动作与草案版本,不能用旧版本请求替代新方案;逐项回执保留生成或修改的业务记录 ID。
| 结果 | 后续处理 |
|---|---|
| 明确成功 | 保存业务记录 ID,重复请求返回已有结果 |
| 明确失败 | 返回原因,修正或重新准备方案 |
| 请求超时、结果不确定 | 先查询执行记录与业务状态,再决定是否重试 |
审计与结果追踪
面试回答
审计要能够还原谁提出了什么目标、确认了哪份草案、调用过哪些工具,以及最终影响了哪些业务记录。因此会记录发起人、组织、任务和草案版本,关键参数与用户确认,工具调用时间、状态、错误、证据和执行回执。
我会区分建议、待确认草案和已执行结果。比如草案生成成功,只说明模型已经提出方案,不能记成调度成功;最终还要关联创建或修改的业务记录 ID,说明哪些动作完成、哪些失败。界面和日志采用同样的状态区分,方便定位失败、处理重复请求和回溯实际变更。
实现细节
工具调用成功与业务操作成功分别记录,不能只保留一份模型对话。审计关联真实确认与业务回执,支持从任务查调用、从调用查结果,也能核对实际执行是否对应确认版本。
易混点与回答检查
易混点:建议、待确认草案和已执行结果是不同状态;写操作超时不等于没有执行成功。
回答检查
补充记录
简历表述:覆盖作业调度、维保建议、经营分析和知识问答;校验资源可用性与任务冲突,生成人工确认后执行的草案并记录审计日志。
事实 / 代码依据:待补充。