很多人把模型、工具、Agent、Harness、编程助手和多 Agent 系统混在一起讨论,结果是同一个词在不同语境中指向不同东西。本文先建立一套统一的概念地图,再用 Codex、Cursor、Claude Code、OpenCode、Hermes Agent 和 DeepSeek Harness 说明这些概念如何落地到真实产品中。
“Agent”“Harness”“工具”“模型”已经成为 AI 开发领域最常见、也最容易被混用的一组词。有人把模型直接叫 Agent,有人把 MCP 当成 Agent 框架,也有人把 Cursor、Codex、Claude Code 和 DeepSeek Harness 当成同一种产品。这样的混淆会让人难以判断:一个产品到底是在提供模型、工具、运行时,还是已经组装好的工作流?
本文的第一目标不是做产品排行榜,而是回答几个基础问题:
过去的 AI 编程工具主要负责补全代码:开发者写一行,模型猜下一行。今天的 Agent 已经可以接收一个工程目标,自主阅读代码库、调用终端和浏览器、修改多个文件、运行测试、分析错误,并循环迭代到任务完成。
这场变化带来了大量新词:模型、工具、Agent、Harness、Skill、MCP、子 Agent、工作流。本文会先解释它们之间的关系,再讨论产品差异。核心判断是:
理解这种分层,比简单讨论“哪个模型更强”更重要。一个模型即使推理能力很强,如果没有合适的工具、上下文策略、沙箱和验证机制,也不一定能稳定完成真实任务。
阅读提示: 可以把“模型”理解为推理核心,把“工具”理解为动作接口,把“Agent”理解为一次任务执行,把“Harness”理解为负责组织和约束这次执行的运行时。
传统聊天模型的基本流程是:
用户问题 -> 模型生成回答
Agent 的流程则是:
用户目标
-> 理解任务
-> 观察环境
-> 选择工具
-> 执行动作
-> 读取结果
-> 修正计划
-> 继续行动
-> 验证结果
比如,用户说:
给这个项目增加用户登录功能,补齐测试,并确保 CI 通过。
一个真正的编程 Agent 可能需要:
这已经不是“一次生成”,而是一个持续运行的任务系统。
关键区别: “循环”是 Agent 和普通聊天机器人的分水岭。没有观察结果和下一轮决策,模型最多只能给出建议;有了循环,它才可能真正推进任务。
| 层级 | 名称 | 核心问题 | 典型内容 | 是否直接面向用户 |
|---|---|---|---|---|
| 1 | 模型 Model | 下一步应该想什么、做什么 | GPT、Claude、DeepSeek、Qwen | 通常不是 |
| 2 | 工具 Tool | 具体动作如何执行 | 读文件、编辑、shell、浏览器、API | 间接 |
| 3 | Agent | 如何推进一项任务 | 规划、调用工具、观察、重试 | 是 |
| 4 | Harness | 如何让 Agent 稳定、安全、可恢复地运行 | 循环、上下文、权限、沙箱、记忆、验证、调度 | 有时 |
| 5 | 产品 Product | 如何把能力包装成可用体验 | IDE、CLI、云端任务、桌面应用、聊天机器人 | 是 |
这张图表达了一个关键事实:模型不是整个 Agent,产品也不等于模型。同一个模型放入不同 Harness 后,可能因为上下文选择、工具设计、权限策略和验证流程不同,而呈现完全不同的工作能力。
可以用汽车来类比:
| Agent 概念 | 汽车类比 |
|---|---|
| 模型 | 驾驶员的大脑 |
| 工具 | 方向盘、刹车、摄像头、地图 |
| Harness | 车辆控制系统、安全策略、传感器融合和故障处理 |
| Agent | 从 A 点真正开到 B 点的一次驾驶过程 |
| 产品 | 用户可以购买和使用的整辆车 |
模型可以:
模型通常不能直接访问你的文件系统,也不能天然知道命令是否安全。访问环境的能力来自外部工具和运行时。
工具是 Agent 的“手和脚”。常见工具如下:
| 工具类型 | 示例 | 作用 |
|---|---|---|
| 文件读取 | read_file |
查看源代码、配置、文档 |
| 文件编辑 | apply_patch、编辑器 API |
修改项目文件 |
| 搜索 | rg、符号索引 |
查找文件、字符串、定义和引用 |
| 终端 | shell、PowerShell、Bash | 安装依赖、运行测试、构建项目 |
| 浏览器 | 浏览器自动化 | 调试页面、填写表单、截图验证 |
| 外部服务 | GitHub、数据库、Slack | 获取数据或执行工作流 |
| 生成工具 | 图像、PDF、代码生成器 | 产出额外文件或资产 |
工具一般只完成一次动作。它不会自动负责整个任务的规划,也不一定知道什么时候可以结束。
Agent 是“模型 + 工具 + 循环”形成的运行过程。它的关键特征不是能够回答问题,而是能够:
Harness 这个词原意是“马具”或“控制套件”。在 Agent 语境中,它表示围绕模型建立的运行框架。
一个成熟 Harness 通常负责:
| 能力 | 需要解决的问题 |
|---|---|
| Agent Loop | 什么时候继续调用模型,什么时候结束 |
| 上下文管理 | 哪些文件、命令输出和历史记录应该放进上下文 |
| 上下文压缩 | 对话过长时如何保留关键事实 |
| 工具编排 | 工具如何声明、调用、返回错误 |
| 权限控制 | 哪些操作自动执行,哪些操作需要用户批准 |
| 沙箱 | Agent 能访问哪些文件、网络和系统资源 |
| 状态管理 | 如何暂停、恢复、分叉和重试任务 |
| 记忆 | 哪些信息跨会话保留 |
| 多 Agent | 如何分派子任务、收集结果和合并修改 |
| 验证 | 如何运行测试、检查 diff、判断是否完成 |
| 可观测性 | 如何记录提示、工具调用、结果和轨迹 |
极度简化的循环可以写成:
while not finished:
context = build_context(task, history, environment)
response = model(context, tools=available_tools)
if response.has_tool_call():
result = execute_tool(response.tool_call)
history.append(result)
else:
finished = evaluate_completion(response)
真实系统还要处理工具超时、权限拒绝、测试失败、上下文过长、成本上限、网络断开、文件冲突和回滚。因此,Harness 往往决定了 Agent 能不能从“演示”进入“生产”。
同一个模型可能在一个产品里表现优秀,在另一个产品里表现一般,原因不一定是模型本身发生了变化。影响结果的因素还包括:
Skill 更像一个可复用的岗位 SOP。它可以告诉 Agent:如何做代码审查、如何发布应用、如何生成 PDF、如何按照团队约定运行测试,以及如何处理某类 API 或业务流程。
它解决的是“应该怎样做”,不等于工具本身。
MCP 解决的是:
Agent 如何发现并以统一方式调用外部系统?
例如通过 MCP 连接 GitHub、Slack、Notion、数据库、浏览器或企业内部 API。MCP 是连接层,不是完整 Agent,也不是 Harness。
不同产品有不同命名:
| 产品/生态 | 常见文件或机制 | 主要作用 |
|---|---|---|
| Codex | AGENTS.md、Skills |
项目规范、团队工作流 |
| Claude Code | CLAUDE.md、Skills |
项目记忆、命令和约定 |
| OpenCode | AGENTS.md、Agent 配置 |
项目上下文、权限和模式 |
| Cursor | Rules、Skills | 编辑器和项目级行为约束 |
| Hermes | Memory、Skills、SOUL.md 等 |
跨会话记忆、个性和经验 |
短期上下文是当前任务临时读取的文件和命令结果;长期记忆则会跨会话保留。两者都需要 Harness 管理,否则上下文会失控或污染后续任务。
Subagent 是由主 Agent 分派出去的子任务。例如:
主 Agent:实现支付功能
-> 子 Agent A:研究现有支付代码
-> 子 Agent B:检查安全风险
-> 子 Agent C:设计测试用例
-> 主 Agent:合并结论并实施
Subagent 不一定意味着多个模型,也可以是同一模型的多个独立会话。关键是上下文隔离、任务分工和结果汇总。
Codex 是 OpenAI 的软件工程 Agent 产品,覆盖 ChatGPT、IDE、终端和云端任务。它的定位已经超出代码补全,重点是完成可验证的工程工作:功能开发、复杂重构、迁移、测试、代码审查和 Pull Request。
| 能力 | 说明 |
|---|---|
| 云端环境 | 在隔离环境中加载仓库并执行任务 |
| 端到端任务 | 从分析到修改、测试和结果汇总 |
| 并行工作 | 使用工作树或多个任务并行处理 |
| 工程验证 | 运行测试、lint、类型检查并提供证据 |
| 团队适配 | 通过 AGENTS.md 和 Skills 注入规范 |
| 背景自动化 | 处理 issue、审查、CI/CD 等重复工作 |
Codex 更像一套预先设计好的工程 Harness 加产品界面。用户可以通过配置、Skills 和项目指令定制,但不会完全重写底层运行机制。
官方资料:Codex、Codex 开发者文档。
Cursor 首先是 AI 原生代码编辑器,Agent 是它的核心工作模式之一。Cursor 官方把 Agent 概括为:
Instructions + Tools + Model
它的优势在于人和 Agent 共享一个工作界面:开发者可以立即查看上下文、diff、终端输出和检查点,并且在 Agent 工作过程中继续指导。
| 能力 | 说明 |
|---|---|
| 编辑器上下文 | 直接利用当前文件、选区和代码库索引 |
| 多模型 | 可根据任务选择不同模型 |
| 实时协作 | 边看边改,连续发送反馈 |
| 工具集成 | 文件、终端、搜索、浏览器、图像等 |
| Checkpoints | 在重要修改前保存可恢复状态 |
| Cloud Agents | 把任务放到云端执行 |
Cursor 适合“人在场协作”,不一定要求你把整个任务完全委托出去。
官方资料:Cursor Agent 文档。
Claude Code 是 Anthropic 的终端型编程 Agent。它强调通过自然语言描述目标,让 Agent 自己调查代码库、确定修改点、执行命令并验证结果。
| 扩展 | 作用 |
|---|---|
CLAUDE.md |
记录项目约定、测试方式和长期上下文 |
| Skills | 保存可复用知识和工作流 |
| MCP | 连接外部工具和服务 |
| Hooks | 在编辑、提交或其他生命周期事件触发动作 |
| Subagents | 将研究、审查等任务放到隔离上下文 |
| Agent Teams | 多个独立会话协作 |
| Plugins | 打包和分发扩展能力 |
| LSP | 提供符号导航、类型和诊断信息 |
它更像一个“可以自己调查问题的高级终端工程师”。
官方资料:Claude Code 工作原理、扩展 Claude Code。
OpenCode 是开源 AI 编程 Agent,可运行在终端、桌面和 IDE 扩展中。它不是 OpenAI 的产品,当前官方项目位于 anomalyco/opencode。
| 类型 | 用途 | 默认权限倾向 |
|---|---|---|
| Build | 正常开发、编辑和执行命令 | 完整工具权限 |
| Plan | 只分析并提出方案 | 编辑和命令受限 |
| General | 执行复杂、多步骤任务 | 较完整 |
| Explore | 快速搜索和理解代码 | 只读 |
| Scout | 查询外部文档和依赖源码 | 只读 |
| Code Reviewer | 检查质量、安全和性能 | 通常禁止直接编辑 |
OpenCode 的显著特点是模型和配置的自由度:可以选择不同 Provider,为不同 Agent 指定不同模型、提示词和权限,也可以在项目目录中维护自定义 Agent。
它适合希望掌控本地运行环境、模型来源和 Agent 行为的人。
官方资料:OpenCode、OpenCode 文档、Agents 配置。
Hermes Agent 是 Nous Research 的开源、自托管 Agent。它的重点不是 IDE 内的代码协作,而是让一个 Agent 长期存在于本地、VPS 或云端环境中。
| 能力 | 说明 |
|---|---|
| 持久化记忆 | 跨会话记住用户、项目和过去的解决方法 |
| 自我改进 Skills | 从经验中生成和改进可复用技能 |
| 消息网关 | 接入 Telegram、Discord、Slack、WhatsApp、Email 等 |
| 定时任务 | 定期生成报告、检查服务或执行维护任务 |
| 多种执行后端 | 本地、Docker、SSH、Daytona、Modal 等 |
| 通用工具 | Web 搜索、浏览器、图像、语音、MCP |
| 子 Agent | 并行处理多个长期或短期任务 |
Hermes 可以写代码,但它的中心对象不是一个代码仓库,而是“一个长期在线的数字员工”。
OpenCode / Claude Code:围绕代码库工作
Hermes Agent:围绕用户、记忆、消息和长期任务工作
官方资料:Hermes Agent 官网、Hermes 文档。
DeepSeek Harness 的定位与前面几个产品不同。它的核心主张是:
Everything is a plugin.
模型、工具、Skills、会话、沙箱、存储、循环、调度和 UI 都可以被替换或重新组合。
| 模式 | 适合场景 | 特征 |
|---|---|---|
| Standard | 常规 Agent 工作 | 完整工具集和工作流 |
| Code | 复杂工具编排 | 用代码组织多轮工具调用 |
| Minimal | 模型基准和最小环境实验 | 通常只保留 shell 与文件编辑 |
| Creator | 创建自定义 Agent | 检查运行时、实验插件和编写预设 |
它还强调轨迹可追踪:系统可以记录模型看到的提示、每次工具调用和结果、子 Agent 调度及上下文注入,并支持恢复、分叉、搜索和回放。
因此,DeepSeek Harness 更接近“用来制造和组合 Agent 的框架”,而不是一个固定的聊天式编程助手。
官方资料:DeepSeek Harness。
这不是性能排名,也不是严格的线性关系。它只用一条兼容性最好的流程图表达产品重心的变化:从 IDE 内协作,逐步扩展到终端工程任务、云端交付、长期自动化,以及最终对 Agent 运行时本身进行组合和编排。
| 项目 | 主要抽象层 | 是否是完整用户产品 | 是否适合二次开发 |
|---|---|---|---|
| Codex | 工程 Agent 产品 | 是 | 中 |
| Cursor | IDE + Agent 产品 | 是 | 中高 |
| Claude Code | 终端 Agent 产品 | 是 | 高 |
| OpenCode | 开源编程 Agent | 是 | 很高 |
| Hermes Agent | 长期运行的通用 Agent | 是 | 很高 |
| DeepSeek Harness | Agent Harness/框架 | 更接近底座 | 最高 |
| 项目 | 它最关心的对象 | 一个典型任务 |
|---|---|---|
| Codex | 可交付的软件工程结果 | 完成功能并提交 PR |
| Cursor | 当前编辑器和开发者的实时协作 | 边看 diff 边实现页面 |
| Claude Code | 代码库中的复杂问题 | 调查并修复一组跨模块 Bug |
| OpenCode | 本地项目和可配置 Agent | 用指定模型执行一次重构 |
| Hermes Agent | 长期用户、消息和自动化 | 每天监控服务并通知结果 |
| DeepSeek Harness | Agent 运行时本身 | 组合模型、工具和子 Agent |
| 项目 | 模型策略 | 默认运行方式 | 隔离与权限关注点 |
|---|---|---|---|
| Codex | 以 OpenAI 生态为主 | 云端、ChatGPT、CLI、IDE | 云端沙箱、审批、工作树 |
| Cursor | 多模型 | 本地编辑器和云端 | 本地终端、云端任务和检查点 |
| Claude Code | 以 Claude 为核心 | 本地终端 | 命令审批、目录和外部工具权限 |
| OpenCode | 多 Provider | 本地终端、桌面、IDE | 按 Agent 配置工具权限 |
| Hermes Agent | 多 Provider | 本地、VPS、容器、云端 | 多后端沙箱和命令授权 |
| DeepSeek Harness | 以可插拔为目标 | 可配置运行时 | 由插件和配置决定 |
| 项目 | 项目上下文 | Skills | 子 Agent/多 Agent | 长期记忆强度 |
|---|---|---|---|---|
| Codex | AGENTS.md 和任务上下文 |
有 | 强 | 中 |
| Cursor | Rules 和编辑器上下文 | 有 | 有 | 中 |
| Claude Code | CLAUDE.md 和会话 |
强 | Subagents、Teams | 中高 |
| OpenCode | AGENTS.md 和配置 |
可自定义 | 主 Agent + 子 Agent | 中 |
| Hermes Agent | Context Files 等 | 会创建和改进 | Bots、Delegates、Subagents | 很强 |
| DeepSeek Harness | 可配置 | 插件化 | 原生支持组合 | 取决于实现 |
假设任务是:
为一个已有的 SaaS 项目增加 GitHub OAuth 登录,补齐测试,并准备 Pull Request。
开发者通常在 IDE 中打开项目,要求 Agent 先分析相关文件,再边看边确认修改。优势是即时可见、反馈快;缺点是任务流程更依赖人在编辑器里持续监督。
可以在终端中直接描述目标。Claude Code 会自行搜索认证、路由、配置和测试代码,提出计划,编辑文件,运行测试,再根据错误继续调查。它适合深入理解跨目录逻辑。
可以先切换到 Plan Agent,限制编辑和 shell 权限,让它只产生方案;确认后切换到 Build Agent。还可以让 Explore 子 Agent 负责只读调查,让 Code Reviewer 在最后检查安全问题。
可以把任务作为一个工程任务交给云端环境,让它读取仓库、实现、运行测试并提交可审查结果。适合希望离开本地工作区、等待完整工程产物的人。
可以把 OAuth 开发任务作为一个长期 Bot 的子任务,同时让 Hermes 在完成后把摘要和失败测试发送到 Slack 或 Telegram,并记住这次项目的认证结构。
可以自行设计流程:先用低成本模型做代码探索,再用高能力模型实施,最后调用独立审查 Agent;每一步的工具、权限、存储和日志都由开发者配置。
时间线中的年份表示行业能力演进的大致阶段,不对应某一个产品的唯一发布日期。
最早的主流模式是:输入一段上下文,模型生成一段文本或代码。开发者仍然负责定位文件、运行命令、修改结果和验证行为。
这类工具提升了局部编码速度,但没有真正改变任务边界。
随着模型可以结构化地产生工具调用,Agent 开始能够访问搜索、数据库、文件和终端。ReAct 一类方法把“思考、行动、观察”串成循环。
这一阶段证明了 Agent 的可行性,也暴露了早期问题:无限循环、工具参数错误、上下文膨胀、不知道何时算完成、失败后无法恢复,以及权限和安全边界不清晰。
2023 到 2024 年,AI 编程产品逐渐从“补全一段代码”转向“理解一整个项目”。编辑器、终端、代码搜索、批量编辑和测试反馈成为标配。
这时 Harness 的价值开始凸显:文件选择策略、编辑工具设计、命令输出处理和测试反馈,都会改变模型的有效工作能力。
2025 年前后,Codex、Claude Code、Cursor Agent 等产品将目标进一步扩展为完整工程交付:功能、迁移、重构、测试、审查、PR 和后台自动化。
新的竞争维度包括:沙箱和权限、云端执行、工作树和隔离分支、测试与验证证据、任务恢复和可追踪日志,以及子 Agent 和并行执行。
当前趋势是开发者不只是使用 Agent,还开始设计 Agent 的运行方式。DeepSeek Harness 代表“把运行时插件化”;Hermes Agent 代表“把 Agent 变成长期在线、拥有记忆和消息入口的数字员工”。
行业正在从下面这种固定组合:
一个模型 + 一个固定 Agent + 一组固定工具
走向更加可组合的系统:
模型层
+ 工具和 MCP 层
+ 可配置 Harness
+ 多 Agent 编排
+ 记忆和持久化
+ 可观测性和验证
适合主要工作在编辑器中、想实时查看修改和 diff、习惯边看边指导,并希望浏览器、终端和编辑器在同一界面工作的人。
适合熟悉终端、经常处理大型代码库、需要跨模块调查 Bug,或者想通过 CLAUDE.md、Skills、Hooks 和 MCP 构建个人工作流的人。
适合希望把完整任务交给 Agent、需要云端隔离环境、重视测试证据和代码审查,以及需要多个任务并行或后台自动化的人。
适合希望开源和本地运行、需要自由选择模型 Provider、想自定义 Agent、提示、工具和权限,或者想研究编程 Agent 工作机制的人。
适合需要长期在线的个人或团队助理、跨消息平台工作、持久记忆、定时任务和远程执行的人。编程只是任务的一部分,而不是全部。
适合开发内部 Agent 平台、实验不同模型和工具组合、设计多 Agent 编排流程,以及需要完整轨迹、恢复、分叉和回放的人。
不是。模型是推理核心,Agent 还需要工具、循环、上下文、环境和验证。模型能力上升并不会自动解决权限、回滚、任务状态和工程可靠性问题。
不是。MCP 是工具和服务的连接协议。它能扩展 Agent 的手脚,但不负责整体规划和任务闭环。
不是。提示词只是 Harness 的一部分。真正的 Harness 还包含执行循环、权限、沙箱、上下文压缩、状态管理、日志、重试和验证。
不一定。工具越多,模型越容易混淆,权限和成本也会增加。优秀 Harness 会根据任务选择合适工具,并控制工具返回内容的大小和质量。
不一定。并行任务适合研究、审查和互不冲突的修改;如果多个 Agent 同时修改同一模块,协调成本和合并冲突可能抵消收益。
如果只记住几句话,可以记住下面这些:
模型决定“能不能想明白”
工具决定“能不能做事情”
Agent 决定“能不能把任务推进下去”
Harness 决定“能不能稳定、安全、持续地做完”
产品决定“普通用户用起来是否顺手”
因此,Codex、Cursor、Claude Code 和 OpenCode 可以视为不同取向的编程 Agent 产品;Hermes Agent 是更偏长期运行和通用自动化的 Agent;DeepSeek Harness 则把视角再往下移,关注如何组装、替换和观测 Agent 的运行时。
未来也未必只有一个 Agent 独立完成所有事情。更可能的工作流是:Hermes 负责长期任务和消息入口,某个 Harness 负责编排,OpenCode 或 Claude Code 负责本地代码探索,Codex 负责云端测试、审查和 PR。竞争重点会从“谁的模型更强”逐渐转向:谁的运行时更可靠,谁的工具生态更丰富,谁的轨迹更可追踪,谁能把多个 Agent 组合成真正可交付的工作系统。
把模型、工具、Agent和Harness拆开讲,一下就分清了!六款产品的定位差异和演进脉络也讲得明明白白,读完终于不懵了,收藏级好文。
写的很好,希望博主不要那么久更新。
以前一直把 Cursor、Claude Code、Codex 都叫作 AI 编程工具,看完才发现它们其实不在同一个层面。Harness 这个概念也挺关键,之前完全没注意到。