Harness 是 VeADK 的执行增强扩展,提供两种互斥的接入模式:进程内插件模式和受管 Sidecar 模式。进程内模式在应用进程中加载 Harness 插件,为每轮调用准备上下文、压缩工具结果并校验回答;受管 Sidecar 模式在独立的受控运行时中执行全部增强行为,应用进程不加载相关插件。
两种模式不得混用。受管 Sidecar 模式启用时,HarnessExtension.plugins() 始终返回空列表,应用进程不会加载 veadk.extensions.harness.plugins 的实现。
何时使用
基础 Harness 扩展已随 VeADK 内置,无需额外安装。需要 Headroom 压缩实现时安装 harness 依赖组:
进程内插件模式
进程内模式通过 build_harness_plugins() 构建插件列表,挂载到 Runner:
插件能力
通过环境变量配置
使用 build_harness_plugins_from_env() 从环境变量构建插件:
相关环境变量:
HARNESS_ENHANCE_* 与 HARNESS_* 前缀的环境变量均被读取;带 ENHANCE 前缀的优先。
受管 Sidecar 模式
受管 Sidecar 模式通过 HarnessExtension 启动受控运行时,由运行时负责执行全部 Harness 增强行为。HarnessExtension 仅负责启动运行时、应用模型与 MCP 绑定并管理生命周期。
通过环境变量启用
设置 HARNESS_SIDECAR_ENABLED=true 后,HarnessExtension.from_env() 会读取相关环境变量并启动 Sidecar:
HarnessExtension 支持上下文管理器协议,退出时自动关闭 Sidecar:
通过构造参数启用
也可以通过 sidecar 参数直接启用:
sidecar 接受布尔值或配置字典。传入配置字典时,其中的字段会用于解析 Sidecar 计划;传入 True 时使用默认配置。
Sidecar 模式启用时不能同时传入 components 参数;组件选择通过 Sidecar 配置中的 component_overrides 控制。
通过配置对象启用
使用 HarnessSidecarConfig 构建完整配置,再传给 HarnessExtension:
HarnessSidecarConfig.from_env() 也可以从环境变量构建配置对象。
Sidecar 状态
Sidecar 环境变量
受管 Sidecar 模式通过以下环境变量配置。未显式设置时使用默认值。
通用配置
模型代理配置
MCP 网关配置
HarnessExtension 参数
profile 为 ops 时,进程内模式的默认组件会增加 long_run_control。
受管 Sidecar 模式需要 AgentKit 管理的云端运行时环境。在不含 Sidecar Runtime 的环境中启用时,启动会报错或以降级模式运行(取决于 HARNESS_SIDECAR_FAIL_OPEN 的值)。
直接使用模块
进程内模式的各个模块也可以直接使用: