01、为什么 Agent 最难的不是接入大模型?
真正难的是大模型接进来之后的 Harness
Agent工程化五大挑战
权限管理
Agent 能做什么、不能做什么,必须在权限控制内
最小权限
身份传递
工具编排
Agent 调用的工具越多,工具之间的依赖关系就越复杂
常见问题
哪些工具可以并行执行
哪些必须串行
失败了怎么回滚
超时了怎么处理
审计追踪
企业环境里,Agent 做了什么必须可追溯
谁触发的、调了什么工具、传了什么参数、结果是什么,出了问题能回溯
模型路由
能力
延迟
成本
上下文管理
Agent 在长任务中会不断积累对话历史、工具调用结果、中间产物
怎么在有限的窗口里保留最关键的信息,什么时候压缩、什么时候直接扔掉,很影响 Agent 的交付质量
02、用 Agent总结 系统文档,怎么判断员工有没有读取权限?
核心就一条——Agent 不能用自己的身份去访问资源,必须用员工的身份
1.身份传递
员工通过登录之后会拿到一个用户令牌(User Token),代表这个员工的身份和权限
Agent需要做一个统一身份管理,所有 Agent 请求都携带这个身份信息
Agent 调用文档的 MCP Server 时,请求里必须带上用户令牌
2.权限验证
MCP Server 收到请求后,拿着用户令牌去文档的权限系统做校验——这个员工对这份文档有没有读取权限
有,返回文档内容
没有,返回权限不足的错误,Agent 告诉员工‘你没有权限查看这份文档’。
3.审计记录
不管校验通过还是失败,这次访问都要记录下来
谁在什么时候尝试读取了哪份文档,结果是什么。
03、终端 Agent 升级成桌面级 Agent 怎么做?
终端 Agent 和桌面 Agent 的五维差异
交互层
命令端
纯文本交互,用户在终端里输入指令,Agent 用文字回复
桌面端
需要 GUI,用户可以点击、拖拽、选择文件、查看图片
交互从单一的文本变成了文本加图形,甚至还有语音
工具层
命令端
核心工具是面向开发场景
读写文件
执行命令
代码搜索
桌面端
系统级工具
剪贴板读写
应用间通信
文件管理器
日历,邮件,
截图
OCR
运行层
桌面端
作为守护进程常驻后台,随时响应用户唤起
涉及进程管理、资源占用控制、心跳检测这些问题
可见界面
04、如何设计 Agent 的完整审计记录?
审计要记录:谁做的、做了什么、什么时候做的、为什么做、结果是什么
每一条审计记录包含的字段
时间戳
工具名称
工具参数
包含 token,apiKey,密码这些透明信息
写入之前用正则匹配替换掉
不可出现真是密钥,敏感信息
执行耗时
存储格式用 JSONL
每条记录是独立的一行 JSON,追加写入
优点
写入性能高,不怕写入中断导致文件损坏
日志按天轮转,文件名带日期
按大小切分。100M/文件
按日期切分。每日一个文件
留存周期 180 天
便于检索,按字段过滤,统计
审计目录的权限
设置成只有当前用户可读写,防止其他进程篡改。
05、Agent 重复调用工具时如何避免重复副作用?
冥等性三层防护
请求层
生成冥等键
每次工具调用生成一个唯一标识,由工具名加关键参数的哈希组成
校验冥等键
执行前先查执行记录,同一个幂等键已经执行成功过,直接返回上次的结果,
工具层
upsert
插入或者更新
写文件用覆盖写入而不是追加写入,创建资源前先检查是否已存在
Agent 循环层
循环检测
检测重复调用签名
如果 Agent 连续多轮调用同一个工具、传入相同的参数,说明模型可能陷入了死循环
阈值判断
停滞检测机制
连续 3 轮相同的工具调用会触发退出,避免无意义的重复。
如何设置冥等键
1.标准化请求参数
提取与业务幂等相关的请求参数并标准化
2.用户或租户标识
识别请求所属的用户编号或租户编号 确保作用域隔离
3.工具名与动作
标识调用的工具或接口名称及具体动作类型 区分不同操作
4.时间窗口
限定幂等键的有效期 包含起始时间与过期时间 避免无限期占用资源
执行流程
命中 返回旧结果 幂等成功
未命中 执行业务 生成新结果<br>