# API 操作
## 部署用户智能体
bash
curl -X PUT
"https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/workers/dispatch/namespaces/$NAMESPACE/scripts/$SCRIPT_NAME"
-H "Authorization: Bearer $API_TOKEN"
-F 'metadata={"main_module": "worker.mjs"};type=application/json'
-F '
[email protected];type=application/javascript+module'
### TypeScript SDK
typescript
import Cloudflare from "cloudflare";
const client = new Cloudflare({ apiToken: process.env.API_TOKEN });
const scriptFile = new File([scriptContent], `${scriptName}.mjs`, {
type: "application/javascript+module",
});
await client.workersForPlatforms.dispatch.namespaces.scripts.update(
namespace, scriptName,
{
account_id: accountId,
metadata: { main_module: `${scriptName}.mjs` },
files: [scriptFile],
}
);
## TypeScript 类型
typescript
import type { DispatchNamespace } from '@cloudflare/workers-types';
interface DispatchNamespace {
get(name: string, options?: Record, dispatchOptions?: DynamicDispatchOptions): Fetcher;
}
interface DynamicDispatchOptions {
limits?: DynamicDispatchLimits;
outbound?: Record;
}
interface DynamicDispatchLimits {
cpuMs?: number; // 最大 CPU 毫秒数
subRequests?: number; // 最大 fetch() 调用次数
}
// 用法
const userWorker = env.DISPATCHER.get('customer-123', {}, {
limits: { cpuMs: 50, subRequests: 20 },
outbound: { customerId: '123', url: request.url }
});
## 带绑定部署
bash
curl -X PUT ".../scripts/$SCRIPT_NAME"
-F 'metadata={
"main_module": "worker.mjs",
"bindings": [
{"type": "kv_namespace", "name": "MY_KV", "namespace_id": "'$KV_ID'"}
],
"tags": ["customer-123", "production"],
"compatibility_date": "2026-01-01" // 新项目请使用当前日期
};type=application/json'
-F '
[email protected];type=application/javascript+module'
## 列出/删除智能体
bash
# 列出
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/workers/dispatch/namespaces/$NAMESPACE/scripts"
-H "Authorization: Bearer $API_TOKEN"
# 按名称删除
curl -X DELETE ".../scripts/$SCRIPT_NAME" -H "Authorization: Bearer $API_TOKEN"
# 按标签删除
curl -X DELETE ".../scripts?tags=customer-123%3Ayes" -H "Authorization: Bearer $API_TOKEN"
**分页:** SDK 支持异步迭代。手动方式:添加 `?per_page=100&page=1` 查询参数。
## 静态资源
**3 步流程:** 创建会话 → 上传