Harness 八根支柱:总图先行
下面这张八支柱图是这篇文章的骨架。后面每一章都是其中一根的展开。
身份与权限
它是谁?能代表谁?能动什么资源?这层决定 Agent 进入企业系统时不会"越权"。
沙箱与运行时
代码执行的隔离环境、文件系统、网络出口、超时与资源限额。这层决定 Agent 跑飞了不会炸主机。
工具/技能/MCP
Agent 的"手"。统一的工具描述、统一的调用协议(MCP 在 2025 年成为事实标准)、技能的版本与发现。
记忆系统
本文的重点。短期上下文 / 长期事实 / 流程经验三层。是 Agent 从"金鱼脑"走向"老员工"的关键。
编排与控制流
ReAct、Plan-Execute、状态机、多 Agent。决定 Agent 怎么把一个大任务拆成可执行的小步骤。
观测与日志
每一步的 trace、token 用量、工具调用结果、错误重试链路。出问题时能不能复现,全靠这层。
评测与回归
离线 benchmark + 线上 A/B + 灰度。harness 改了一行就能上下浮 60%,没评测就是裸奔。
安全与对齐
prompt injection 防御、敏感数据过滤、危险动作二次确认、审计回放。toC 可以妥协,toB 不能。
八根支柱缺一根,Agent 都跑不起来:缺身份不敢上线、缺沙箱不敢跑代码、缺工具就是聊天机器人、缺记忆永远是金鱼、缺编排只能一问一答、缺观测出 bug 没法查、缺评测改完不知好坏、缺安全分分钟出事故。
3.1 主流 Agent 产品全景:把名字和支柱挂上钩
讲抽象概念之前,先把 2024-2026 大家天天听到的产品分个类,让你后面读到具体支柱时有真实参照物。
| 类别 | 代表产品 | 定位 & 强调的支柱 |
|---|---|---|
| Coding Agent / AI 编程助手 | Claude Code(Anthropic)、Trae(字节)、Qoder(阿里)、Cursor、Replit Agent、Aider | 专注"写代码 + 跑测试"的闭环。强支柱:沙箱与运行时(本地 + 远端 VM 混合)、工具/MCP(文件操作、shell、git)、编排(多步任务)、评测(SWE-bench 类基准)。 |
| 企业级通用 Agent | 悟空(钉钉)、Microsoft Copilot、Glean Assistant | 嵌入企业工作台,处理文档/日程/审批/邮件。强支柱:身份与权限(用户身份继承)、记忆系统(长期偏好)、工具/技能(企业 SaaS 接入)、安全(等保/合规)。 |
| 开源 Agent 框架/微内核 | OpenClaw(字节)、LangGraph、AutoGen、CrewAI、Letta | 给开发者搭 Agent 的"操作系统"。强支柱:编排与控制流、工具协议、记忆抽象、可插拔架构。 |
| 通用对话 Agent | ChatGPT、Claude.ai、Gemini、Kimi、豆包、元宝 | 面向 C 端的全能助手。强支柱:工具/MCP(联网/代码解释器)、记忆(长期对话)、安全(内容审核)。 |
| 特定场景 Agent | Devin(自主软件工程师)、Manus(自主任务)、Operator(浏览器自动化) | 面向高自主任务的"无人值守"agent。强支柱:沙箱(云端 VM 长任务)、编排(计划-执行-反思)、观测(长任务可回放)。 |
下面 4-9 章每讲到一根支柱,都会拎出一两个产品当"活体例子",帮你把抽象概念落到具体场景。第 7 章(记忆)单独占最大篇幅。
支柱一:身份与权限 —— Agent 是"谁"
很多入门同学一上来就想让 Agent 去查日历、发邮件、改文件。结果第一个被问的是:你这 Agent 用的谁的账号?
4.1 三种常见的身份模型
| 模式 | 含义 | 典型场景与坑 |
|---|---|---|
| Agent 用自己的服务账号 | Agent 是一个独立"机器人用户",所有操作都以自己的身份发生。 | 合规审计干净。但缺点:所有用户共用一个权限池,A 用户问出 B 用户的数据没人拦。不要在多租户场景下偷懒用这个。 |
| Agent 代表当前用户(impersonation) | Agent 在每一次请求里临时拿到当前用户的 token,以当前用户的身份去访问下游系统。 | 权限自然继承(用户能看的它才能看),合规清晰。但需要 OAuth/SSO 基础设施支持,token 续期、过期处理是工程量。 |
| 双身份混合 | Agent 有自己的账号做"通用查询"(比如查公开知识库),但触达用户私有数据时切到 impersonation。 | 主流企业级 Agent 几乎都走这条。设计时关键是把"什么时候切身份"写进编排层。 |
4.2 权限三件套
- 静态权限(RBAC):Agent 这个角色被赋予了哪些能力?这一层在系统初始化时就划定。
- 运行时上下文:当前请求来自哪个用户、哪个组织、哪个项目?这一层每次请求都要带上。
- 动作授权(人机协同):危险动作(删数据、发邮件、转钱)由人按一下"确认"。这层不靠 LLM 自觉,靠 harness 拦住强行加二次确认。
常见翻车:Agent 拿到一个超级管理员 token 跑遍全公司的数据,一次 prompt injection 就能让攻击者把客户名单全导出来。toB Agent 上线前,权限最小化原则不是嘴上说说。
产品参照:
· 悟空(钉钉):典型"双身份混合" —— Agent 自己有钉钉机器人账号做通用查询,但触达用户私有数据(日程、邮件、文档)时切到当前登录用户的身份继承,下游钉钉 OpenAPI 自动按用户原有权限拦截,外加删除/对外发邮件等危险动作强制二次确认。
· Microsoft Copilot for Microsoft 365:完全 impersonation 模式,Agent 以当前 Office 账号身份访问 Graph API,"用户能看到的它才能看到"。