Agent 工作流与工具调用

快速回顾

项目 内容
工作流 理解目标 → 获取信息 → 准备方案 → 后端校验 → 人工确认 → 执行前复核 → 执行与审计
业务场景 作业调度、维保建议、经营分析和知识问答
模型与规则 模型理解目标、组织步骤和提出方案;后端判断权限、资源、冲突和状态
工具入口 统一处理参数、权限、超时和预算,调用已有业务 Service
确认与执行 确认关联具体草案版本,关键参数变化后重新确认,确认不替代权限与审批
重复与失败 稳定执行标识、逐项回执,结果不确定时先核对业务状态
审计 关联发起人、草案、确认记录、工具调用、证据和实际业务记录

面试主回答

我参与了 Agent 工作流和工具调用的实现,覆盖作业调度、维保建议、经营分析和知识问答。Agent 先理解目标,再调用业务查询和知识检索工具获取信息;涉及业务操作时,先准备草案,由后端检查资源可用性、任务冲突和权限。

工具执行器统一处理参数校验、权限、超时和调用预算,具体操作复用已有业务 Service,模型不直接修改数据库。调度和维保方案经用户确认后执行,确认关联具体草案版本,执行前再次检查当前状态。

写操作通过稳定执行标识和逐项回执处理重复请求及部分失败,结果不确定时先核对业务状态,避免盲目重试。全过程记录确认、工具调用和业务结果,保证建议、草案和实际执行能够区分并追溯。

工作流与业务场景

Agent 工作流是什么样的?

面试回答

这条工作流从理解用户目标开始,先补齐必要条件,再通过业务工具查询当前数据、通过知识工具取得专业资料,生成可检查的草案。后端先校验权限、资源和业务约束,把草案及依据展示给用户,人工确认后才进入实际执行。

比如用户要求安排下周作业并避开维修设备,Agent 先查询任务要求、设备、人员和已有安排,再准备调度方案。确认期间资源可能变化,所以执行前还会复核当前状态和冲突,通过业务 Service 写入,并记录结果与审计。模型负责理解和组织步骤,设备能否调度、用户是否有权操作由后端确定。

实现细节

目标理解、信息获取、草案、校验、确认、执行与反馈分别记录状态。缺少时间、设备或作业要求时先补问;建议生成成功、草案确认与业务写入成功是不同结果。

不同业务场景怎样调用工具?

面试回答

我按需要取得的信息选择工具。作业调度查询任务、设备、人员和已有安排;维保建议结合设备档案、维修记录与手册检索;经营分析从业务记录中取得指标;知识问答则检索说明书、规范和资料页,保留引用。

动态状态通过业务工具查询,维修方法这类专业知识通过检索取得,不能把历史对话里的设备状态当成当前事实。金额、工时等指标由确定性的业务查询和计算产生,模型负责组织方案或解释结果,避免它根据零散记录自行估算。各场景最终返回草案、指标或带证据的答案,写操作再经过确认和业务校验。

实现细节

各场景的信息来源和输出见表。统计结果同时保留组织、时间和有效记录口径;业务状态、专业知识和历史背景各有来源,不能互相替代。

场景 获取的信息 输出
作业调度 任务要求、候选设备、人员及已有安排 调度草案、冲突与待补充条件
维保建议 设备档案、维保记录、相关手册 维保建议及资料依据
经营分析 指定期间的作业、维保和成本记录 指标、分析及数据口径
知识问答 说明书、维修资料和操作规范 带页码引用的回答

工具设计与资源校验

面试回答

我把查询资产、查询任务、检查冲突、检索维修资料和准备调度草案等能力封装成工具,明确名称、说明、参数 Schema、读写属性、返回结构和幂等要求。执行器统一处理参数、权限、超时和预算,实际业务仍调用已有 Service。

这样可以复用普通接口的组织范围、状态流转和审计规则。比如创建维保工单,需要校验资产、用户权限和必填信息,不能让模型拼一条 SQL 就插入表。模型提出工具和参数,后端决定是否合法并执行;写操作还要关联用户确认和稳定执行标识,避免一次重试产生多条业务记录。

实现细节

工具元数据的职责见表。数据库持久化留在业务层内部,工具暴露的能力范围应当足够清晰,让模型能区分查询、准备草案和真正执行,避免把建议结果误认为写入回执。

内容 作用
名称、说明和参数 Schema 帮助模型选择工具并生成参数
读写属性与权限要求 控制调用范围
超时与重试规则 限制执行开销
结构化结果 返回证据、草案、错误或执行回执
幂等要求 避免重试产生重复业务记录

调度方案如何检查资源和任务冲突?

面试回答

后端根据草案中的设备、执行人和时间范围做确定性检查。先确认资源存在且在授权范围内,再看设备当前状态、维保占用、已有任务,以及人员和设备在相关时段是否冲突,同时核对作业要求和候选资源是否匹配。

失败时返回具体资源、冲突记录和原因,Agent 据此换设备、调时间或请求补齐条件。用户确认期间其他请求可能改变安排,所以真正写入前还要再次复核,并在业务写入环节控制并发,避免两个请求都查到空闲后同时占用。模型生成方案本身不能代表资源已经被预留。

实现细节

检查项与处理方式见表。方案校验解决当前草案是否可行,执行复核与并发控制保护实际写入;两者缺一时,确认等待期间的状态变化都可能造成错误安排。

检查项 依据 失败后的处理
资源与范围 设备、执行人及当前授权范围 返回具体资源和原因
可用状态 设备当前状态及维保占用 更换候选或调整安排
时间冲突 已有任务与相关时段占用 调整时间或候选
作业匹配 作业要求与候选资源条件 补齐条件或重新准备方案
写入前复核 当前安排与并发约束 避免检查后被其他请求占用

人工确认与执行恢复

人工确认确认的是什么?

面试回答

用户确认的是一份内容确定的草案,里面明确设备、操作、时间和关键参数。后端把真实确认动作关联到具体草案版本,执行也使用这个版本;设备、时间或其他关键参数改动后,要重新展示并确认,不能沿用旧确认执行新方案。

确认表示用户接受这份安排,权限和审批仍按业务规则检查。执行时会重新核对成员关系、资源状态和任务冲突,模型生成一句“用户已同意”不能替代确认记录。这样既知道用户同意了什么,也能保证实际执行内容与确认内容一致。

实现细节

草案展示、真实确认、关键参数变化和执行校验的关系见表。确认记录需要可核验,业务审批是否满足仍由业务流程判断,确认不会扩大角色或数据权限。

时点 检查内容 处理方式
展示草案 资源、操作、时间与关键参数 关联具体草案版本
用户确认 真实用户操作及对应版本 保存可核验确认记录
关键参数变化 设备、时间等是否变化 重新展示并确认
实际执行 当前权限、资源状态、冲突及审批要求 重新检查,确认不扩大权限

执行失败或重复调用怎么办?

面试回答

每个业务动作都有稳定执行标识和执行记录。重复请求先查记录,已经成功的返回已有业务结果,避免再次创建。一个批量方案有部分成功、部分冲突时,逐项保存回执,只处理未完成或需要修正的项,不能整体重放。

写操作超时尤其要先核对执行记录和实际业务状态,因为可能已经写入,只是响应没回来。确认未执行后才考虑重试,重试时继续检查权限、草案版本和确认状态。只读查询可以在预算内有限重试;明确失败的写操作返回具体原因,必要时调整草案并重新确认。

实现细节

明确成功、明确失败与结果不确定的后续动作见表。稳定执行标识关联具体动作与草案版本,不能用旧版本请求替代新方案;逐项回执保留生成或修改的业务记录 ID。

结果 后续处理
明确成功 保存业务记录 ID,重复请求返回已有结果
明确失败 返回原因,修正或重新准备方案
请求超时、结果不确定 先查询执行记录与业务状态,再决定是否重试

审计与结果追踪

审计日志记录什么?

面试回答

审计要能够还原谁提出了什么目标、确认了哪份草案、调用过哪些工具,以及最终影响了哪些业务记录。因此会记录发起人、组织、任务和草案版本,关键参数与用户确认,工具调用时间、状态、错误、证据和执行回执。

我会区分建议、待确认草案和已执行结果。比如草案生成成功,只说明模型已经提出方案,不能记成调度成功;最终还要关联创建或修改的业务记录 ID,说明哪些动作完成、哪些失败。界面和日志采用同样的状态区分,方便定位失败、处理重复请求和回溯实际变更。

实现细节

工具调用成功与业务操作成功分别记录,不能只保留一份模型对话。审计关联真实确认与业务回执,支持从任务查调用、从调用查结果,也能核对实际执行是否对应确认版本。

易混点与回答检查

易混点:建议、待确认草案和已执行结果是不同状态;写操作超时不等于没有执行成功。

回答检查

补充记录

简历表述:覆盖作业调度、维保建议、经营分析和知识问答;校验资源可用性与任务冲突,生成人工确认后执行的草案并记录审计日志。

事实 / 代码依据:待补充。

复盘手记

搜索笔记

输入关键词,搜索所有主题与问答。