从业务流程到 Agent:企业知识库与工单助手的架构边界 @ Lin | 2026-03-11T10:00:00+08:00 | 3 分钟阅读 | 更新于 2026-09-12T10:00:00+08:00

先明确业务成功条件,再决定哪些步骤交给模型、哪些步骤留给确定性代码。

本文于 2026-09-12 补充整理,按 2026-03 专题归档。示例为方案设计,参数用于说明方法,不代表已上线项目或实测成果。

先把“成功”写成业务条件

假设要做一个企业知识库与工单助手:员工查询部署规范,系统返回带出处的解释;仍不能解决时,助手整理环境、现象和排查记录,经过确认后创建工单。这个场景足够小,却同时包含检索、推理、读接口和写接口,适合观察 Agent 的工程边界。

问答成功要求结论有可访问的依据;创建工单成功要求业务系统确实返回了工单编号。模型说“已完成”,不能替代任何一项验收。对缺少环境、错误码的问题,正确行为可能是追问,而不是立即检索或创建工单。

Anthropic 对 workflow 与 agent 的区分着眼于执行路径由代码预先确定,还是由模型动态选择。下面的边界划分是针对这个示例的设计建议。

三种路径分别承担什么

请求 建议路径 原因
已知编号查工单状态 固定服务调用 参数明确,动态规划没有明显收益
查询发布失败的处理办法 检索增强问答 需要内部证据,但执行链基本固定
综合现象定位问题并准备工单 有预算的 Agent 循环 后续动作依赖中间结果

不应让所有请求都经过同一套自主循环。即使一个入口面向用户表现为“助手”,内部也可以由路由器选择不同执行方式。路由结果若不明确,就进入澄清状态;不能把低置信度自动等同于“交给更多 Agent”。

建议的数据流如下:

请求 → 身份和配额 → 意图路由
                     ├─ 固定查询 → 结果校验
                     ├─ RAG → 引用校验
                     └─ Agent → 受控工具 → 任务状态
                                  待确认命令 → 工单服务

Java 服务应持有业务权力

模型负责提出动作建议。Java 应用负责执行参数校验、权限判断、预算检查和业务状态转换。租户、当前用户、可访问项目从认证上下文获得,不能允许模型通过参数任意指定。

可以把核心组件划为四个模块:任务应用服务管理生命周期;知识模块生成证据;工具适配器连接已有 API;模型适配器处理供应商差异。初期放在一个进程中,通过接口隔离即可。没有独立扩缩容、团队边界或故障隔离需求时,拆成多个微服务只会增加排查成本。

业务层可定义自己的 TaskIdEvidenceProposedCommand。框架返回的消息对象留在模型适配层,避免数据库中充满某个 SDK 的内部类型。

给自主程度设置上限

假设单个任务最多允许 6 次模型调用、3 次检索和 1 个待审批写操作;这些数字只是初始实验参数。超限后任务应保存当前证据和停止原因,返回可理解的部分结果。没有证据时不能靠增加轮次无限尝试。

停止原因至少区分:成功、需要用户补充、等待审批、预算耗尽、依赖失败。一个统一的“系统异常”会把正常澄清和真正故障混在一起,也无法支持后续评测。

怎样证明这个边界合理

准备三类输入:准确工单编号、明确知识问题、缺少信息的排障请求。记录路由、实际工具调用和任务终态。再让同一组输入全部进入 Agent 循环,比较任务正确率、模型调用次数和端到端耗时。

这里的关键证据是:固定查询是否产生多余模型调用;缺信息时是否正确追问;写操作是否一定经过命令校验和确认。只有自主路径在这些约束下提供了额外价值,增加复杂度才有依据。

面试中解释这套方案,可以从“哪些决策必须确定”开始,再说明模型在哪些信息不完整的步骤提供帮助。这比从框架组件列表开始,更容易体现架构判断。


查看系列导读与阅读路线

© 2019 - 2026 Lin 的博客

Powered by Hugo with theme Dream.

avatar
关于我

Lin 的 ❤️ 博客

技术专题:Java Agent 工程化:从知识库问答到可靠业务执行。围绕 RAG、工具治理、任务恢复与 Java 平台架构整理设计思路和验证方法。

记录一些 🌈 生活上,技术上的事

  • 🛠️ 技术阵地: 深耕 Java 开发 ,目前向 AI 应用领域探索与拓展。这里主要记录我从后端架构到 AI 赋能的进阶之路、技术思考以及日常的 debug 血泪史。始终致力于写出优雅且没有 bug 的代码(尽量)。
  • 🌈 生活侧写: 偶尔脱下极客的外衣,我也会在这里分享生活中的灵光一现。不管是好用的效率工具,还是周末的一场骑行,都是构成我真实生活的一部分。