最近这一轮 Agent 热度,和前两年的 AI 聊天不太一样。

以前大家更关心的是,它能不能回答得更准,能不能写文案,能不能写代码。

现在问题往后走了一步。

如果 Agent 不只是回答,而是开始接工具、调系统、执行操作,那它到底能做什么?不能做什么?谁来判断它有没有权限?执行前要不要确认?执行后出了问题,又该怎么追溯?

我们做通用 Agent 平台的第一个落地应用时,选择了办公助手。

不是因为办公助手最酷。

而是因为它刚好能验证一个很现实的问题:

企业内部 Agent 想从聊天走向业务执行,中间到底缺哪些工程机制。

这篇文章复盘的,就是办公助手从自然语言入口,逐步接入业务能力、权限校验、二次确认和 workflow 的过程。

01

后台能力很多,但人还是会被流程卡住

很多内部系统的问题,不是“没有能力”。

恰恰相反,能力往往已经很多。

运营后台、活动后台、数据平台、配置系统、内部工具平台,每个系统都有自己的入口、菜单、字段和操作习惯。

熟手处理一个问题很快,不一定是因为点得快,而是因为他知道:

  • 去哪个后台查;

  • 用哪个入口;

  • 参数怎么整理;

  • 查完以后下一步看什么;

  • 哪些操作需要谨慎确认。

新手慢,也不一定是不努力。

他只是还没建立那张隐形地图。查一个不会的,又冒出一串不会的;一个入口找不到,又要问下一个入口。

所以办公助手要解决的,不是“系统有没有能力”,而是“人怎么把这些能力串起来用完”。

图片

从这个角度看,办公助手不是把后台换成聊天框。

它要做的是把原来依赖熟手经验的处理链路,沉淀成 Agent 可以理解、可以调用、可以确认、可以审计的业务流程。

02

办公助手不是“后台聊天入口”

做办公助手时,最容易走偏的一条路,是把它理解成“后台的聊天入口”。

也就是把原来在页面里点的功能,换成一句话让 Agent 调用。

这个方向看起来直接,但风险很大。

企业内部后台不是公开搜索引擎。它背后有权限、上下文、业务规则、操作风险和审计要求。

有些动作只是查询,出错最多是结果不准。

有些动作涉及状态变更,出错就可能影响真实业务流程。

所以我们更关注几个问题:

  • 哪些动作是高频、常用、可闭环的;

  • 哪些步骤可以由 Agent 辅助判断;

  • 哪些操作必须经过权限校验;

  • 哪些执行前必须让人二次确认;

  • 哪些过程需要留下审计记录。

换句话说,办公助手真正要做的,不是给模型更多后台能力,而是把业务处理方式从“靠人记住路径”升级为“由 Agent 按受控流程执行”。

前者只是换入口。

后者才是工程化。

03

从查询到执行,先用三个场景验证

办公助手第一阶段没有追求覆盖所有后台。

我们先选了三类场景,不是因为它们最复杂,而是因为它们最能说明问题。

它们刚好对应企业内部 Agent 落地时最容易卡住的三件事:

  • 查一个对象,能不能连续追问,而不是每次都重新找入口;

  • 做一次写操作,能不能先确认再执行,而不是听懂了就直接动手;

  • 生成一段内容之后,能不能继续进入发送、确认和结果回传,而不是停在文案生成。

对象查询

过去这类问题的麻烦,不在“查不到”。

而在于用户问的是一个对象,人脑要拆成好几步:

  • 先查基础信息;

  • 再查关联关系;

  • 需要时继续查状态信息;

  • 查完还要自己判断下一步该看什么。

每一步都可能对应不同后台、不同入口、不同字段。

所以原来的工作方式是:人围着系统转。

接入办公助手后,变化不是“少点了几个按钮”这么简单。

图里能看到,用户先输入一个对象 ID,Agent 返回基础信息;用户继续追问状态信息,Agent 可以沿着同一个对象继续查,并把结果补回来。

这时候人的工作方式变成了:围绕一个对象连续追问,系统负责把背后的链路串起来。

这里真正变化的,不只是少打开几个页面,而是同一个对象的连续追问被放进了一条对话链路里。

图片

批量操作

这个场景的对比更明显。

过去做一次批量操作,难点不只是填表。

图里可以看到,原来的后台表单里有对象、操作项、时间、开关、备注等多个字段。

后面是 Agent 加持后的过程。用户先用一句话描述目标,Agent 把操作对象、操作内容和执行参数整理成确认信息。用户确认后,Agent 才继续执行,最后返回结果汇总:成功 12,失败 0。

图片

批量操作 Agent 加持后效果图:

图片

把两张图放在一起看,真正耗人的地方就更明显了:

  • 对象要整理;

  • 操作项要确认;

  • 参数要填对;

  • 有效期要设置;

  • 执行前要确认范围;

  • 执行后还要看结果。

也就是说,它看起来是一次“提交”,实际是一条完整的操作链路。

这组图能说明一个很重要的点:

办公助手不是把“执行按钮”搬进聊天框。

它是把“识别对象、整理参数、二次确认、执行、返回汇总”组织成了一个受控 workflow。

原来的体感是:人在后台里反复确认。

现在的体感是:Agent 先整理,人确认关键动作,系统再执行。

运营提醒类文案辅助

这个场景很容易被误解成“让 AI 写一段文案”。

但实际不是。

过去这类操作也不是只写文案。

图里,原流程需要在后台表单里填写分类、对象 ID、标题、内容、提醒等级等字段。

Agent加持后,用户先让办公助手基于对象状态生成提醒文案。用户确认文案后,Agent 再进入二次确认。确认后才执行发送。发送完成后,还可以继续追问这个对象的其他信息。

图片

运营提醒文案 Agent 加持后效果图:

图片

这两张图放在一起看,对比其实很关键。

过去是:写文案、填表单、点发送、再回头查信息。

现在是:生成文案、确认内容、确认发送、返回结果、继续追问。

也就是说,人不再需要同时完成三件事:

  • 判断该发什么;

  • 写出合适的表达;

  • 在后台里把发送参数填完整。

Agent 不是只完成了“生成”,而是把生成之后的确认、执行和后续查询也串了起来。

这三个场景共同指向一个判断:

办公助手不是一个单点工具,而是一组围绕真实工作流展开的业务能力。

它要解决的不是“能不能查到”,也不是“能不能调一次接口”,而是“能不能把一次处理过程稳定做完”。

04

架构上,把理解、编排和执行分开

为了让办公助手不变成失控的万能入口,我们在架构上做了分层。

  • 用户入口负责承接消息和身份。

  • 通用 Agent 平台负责理解意图、维护会话、加载 Skill,并决定是否需要调用工具。

  • Skill 负责把业务能力组织成模型可理解、也可维护的知识和流程。

  • Gateway 位于 Agent 和业务系统之间,负责鉴权、适配、二次确认、审计和下游调用。

  • 最后才是各个业务系统,只暴露被允许、被约束、可追踪的能力。

图片

如果把一次请求展开,它大概会经历这样一条链路:入口承接消息,通用Agent 平台维护会话和加载 Skill,CLI 触发工具调用,Gateway 做身份与权限校验,再把请求转给具体业务系统。

图片

这里最重要的一点,是不要让通用 Agent 直接面对所有内部系统。

Agent 擅长理解自然语言、组织上下文、判断下一步动作,但它不应该绕过权限系统,不应该直接拼内部接口,也不应该对高风险操作拥有默认执行权。

所以 Gateway 不是简单转发层,而是受控执行层。

它要回答几个问题:

  • 这个人有没有权限使用这个能力;

  • 这个动作是否需要二次确认;

  • 下游系统协议是否需要适配;

  • 执行结果应该怎样返回给 Agent;

  • 操作过程是否需要留下审计记录。

图片

这个设计让办公助手可以继续扩展,但扩展不是无边界的。

每新增一个能力,都要先被描述、授权、接入、确认和审计,而不是临时把一个后台接口塞给模型。

05

Skill 不是文档,是业务能力的组织方式

办公助手里另一个关键点,是 Skill。

很多人第一次听到 Skill,容易把它理解成“给模型看的说明文档”。

但在这个项目里,Skill 更像业务能力的组织方式。

如果把所有能力写在一份大文档里,模型很快会遇到两个问题。

一是上下文膨胀。能力越多,命中越不稳定。

二是业务边界模糊。今天加一个查询能力,明天加一个批量操作,后天再加一个提醒流程,如果没有分层,后续维护会越来越难。

所以办公助手没有简单按后台系统拆能力,而是尽量按用户问题和业务对象拆。

图片

可以简单理解成几层:

  • 根 Skill 做总分诊,先判断用户问题的大方向;

  • 领域文档判断具体业务域,缩小上下文范围;

  • Tool 承接单个原子能力;

  • Workflow 承接多步任务闭环;

  • 写操作再走 confirmation,也就是二次确认。

图片

这套结构的意义,是让 Agent 不需要一次性“知道所有事”。

它只需要在当前任务里加载必要信息,按业务流程逐步往下走。

这比把所有后台能力摊开给模型稳定得多。

如果把这套分层展开成配置,核心思路大概是这样。

根 Skill 不负责塞满所有工具,而是先做路由,让模型按任务选择当前需要加载的领域能力:

markdown
 
## Loading Order
 
1. Read this root file to understand runtime rules and domain routing.
2. Pick one domain according to the user's intent:
   - domains/object/DOMAIN.md: object query and related status.
   - domains/ops/DOMAIN.md: confirmation-based write operations.
   - domains/message/DOMAIN.md: message generation and sending flow.
3. Read the domain's referenced tools/*.yaml file.
4. If the matched tool has `requires_confirmation: true`,
   read common/confirmation.md.
5. If the gateway returns an auth error,
   read common/auth-errors.md.

这样做的好处是,模型每次只读当前任务需要的那条路径,其他领域的 Tool 不进入上下文。

对于只读查询类能力,Tool 更像一个清晰的原子能力说明:

yaml
tools:
  - name: query_object_profile
    description: Query object profile through the gateway.
    permission_scope: object.profile.read
    gateway_route: object.profile.query
    requires_confirmation: false
    request:
      type: object
      required: [object_id]
      properties:
        object_id:
          type: string
          description: Business object id.
    response:
      data:
        type: object
        properties:
          object_id:
            type: string
          display_name:
            type: string
          status:
            type: string

写操作则必须显式标记需要确认。

这个字段很小,但它决定了 Agent 能不能从“会调工具”走向“受控执行”:

yaml
tools:
  - name: execute_controlled_action
    description: Execute a controlled action after human confirmation.
    permission_scope: object.action.write
    gateway_route: object.action.execute
    requires_confirmation: true
    request:
      type: object
      required: [object_ids, action_type, params]
      properties:
        object_ids:
          type: array
          items:
            type: string
          description: Business object ids.
        action_type:
          type: string
          description: Controlled action type.
        params:
          type: object
          description: Action parameters.

确认流程本身也要被写清楚。

否则模型很容易跳过关键步骤,直接把“用户想做什么”误当成“用户已经确认执行”:

markdown
1. Call execute with --requires-confirmation.
2. Show the returned preview to the human operator.
3. If approved, call confirm with the returned confirm_id.
4. Return execution result and summary to the user.

读写 Tool 的差别,表面上只是requires_confirmation这个字段。

但工程上的意义很大。

它把“模型决定做什么”和“人确认是否执行”拆开了,也让 Gateway 可以统一处理确认、审计和结果回传。

06

我们刻意没有追求覆盖所有后台

企业内部 Agent 很容易陷入一个诱惑:

既然能接工具,那是不是应该把所有接口都接进去?

我们的判断是,不应该。

至少在办公助手这个阶段,不应该。

原因不是技术做不到,而是很多场景不适合直接交给 Agent 执行。

强交互场景不适合简单封装成一次工具调用。

长事务场景需要更完整的状态管理。

复杂状态机场景需要业务系统本身提供严格约束。

重业务上下文授权场景,也不能直接塞进通用 Gateway。

这些边界必须提前说清楚。

因为 Agent 一旦进入执行层,它的风险和普通问答完全不一样。

普通问答答错了,最多是信息不准。

执行动作出错,就可能影响真实业务流程。

所以我们更愿意先接高频、常用、可闭环、风险可控的场景。

先让 Agent 稳定完成真实任务,再逐步扩大边界。

这比一开始追求能力覆盖率更重要。

07

这次实践验证了什么

回头看办公助手这个项目,它验证的不是“我们又做了一个 AI 应用”。

它更像是通用 Agent 平台进入真实业务系统的第一站。

这一步至少验证了三件事。

  1. 企业内部 Agent 的入口可以很自然。用户不需要记住后台路径,也不需要先判断自己该去哪套系统里找能力,通过企业 IM 或通用 Chat 入口,就可以用自然语言发起查询和处理。

  2. 业务能力不能直接交给模型裸调。中间必须有 Gateway,有权限校验,有二次确认,有可追溯的执行记录。否则能力越多,风险越高。

  3. Skill 和 Workflow 是让 Agent 稳定工作的关键资产。没有它们,模型面对的是一堆分散能力;有了它们,模型面对的是按业务对象、任务类型和执行流程组织好的能力体系。

所以办公助手不是替代人,而是在降低熟手经验的复制成本。

哪些问题先查什么,哪些场景下一步看什么,哪些动作需要确认,哪些结果需要提醒,这些都可以逐渐沉淀到 Skill 和 Workflow 里。

08

结语

企业内部 Agent 真正落地以后,问题会变得很具体。

不是模型够不够聪明。

而是它能不能理解业务问题,能不能找到正确能力,能不能在权限范围内执行,能不能在关键动作前让人确认,能不能在执行后留下记录。

办公助手这次实践给我们的一个判断是:

Agent 的价值,不在于让模型拥有更多后台能力,而在于把后台能力组织成更稳定、更安全、更可复用的业务流程。

AI 从聊天走向执行,中间隔着的不是一句 prompt。

而是一整套工程机制。

图片

**花椒技术交流群
**

图片

还在孤军研究 AI 工程化、AI 编程、Agent 落地,没人同行交流、没人拆解实战?

这里汇聚一线技术从业者,专注代码评审、企业内部 AI 助手真实实战落地。

想紧跟 AI 前沿动态、交流工程落地经验、少走踩坑弯路,欢迎直接加入**「花椒技术交流群」**。

群内专属福利拉满:每日精选 AI 行业日报、文章独家延伸资料、文中未展开的技术细节,全部同步共享。

图片

如果二维码过期,可在私信回复**「技术群」** 获取最新入群入口。