Solon v4.0.5

harness - 关于

</> markdown
2026年7月30日 下午4:29:41

solon-ai-harness 是一个高性能的智能体“马具(Harness)”框架。作为底层核心,它已在 SolonCode CLI 项目中经过深度打磨与实战验证。

1、为什么需要 Harness

业界目前有两个极具启发性的定义:

  • 公式定义:Agent = Model + Harness。模型提供推理,而 Harness 提供落地执行的实体。
  • 硬件类比:Model 是 CPU(计算核心),Context 是 内存(瞬时寻址),而 Harness 则是 操作系统(资源调度与环境隔离)。

没有 Harness 的 Agent 就像一个漂浮在大脑中的灵魂,虽然能思考,但无法稳定地感知物理世界、无法受控地操作工具,更无法在复杂的长程任务中保持状态。

2、Harness 的主要工作

solon-ai-harness 并不直接生成文本,它负责为模型构建一个“数字靶场”:

组织工具使用 (Tool Steering)

  • 动态挂载与发现(支持 MCP 协议)。
  • 输入/输出的标准化协议转换。
  • 安全拦截:在危险指令执行前进行权限校验或人工确认(HITL)。

组织记忆与会话 (Memory & Session Management)

  • 管理 Session 的持久化与恢复。
  • 区分“短期工作记忆”与“长期向量记忆”。
  • 快照机制:在任务中断时自动保存状态,支持断点续传。

操控上下文及摘要压缩 (Context Engineering)

  • 窗口滑窗:当 Token 接近上限时,自动识别并保留关键信息。
  • 语义压缩:将冗长的工具回显(如数千行代码输出)自动总结为模型可理解的摘要。
  • 意图聚焦:通过 RAG 技术动态注入当前任务最相关的片段。

环境隔离与沙盒驱动 (Sandbox & Environment)

  • 影子空间:在 .harness (按需配置)目录下构建隔离的工作区,确保 Agent 的修改不直接污染生产环境。
  • 自愈循环:捕获执行过程中的 stderr,将其作为 Observation 反馈给模型,驱动 ReAct 循环自动修正错误。

3、Talent 系统:工具的组织载体

HarnessEngine 的工具管理由 14 个内置 Talent(才能) 具体落地,每个 Talent 封装一组相关工具和系统指令:

类别Talent工具权限名主要能力
终端类TerminalTalentbash, ls, read, write, edit, grep, globShell/Bash 命令执行、文件读写、搜索
终端类CodeTalentcode代码读写与工程规约
任务类TodoTalenttodo任务清单管理
任务类TaskTalenttask子任务分发与子代理调度
生成类GenerateTalentgenerate动态构建子代理
时间类ClockTalentclock时间/定时能力
网络类WebfetchTalentwebfetch网页抓取
网络类WebsearchTalentwebsearch互联网搜索
代码类CodeSearchTalentcodesearch代码仓库搜索
集成类LspTalentlspLSP 语言服务协议集成
集成类McpGatewayTalentmcpMCP 协议工具网关
集成类OpenApiGatewayTalentopenapiOpenAPI HTTP 接口网关
记忆类MemoryTalentmemory长期记忆读写与检索
技能类SkillTalentskill技能库发现与加载

工具权限通过 allowTool / disallowTool / toolPermissionReset 方法精确控制各 Talent 的工具是否对 Agent 可见。

组织记忆与会话 (Memory & Session Management)

  • 管理 Session 的持久化与恢复。
  • 区分"短期工作记忆"与"长期向量记忆"。
  • 快照机制:在任务中断时自动保存状态,支持断点续传。

操控上下文及摘要压缩 (Context Engineering)

  • 窗口滑窗:当 Token 接近上限时,自动识别并保留关键信息。
  • 语义压缩:将冗长的工具回显(如数千行代码输出)自动总结为模型可理解的摘要。
  • 意图聚焦:通过 RAG 技术动态注入当前任务最相关的片段。

环境隔离与沙盒驱动 (Sandbox & Environment)

  • 影子空间:在 .harness (按需配置)目录下构建隔离的工作区,确保 Agent 的修改不直接污染生产环境。
  • 自愈循环:捕获执行过程中的 stderr,将其作为 Observation 反馈给模型,驱动 ReAct 循环自动修正错误。

4、Harness 的存在形态

Harness 具备多种灵活的生存方式:

  • 作为“框架”:开发者通过配置,快速为自己的应用集成 Agent 执行能力。
  • 作为“外挂”:它可以像 Sidecar 一样挂载在现有项目旁,通过 CLI 监控文件变化、驱动自动化重构,而无需侵入业务代码。
  • 作为“协议”:它定义了 Agent 与外部世界交互的标准契约,让不同的 Model 可以无缝切换“护具”。

solon-ai-harness 则是“框架”形态。