文档Cloud SDK 参考

BEEOS CLOUD / DEVELOPER REFERENCE

画布

画布分享链接、快照与会话画布会话。

概览

canvases domain 管理实例画布的分享链接和快照,并解析会话的画布会话。

6 个操作 · SDK 资源:TypeScript cloud.canvases · Python cloud.canvases · Go cloud.Canvases · API 总览

主要对象

CanvasShare

字段类型必填说明
idstring是分享的唯一 ID。
canvasIdstring是被分享的画布的 ID。一个画布最多有一个分享。
slugstring是分享的公开标识,用于构造分享链接。更新分享时保持不变。
modestring是访客如何获得访问权。password 要求访客输入创建分享时设置的密码。其他任何值(例如 link)表示任何拥有链接的人都可以打开画布。
allowInteractionboolean是访客是否可以与画布交互。为 false 时,访客只能查看。
expiresAtstring否分享失效的时间,RFC 3339 时间戳。分享不过期时省略;通过此 API 创建的分享永不过期。
createdAtstring是分享首次创建的时间,RFC 3339 时间戳。更新分享不会改变它。

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

CanvasSnapshot

字段类型必填说明
idstring是快照的唯一 ID。把它传给 restore 操作。
canvasIdstring是快照所属画布的 ID。
componentsSnapshotstring否生成快照时画布的内容,为 base64 编码的 JSON:surface 数组,每个都有 surfaceId、presentation、components 和 root。未捕获内容时省略。
actorTypestring是做出快照所记录的大部分变更的操作者类型:user 为人(还原点也记录为 user),agent 为智能体,system 为没有已知操作者的自动快照。
actorIdstring是actorType 所指的操作者的 ID。没有已知操作者的自动快照为 system。
descriptionstring否关于快照的简短备注,例如自动快照为 Auto-snapshot,还原点为 Restored from v3。没有时省略。
versioninteger是快照所记录的画布内容的版本。数字越大越新。
createdAtstring是生成快照的时间,RFC 3339 时间戳。

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

CanvasSessionDocument

字段类型必填说明
transportstring是ticket 的连接方式:始终为 relay。
protocolVersioninteger是ticket 协议的版本。目前为 1。
headerRealtimeTicketHeader是已签名 ticket 的 header。
relayUrlstring是该画布的画布中继 WebSocket URL,以 /ws/{canvasId} 结尾。
ticketstring是已签名的一次性 ticket(JWT),授权一次中继连接。有效期为 60 秒。
issuedAtstring是ticket 的签发时间,RFC 3339 时间戳。 约束: format=date-time.
expiresAtstring是ticket 的过期时间,RFC 3339 时间戳。ticket 的有效期为 60 秒。 约束: format=date-time.
claimsCanvasTicketClaims是已签名 ticket 中包含的 claims。

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

RealtimeTicketHeader

字段类型必填说明
algstring是ticket 的签名算法:RS256。
typstring是Token 类型:JWT。
kidstring是签署该 ticket 的密钥的 ID。

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

CanvasTicketClaims

字段类型必填说明
issstring是ticket 的签发者。
substring是未使用。Cloud 不接受外部用户 ID,因此该声明为空。
jtistring是ticket 的唯一 ID。
purposestring是ticket 的用途:始终为 canvas_session。
instance_idstring是该画布所属实例的 ID。
platform_agent_idstring是该画布会话所针对的 agent 的 ID,即请求中的 platformAgentId。
client_idstring是为这次中继客户端连接生成的 ID。
conversation_idstring是该画布所属会话的 ID,即请求中的 conversationId。
canvas_idstring是ticket 授予访问权限的画布的 ID。
rolestring是在该画布上授予的访问角色:viewer 或 editor。 可选值: "viewer" — 可以查看画布,但不能修改; "editor" — 可以查看和编辑画布. (枚举表)
session_idstring是为该 ticket 创建的实时会话的 ID。
audarray<string>是ticket 的目标受众:画布中继。
iatinteger是ticket 的签发时间,Unix 秒。
expinteger是ticket 的过期时间,Unix 秒。

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

典型流程

  1. 用 canvases.getSession 解析会话的画布会话。
  2. 用 canvases.createShare 分享画布,用 canvases.getShare 读取链接;用 canvases.deleteShare 撤回。
  3. 用 canvases.listSnapshots 列出已保存的状态,用 canvases.restoreSnapshot 恢复其中一个。

方法

方法HTTP摘要
canvases.getSessionGET /v1/instances/{instanceId}/canvas-sessions/{conversationId}解析会话画布会话
canvases.getShareGET /v1/instances/{instanceId}/canvases/{canvasId}/share获取画布分享链接
canvases.createSharePOST /v1/instances/{instanceId}/canvases/{canvasId}/share创建画布分享链接
canvases.deleteShareDELETE /v1/instances/{instanceId}/canvases/{canvasId}/share撤销画布分享链接
canvases.listSnapshotsGET /v1/instances/{instanceId}/canvases/{canvasId}/snapshots列出画布快照
canvases.restoreSnapshotPOST /v1/instances/{instanceId}/canvases/{canvasId}/snapshots/{snapshotId}/restore恢复画布快照

canvases.getSession

GET /v1/instances/{instanceId}/canvas-sessions/{conversationId} · Operation ID getCanvasSession

解析会话画布会话

SDK 方法

语言方法签名
TypeScriptcloud.canvases.getSessiongetSession(instanceId: string, conversationId: string, XBeeOSConversationID: string, XBeeOSPlatformAgentID: string): Promise<Models.GetCanvasSessionResponse>
Pythoncloud.canvases.get_sessiondef get_session(self, instance_id: str, conversation_id: str, options: GetCanvasSessionOptions) -> GetCanvasSessionResponse
Gocloud.Canvases.GetSessionfunc (r *CanvasesResource) GetSession(ctx context.Context, instanceId string, conversationId string, options GetCanvasSessionOptions) (GetCanvasSessionResponse, error)

参数

参数位置类型必填说明
instanceIdpathstring是承载该智能体的实例的 ID。它必须属于你的应用。
conversationIdpathstring是要查询画布会话的会话 ID。它必须等于 X-BeeOS-Conversation-ID header。
X-BeeOS-Conversation-IDheaderstring是使用该画布的会话的 ID。查询会话时,它必须等于路径中的 conversationId。
X-BeeOS-Platform-Agent-IDheaderstring是拥有该画布的智能体的 ID。它必须是 instanceId 的智能体。

响应

200 · application/json

字段类型必填说明
successboolean是—
dataobject是可为 null。

错误

状态码Schema说明
其他(default)ErrorResponseCloud Server 错误

错误 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.canvases.getSession("instance_123", "conversation_123", "conversation_123", "agent_123");
console.log(result);

canvases.getShare

GET /v1/instances/{instanceId}/canvases/{canvasId}/share · Operation ID getShareCanvas

获取画布分享链接

SDK 方法

语言方法签名
TypeScriptcloud.canvases.getSharegetShare(instanceId: string, canvasId: string, XBeeOSConversationID: string, XBeeOSPlatformAgentID: string): Promise<Models.GetShareCanvasResponse>
Pythoncloud.canvases.get_sharedef get_share(self, instance_id: str, canvas_id: str, options: GetShareCanvasOptions) -> GetShareCanvasResponse
Gocloud.Canvases.GetSharefunc (r *CanvasesResource) GetShare(ctx context.Context, instanceId string, canvasId string, options GetShareCanvasOptions) (GetShareCanvasResponse, error)

参数

参数位置类型必填说明
instanceIdpathstring是承载该智能体的实例的 ID。它必须属于你的应用。
canvasIdpathstring是画布的 ID,UUID 格式。该画布必须属于 header 所指定的会话和智能体。
X-BeeOS-Conversation-IDheaderstring是使用该画布的会话的 ID。查询会话时,它必须等于路径中的 conversationId。
X-BeeOS-Platform-Agent-IDheaderstring是拥有该画布的智能体的 ID。它必须是 instanceId 的智能体。

响应

200 · application/json

字段类型必填说明
successboolean是—
dataCanvasShare是可为 null。

错误

状态码Schema说明
其他(default)ErrorResponseCloud Server 错误

错误 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.canvases.getShare("instance_123", "canvas_123", "conversation_123", "agent_123");
console.log(result);

canvases.createShare

POST /v1/instances/{instanceId}/canvases/{canvasId}/share · Operation ID createShareCanvas

创建画布分享链接

SDK 方法

语言方法签名
TypeScriptcloud.canvases.createSharecreateShare(instanceId: string, canvasId: string, input: Models.CreateShareCanvasRequest, XBeeOSConversationID: string, XBeeOSPlatformAgentID: string): Promise<Models.CreateShareCanvasResponse>
Pythoncloud.canvases.create_sharedef create_share(self, instance_id: str, canvas_id: str, input: CreateShareCanvasRequest, options: CreateShareCanvasOptions) -> CreateShareCanvasResponse
Gocloud.Canvases.CreateSharefunc (r *CanvasesResource) CreateShare(ctx context.Context, instanceId string, canvasId string, input CreateShareCanvasRequest, options CreateShareCanvasOptions) (CreateShareCanvasResponse, error)

参数

参数位置类型必填说明
instanceIdpathstring是承载该智能体的实例的 ID。它必须属于你的应用。
canvasIdpathstring是画布的 ID,UUID 格式。该画布必须属于 header 所指定的会话和智能体。
X-BeeOS-Conversation-IDheaderstring是使用该画布的会话的 ID。查询会话时,它必须等于路径中的 conversationId。
X-BeeOS-Platform-Agent-IDheaderstring是拥有该画布的智能体的 ID。它必须是 instanceId 的智能体。

请求体

application/json · 必填

字段类型必填说明
modestring是访客如何获得访问权:password 表示用 password 保护分享;其他任何值(例如 link)表示任何拥有链接的人都可以打开画布。必填。
passwordstring否访客必须输入的密码。仅在 mode 为 password 时使用;没有它,任何访客都无法通过校验。
allowInteractionboolean否访客是否可以与画布交互。默认为 true。发送 false 则分享为只读。

响应

200 · application/json

字段类型必填说明
successboolean是—
dataCanvasShare是可为 null。

错误

状态码Schema说明
其他(default)ErrorResponseCloud Server 错误

错误 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.canvases.createShare("instance_123", "canvas_123", { mode: "example_mode" }, "conversation_123", "agent_123");
console.log(result);

canvases.deleteShare

DELETE /v1/instances/{instanceId}/canvases/{canvasId}/share · Operation ID deleteShareCanvas

撤销画布分享链接

SDK 方法

语言方法签名
TypeScriptcloud.canvases.deleteSharedeleteShare(instanceId: string, canvasId: string, XBeeOSConversationID: string, XBeeOSPlatformAgentID: string): Promise<Models.DeleteShareCanvasResponse>
Pythoncloud.canvases.delete_sharedef delete_share(self, instance_id: str, canvas_id: str, options: DeleteShareCanvasOptions) -> None
Gocloud.Canvases.DeleteSharefunc (r *CanvasesResource) DeleteShare(ctx context.Context, instanceId string, canvasId string, options DeleteShareCanvasOptions) error

参数

参数位置类型必填说明
instanceIdpathstring是承载该智能体的实例的 ID。它必须属于你的应用。
canvasIdpathstring是画布的 ID,UUID 格式。该画布必须属于 header 所指定的会话和智能体。
X-BeeOS-Conversation-IDheaderstring是使用该画布的会话的 ID。查询会话时,它必须等于路径中的 conversationId。
X-BeeOS-Platform-Agent-IDheaderstring是拥有该画布的智能体的 ID。它必须是 instanceId 的智能体。

响应

204

无响应体。

错误

状态码Schema说明
其他(default)ErrorResponseCloud Server 错误

错误 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.canvases.deleteShare("instance_123", "canvas_123", "conversation_123", "agent_123");
console.log(result);

canvases.listSnapshots

GET /v1/instances/{instanceId}/canvases/{canvasId}/snapshots · Operation ID listCanvasSnapshots

列出画布快照

SDK 方法

语言方法签名
TypeScriptcloud.canvases.listSnapshotslistSnapshots(instanceId: string, canvasId: string, XBeeOSConversationID: string, XBeeOSPlatformAgentID: string): Promise<Models.ListCanvasSnapshotsResponse>
Pythoncloud.canvases.list_snapshotsdef list_snapshots(self, instance_id: str, canvas_id: str, options: ListCanvasSnapshotsOptions) -> ListCanvasSnapshotsResponse
Gocloud.Canvases.ListSnapshotsfunc (r *CanvasesResource) ListSnapshots(ctx context.Context, instanceId string, canvasId string, options ListCanvasSnapshotsOptions) (ListCanvasSnapshotsResponse, error)

参数

参数位置类型必填说明
instanceIdpathstring是承载该智能体的实例的 ID。它必须属于你的应用。
canvasIdpathstring是画布的 ID,UUID 格式。该画布必须属于 header 所指定的会话和智能体。
X-BeeOS-Conversation-IDheaderstring是使用该画布的会话的 ID。查询会话时,它必须等于路径中的 conversationId。
X-BeeOS-Platform-Agent-IDheaderstring是拥有该画布的智能体的 ID。它必须是 instanceId 的智能体。

响应

200 · application/json

字段类型必填说明
successboolean是—
dataarray<CanvasSnapshot>是—

错误

状态码Schema说明
其他(default)ErrorResponseCloud Server 错误

错误 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.canvases.listSnapshots("instance_123", "canvas_123", "conversation_123", "agent_123");
console.log(result);

canvases.restoreSnapshot

POST /v1/instances/{instanceId}/canvases/{canvasId}/snapshots/{snapshotId}/restore · Operation ID restoreCanvasSnapshot

恢复画布快照

SDK 方法

语言方法签名
TypeScriptcloud.canvases.restoreSnapshotrestoreSnapshot(instanceId: string, canvasId: string, snapshotId: string, XBeeOSConversationID: string, XBeeOSPlatformAgentID: string): Promise<Models.RestoreCanvasSnapshotResponse>
Pythoncloud.canvases.restore_snapshotdef restore_snapshot(self, instance_id: str, canvas_id: str, snapshot_id: str, options: RestoreCanvasSnapshotOptions) -> RestoreCanvasSnapshotResponse
Gocloud.Canvases.RestoreSnapshotfunc (r *CanvasesResource) RestoreSnapshot(ctx context.Context, instanceId string, canvasId string, snapshotId string, options RestoreCanvasSnapshotOptions) (RestoreCanvasSnapshotResponse, error)

参数

参数位置类型必填说明
instanceIdpathstring是承载该智能体的实例的 ID。它必须属于你的应用。
canvasIdpathstring是画布的 ID,UUID 格式。该画布必须属于 header 所指定的会话和智能体。
snapshotIdpathstring是要恢复的快照的 ID,即快照列表返回的 ID。
X-BeeOS-Conversation-IDheaderstring是使用该画布的会话的 ID。查询会话时,它必须等于路径中的 conversationId。
X-BeeOS-Platform-Agent-IDheaderstring是拥有该画布的智能体的 ID。它必须是 instanceId 的智能体。

响应

200 · application/json

字段类型必填说明
successboolean是—
dataobject是—
data.snapshotIdstring是—
data.canvasIdstring是—
data.restoredboolean是—
data.versioninteger是—

错误

状态码Schema说明
其他(default)ErrorResponseCloud Server 错误

错误 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.canvases.restoreSnapshot("instance_123", "canvas_123", "snapshot_123", "conversation_123", "agent_123");
console.log(result);