harness - 关于
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 | 工具权限名 | 主要能力 |
|---|---|---|---|
| 终端类 | TerminalTalent | bash, ls, read, write, edit, grep, glob | Shell/Bash 命令执行、文件读写、搜索 |
| 终端类 | CodeTalent | code | 代码读写与工程规约 |
| 任务类 | TodoTalent | todo | 任务清单管理 |
| 任务类 | TaskTalent | task | 子任务分发与子代理调度 |
| 生成类 | GenerateTalent | generate | 动态构建子代理 |
| 时间类 | ClockTalent | clock | 时间/定时能力 |
| 网络类 | WebfetchTalent | webfetch | 网页抓取 |
| 网络类 | WebsearchTalent | websearch | 互联网搜索 |
| 代码类 | CodeSearchTalent | codesearch | 代码仓库搜索 |
| 集成类 | LspTalent | lsp | LSP 语言服务协议集成 |
| 集成类 | McpGatewayTalent | mcp | MCP 协议工具网关 |
| 集成类 | OpenApiGatewayTalent | openapi | OpenAPI HTTP 接口网关 |
| 记忆类 | MemoryTalent | memory | 长期记忆读写与检索 |
| 技能类 | SkillTalent | skill | 技能库发现与加载 |
工具权限通过 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 则是“框架”形态。