AgentSkillsCN

cloudflare-knowledge

为Workers、Agents SDK、MCP服务器、Vectorize与Workflows提供Cloudflare边缘平台的实现模式。在基于Cloudflare基础设施构建应用时使用此功能。

SKILL.md
--- frontmatter
name: cloudflare-knowledge
description: Cloudflare edge platform patterns for Workers, Agents SDK, MCP servers, Vectorize, and Workflows. Use when building on Cloudflare infrastructure.

Cloudflare Knowledge

Quick Reference

TaskRead FileKey Constraint
Building Agent classagents-sdk.mdnew_sqlite_classes in migrations
Agent design patternsagent-patterns.mdUse AI SDK with Durable Objects
MCP server (stateless)agents-mcp.mdUse createMcpHandler (recommended)
MCP server (stateful)agents-mcp.mdAgent + WorkerTransport + createMcpHandler
OAuth / auth patternsauth-deployment.mdOAUTH_KV binding required for workers-oauth-provider
Vector searchvectorize.mdtopK ≤20 with metadata, ≤100 without
Durable executionworkflows.mdAlways await step.do(), steps must be idempotent
R2, KV, D1 bindingsworkers-platform.mdUse bindings (not REST APIs), D1 prepared statements
Logging & tracingobservability.mdobservability: { enabled: true } in wrangler.jsonc
CI/CD & deploymentauth-deployment.mdWorkers Builds, GitHub Actions, secrets management

Critical Standards (Always Apply)

jsonc
// wrangler.jsonc - REQUIRED settings
{
  "compatibility_date": "2025-03-07",  // Minimum for Agents
  "compatibility_flags": ["nodejs_compat"],
  "observability": { "enabled": true }
}

Reranker: MUST Use Batch API

typescript
// ✅ CORRECT
await env.AI.run("@cf/baai/bge-reranker-base", {
  query: "search query",
  contexts: [{ text: "passage1" }, { text: "passage2" }],
  top_k: 10
});

// ❌ WRONG - deprecated per-document format
await env.AI.run("@cf/baai/bge-reranker-base", {
  text: ["query", "passage"]
});

D1: MUST Use Prepared Statements

typescript
// ✅ CORRECT
env.DB.prepare("SELECT * FROM users WHERE id = ?").bind(userId)

// ❌ WRONG - SQL injection risk
env.DB.prepare(`SELECT * FROM users WHERE id = '${userId}'`)

KV: Eventually Consistent

typescript
// ✅ CORRECT - return what you wrote
await env.MY_KV.put("key", newValue);
return Response.json({ value: newValue });

// ❌ WRONG - may return stale data
await env.MY_KV.put("key", newValue);
const readBack = await env.MY_KV.get("key"); // May be stale!

When to Read Detail Files

Read agents-sdk.md when:

  • Creating a new Agent class
  • Implementing state management (this.setState, this.sql)
  • Adding scheduling (this.schedule)
  • Handling WebSocket connections
  • Client APIs (AgentClient, useAgent hook)

Read agent-patterns.md when:

  • Designing multi-step AI workflows
  • Implementing routing/classification
  • Building orchestrator-worker systems
  • Need evaluator-optimizer loops

Read agents-mcp.md when:

  • Building an MCP server (use createMcpHandler)
  • Registering tools with schemas
  • Adding OAuth authentication to MCP
  • Connecting to external MCP servers as a client

Read auth-deployment.md when:

  • Adding authentication (workers-oauth-provider, OAuth 2.1)
  • Setting up CI/CD (Workers Builds, GitHub Actions, GitLab CI)
  • Managing secrets (wrangler secret, .dev.vars)
  • Creating deploy buttons

Read vectorize.md when:

  • Creating/querying vector indexes
  • Implementing semantic search or RAG
  • Building two-stage retrieval (vector + rerank)
  • Setting up metadata filters

Read workflows.md when:

  • Building durable/long-running tasks
  • Need automatic retries with backoff
  • Implementing human-in-the-loop (waitForEvent)
  • Scheduling delayed execution

Read workers-platform.md when:

  • Using R2 (object storage), KV (key-value), or D1 (SQL)
  • Configuring wrangler.jsonc bindings
  • Need binding types reference
  • Working with multipart uploads, presigned URLs

Read observability.md when:

  • Setting up logging (Workers Logs, wrangler tail)
  • Implementing distributed tracing
  • Adding custom analytics (Analytics Engine)
  • Configuring Logpush or Tail Workers

File Locations

All detail files are in the references/ subdirectory of this skill. Read the relevant file before implementing.