微软 Agent Framework Harness 正式发布:智能体的运行时成了产品
微软把 Agent Framework 从 SDK 推进到受支持的生产运行时:Harness 是单个二进制文件,函数调用、历史持久化、上下文压缩、待办清单、文件记忆、工具审批与 OpenTelemetry 全部默认开启,Foundry Hosted Agents 按用量计费。真正值得记住的是随发布一起出现的两个数字——Claude Code 有 98.4% 的代码属于 Harness 基础设施,AI 决策逻辑只占 1.6%;以及一次固定模型参数的对比中,一个运行时在 40 次往返后自停,另一个跑到 300 次不停。
基础信息较完整,适合持续跟踪并等待更多验证。
记录
信号正文
发布了什么
微软把 Agent Framework 从 SDK 推进到受支持的生产运行时。1.0 版本在 2026-04-02 发布;6 月 2 至 3 日的 Build 2026 上,Agent Harness、GitHub Copilot SDK 与 Claude Agent SDK 连接器、以及多智能体编排模式进入稳定版;此次 Harness 与 Foundry Hosted Agents 正式发布。Harness 是单个二进制文件,本地开发环境、容器和托管部署跑的是同一个东西。
默认开启、且可逐项关闭的能力:函数调用、每次调用历史的持久化、上下文压缩、带计划与执行两种模式的待办清单、文件记忆、技能、网络搜索、工具审批,以及内置 OpenTelemetry。Shell 工具、文件访问、后台子智能体和自动循环仍是可选,而且启用时会发出警告。开发者只提供聊天客户端、指令和工具,其余由一次 create_harness_agent 调用接管;Foundry Hosted Agents 作为托管部署目标按用量计费。
为什么一个运行时值得单独看
微软首席软件工程师 Wes Steyn 的说法是:模型本身只能生成文本;要让它调用工具、处理多步任务并持续运行到完成,必须把它包在一个运行时里,而那个运行时就是 Harness。
支撑这句话的是一个具体数字。MBZUAI 旗下 VILA 实验室 2026 年 4 月的论文《深入解析 Claude Code》分析了 v2.1.88——该版本完整 TypeScript 源码曾在 3 月 31 日因一次带 source map 的 npm 发布短暂曝光——统计得出 1884 个文件、约 512,000 行代码,其中约 98.4% 属于 Harness 基础设施:权限管理、上下文管理、沙箱、工具路由与恢复机制;AI 决策逻辑约占 1.6%。
这个数字带着星号,而且是作者自己标的:它是对泄露包的行数分类,包含生成代码与压缩代码,不是一次完整审计。但趋势另有旁证——Codex CLI 与 Aider 各自独立演化出了相同的 Harness 结构。三个团队分别走到同一个形状,更像是问题施加的约束,而不是某一家的设计偏好。
那个 40 对 300
微软 AI 首席架构师 Aqib Sherwani 做的对比测试比多数厂商基准克制:固定模型参数,并先跑一个确定性的模拟测试,确保差异可以追溯到 Harness 而不是模型。结论是「推理相同,工程实现不同」——两个运行时在相同步数内给出了相同答案。
差异出现在护栏失控这一项:Agent Framework 在 40 次往返后自行终止循环并返回「达到限制」;而在关闭宿主端停止控制机制的情况下,Copilot SDK 一直跑到 300 次仍不自停。
一个把刹车放在循环内部,另一个默认由宿主提供。这不是性能差异,是责任归属的差异——而它只在宿主那一侧恰好没做的时候才会暴露出来。这正是《人在回路的审查》里那条判据的机器版本:一个从不触发的限制,和没有限制无法区分。
治理的问题换了一个
编码智能体连接器不需要自定义适配器就能把任务委派给 GitHub Copilot SDK 或 Claude Agent SDK,每个智能体跑自己的自主循环;但连接器严格遵循为整个集群设置的身份、内容安全与可观测性策略——编码智能体的流量进入同一批 OpenTelemetry 跟踪和 Foundry 仪表板,而不是成为一个有独立访问模型的孤立集成。
于是治理的核心问题从「智能体能做什么」变成了三问:谁运行了它、依据什么策略、跟踪信息最终流向哪里。同样的控制层关注点也出现在亚马逊云科技的 Loom 参考平台里。编排模式与测试框架同步进入稳定版,覆盖顺序管道、并行协作,以及源自微软研究院 Magentic-One 的 Magentic 模式。
放在这条线上看
这是同一种收拢的第四种形态。MCP 2.0 把协议改成无状态,好让任意实例承接任意请求;Gemini API 用一个 background:true 把执行、状态与工具接入收到服务端;LLM 0.32 让供应商在单次请求内替你执行远程 MCP 调用——而这一条把运行时本身做成了按用量计费的产品。
一次 create_harness_agent 调用换来的是不必自己实现审批、压缩、持久化和遥测。它同时买走的是控制权,而这正是《系统设计的权衡》里那句话:默认值是别人替你做完的权衡。40 与 300 的差别说明这笔交易值得逐项看清楚——你要的是循环内部就有刹车的运行时,还是一个假设你会自己装刹车的运行时。
为什么是现在
为什么重要
智能体的运行时正在从「每个团队自己拼的一层胶水」变成有厂商支持、按用量计费的产品。这件事的分量不在功能表,而在随它一起出现的一个数字:Claude Code 有 98.4% 的代码是 Harness 基础设施,AI 决策逻辑只占 1.6%。如果这个比例大致成立,那么「用哪个 Harness」比「用哪个模型」影响面更大——而多数团队目前只认真评估后者。
背景
技术背景
Harness 指把模型包起来、使它能调用工具并持续运行到任务完成的那一层运行时:函数调用、历史持久化、上下文压缩、待办清单、审批、遥测都长在这里。此前它是每个团队自己实现的部分,Agent Framework 1.0 解决的是「用哪个框架构建」,这次发布回答的是「构建出来的东西在哪里执行、能访问什么、行为如何体现在既有的可观测性与策略系统里」。Agent Framework 本身是对 Semantic Kernel 与 AutoGen 的整合,两个前身项目已转入维护模式。
关注人群
谁该关注
下一步
学习路径
- 先读 40 对 300 那一段,把「护栏在循环里还是在宿主里」变成你自己评估任何智能体框架时的第一个问题
- 对照 98.4% / 1.6% 这个比例,回头看自己项目里模型调用之外的代码占比——如果远低于它,多半是有一批职责还没被显式实现
- 把默认开启的那批能力逐项对到自己已有的实现上,判断哪些是重复建设、哪些是你有意做得不一样
- 读《工具集成模式》,确认工具层的职责在采购运行时之后仍然归你
- 读《智能体可观测性与评测运维》,把「谁运行了它、依据什么策略、跟踪流向哪里」三问落到具体的仪表板上
关系网络
在技术网络中的位置
当前技术与相邻技术、技能和背景知识的连接,点击节点可继续探索。
- Gemini API Managed Agents 扩展:后台任务与远程 MCP 接入
- LLM 0.32:一个命令行工具长成了智能体框架
- MCP 2.0:协议核心改为无状态
- Copilot 与裸 API:为编码智能体的「外壳」付费,到底买到了什么
- 一次 180 万美元的智能体账单:超预算 860%,五个月后才被发现
- DeepSeek Harness 开源:连 Agent Loop 都能换掉
- Cloudflare Computer:不给智能体一个容器,给它一台机器
- Rootly 废掉了小 PR 规则:审查的对象从行数换成了影响半径
- Kiro Crew 开源:内部 3.9 万人在用,没人被要求
- Copilot 运行时改写成 83 万行 Rust:别让智能体碰判卷标准
延伸思考
后续问题
- 40 次往返这个默认上限对你的任务是太紧还是太松?改动它需要哪一层的权限?
- 如果运行时由厂商提供,出现一次越权行为时,你还能不能自己复原完整的动作序列?
- 把编码智能体的流量并进统一的遥测体系,会不会反过来让某些团队为了绕开策略而改用未受管的路径?
- 98.4% 这个数字来自一次泄露包的行数分类,换一种统计口径(例如按执行路径或按缺陷分布)还成立吗?
来源参考