Skip to main content
Harness 服务是一个独立的 VeADK 智能体运行时,通过 veadk harness 命令行进行创建、配置和部署。部署后,Harness 服务以 AgentKit Runtime 的形式运行,提供对话接口、会话管理和运行时配置覆盖能力,适合需要独立托管智能体并通过 HTTP API 调用的场景。

何时使用

前置条件

  • 已安装 veadk-python[harness];
  • 已配置火山引擎访问凭据(VOLCENGINE_ACCESS_KEY 和 VOLCENGINE_SECRET_KEY);
  • 不要把 .env、API Key 或访问凭据提交到代码仓库。

命令总览

veadk harness 提供以下子命令:

创建项目

该命令在 my-harness 目录中生成以下文件:

配置智能体

使用 veadk harness add 将参数写入 harness.yaml:

配置参数

veadk harness add 支持以下参数(未设置的字段保持原值): 每个后端的连接参数也有独立的标志,例如 --knowledgebase-project、--knowledgebase-region、--long-term-memory-host、--short-term-memory-host 等,写入对应组件分节。

harness.yaml 配置结构

harness.yaml 使用分节结构组织配置。部署时,顶层字段和 model 分节被展平为运行时环境变量(如 model.name 映射到 MODEL_AGENT_NAME),每个组件的 type 选择后端,其余参数映射到对应后端读取的环境变量。
harness.yaml
也可以在 harness.yaml 中使用 harness: 包装分节,将所有 Harness 参数放在一个嵌套对象中。harness: 分节内的字段会被提取并与顶层字段合并。

结构化资源配置

除 veadk harness add 写入的基础字段外,harness.yaml 还支持以下结构化字段,用于配置 AgentKit 控制面下发的资源。这些字段在部署时转换为对应的 JSON 环境变量: 结构化资源配置示例:
harness.yaml

查看配置

该命令输出 harness.yaml 中已配置的参数,以及可通过 veadk harness invoke 在调用时覆盖的参数列表。
知识库、长期记忆、采样参数(temperature、top_p 等)和注册表(registry)等字段仅通过 HTTP API 覆盖,不作为 CLI 标志暴露。

部署

该命令读取 harness.yaml,将其转换为运行时环境变量,执行 AgentKit 云端构建和 Runtime 创建。部署完成后,Runtime 端点、Runtime ID 和 API Key 会记录到 harness.json 中。
部署会创建云端运行资源。执行前应确认项目、地域与 Runtime 名称无误。销毁 Runtime 时执行 veadk agentkit destroy 会删除云端运行资源,操作前应保留需要的日志和数据。

认证方式

默认使用 API Key 认证(key_auth)。在 harness.yaml 中添加 auth 分节或通过 --discovery-url 和 --allowed-id 启用 OAuth2/JWT 认证(custom_jwt):
harness.yaml
使用 OAuth2/JWT 认证时,调用需在请求头中携带 Authorization: Bearer <用户池 JWT>,CLI 不会生成该令牌。

调用 Harness 服务

--name 指定 Harness 名称,其 URL 和 API Key 从 harness.json 中读取。也可以通过 --url 和 --key 直接指定。

调用参数

调用时可以使用覆盖标志在本次调用中覆盖已部署智能体的配置,例如 --tools、--skills、--system-prompt、--model-name 等。覆盖仅对本次调用生效,不修改 harness.yaml。

HTTP API

部署后的 Harness 服务提供以下 HTTP 接口。

对话接口

会话与配置接口

运行时配置覆盖

Harness 服务支持在每次请求中覆盖已部署智能体的配置。覆盖通过请求体中的 harness 字段传入,仅对本次调用生效。 /harness/invoke 请求体结构:
请求体

harness_merge 行为

harness_merge 控制请求配置与默认配置的合并方式:

可覆盖字段

以下字段可通过 harness 在请求级覆盖:
知识库和长期记忆的请求级覆盖通过 AgentKit 控制面资源 ID 解析为运行时配置。传入 id 时,Harness 服务会从 AgentKit 控制面获取对应资源的连接信息。

创建会话

请求体可包含以下字段:

查询默认配置

返回当前 Harness 的默认配置,包含模型名称、运行时后端、最大 LLM 调用次数等信息。支持 camelCase 查询参数(appName、userId、sessionId),也支持 POST 方式提交请求体。

环境变量

Harness 服务通过环境变量配置运行时行为。harness.yaml 在部署时自动转换为对应的环境变量,也可以直接在运行时环境中设置。

模型与工具

资源配置

会话与记忆后端

max_llm_calls 的默认值为 10。未显式设置时,单次运行最多调用 LLM 10 次。可在 harness.yaml 中或通过请求级覆盖调整。
最后修改于 2026年9月19日