文档Cloud SDK 参考

BEEOS CLOUD / DEVELOPER REFERENCE

Harness

创建、列出、读取、更新与删除已配置的 harness,并列出其可运行的模型(UHP)。

概览

harnesses domain 管理实例上已配置的 harness,并列出它们可运行的模型(UHP)。创建和更新是同步的:操作说明写明 Cloud 会提交每个运行时操作并等待后再响应,因此请为这些调用设置至少 60 秒的客户端超时。

7 个操作 · SDK 资源:TypeScript cloud.harnesses · Python cloud.harnesses · Go cloud.Harnesses · API 总览

路径以 /uhp/v1 开头的操作由 https://api.cloud.beeos.ai/uhp/v1 提供,而不是 https://api.cloud.beeos.ai/v1;SDK 会自动切换。

主要对象

UHPHarnessCreate

字段类型必填说明
namestring否harness 的显示名称。创建时必填,1 个或多个非空白字符。更新时必须等于当前名称;重命名会被拒绝,返回 422 beeos_field_not_supported。
basestring是harness 的 base(智能体运行时)。创建时必须等于 instance_id 所指实例的 harness,否则请求失败,返回 422 unsupported_base。更新时必须等于该 harness 当前的 base,base 不能修改。
default_modelstring否BeeOS Cloud 只在创建时采用该值;在 PUT 中使用不同的值会返回 422 beeos_field_not_supported,除非同时发送了 template_id。
system_promptstring否system prompt。BeeOS Cloud 不支持:非空值会被拒绝,返回 422 beeos_field_not_supported。
mcp_serversarray<UHPMcpServer>否创建时被拒绝(422 beeos_field_not_supported)。PUT 时,该列表会与运行时的 MCP 服务器做差异比较:列出的服务器会被设置,被省略的会被取消设置;只有当实例运行时没有任何 MCP 方法时才返回 422 beeos_mcp_not_supported。
skillsarray<UHPSkill>否harness 应具有的 skill。创建时不接受。更新时,该列表是完整的期望集合:带有 files、content 或 blob 的 skill 会被安装;列出的已安装 skill 只改变其 enabled 状态;未列出的已安装 skill 会被卸载,内置的除外。
pluginsarray<UHPPlugin>否需要 plugins 能力。每一项都需要 files 或 blob。
environmentstring否调用方范围内的 environment ID,或为空。需要 environments 能力。
disabled_toolsarray<string>否要禁用的工具名称。BeeOS Cloud 不支持:非空列表会被拒绝,返回 422 beeos_field_not_supported。
max_stepinteger否每次运行的最大步数。BeeOS Cloud 不支持:任何值都会被拒绝,返回 422 beeos_field_not_supported。 可为 null。
timeout_secondsinteger否运行超时,单位为秒。BeeOS Cloud 不支持:任何值都会被拒绝,返回 422 beeos_field_not_supported。 可为 null。
instance_idstring否BeeOS 扩展。托管新 harness 的实例(仅创建时)。
template_idstring否BeeOS 扩展。应用到该 harness 的 agent 模板。

完整字段和使用该对象的方法见附录。

UHPHarness

字段类型必填说明
idstring是harness 的 ID。以 chrn_ 开头,是其他请求中要使用的 harness_id。 约束: pattern=^chrn_.
objectstring否对象类型:始终为 harness。 可选值: "harness" — 一个 harness 对象.
namestring是harness 的显示名称。harness 没有显示名称时使用其名称,再没有则使用其 ID。
basestring是不透明。本规范不枚举它——客户端必须把它当作字符串对待,否则每次发布 harness 时协议都需要修订。
baseLabelstring否base 的可读名称:openclaw 为 OpenClaw,hermes 为 Hermes。base 没有已知名称时省略。
defaultModelstring否harness 用作主模型的模型 ID。没有时省略。
systemPromptstring否harness 的 system prompt。BeeOS Cloud 不支持该字段,因此从不返回。
mcpServersarray<UHPMcpServer>否挂载到 harness 的 MCP 服务器。仅在实例运行时读取单个 harness 才返回,且仅当实例支持 MCP 服务器时返回;列表中省略。
skillsarray<UHPSkill>否harness 上已安装的 skill。仅在实例运行时读取单个 harness 才返回;列表中省略。
pluginsarray<UHPPlugin>否已安装的插件。它们的服务器和 skill 在每个回合中都与 harness 自己的合并;上面的 mcpServers 和 skills 只报告直接写入它们的内容。
environmentstring否该 harness 的任务所读取的 environment(henv_),以只读方式挂载在其 mount 处;没有时为空。任务可以用自己的 environment 字段指明另一个。
disabledToolsarray<string>否为 harness 禁用的工具名称。BeeOS Cloud 不支持该字段,因此从不返回。
maxStepinteger否每次运行的最大步数。BeeOS Cloud 不支持该字段,因此从不返回。 可为 null。
timeoutSecondsinteger否运行超时,单位为秒。BeeOS Cloud 不支持该字段,因此从不返回。 可为 null。
createdAtinteger否Unix 毫秒

完整字段和使用该对象的方法见附录。

UHPHarnessModels

字段类型必填说明
harness_idstring否这些模型所属的 harness 的 ID。
backendstring否所列模型都属于的提供方系列:模型 ID 中第一个 / 之前的部分,例如 anthropic。模型属于多个系列或没有系列时省略。
defaultstring否harness 主模型的 ID。没有时省略。
fallbackstring否请求的模型无法运行时所使用的模型。BeeOS Cloud 不报告它,因此从不返回。
modelsarray<UHPModel>是harness 可以使用的模型,按其实例的模型列表的顺序。该列表为空时,只列出主模型。

完整字段和使用该对象的方法见附录。

UHPModelCatalog

字段类型必填说明
backendsmap<string, object>是调用方的 harness 可以使用的模型,按提供方系列分组。每个键是一个提供方系列,即模型 ID 中第一个 / 之前的部分,例如 anthropic。每个值包含该系列的 default 模型 ID 及其 models;ID 中没有系列的模型不在此列出。

完整字段和使用该对象的方法见附录。

UHPMcpServer

附加到 harness 的远程 MCP 服务器。只有已启用的条目会在回合中连接;已禁用的条目完全不得联系。无法访问的服务器不得使任务失败。与 2026-08-11 相比没有变化:进程(stdio)服务器在插件内部声明,见 PluginMcpServer。

字段类型必填说明
namestring是由服务器清理为对 CLI 安全的标识符。
urlstring是MCP 服务器的 HTTPS 端点,最多 2048 个字符,不含用户信息或片段。读取时报告为空。 约束: format=uri.
transportstring否服务器使用的传输方式。写入时默认为 http。两种传输都不使用的服务器不返回。 可选值: "http" — Streamable HTTP; "sse" — 较早的、基于 server-sent events 的 HTTP 传输. (枚举表) 默认值: "http".
enabledboolean否服务器是否启用。读取时始终报告 true。服务器只能被设置或移除:发送 false 会被拒绝,返回 422 invalid_input。 默认值: true.
headersmap<string, string>否发送给服务器的请求 header,例如凭证。header 名称和值必须非空。从不返回。发送 header 或 auth 时还需要 expires_at。
authstring否Bearer token,或由服务器解析的服务端引用。服务器绝不能向客户端返回已解析的凭证。
expires_atstring否BeeOS 扩展。所提供的短期凭证的过期时间;调用方通过再次 PUT 来刷新它。 约束: format=date-time.

完整字段和使用该对象的方法见附录。

UHPSkill

skill 是一个文件夹,而不是一个文件。服务器必须把整个文件夹具体化到 agent 可以读取的位置——只具体化 SKILL.md 会破坏每一个带有 references、脚本或数据的 skill。通过 GET 和 PUT 往返一个 harness 不得丢失 skill 的内容。

字段类型必填说明
namestring是skill 的名称,等于其文件夹的名称。为 1 到 128 个小写字母、数字、点、下划线和连字符,以字母或数字开头。已安装的 skill 为 2 到 64 个小写字母、数字和连字符。
enabledboolean否false 会抑制该 skill,包括从 base 继承的 skill。 默认值: true.
filesarray<UHPSkillFile>否该 bundle。必须包含 SKILL.md。
contentstring否单文件 bundle 的简写,其唯一成员是 SKILL.md。
blobstring否服务器分配的句柄,用于在行外存储的 bundle。客户端接收它,原样回传,并从 skill 文件端点读取文件。
sha256string否BeeOS 扩展。由 blob 引用的 Files bundle 的 SHA-256。
size_bytesstring否BeeOS 扩展。由 blob 引用的 Files bundle 的十进制字节大小。

完整字段和使用该对象的方法见附录。

UHPPlugin

安装到 harness 中的 Agent Plugins 包:根目录下的 plugin.json,mcp.json 中的 MCP 服务器,skills/ 下的 skill。客户端写入 files(或回传 blob),以及可选的 name 和 enabled;服务器在每次写入时从包中推导 manifest、mcpServers、skills 和 skipped,并在输入中忽略这些字段。被拒绝的包不会改变 harness。

字段类型必填说明
namestring是manifest 的 name。写入时可选;若发送则必须与 manifest 的一致。 约束: maxLength=64, pattern=^(?!.*(--|\.\.))[a-z0-9]([a-z0-9.-]*[a-z0-9])?$.
enabledboolean否false 表示插件保持已安装但处于惰性状态;其中的任何内容都不会被具体化或被联系。 默认值: true.
filesarray<UHPSkillFile>否该包。根目录下必须包含 plugin.json。
blobstring否服务器分配的句柄,用于在行外存储的包。客户端原样回传,并从插件文件端点读取文件。
manifestUHPPluginManifest否插件的 plugin.json,已解析。
mcpServersarray<UHPPluginMcpServer>否从 mcp.json 推导。占位符按未展开的形式报告;enabled 始终为 true,由插件自己的 enabled 决定。
skillsarray<UHPPluginSkill>否从 skills/ 推导,每个包含 SKILL.md 的直接子目录对应一项。
skippedarray<UHPPluginSkipped>否服务器发现但无法加载的内容。出现在服务器返回的每个插件对象上,没有被跳过的内容时为空。

完整字段和使用该对象的方法见附录。

UHPModel

字段类型必填说明
idstring是模型的 ID,通常为 provider/model 形式,例如 anthropic/claude-sonnet-5。
labelstring否模型的显示名称。BeeOS Cloud 不报告它,因此省略。
backendstring否模型的提供方系列:id 中第一个 / 之前的部分。id 中没有 / 时省略。
availableboolean是计算得出,而非声明:true 表示服务器此刻可以为该 harness 提供这个模型。把一个模型列为可用、随后却使任务失败,对客户端是最糟糕的结果,因为用户已经选择了它。
defaultboolean否是否为该 harness 的主模型。

完整字段和使用该对象的方法见附录。

典型流程

  1. 用 harnesses.create 创建 harness,再用 harnesses.get 读取,或用 harnesses.list 列出全部。
  2. 用 harnesses.update 修改其配置。
  3. 用 harnesses.listModels 查看它可运行的模型;harnesses.listAllModels 给出按后端分组的目录。
  4. 通过 responses 在该 harness 上运行任务。harnesses.delete 目前不受支持,会返回 422。

更新规则与错误处理见管理 harness。

方法

方法HTTP摘要
harnesses.listGET /uhp/v1/harnesses列出已配置的 harness
harnesses.createPOST /uhp/v1/harnesses创建一个已配置的 harness
harnesses.getGET /uhp/v1/harnesses/{harness_id}获取单个 harness
harnesses.updatePUT /uhp/v1/harnesses/{harness_id}更新 harness 配置
harnesses.deleteDELETE /uhp/v1/harnesses/{harness_id}删除 harness
harnesses.listModelsGET /uhp/v1/harnesses/{harness_id}/models该 harness 可以运行的模型
harnesses.listAllModelsGET /uhp/v1/models按后端划分的模型目录

harnesses.list

GET /uhp/v1/harnesses · Operation ID listHarnesses

列出已配置的 harness

SDK 方法

语言方法签名
TypeScriptcloud.harnesses.listlist(): Promise<Models.ListHarnessesResponse>
Pythoncloud.harnesses.listdef list(self) -> ListHarnessesResponse
Gocloud.Harnesses.Listfunc (r *HarnessesResource) List(ctx context.Context) (ListHarnessesResponse, error)

响应

200 调用方范围内的 harness。可能为空。 · application/json

字段类型必填说明
harnessesarray<UHPHarness>是—

错误

状态码Schema说明
401UHPErrorEnvelope凭证缺失、格式错误或未知
其他(default)UHPErrorEnvelopeUHP 协议错误信封

错误 schema 见错误。

示例

import { BeeOSClient } from "@beeos-ai/cloud-sdk";

const cloud = new BeeOSClient({
  baseURL: "https://api.cloud.beeos.ai/v1",
  apiKey: "YOUR_API_KEY", // bsk_ key: backend only
});
const result = await cloud.harnesses.list();
console.log(result);

harnesses.create

POST /uhp/v1/harnesses · Operation ID createHarness

创建一个已配置的 harness

同步:Cloud 提交每一项运行时操作并等待(最长 45 秒,因此请将客户端超时设为至少 60 秒)后再响应。502 harness_error 在 error.detail.operations[] 中列出逐项结果;504 beeos_harness_update_in_progress 表示工作仍在继续,请在 Retry-After 之后重试完全相同的请求(没有 Idempotency-Key 的创建不会被重新挂接,会创建第二个 harness);409 beeos_harness_busy 表示另有不同的写入正在进行,请在 Retry-After 之后重试;409 beeos_idempotency_conflict 表示该 Idempotency-Key 曾用于另一个不同的请求;503 harness_unavailable 表示实例未运行或操作日志不可用;413 表示请求体超过 4 MiB(大型 skill 请作为 Files blob 上传)。可选的 Idempotency-Key 头(1-128 个可见 ASCII 字符)使创建(POST,或带 template_id 的 PUT)可以安全重发:相同的 key 与请求返回同一个 harness。instance_id 和 name 为必填,base 必须等于实例的运行时(422);template_id 和 template_version 用 agent 模板创建 harness;default_model 仅在此处生效。创建时,非空的 skills 或 mcp_servers 会被拒绝(422 beeos_field_not_supported);请用 PUT 添加。BeeOS Cloud 尚不支持(422 beeos_field_not_supported):非空的 system_prompt、disabled_tools、environment 或 plugins,以及任何 max_step 或 timeout_seconds。未改变的 name 和空值会被接受,因此 GET-修改-PUT 的往返可以正常工作。

SDK 方法

语言方法签名
TypeScriptcloud.harnesses.createcreate(input: Models.UHPHarnessCreate, idempotencyKey?: string): Promise<Models.CreateHarnessResponse>
Pythoncloud.harnesses.createdef create(self, input: UHPHarnessCreate, options: CreateHarnessOptions | None = None) -> UHPHarness
Gocloud.Harnesses.Createfunc (r *HarnessesResource) Create(ctx context.Context, input UHPHarnessCreate, options CreateHarnessOptions) (UHPHarness, error)

参数

参数位置类型必填说明
Idempotency-Keyheaderstring否让创建智能体的请求可以安全重试的 key,1 到 128 个可见 ASCII 字符,不含空格。它适用于 POST /harnesses 以及带 template_id 的 PUT;其他更新会忽略它。用相同的 key 和相同的 body 重复请求会继续先前的尝试;用相同的 key 发起不同的请求则返回 409 beeos_idempotency_conflict。

请求体

application/json · 必填 · Schema: UHPHarnessCreate

字段类型必填说明
namestring否harness 的显示名称。创建时必填,1 个或多个非空白字符。更新时必须等于当前名称;重命名会被拒绝,返回 422 beeos_field_not_supported。
basestring是harness 的 base(智能体运行时)。创建时必须等于 instance_id 所指实例的 harness,否则请求失败,返回 422 unsupported_base。更新时必须等于该 harness 当前的 base,base 不能修改。
default_modelstring否BeeOS Cloud 只在创建时采用该值;在 PUT 中使用不同的值会返回 422 beeos_field_not_supported,除非同时发送了 template_id。
system_promptstring否system prompt。BeeOS Cloud 不支持:非空值会被拒绝,返回 422 beeos_field_not_supported。
mcp_serversarray<UHPMcpServer>否创建时被拒绝(422 beeos_field_not_supported)。PUT 时,该列表会与运行时的 MCP 服务器做差异比较:列出的服务器会被设置,被省略的会被取消设置;只有当实例运行时没有任何 MCP 方法时才返回 422 beeos_mcp_not_supported。
skillsarray<UHPSkill>否harness 应具有的 skill。创建时不接受。更新时,该列表是完整的期望集合:带有 files、content 或 blob 的 skill 会被安装;列出的已安装 skill 只改变其 enabled 状态;未列出的已安装 skill 会被卸载,内置的除外。
pluginsarray<UHPPlugin>否需要 plugins 能力。每一项都需要 files 或 blob。
environmentstring否调用方范围内的 environment ID,或为空。需要 environments 能力。
disabled_toolsarray<string>否要禁用的工具名称。BeeOS Cloud 不支持:非空列表会被拒绝,返回 422 beeos_field_not_supported。
max_stepinteger否每次运行的最大步数。BeeOS Cloud 不支持:任何值都会被拒绝,返回 422 beeos_field_not_supported。 可为 null。
timeout_secondsinteger否运行超时,单位为秒。BeeOS Cloud 不支持:任何值都会被拒绝,返回 422 beeos_field_not_supported。 可为 null。
instance_idstring否BeeOS 扩展。托管新 harness 的实例(仅创建时)。
template_idstring否BeeOS 扩展。应用到该 harness 的 agent 模板。

响应

200 已创建的 harness · application/json · Schema: UHPHarness

字段类型必填说明
idstring是harness 的 ID。以 chrn_ 开头,是其他请求中要使用的 harness_id。 约束: pattern=^chrn_.
objectstring否对象类型:始终为 harness。 可选值: "harness" — 一个 harness 对象.
namestring是harness 的显示名称。harness 没有显示名称时使用其名称,再没有则使用其 ID。
basestring是不透明。本规范不枚举它——客户端必须把它当作字符串对待,否则每次发布 harness 时协议都需要修订。
baseLabelstring否base 的可读名称:openclaw 为 OpenClaw,hermes 为 Hermes。base 没有已知名称时省略。
defaultModelstring否harness 用作主模型的模型 ID。没有时省略。
systemPromptstring否harness 的 system prompt。BeeOS Cloud 不支持该字段,因此从不返回。
mcpServersarray<UHPMcpServer>否挂载到 harness 的 MCP 服务器。仅在实例运行时读取单个 harness 才返回,且仅当实例支持 MCP 服务器时返回;列表中省略。
skillsarray<UHPSkill>否harness 上已安装的 skill。仅在实例运行时读取单个 harness 才返回;列表中省略。
pluginsarray<UHPPlugin>否已安装的插件。它们的服务器和 skill 在每个回合中都与 harness 自己的合并;上面的 mcpServers 和 skills 只报告直接写入它们的内容。
environmentstring否该 harness 的任务所读取的 environment(henv_),以只读方式挂载在其 mount 处;没有时为空。任务可以用自己的 environment 字段指明另一个。
disabledToolsarray<string>否为 harness 禁用的工具名称。BeeOS Cloud 不支持该字段,因此从不返回。
maxStepinteger否每次运行的最大步数。BeeOS Cloud 不支持该字段,因此从不返回。 可为 null。
timeoutSecondsinteger否运行超时,单位为秒。BeeOS Cloud 不支持该字段,因此从不返回。 可为 null。
createdAtinteger否Unix 毫秒

错误

状态码Schema说明
400UHPErrorEnvelopeUHP 协议错误信封
401UHPErrorEnvelope凭证缺失、格式错误或未知
409UHPErrorEnvelopeUHP 协议错误信封
413UHPErrorEnvelopeUHP 协议错误信封
422UHPErrorEnvelopeUHP 协议错误信封
502UHPErrorEnvelopeUHP 协议错误信封
503UHPErrorEnvelopeUHP 协议错误信封
504UHPErrorEnvelopeUHP 协议错误信封
其他(default)UHPErrorEnvelopeUHP 协议错误信封

错误 schema 见错误。

示例

import { BeeOSClient } from "@beeos-ai/cloud-sdk";

const cloud = new BeeOSClient({
  baseURL: "https://api.cloud.beeos.ai/v1",
  apiKey: "YOUR_API_KEY", // bsk_ key: backend only
});
const result = await cloud.harnesses.create({ base: "example_base" });
console.log(result);

harnesses.get

GET /uhp/v1/harnesses/{harness_id} · Operation ID getHarness

获取单个 harness

SDK 方法

语言方法签名
TypeScriptcloud.harnesses.getget(harness_id: string): Promise<Models.GetHarnessResponse>
Pythoncloud.harnesses.getdef get(self, harness_id: str) -> UHPHarness
Gocloud.Harnesses.Getfunc (r *HarnessesResource) Get(ctx context.Context, harnessid string) (UHPHarness, error)

参数

参数位置类型必填说明
harness_idpathstring是harness 的 ID。以 chrn_ 开头。

响应

200 该 harness · application/json · Schema: UHPHarness

字段类型必填说明
idstring是harness 的 ID。以 chrn_ 开头,是其他请求中要使用的 harness_id。 约束: pattern=^chrn_.
objectstring否对象类型:始终为 harness。 可选值: "harness" — 一个 harness 对象.
namestring是harness 的显示名称。harness 没有显示名称时使用其名称,再没有则使用其 ID。
basestring是不透明。本规范不枚举它——客户端必须把它当作字符串对待,否则每次发布 harness 时协议都需要修订。
baseLabelstring否base 的可读名称:openclaw 为 OpenClaw,hermes 为 Hermes。base 没有已知名称时省略。
defaultModelstring否harness 用作主模型的模型 ID。没有时省略。
systemPromptstring否harness 的 system prompt。BeeOS Cloud 不支持该字段,因此从不返回。
mcpServersarray<UHPMcpServer>否挂载到 harness 的 MCP 服务器。仅在实例运行时读取单个 harness 才返回,且仅当实例支持 MCP 服务器时返回;列表中省略。
skillsarray<UHPSkill>否harness 上已安装的 skill。仅在实例运行时读取单个 harness 才返回;列表中省略。
pluginsarray<UHPPlugin>否已安装的插件。它们的服务器和 skill 在每个回合中都与 harness 自己的合并;上面的 mcpServers 和 skills 只报告直接写入它们的内容。
environmentstring否该 harness 的任务所读取的 environment(henv_),以只读方式挂载在其 mount 处;没有时为空。任务可以用自己的 environment 字段指明另一个。
disabledToolsarray<string>否为 harness 禁用的工具名称。BeeOS Cloud 不支持该字段,因此从不返回。
maxStepinteger否每次运行的最大步数。BeeOS Cloud 不支持该字段,因此从不返回。 可为 null。
timeoutSecondsinteger否运行超时,单位为秒。BeeOS Cloud 不支持该字段,因此从不返回。 可为 null。
createdAtinteger否Unix 毫秒

错误

状态码Schema说明
404UHPErrorEnvelope调用方范围内没有这个对象。对于超出调用方范围的对象,服务器返回 404 而不是 403,以免泄露某个 ID 是否存在。
其他(default)UHPErrorEnvelopeUHP 协议错误信封

错误 schema 见错误。

示例

import { BeeOSClient } from "@beeos-ai/cloud-sdk";

const cloud = new BeeOSClient({
  baseURL: "https://api.cloud.beeos.ai/v1",
  apiKey: "YOUR_API_KEY", // bsk_ key: backend only
});
const result = await cloud.harnesses.get("harness_123");
console.log(result);

harnesses.update

PUT /uhp/v1/harnesses/{harness_id} · Operation ID updateHarness

更新 harness 配置

同步:Cloud 提交每一项运行时操作并等待(最长 45 秒,因此请将客户端超时设为至少 60 秒)后再响应。502 harness_error 在 error.detail.operations[] 中列出逐项结果;504 beeos_harness_update_in_progress 表示工作仍在继续,请在 Retry-After 之后重试完全相同的请求(没有 Idempotency-Key 的创建不会被重新挂接,会创建第二个 harness);409 beeos_harness_busy 表示另有不同的写入正在进行,请在 Retry-After 之后重试;409 beeos_idempotency_conflict 表示该 Idempotency-Key 曾用于另一个不同的请求;503 harness_unavailable 表示实例未运行或操作日志不可用;413 表示请求体超过 4 MiB(大型 skill 请作为 Files blob 上传)。可选的 Idempotency-Key 头(1-128 个可见 ASCII 字符)使创建(POST,或带 template_id 的 PUT)可以安全重发:相同的 key 与请求返回同一个 harness。缺省的字段保持不变;出现的列表会替换整个列表。出现 skills 时,会与已安装的 skill 做差异比较:列出的、带有 files、content 或 blob(三者恰好一个)的 skill 会被安装;已安装且列出时 enabled 标志不同的 skill 会被更新;已安装但被省略的 skill 会被卸载,随运行时捆绑的除外;列出的、未安装且没有 files、content 或 blob 的 skill 返回 422;对全新安装设置 enabled:false 返回 422。出现 mcp_servers 时,会与运行时的 MCP 服务器做差异比较:随请求带有凭证(headers,或 auth 加 expires_at,最多提前 24 小时)的服务器会被设置,已连接且未带凭证的服务器会被保留,被省略的服务器会被取消设置;url 必须是 https,transport 为 http 或 sse;GET 永远不会返回 url 或凭证。只有当实例运行时没有任何 MCP 方法时才返回 422 beeos_mcp_not_supported。base 不可变;修改 name,或(没有 template_id 时)使 default_model 不同于当前值,会返回 422 beeos_field_not_supported。BeeOS Cloud 尚不支持(422 beeos_field_not_supported):非空的 system_prompt、disabled_tools、environment 或 plugins,以及任何 max_step 或 timeout_seconds。未改变的 name 和空值会被接受,因此 GET-修改-PUT 的往返可以正常工作。

SDK 方法

语言方法签名
TypeScriptcloud.harnesses.updateupdate(harness_id: string, input: Models.UHPHarnessCreate, idempotencyKey?: string): Promise<Models.UpdateHarnessResponse>
Pythoncloud.harnesses.updatedef update(self, harness_id: str, input: UHPHarnessCreate, options: UpdateHarnessOptions | None = None) -> UHPHarness
Gocloud.Harnesses.Updatefunc (r *HarnessesResource) Update(ctx context.Context, harnessid string, input UHPHarnessCreate, options UpdateHarnessOptions) (UHPHarness, error)

参数

参数位置类型必填说明
harness_idpathstring是harness 的 ID。以 chrn_ 开头。
Idempotency-Keyheaderstring否让创建智能体的请求可以安全重试的 key,1 到 128 个可见 ASCII 字符,不含空格。它适用于 POST /harnesses 以及带 template_id 的 PUT;其他更新会忽略它。用相同的 key 和相同的 body 重复请求会继续先前的尝试;用相同的 key 发起不同的请求则返回 409 beeos_idempotency_conflict。

请求体

application/json · 必填 · Schema: UHPHarnessCreate

字段类型必填说明
namestring否harness 的显示名称。创建时必填,1 个或多个非空白字符。更新时必须等于当前名称;重命名会被拒绝,返回 422 beeos_field_not_supported。
basestring是harness 的 base(智能体运行时)。创建时必须等于 instance_id 所指实例的 harness,否则请求失败,返回 422 unsupported_base。更新时必须等于该 harness 当前的 base,base 不能修改。
default_modelstring否BeeOS Cloud 只在创建时采用该值;在 PUT 中使用不同的值会返回 422 beeos_field_not_supported,除非同时发送了 template_id。
system_promptstring否system prompt。BeeOS Cloud 不支持:非空值会被拒绝,返回 422 beeos_field_not_supported。
mcp_serversarray<UHPMcpServer>否创建时被拒绝(422 beeos_field_not_supported)。PUT 时,该列表会与运行时的 MCP 服务器做差异比较:列出的服务器会被设置,被省略的会被取消设置;只有当实例运行时没有任何 MCP 方法时才返回 422 beeos_mcp_not_supported。
skillsarray<UHPSkill>否harness 应具有的 skill。创建时不接受。更新时,该列表是完整的期望集合:带有 files、content 或 blob 的 skill 会被安装;列出的已安装 skill 只改变其 enabled 状态;未列出的已安装 skill 会被卸载,内置的除外。
pluginsarray<UHPPlugin>否需要 plugins 能力。每一项都需要 files 或 blob。
environmentstring否调用方范围内的 environment ID,或为空。需要 environments 能力。
disabled_toolsarray<string>否要禁用的工具名称。BeeOS Cloud 不支持:非空列表会被拒绝,返回 422 beeos_field_not_supported。
max_stepinteger否每次运行的最大步数。BeeOS Cloud 不支持:任何值都会被拒绝,返回 422 beeos_field_not_supported。 可为 null。
timeout_secondsinteger否运行超时,单位为秒。BeeOS Cloud 不支持:任何值都会被拒绝,返回 422 beeos_field_not_supported。 可为 null。
instance_idstring否BeeOS 扩展。托管新 harness 的实例(仅创建时)。
template_idstring否BeeOS 扩展。应用到该 harness 的 agent 模板。

响应

200 已更新的 harness · application/json · Schema: UHPHarness

字段类型必填说明
idstring是harness 的 ID。以 chrn_ 开头,是其他请求中要使用的 harness_id。 约束: pattern=^chrn_.
objectstring否对象类型:始终为 harness。 可选值: "harness" — 一个 harness 对象.
namestring是harness 的显示名称。harness 没有显示名称时使用其名称,再没有则使用其 ID。
basestring是不透明。本规范不枚举它——客户端必须把它当作字符串对待,否则每次发布 harness 时协议都需要修订。
baseLabelstring否base 的可读名称:openclaw 为 OpenClaw,hermes 为 Hermes。base 没有已知名称时省略。
defaultModelstring否harness 用作主模型的模型 ID。没有时省略。
systemPromptstring否harness 的 system prompt。BeeOS Cloud 不支持该字段,因此从不返回。
mcpServersarray<UHPMcpServer>否挂载到 harness 的 MCP 服务器。仅在实例运行时读取单个 harness 才返回,且仅当实例支持 MCP 服务器时返回;列表中省略。
skillsarray<UHPSkill>否harness 上已安装的 skill。仅在实例运行时读取单个 harness 才返回;列表中省略。
pluginsarray<UHPPlugin>否已安装的插件。它们的服务器和 skill 在每个回合中都与 harness 自己的合并;上面的 mcpServers 和 skills 只报告直接写入它们的内容。
environmentstring否该 harness 的任务所读取的 environment(henv_),以只读方式挂载在其 mount 处;没有时为空。任务可以用自己的 environment 字段指明另一个。
disabledToolsarray<string>否为 harness 禁用的工具名称。BeeOS Cloud 不支持该字段,因此从不返回。
maxStepinteger否每次运行的最大步数。BeeOS Cloud 不支持该字段,因此从不返回。 可为 null。
timeoutSecondsinteger否运行超时,单位为秒。BeeOS Cloud 不支持该字段,因此从不返回。 可为 null。
createdAtinteger否Unix 毫秒

错误

状态码Schema说明
400UHPErrorEnvelopeUHP 协议错误信封
404UHPErrorEnvelope调用方范围内没有这个对象。对于超出调用方范围的对象,服务器返回 404 而不是 403,以免泄露某个 ID 是否存在。
409UHPErrorEnvelopeUHP 协议错误信封
413UHPErrorEnvelopeUHP 协议错误信封
422UHPErrorEnvelopeUHP 协议错误信封
502UHPErrorEnvelopeUHP 协议错误信封
503UHPErrorEnvelopeUHP 协议错误信封
504UHPErrorEnvelopeUHP 协议错误信封
其他(default)UHPErrorEnvelopeUHP 协议错误信封

错误 schema 见错误。

示例

import { BeeOSClient } from "@beeos-ai/cloud-sdk";

const cloud = new BeeOSClient({
  baseURL: "https://api.cloud.beeos.ai/v1",
  apiKey: "YOUR_API_KEY", // bsk_ key: backend only
});
const result = await cloud.harnesses.update("harness_123", { base: "example_base" });
console.log(result);

harnesses.delete

DELETE /uhp/v1/harnesses/{harness_id} · Operation ID deleteHarness

删除 harness

BeeOS Cloud 尚不支持:找到该 harness 之后返回 422 beeos_harness_delete_not_supported。

SDK 方法

语言方法签名
TypeScriptcloud.harnesses.deletedelete(harness_id: string): Promise<Models.DeleteHarnessResponse>
Pythoncloud.harnesses.deletedef delete(self, harness_id: str) -> DeleteHarnessResponse
Gocloud.Harnesses.Deletefunc (r *HarnessesResource) Delete(ctx context.Context, harnessid string) (DeleteHarnessResponse, error)

参数

参数位置类型必填说明
harness_idpathstring是harness 的 ID。以 chrn_ 开头。

响应

200 已删除 · application/json

字段类型必填说明
idstring否—
deletedboolean否—

错误

状态码Schema说明
404UHPErrorEnvelope调用方范围内没有这个对象。对于超出调用方范围的对象,服务器返回 404 而不是 403,以免泄露某个 ID 是否存在。
422UHPErrorEnvelopeUHP 协议错误信封
其他(default)UHPErrorEnvelopeUHP 协议错误信封

错误 schema 见错误。

示例

import { BeeOSClient } from "@beeos-ai/cloud-sdk";

const cloud = new BeeOSClient({
  baseURL: "https://api.cloud.beeos.ai/v1",
  apiKey: "YOUR_API_KEY", // bsk_ key: backend only
});
const result = await cloud.harnesses.delete("harness_123");
console.log(result);

harnesses.listModels

GET /uhp/v1/harnesses/{harness_id}/models · Operation ID listHarnessModels

该 harness 可以运行的模型

SDK 方法

语言方法签名
TypeScriptcloud.harnesses.listModelslistModels(harness_id: string): Promise<Models.ListHarnessModelsResponse>
Pythoncloud.harnesses.list_modelsdef list_models(self, harness_id: str) -> UHPHarnessModels
Gocloud.Harnesses.ListModelsfunc (r *HarnessesResource) ListModels(ctx context.Context, harnessid string) (UHPHarnessModels, error)

参数

参数位置类型必填说明
harness_idpathstring是harness 的 ID。以 chrn_ 开头。

响应

200 该 harness 允许使用的模型、默认模型和已授权的备选模型 · application/json · Schema: UHPHarnessModels

字段类型必填说明
harness_idstring否这些模型所属的 harness 的 ID。
backendstring否所列模型都属于的提供方系列:模型 ID 中第一个 / 之前的部分,例如 anthropic。模型属于多个系列或没有系列时省略。
defaultstring否harness 主模型的 ID。没有时省略。
fallbackstring否请求的模型无法运行时所使用的模型。BeeOS Cloud 不报告它,因此从不返回。
modelsarray<UHPModel>是harness 可以使用的模型,按其实例的模型列表的顺序。该列表为空时,只列出主模型。

错误

状态码Schema说明
404UHPErrorEnvelope调用方范围内没有这个对象。对于超出调用方范围的对象,服务器返回 404 而不是 403,以免泄露某个 ID 是否存在。
其他(default)UHPErrorEnvelopeUHP 协议错误信封

错误 schema 见错误。

示例

import { BeeOSClient } from "@beeos-ai/cloud-sdk";

const cloud = new BeeOSClient({
  baseURL: "https://api.cloud.beeos.ai/v1",
  apiKey: "YOUR_API_KEY", // bsk_ key: backend only
});
const result = await cloud.harnesses.listModels("harness_123");
console.log(result);

harnesses.listAllModels

GET /uhp/v1/models · Operation ID listModels

按后端划分的模型目录

SDK 方法

语言方法签名
TypeScriptcloud.harnesses.listAllModelslistAllModels(): Promise<Models.ListModelsResponse>
Pythoncloud.harnesses.list_all_modelsdef list_all_models(self) -> UHPModelCatalog
Gocloud.Harnesses.ListAllModelsfunc (r *HarnessesResource) ListAllModels(ctx context.Context) (UHPModelCatalog, error)

响应

200 按后端分组的模型,每个模型带有计算得出的可用性 · application/json · Schema: UHPModelCatalog

字段类型必填说明
backendsmap<string, object>是调用方的 harness 可以使用的模型,按提供方系列分组。每个键是一个提供方系列,即模型 ID 中第一个 / 之前的部分,例如 anthropic。每个值包含该系列的 default 模型 ID 及其 models;ID 中没有系列的模型不在此列出。

错误

状态码Schema说明
401UHPErrorEnvelope凭证缺失、格式错误或未知
其他(default)UHPErrorEnvelopeUHP 协议错误信封

错误 schema 见错误。

示例

import { BeeOSClient } from "@beeos-ai/cloud-sdk";

const cloud = new BeeOSClient({
  baseURL: "https://api.cloud.beeos.ai/v1",
  apiKey: "YOUR_API_KEY", // bsk_ key: backend only
});
const result = await cloud.harnesses.listAllModels();
console.log(result);