惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
L
LangChain Blog
人人都是产品经理
人人都是产品经理
D
DataBreaches.Net
WordPress大学
WordPress大学
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
小众软件
小众软件
The Register - Security
The Register - Security
C
Check Point Blog
Engineering at Meta
Engineering at Meta
The GitHub Blog
The GitHub Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
爱范儿
爱范儿
有赞技术团队
有赞技术团队
酷 壳 – CoolShell
酷 壳 – CoolShell
Vercel News
Vercel News
Google DeepMind News
Google DeepMind News
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
阮一峰的网络日志
阮一峰的网络日志
美团技术团队
P
Proofpoint News Feed
IT之家
IT之家
Martin Fowler
Martin Fowler
云风的 BLOG
云风的 BLOG
V
Visual Studio Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
V
V2EX
MyScale Blog
MyScale Blog
Y
Y Combinator Blog
博客园 - 【当耐特】
Stack Overflow Blog
Stack Overflow Blog
Microsoft Security Blog
Microsoft Security Blog
S
Schneier on Security
G
Google Developers Blog
Hugging Face - Blog
Hugging Face - Blog
F
Full Disclosure
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - Franky
T
The Exploit Database - CXSecurity.com
罗磊的独立博客
Spread Privacy
Spread Privacy
D
Darknet – Hacking Tools, Hacker News & Cyber Security
The Cloudflare Blog
Latest news
Latest news
GbyAI
GbyAI
P
Privacy International News Feed
Last Week in AI
Last Week in AI
T
The Blog of Author Tim Ferriss
H
Hacker News: Front Page
K
Kaspersky official blog

掘金

Win 安装Claude Code FastAPI 的 CORSMiddleware 跨域中间件 Java 自研 ReAct Agent 半年后,我用 LangGraph 验证了这些设计取舍 🚀AI编程工作流终极形态:GitNexus!零Token消耗实现代码知识图谱化!让Claude Code和Codex拥有上帝视角彻底告别盲目改代码,复杂项目重 LeetCode 72. 编辑距离:动态规划经典题解 被The Graph的GraphQL查询坑了三天,我用一个真实DeFi项目把链上数据索引彻底搞懂了 (AI) 编写简单 AI 助手 (ds-agent) 别再让 pnpm 跟着 nvm 跑了!独立安装终极指南 Claude Code 为什么这么顺?Anthropic 最新复盘:真正撑住它的不是模型,而是缓存 从 /simplify 指令深挖 Claude Code 多 Agent 协同机制 Function-Calling与工具使用 新手上路(六):Claude code装上ECC全家桶:38 个子代理、156 个技能、生产级 Hooks 与 Rules 体系 我在 Claude、Kimi、opencode 三个 AI 之间搭了一条自动协作管道 【技能篇】OpenClaw Skill 详解:给 AI 装上"专业外挂" wagmi v2 多链钱包切换:一个 Uniswap 仿盘项目让我踩了三天坑 两周浅学 RAG 我把 Python re 模块比喻成摸金手套 新手上路(三):Claude Code Skills 装了一堆没用?20+ 个 Skill 横向对比 + 三套组合方案,按需抄 K2.6、DeepSeek V4、GPT-5.5 都来了,组合拳打起来 Claude Code 进阶之路:从记忆系统到子代理编排 [java] 编译之后的记录类(Record Classes)长什么样子(上) 国产大模型能力大比拼,社区有话说 我研读了 500 个 Spring Boot 生产级代码库,90% 都犯了这 7 个致命错误 JAVA重点难点 转发-中央网信办部署开展“清朗·整治AI应用乱象”专项行动 合同同步逻辑 【合并已排序数组的三种实现策略,哪一种更可取?】 30天减20斤挑战:少一斤发100红包(2) 我竟然被JavaScript的隐式类型转换坑了三天! 二十五.Electron 初体验与进阶 本地到生产,解决 AI 全栈最后一公里——构建&部署&运维 程序员创业半年:顺的事、不顺的事,和我一直没想清楚的事 UI组件库elementplus 像使用 Redis 一样操作 LocalStorage 向量检索的流程是怎样的?Embedding 和 Rerank 各自的作用? LangChain DeepAgents 速通指南(七)—— DeepAgents使用Agent Skill 为什么越来越多的大厂抛弃MCP,转向CLI? 【节点】[SquareRoot节点]原理解析与实际应用 juejin.cn juejin.cn 从 “存得下” 到 “算得快”:工业物联网需要新一代时序数据平台越来越多工业用户开始意识到一个问题:**数据是存下来了, - 掘金 放弃 Claude 订阅?我用 8 年前的服务器,强跑 Google 最强开源模型 Gemma 4 真实测评! Python开发者狂喜!200+课时FastAPI全栈实战合集,10大模块持续更新中🔥 从 Claw-Code 看 AI 驱动的大型项目开发:2 人 + 10 个自治 Agent 如何产出 48K 行 Rust 代码 秒级创建实例,火山引擎 Milvus Serverless 让 AI Agent 开发更快更省火山引擎MilvusSer MediaPlayer 播放器架构:NuPlayer 的 Source/Decoder/Renderer 三驾马车 juejin.cn juejin.cn juejin.cn juejin.cn juejin.cn juejin.cn OrbStack:一键将你的 Mac 变为本地服务器 NginxPulse:Nginx日志监控革命!实时洞察Web流量与安全态势的智能利器引言:当Nginx日志成为运维的“数 - 掘金 juejin.cn 大V说’AI替代不了你’,但现实是——用AI的人正在替代你2026年是AI落地的元年,自从Claude Code爆火之后 - 掘金 juejin.cn 你以为是技术问题,其实是流程问题:工程效率的真相引言 在软件工程领域,效率问题始终是团队管理者和工程师们关注的焦点。当项 - 掘金 大模型工程三驾马车:Prompt Engineering、Context Engineering 与 Harness Engineering 深度解析 juejin.cn 4.响应式系统基础:从发布订阅模式的角度理解 Vue3 的数据响应式原理本文从发布订阅模式的核心思想出发,深入剖析了 V - 掘金 慌了!Android 17 取消图标文字,你的 App 可能要找不到了用户终于可以隐藏桌面图标下面的文字了。 这个功能在 juejin.cn 我用 AI 搓了一个"比谁更持久"的微信小游戏,AI实现只用了一天,微信审核却用了一个月!!!起因:一个沙雕想法的诞生 - 掘金 juejin.cn 第12章 工具(Tools)与函数调用(LangChain实战)在前几章中,我们搭建的RAG系统、对话链,核心能力局限 - 掘金 juejin.cn CmComposeUI —— 基于 Kotlin Multiplatform Compose 的 UI 组件库 Android 开发的 AI coding 与 AI debugging在目前整个行业都在大规模使用 AI coding juejin.cn juejin.cn juejin.cn juejin.cn 一文搞懂Harness Engineering与Meta-Harness 越用越强不是广告语:拆解 Hermes Agent 的三层学习机制 P2G-Python字符串方法完全指南-split、join、strip、replace的Python编程利器 AI 周刊【2026.04.06-04.12】:Anthropic 藏起最强模型、AI 社会矛盾激化、"欢乐马"登顶 从 AI Skills 学实战技能(六):让 AI 帮你总结网页、PDF、视频 关于10年工作经验的程序员对OpenClaw的实战经验分享以及看法 详解 karpathy 的 microgpt:实现一个浏览器运行的 gpt 不用 Tailscale:3 步把 Mac mini 通过 FRP 暴露到公网(稳定开机自启) P2B-Python可迭代对象完全指南-从列表到生成器的Python编程利器 手把手带你部署本地模型,让你Token自由(小白专属) juejin.cn 10分钟掌握 JSON-RPC 协议,面试加分、设计不踩坑 ReAct:让大模型学会边想边做 聊聊AI的发展史,AI的爆发并不是偶然 Python的列表推导式里藏了个坑,差点让我加班到凌晨 重排、重绘与合成——浏览器渲染性能的底层逻辑 podman与docker的区别和生产环境最佳实践 juejin.cn ConcurrentHashMap线程安全实现原理全解析 juejin.cn juejin.cn juejin.cn juejin.cn juejin.cn juejin.cn OpenAI Codex深度解析:终端里的AI代码特工,一个指令重构整个项目 UE5.6 Cesium 插件编译踩坑记录(UE 5.6 + MSVC 14.38 + CMake 3.31)
企业内部 Agent 落地复盘:Gateway、Skill 和二次确认如何串起受控业务执行
花椒技术 · 2026-05-27 · via 掘金

本文复盘一次企业内部办公助手 Agent 的落地实践。

这个项目最开始要验证的问题不是“Agent 能不能聊天”,而是:

当 Agent 开始接工具、调系统、执行业务操作时,怎么保证它是受控的。

如果只是问答,问题相对简单。模型答错了,最多是信息不准。

但一旦 Agent 进入内部业务系统,问题就变成了另一类工程问题:

  • 谁能调用这个能力;
  • 当前用户有没有权限;
  • 这个动作只是查询,还是会改变业务状态;
  • 写操作执行前是否需要二次确认;
  • 执行结果如何回传;
  • 失败后如何解释;
  • 操作过程能不能被审计和追溯。

所以办公助手不是把后台搬进聊天框,而是把分散后台能力、熟手经验、权限校验、二次确认和业务 workflow 组织成一条可控执行链路。

整体目标可以概括为:

image (2).png

1. 问题背景:能力不缺,缺的是可复用的处理链路

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

实际情况往往相反:后台、数据平台、配置系统、运营工具已经有很多能力,只是入口分散、字段分散、路径分散。

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

  • 去哪个后台查;
  • 用哪个入口;
  • 参数怎么整理;
  • 查完以后下一步看什么;
  • 哪些动作需要谨慎确认;
  • 哪些结果可以继续联想追问。

新手慢,也不一定是不努力。他只是还没有建立这张隐形地图。

所以办公助手第一阶段要解决的,不是“模型能不能理解一句中文”,而是:

能不能把原来靠人记住的后台路径和操作经验,沉淀成 Agent 可以理解、可以调用、可以确认、可以审计的流程。

这也是内部 Agent 和普通聊天机器人的核心差异。

聊天机器人解决的是信息表达问题。

企业内部 Agent 解决的是业务执行问题。

2. 场景收敛:先验证查询、写操作和生成后执行

第一阶段我们没有追求覆盖所有后台,而是先选了三类场景:

场景验证问题关键风险
对象查询能否沿着同一个对象连续追问上下文是否稳定
批量操作写操作能否先确认再执行是否误执行、漏确认
运营提醒内容生成后能否进入发送和结果回传是否停留在“生成文案”

2.1 对象查询:从“找入口”变成“围绕对象连续追问”

对象查询类需求看起来简单,但真实操作里经常不是查一次就结束。

用户可能先查基础信息,再查关联关系,再查状态,再继续判断下一步看什么。过去这些步骤通常分散在不同后台和入口里。

接入办公助手后,用户可以围绕同一个对象连续追问,Agent 负责把背后的查询链路串起来。

image (3).jpg

这个场景验证的是:Agent 不只是把一次查询包装成自然语言,而是能把“当前对象”作为上下文继续向下走。

2.2 批量操作:写操作必须进入二次确认

批量操作的对比更明显。

传统后台里,一次批量操作可能要填写对象、操作项、有效期、开关、备注等字段。它看起来只是一次提交,但实际是一条完整操作链路:

  • 对象整理;
  • 参数填写;
  • 操作项确认;
  • 生效范围确认;
  • 执行;
  • 结果汇总。

image (4).jpg

Agent 加持后的变化不是“少点几个按钮”,而是把这条链路拆成了“模型整理 + 人确认 + 系统执行”。

用户先用一句话描述目标,Agent 整理操作对象、操作内容和执行参数,进入二次确认。用户确认后再执行,并返回结果汇总。

image (5).jpg

这里的关键点是:

模型可以帮助整理操作意图,但不能把“用户想做什么”直接等同于“用户已经确认执行”。

所以写操作必须显式进入 confirmation。

2.3 生成后执行:不要停在“AI 写文案”

第三类场景是运营提醒类文案辅助。

这个场景很容易被误解成“让 AI 写一段文案”。但真正进入业务系统后,问题不是生成文案,而是生成之后怎么办。

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

image (6).jpg

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

image (7).jpg

这类场景验证的是:Agent 不能停留在“生成内容”,而要能把生成、确认、执行和结果回传串起来。

3. 架构拆分:理解、编排和执行不要混在一起

为了避免办公助手变成一个失控的万能入口,我们在架构上把“理解、编排、执行”拆开。

整体链路可以简化成:

______________________________________________________________________DMG办公助手.png

各层职责大致如下:

层级职责
用户入口承接消息、用户身份和会话入口
通用 Agent 平台理解意图、维护会话、加载 Skill、决定是否调用工具
Skill / Workflow组织业务知识、任务流程、工具描述和确认逻辑
CLI / Tool承接可执行的原子能力或流程入口
Gateway鉴权、协议适配、二次确认、审计和下游调用
业务系统提供被授权、可约束、可追踪的业务能力

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

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

4. Gateway:不是转发层,而是受控执行层

Gateway 在这个设计里不是简单的 HTTP 转发层。

它更像 Agent 和业务系统之间的受控执行层,需要回答几个问题:

  • 当前用户有没有权限使用这个能力;
  • 当前动作是否需要二次确认;
  • 下游系统协议是否需要适配;
  • 结果如何被标准化返回给 Agent;
  • 操作过程是否需要记录审计日志;
  • 权限失败、业务失败、参数错误分别如何解释。

image (8).png 一个简化后的执行流程大概是:

1. Agent 根据 Skill 判断需要调用某个 Tool。
2. Tool 请求进入 Gateway。
3. Gateway 根据身份信息做用户识别。
4. Gateway 根据 permission_scope 做权限校验。
5. 如果是只读操作,校验通过后直接调用下游。
6. 如果是写操作,先生成 preview 或 confirmation。
7. 用户确认后,Gateway 再执行真实写操作。
8. Gateway 将执行结果、失败原因或确认状态标准化返回给 Agent。

这层的价值在于:能力可以继续扩展,但扩展不是无边界的。

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

5. Skill:不是说明文档,而是业务能力的组织方式

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

很多人第一次听到 Skill,容易把它理解成“给模型看的说明文档”。但在这个项目里,Skill 更像业务能力的组织方式。

如果把所有能力写进一份大文档,模型会遇到两个问题:

  • 上下文膨胀,能力越多,命中越不稳定;
  • 业务边界模糊,查询、写操作、流程任务混在一起,后续维护困难。

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

image (9).png

可以简单理解成几层:

  • 根 Skill 做总分诊,先判断用户问题的大方向;
  • 领域文档判断具体业务域,缩小上下文范围;
  • Tool 承接单个原子能力;
  • Workflow 承接多步任务闭环;
  • 写操作再走 confirmation。

image (10).png

5.1 根 Skill 先做路由,不要塞满所有工具

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

一个简化示意如下:

## 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 不进入上下文。

5.2 只读 Tool:描述清楚输入输出和权限范围

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

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

这里要明确几件事:

  • Tool 的职责要足够窄;
  • request / response 要结构化;
  • permission_scope 要明确;
  • 只读操作不需要 confirmation;
  • 返回结果要方便 Agent 继续组织回答或进入下一步。

5.3 写 Tool:必须显式标记 confirmation

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

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

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.

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

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

5.4 confirmation 流程本身也要被写清楚

确认流程不能只靠约定。

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

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.

这也是企业内部 Agent 和普通工具调用 Demo 的区别:Demo 里调通接口就结束了,真实业务里要考虑权限、确认、失败、审计和追溯。

6. Tool 解决单步动作,Workflow 才解决一件事

办公助手落地过程中,一个很重要的判断是:Tool 和 Workflow 不能混在一起。

Tool 解决的是“能不能做一个动作”。

比如查一个对象、取一个状态、生成一段内容、触发一次通知。

但真实业务里,用户要的往往不是一个动作,而是“把这件事处理完”。

这就需要 Workflow。

类型解决什么示例
Tool一个原子动作查询对象、获取状态、生成内容、触发通知
Workflow一个多步任务闭环批量操作、提醒发送、问题排查、上传后校验

以批量操作为例,它不是一个 execute 就能解释清楚的动作。

一个相对完整的流程可能是:

parse intent
  -> resolve objects
  -> handle ambiguity
  -> build action preview
  -> ask human confirmation
  -> execute
  -> return summary

如果没有 Workflow,Agent 很容易变成“会调很多工具,但不会把事做完”。

这也是很多内部 AI 助手容易卡住的地方:单点能力看起来很多,真正处理问题时却断在中间。

办公助手要补的,就是这条中间链路。

7. 哪些场景不适合第一阶段接入 Agent

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

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

我们的判断是,不应该。

至少在第一阶段,不应该。

不适合直接接入的场景包括:

场景原因
强交互场景过程依赖大量用户即时反馈,不适合封装成一次工具调用
长事务场景需要完整状态管理和恢复机制
复杂状态机场景状态转换必须由业务系统提供严格约束
重业务上下文授权场景单靠通用 Gateway 难以表达完整授权语义
高风险不可逆写操作一旦误执行,影响真实业务流程

原因不是技术做不到,而是风险收益比不合适。

普通问答答错了,最多是信息不准;执行动作出错,就可能影响真实业务流程。

所以更稳妥的路线是:

先接高频、常用、可闭环、风险可控的场景,让 Agent 稳定完成真实任务,再逐步扩大边界。

8. 可复用清单:内部 Agent 接业务系统前先问这些问题

这次实践沉淀下来,至少有一组检查项可以复用。

8.1 能力接入前

  • 这个能力是查询还是写操作;
  • 是否高频、常用、可闭环;
  • 是否需要二次确认;
  • 是否已有明确权限模型;
  • 是否能提供结构化输入输出;
  • 是否有可解释的失败原因;
  • 是否能记录审计日志。

8.2 Skill 设计时

  • 是否按用户问题或业务对象拆分,而不是简单按后台系统堆工具;
  • 根 Skill 是否只做路由;
  • 领域 Skill 是否控制上下文范围;
  • Tool 是否足够原子;
  • Workflow 是否描述完整任务闭环;
  • 写操作是否显式声明 requires_confirmation
  • 权限失败、参数缺失、下游失败是否有独立处理路径。

8.3 Gateway 设计时

  • 身份信息从哪里来;
  • 权限校验在哪一层做;
  • permission_scope 如何和业务权限模型映射;
  • 写操作 preview 如何生成;
  • confirm_id 如何管理;
  • 执行结果如何标准化;
  • 审计信息记录哪些字段;
  • 下游协议差异在哪里适配。

总结

办公助手这个项目验证的不是“又做了一个 AI 应用”。

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

这次实践给我们的判断是:

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

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

而是一整套工程机制:Skill 分层、Tool 描述、Workflow 编排、Gateway 鉴权、二次确认、审计记录和边界控制。

如果只把后台接口塞给模型,能力越多,风险越大。

如果把能力放进受控流程里,Agent 才有机会从“能回答”走向“能办事”。

花椒技术交流群

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

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

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

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

WechatIMG773.jpeg 如果群过期关注公众号 花椒技术,私信回复「交流群」获取最新入群二维码。