每个 example 都是端到端可运行脚本,用来验证 SDK 的一个能力点。建议先跑 01-quickstart.ts,再按功能选择后续示例。
cd examples
cp config.example.json config.local.json
# 编辑 config.local.json,填入 envId / model / tcbApiKey / credentials在仓库根目录先构建 SDK,再运行示例:
pnpm build
pnpm dlx tsx examples/01-quickstart.tsconfig.local.json 已被 gitignore,不会被提交。
| 字段 | 用途 |
|---|---|
envId |
CloudBase 环境 ID,示例会显式传给 createAgent({ envId })。 |
model |
默认模型 ID,示例会显式传给 createAgent({ model })。 |
tcbApiKey |
CloudBase 服务端 APIKey;helper 会写入 process.env.CLOUDBASE_APIKEY 供 SDK 默认模型网关和 sandbox 使用。 |
credentials.secretId / credentials.secretKey |
CloudBase 平台凭证,示例会显式传给 createAgent({ credentials })。 |
credentials.sessionToken |
STS 临时凭证,可选。 |
examples.resumeConversationId |
example 04 使用;指定上一次输出的 conversationId 做跨进程 resume。 |
examples.storage |
example 05 使用;设为 memory 时改用 InMemoryStorage。 |
examples.imagePath |
example 05 使用;指定自定义图片路径。 |
examples.visionModel |
example 05 使用;视觉模型 ID(默认 glm-5v-turbo,不受顶层 model 影响)。 |
examples.debug |
为 true 时打开 OAK_DEBUG 调试日志。 |
在仓库根目录运行:
pnpm dlx tsx examples/01-quickstart.ts| Example | 功能 | 运行命令 |
|---|---|---|
01-quickstart.ts |
快速开始 | pnpm dlx tsx examples/01-quickstart.ts |
02-debug.ts |
打印调试事件 | pnpm dlx tsx examples/02-debug.ts |
03-multi-turn.ts |
进程内多轮对话 | pnpm dlx tsx examples/03-multi-turn.ts |
04-multi-turn-db.ts |
CloudBase session 持久化 / resume | 第一次跑写入个人信息;把输出的 conversationId 填入 examples.resumeConversationId 后再跑,验证跨进程回忆 |
05-multimodal.ts |
图片附件 / Storage | pnpm dlx tsx examples/05-multimodal.ts |
06-mcp-sdk-server.ts |
进程内 MCP | pnpm dlx tsx examples/06-mcp-sdk-server.ts |
07-mcp-stdio.ts |
stdio MCP | pnpm dlx tsx examples/07-mcp-stdio.ts |
08-local-sandbox.ts |
local sandbox 文件系统 / Shell | pnpm dlx tsx examples/08-local-sandbox.ts |
09-local-sandbox-cloudbase-tools.ts |
local sandbox + 进程内 CloudBase MCP | pnpm dlx tsx examples/09-local-sandbox-cloudbase-tools.ts |
11-hitl-approval.ts |
单进程 HITL 审批 | pnpm dlx tsx examples/11-hitl-approval.ts |
12-hitl-acp-adapter.ts |
内置 ACP 审批流 | pnpm dlx tsx examples/12-hitl-acp-adapter.ts |
13-hitl-distributed-cloudbase.ts |
分布式 HITL 审批 | pnpm dlx tsx examples/13-hitl-distributed-cloudbase.ts |
14-session-history.ts |
历史查询 / 聚合验证 | pnpm dlx tsx examples/14-session-history.ts |
15-skills.ts |
Skills | pnpm dlx tsx examples/15-skills.ts |
16-user-memory.ts |
userMemory 单进程 | pnpm dlx tsx examples/16-user-memory.ts |
17-user-memory-distributed.ts |
userMemory 跨节点 | pnpm dlx tsx examples/17-user-memory-distributed.ts |
20-acp-stream-adapter-fixture.ts |
ACP adapter fixture(不调用真实模型) | pnpm dlx tsx examples/20-acp-stream-adapter-fixture.ts |
21-default-acp-session-contract.ts |
默认 session ACP 类型契约 | pnpm exec tsc --noEmit --target ES2022 --module NodeNext --moduleResolution NodeNext --skipLibCheck examples/21-default-acp-session-contract.ts |
| Example | 功能 |
|---|---|
_08-sandbox.ts |
远程 AGS sandbox 文件系统 / Shell |
_09-sandbox-shared.ts |
shared 远程 sandbox |
_10-sandbox-cloudbase-tools.ts |
远程 sandbox 内 CloudBase MCP |
_18-workspace-snapshot.ts |
workspace snapshot 单进程 |
_19a-snapshot-write.ts / _19b-snapshot-read.ts |
workspace snapshot 跨进程 restore |
| Example | config.tcbApiKey |
config.envId |
config.credentials |
备注 |
|---|---|---|---|---|
| 01 / 02 / 03 | ✅ | ✅ | 模型调用。 | |
| 04 | ✅ | ✅ | ✅ | 默认 CloudBase FlexDB session store。 |
| 05 | ✅ | ✅ | CloudBase Storage 模式需要 | examples.storage=memory 时不需要平台凭证。 |
| 06 / 07 | ✅ | ✅ | MCP 工具示例。 | |
| 08-local-sandbox | ✅ | ✅ | 可选 | local sandbox;CAM 缺省/占位符时回退 tcbApiKey(accessKey)做 workspacePersist。 |
| 09-local-sandbox-cloudbase-tools | ✅ | ✅ | 可选 | local sandbox + 进程内 mcp__cloudbase__*;凭证回退同 08。 |
| 11 / 12 | ✅ | ✅ | 单进程审批。 | |
| 13 | ✅ | ✅ | ✅ | 分布式审批状态写入 CloudBase DB。 |
| 14 | ✅ | ✅ | 历史查询聚合示例。 | |
| 15 | ✅ | ✅ | Skills 示例。 | |
| 16 / 17 | ✅ | ✅ | ✅ | userMemory 需要 CloudBase Storage。 |
_08 / _09 / _10 / _18 / _19* |
✅ | ✅ | ✅ | 内部远程沙箱 / snapshot。 |
_shared/env.ts 读取 config.local.json,并提供:
loadEnv()/getEnvId()/getModel()getPlatformCredentials()/tryGetPlatformCredentials()/getPlatformCredentialsOrApiKey()getSandboxApiKey()getResumeConversationId()/getExampleStorage()/getExampleImagePath()
示例层从 config.local.json 读取配置,再通过 createAgent({ envId, model, credentials }) 显式传给 SDK。公开 local sandbox 示例写 sandbox: { enabled: true }(默认 LocalRuntimeSandbox)。内部远程沙箱示例通过 runtime: new AgsStatefulSandbox({ apiKey }) 注入。
_19-workspace-snapshot-distributed.ts 已废弃。正确流程是:
- 运行
_19a-snapshot-write.ts,让 Agent 在远程 sandbox 中写文件并触发 snapshot。 - 手动停止对应 AGS sandbox instance,确保下次启动会走 COS restore。
- 运行
_19b-snapshot-read.ts,观察restoreStatus=full并验证文件内容。