4月9日(深入Harness)

张开发
2026/4/12 20:42:23 15 分钟阅读

分享文章

4月9日(深入Harness)
飞书到微信开放者平台Skill用Hermes封装并开源一个重要skill从飞书文档一键发布到微信公众号Ai Agent学习智能体系统的三大主要层次是Model模型权重本身。Harness包裹在模型外层、为该智能体所有实例提供能力的 harness。这指的是驱动智能体的代码以及始终属于 harness 一部分的任何指令或工具。Context位于 harness 之外、可用于配置 harness 的额外上下文指令、技能。深度解析 Agent HarnessHarness 是包裹 LLM 的整套软件基础设施编排循环、工具、记忆、上下文管理、状态持久化、错误处理和护栏。“Agent” 是一种涌现出来的行为它是用户交互到的那个目标导向、会用工具、会自我修正的实体。“Harness” 是产生这种行为的那套机械结构。当有人说“我构建了一个 agent”他的实际意思是他构建了一套 harness然后把它接到一个模型上。一个原始 LLM 就像是一颗没有 RAM、没有磁盘、没有 I/O 的 CPU。上下文窗口像 RAM速度快但容量有限外部数据库像磁盘存储容量大但速度慢工具集成像设备驱动Harness 就像操作系统工程设计的三个层级Prompt engineering负责设计模型接收到的指令Context engineering负责管理模型在什么时间看到什么内容Harness engineering包含前两者以及整套应用基础设施工具编排、状态持久化、错误恢复、验证循环、安全约束和生命周期管理生产级Agent Harness的组成部分编排循环这是心跳。它实现的是 Thought-Action-ObservationTAO循环也叫 ReAct loop。这个循环这样运行组装 prompt - 调用 LLM - 解析输出 - 执行工具调用 - 把结果回填 - 重复工具工具是 agent 的手。它们被定义成 schema名字、描述、参数类型并注入到 LLM 的上下文里让模型知道自己可以用什么。工具层负责注册工具校验 schema提取参数在沙箱中执行捕获结果把结果格式化回 LLM 可读的 observationClaude Code 提供了六类工具文件操作搜索执行Web 访问代码智能子 agent 生成记忆记忆运行在多个时间尺度上。短期记忆是单次 session 内的对话历史。长期记忆跨 session 持久存在Anthropic 使用项目文件和自动生成的记忆文件LangGraph 使用按 namespace 组织的 JSON StoresOpenAI 支持由 SQLite 或 Redis 支撑的 Sessions上下文管理context engineering 指南把目标说得很明确找到尽可能小、但高信号密度最高的 token 集合以最大化得到目标结果的概率。提示词构建它是分层组装的system prompttool definitionsmemory filesconversation history当前用户消息输出解析现代 harness 依赖原生 tool calling也就是模型返回结构化的tool_calls对象而不是返回自由文本后再去解析。Harness 会检查有 tool calls 吗有的话就执行并继续循环没有 tool calls 吗那就是最终回答对于结构化输出OpenAI 和 LangChain 都支持通过 Pydantic 模型来约束 schema。状态管理LangGraph 把状态建模成流经图节点的类型化字典并通过 reducer 来合并更新。Checkpoint 发生在 super-step 边界上因此可以在中断后恢复也能进行 time-travel 调试。OpenAI 提供四种互斥策略application memorySDK sessions服务端 Conversations API更轻量的previous_response_id串接Claude Code 采取的是另一种方式用 git commit 作为 checkpoint用进度文件作为结构化 scratchpad错误处理LangGraph 把错误分成四类transient用 backoff 重试LLM-recoverable作为 ToolMessage 返回给模型让它自行调整user-fixable中断并等待人类输入unexpected向上抛出供调试使用防护机制与安全保障OpenAI SDK 实现了三层 guardrailsinput guardrails运行在第一个 agent 上output guardrails运行在最终输出上tool guardrails运行在每次工具调用上一旦 tripwire 被触发agent 会立即停止。Anthropic 从架构上把权限控制与模型推理解耦模型负责决定“要尝试什么”工具系统负责决定“什么是允许的”Claude Code 对大约40个离散工具能力分别做门控并分为三个阶段项目加载时建立信任每次工具调用前检查权限对高风险操作要求显示用户确认验证循环这正是把玩具 demo 和生产 agent 区分开的关键。Anthropic 推荐三类验证方式规则式反馈测试、lint、类型检查视觉反馈通过 Playwright 截图验证 UI 任务LLM-as-judge用另一个子 agent 来评估输出子智能体编排Claude Code 支持三种执行模型Fork父上下文的字节级拷贝Teammate独立终端 pane通过文件邮箱通信Worktree自己的 git worktree每个 agent 一个独立分支OpenAI SDK 支持agents-as-tools专家 agent 负责边界明确的子任务handoffs专家 agent 接管整个控制权LangGraph 把 subagent 实现为嵌套状态图。

更多文章