以下是一篇技术导向的Harness技术文章,围绕你给出的**Tools、Knowledge、Observation、Action、Permissions**体系展开,并融入MCP、Shell、A2A、WebSocket等关键元素。
**摘要**:在现代AI代理(Agent)设计中,如何将大语言模型(LLM)的推理能力转化为真实世界的行动,是一个核心挑战。Harness 提出了一种以 **Knowledge(知识)** 为中枢,**Observation(观察)** 为输入,**Tools(工具)** 为执行载体的架构。本文将从技术层面剖析 Harness 如何通过 MCP、Shell、CLI/API、A2UI 以及 WebSocket/A2A 协议,构建一个安全、实时、可扩展的智能代理运行时。
Harness 的设计哲学可抽象为一个五层模型:
Tools 工具:MCP、shell
Knowledge 知识
Observation 观察
↑
A2A/WebSocket ← 通信与事件总线
↓
Action 行动:CLI/API/A2UI
Permissions 权限:沙箱这一模型的核心优势在于**闭环反馈**:Observation 持续流入 Knowledge,驱动下一步 Tools 选择与 Action 执行。
在 Harness 中,**Knowledge** 远超简单的向量检索增强生成(RAG)。它是一个动态更新的**认知状态机**,包含:
技术实现上,Knowledge 层采用**混合存储**:
Observation 数据到达后,通过一个**知识融合引擎**更新认知状态:如果是工具返回的结构化数据,直接合并入任务图;如果是文本日志,经过 LLM 摘要后注入上下文窗口。
Harness 的 **Tools** 层采用插件化设计,当前主要支持两大工具类型:
Model Context Protocol (MCP) 提供了标准化的工具发现与调用接口。Harness 作为 MCP 客户端,连接多个 MCP 服务器(如文件系统服务、数据库服务、第三方 API 网关)。技术要点:
tools/list 获取所有可用工具及其 JSON Schema 定义。Shell 是本地系统的最强接口。Harness 对 Shell 的封装不是简单的 subprocess.run(),而是:
vim、ssh)。两种工具通过统一的 **ToolExecutor** 抽象调度,对外暴露一致的调用接口:(tool\_name, params) -> Observation。
**Observation** 是来自外部世界的任何信号。Harness 设计了两层观测通道:
工具执行产生的结构化输出、标准输出/错误流、退出码,被封装为 Observation 对象。该对象携带元数据:来源工具、时间戳、执行耗时。
在分布式场景中,一个 Harness 代理需要观察另一个代理的状态。**Agent-to-Agent (A2A) 协议** 通过 WebSocket 实现双向事件流。该协议定义了:
WebSocket 是 A2A 的底层传输,也是 Harness 与前端 UI (A2UI) 通信的桥梁。技术细节:
Action 层将 LLM 决策转化为现实世界的副作用。Harness 定义了三种 Action 类型:
A2UI Action 的实现基于 **微前端沙箱**:代理输出的 UI 组件在浏览器隔离的 Shadow DOM 中渲染,通过 postMessage 与主应用通信,受权限策略严格控制。
权限不是外围的“守门人”,而是嵌入每一层的正交切面。
每个工具注册时声明所需权限(如 filesystem.read:/data/\*)。ToolExecutor 在调用前查询权限策略引擎(基于 OPA/Rego)。
Shell 工具运行在**双重沙箱**中:
restricted mode 或 Firejail 封装。代理生成的 UI 只能访问显式许可的浏览器 API,所有用户输入数据在传回代理前经过净化。
Knowledge 层的任务图包含预期操作范围,Harness 动态计算最小必需权限集,当 Action 超出范围时自动阻断并要求人工审批(A2UI 交互)。
假设代理收到“分析 Nginx 最近 5 分钟的 500 错误”任务,技术闭环如下:
grep " 500 " /var/log/nginx/access.log。filesystem.read:/var/log/nginx/\*)后,在沙箱中执行。/api/payment 错误。payment-service 健康状态。sudo systemctl restart payment-service,需 process.manage 权限,策略引擎放行。全程 WebSocket 将每一步 Observation 实时推送至监控仪表板,A2A 协议允许运维团队中的其他代理(如安全审计代理)监听事件。
Harness 通过严格分离 **Tools、Knowledge、Observation、Action、Permissions** 五个正交层,并借助 **MCP** 实现工具标准化,**A2A/WebSocket** 实现通信实时化,**A2UI** 实现人机协同闭环,构建了一套生产级 AI 代理架构。这一模式不仅适用于 DevOps 场景,也可推广至智能客服、自动化测试、数据工程等广泛领域。
论文地址 30658.t.kuaisou.com
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。