harness 命令组用于以无代码方式创建智能体:先初始化一个 harness.yaml,再逐项设置字段,最后直接部署为运行时,无需编写任何应用代码。
harness init
创建一个 harness 目录,包含harness.yaml 与 .env.example,用于Harness。
harness.yaml 是无代码智能体的唯一配置来源,harness deploy 会将其展开为运行时的环境变量。生成的文件里,常用字段处于启用状态,各组件的可选参数以注释形式按后端分组给出——设好组件的 type 后,取消注释该后端下的参数即可。完整内容如下:
harness.yaml
harness_name:harness 与运行时名称,同时用作知识库、长期记忆的索引名(envHARNESS_NAME,flag--name)。cloud:部署使用的云厂商和区域,由harness init写入;云厂商为volcengine或byteplus。model.name:推理模型名称;部署后模型的火山方舟鉴权由运行时 IAM 角色提供,无需在此填写(envMODEL_NAME,flag--model-name)。tools:内置工具名列表(envTOOLS,flag--tools)。skills:技能中心名称列表(envSKILLS,flag--skills)。system_prompt:智能体指令,留空则使用服务端默认(envSYSTEM_PROMPT,flag--system-prompt)。description:用于发现和生成 AgentCard 的智能体描述(envDESCRIPTION,flag--description)。runtime:智能体运行时后端,adk(默认)或codex(envRUNTIME,flag--runtime)。max_llm_calls:每次运行允许的默认最大 LLM 调用次数;agentkit harness invoke --max-llm-calls可为单次请求覆盖。structured_tool_calls/include_tools_every_turn:控制工具调用格式,以及是否在每轮模型调用中重复发送工具定义。registry:可选 A2A registry。space_id选择空间,top_k控制最多检索的 AgentCard 数量,endpoint与region指定服务位置。knowledgebase:知识库。type留空即禁用,支持viking、opensearch、redis;设好type后取消注释该后端下对应的连接参数。long_term_memory:长期记忆。type留空即禁用,支持viking、opensearch、redis、mem0。short_term_memory:短期会话存储。type为local(默认)、sqlite、mysql或postgresql。auth(可选):省略则使用默认的 API Key 鉴权key_auth;填入discovery_url与allowed_ids则改用 OAuth2/JWTcustom_jwt,网关仅接受该用户池签发、受众在白名单内的 token。
展开规则:
harness deploy 将顶层字段与 model 扁平化为环境变量(如 model.name → MODEL_NAME),组件参数映射为该后端读取的 DATABASE_<BACKEND>_* 等变量;空值会被跳过,由服务端回退到默认值。harness init 同时生成的 .env.example 只包含可选的 Volcengine AK/SK 占位符,智能体配置全部在 harness.yaml 中。harness set
设置harness.yaml 中的字段(局部更新,仅修改传入的字段)。不带任何标志运行时会列出当前字段。字段分为若干组:核心(模型 / 工具 / 技能 / 提示词 / 运行时)、knowledgebase、long-term-memory、short-term-memory 以及鉴权。设置某个组件时,请先设置其 --<组件>-type,再设置连接参数。
harness dev
根据当前目录的harness.yaml 在本地启动 Harness 服务,用于开发和调试。默认监听本机的 127.0.0.1:8000;如需从其它设备访问,可显式修改监听地址。
harness deploy
构建 harness 镜像,并根据harness.yaml 创建或更新运行时。
harness invoke
调用已部署的 Harness,并可为本次请求临时覆盖模型、系统提示词、工具、技能、运行时后端或 A2A registry。覆盖项只影响当前请求,不会修改harness.yaml。
custom_jwt 鉴权的 Harness,可以通过 --token 显式传入 Bearer token,也可以先运行 agentkit login --identity-only <sso-address> 保存 OIDC 会话。CLI 只会在 Runtime endpoint 为 HTTPS、Runtime 的 discovery URL 与当前登录 issuer 匹配且当前 OAuth client ID 位于允许列表时自动转发缓存的 id_token。