Agent 的配置与任何其他 Cloudflare Workers 项目相同,使用wrangler 配置文件来定义您的代码位置以及它将使用的服务(绑定)。
从 npm create cloudflare@latest agents-starter -- --template cloudflare/agents-starter
创建的 Agent 项目的典型文件结构如下:
.|-- package-lock.json|-- package.json|-- public| `-- index.html|-- src| `-- index.ts // 您的 Agent 定义|-- test| |-- index.spec.ts // 您的测试| `-- tsconfig.json|-- tsconfig.json|-- vitest.config.mts|-- worker-configuration.d.ts`-- wrangler.jsonc // 您的 Workers 和 Agent 配置
下面是一个最小的 wrangler.jsonc
文件,定义了 Agent 的配置,包括入口点、durable_object
命名空间和代码 migrations
:
{ "$schema": "node_modules/wrangler/config-schema.json", "name": "agents-example", "main": "src/index.ts", "compatibility_date": "2025-02-23", "compatibility_flags": ["nodejs_compat"], "durable_objects": { "bindings": [ { // 必需的: "name": "MyAgent", // 您的 Agent 从 Worker 中的调用方式 "class_name": "MyAgent", // 必须与代码中 Agent 的类名匹配 // 可选:如果 Agent 在另一个 Worker 脚本中定义,请设置此项 "script_name": "the-other-worker", }, ], }, "migrations": [ { "tag": "v1", // Agent 存储状态的必要配置 "new_sqlite_classes": ["MyAgent"], }, ], "observability": { "enabled": true, },}
"$schema" = "node_modules/wrangler/config-schema.json"name = "agents-example"main = "src/index.ts"compatibility_date = "2025-02-23"compatibility_flags = [ "nodejs_compat" ]
[[durable_objects.bindings]]name = "MyAgent"class_name = "MyAgent"script_name = "the-other-worker"
[[migrations]]tag = "v1"new_sqlite_classes = [ "MyAgent" ]
[observability]enabled = true
配置包括:
- 一个
main
字段,指向您的 Agent 的入口点,通常是 TypeScript(或 JavaScript)文件。 - 一个
durable_objects
字段,定义您的 Agents 将在其中运行的 Durable Object 命名空间。 - 一个
migrations
字段,定义您的 Agent 将使用的代码迁移。此字段是必需的,必须至少包含一次迁移。new_sqlite_classes
字段是 Agent 存储状态的必要配置。
Agents 必须在其 wrangler.jsonc
(或 wrangler.toml
)配置文件中定义这些字段。
- @2025 Cloudflare Ubitools
- Cf Repo