BluetOpen source

What agents should know before contributing

cloudflare/agents

Build and deploy AI Agents on Cloudflare

Read by Bluet from 3 files written for agents and 300 merged pull requests on 2026-09-25. Not reviewed by the maintainers.

Rules its files tell agents (8)

  • mustNever hardcode secrets — use wrangler secret put or .env
    AGENTS.md
  • mustno-explicit-any: "error" — never use any, use unknown and narrow
    AGENTS.md
  • shouldNo contractions (Cloudflare style guide requirement — "do not" not "don't")
    docs/AGENTS.md
  • shouldKeep Workspace as a pure durable filesystem — do not embed execution or session logic inside it.

    Keep Workspace as a pure durable filesystem — do not embed execution or session logic inside it. Execution is a caller concern wired via @cloudflare/codemode + stateTools.

    AGENTS.md
  • shouldDon't hybridise — a single doc can include a short example in a reference page, but if you're writing a 20-ste…

    Don't hybridise — a single doc can include a short example in a reference page, but if you're writing a 20-step walkthrough inside a reference doc, it should be a separate how-to.

    docs/AGENTS.md
  • shouldenv.d.ts files are generated by wrangler types — regenerate with pnpm exec wrangler types inside the relevant…

    env.d.ts files are generated by wrangler types — regenerate with pnpm exec wrangler types inside the relevant example/package, don't hand-edit

    AGENTS.md
  • shouldpnpm-lock.yaml — regenerated by pnpm install, don't hand-edit
    AGENTS.md
  • shouldExamples, guides, and sites don't need changesets.
    AGENTS.md

Decisions its pull requests settled (40)

  • #1647add StreamCallback.onInterrupted for recovering chat() turns
  • #1648live "recovering…" status to chat clients (#1620) + flaky-test retries
  • #1651wait for all parallel client-tool results before auto-continuing
  • #1657serialize parallel client-tool result/approval applies (#1649 follow-up)
  • #1659recover server-tool turns, terminalize thrown recovery, re-run alarms killed by a script-upgrade supersede
  • #1661enforce object-shaped tool_use.input to stop silent session wedge
  • #1667event-driven auto-continuation barrier + stream-active gate (fixes #1649)
  • #1666bind OAuth PKCE verifiers to callback state
  • #1670progress-keyed agent-tool re-attach so a deploy can't abandon a still-running child
  • #1684exempt human-in-the-loop turns from recovery budgets; close think hibernation gap
  • #1671don't re-arm auto-continuation barrier on RPC stall recovery
  • #1672survive unbounded deploy churn; add work budget + shouldKeepRecovering runaway guard
  • #1689Version Packages
  • #1707reschedule alarm when keepAlive lease is released
  • #1712reclaim resumable-stream buffers from an alarm
  • #1724stop oversized sessions from bricking the DO with SQLITE_NOMEM on wake
  • #1729Recovery: e2e + unit coverage, and fix runFiber recovery starvation/backoff
  • #1737replay errored-stream content and scope agent-tool error capture per run
  • #1742idempotent stream-resume replay + duplicate STREAM_RESUMING ACK dedupe
  • #1745defer agent teardown to its own alarm invocation so canceled requests can't cut it short
  • #1747gapless audio chunk playback
  • #1770Think API strategy: RFCs, addMessages(), Think Studio, non-coding starters
  • #1758detached (background) agent-tool runs — durable completion, progress & milestones
  • #1788Chat recovery foundation: a shared, host-agnostic recovery engine for agents/chat
  • #1790Think API strategy — turns, actions, and channels (+ shared chat refactors)
  • #1805don't reorder terminal HITL snapshots with a later assistant
  • #1821add opt-in, read-only HTTP fetch tool
  • #1826bound Durable Object memory-limit (OOM) crash loops
  • #1831RFC: CodingAgent — a new @cloudflare/coding-agent package
  • #1882keep workspace files in container
  • #1832bundle workers-ai-provider and accept model id strings
  • #1895make the client manager a Durable Object capability
  • #1903allow declaring url-mode elicitation capability and handling elicitation on the MCP client
  • #1907label channel speakers in messenger messages
  • #1911configure client elicitation handler
  • #1921add per-turn chat metadata
  • #2023Handle terminal error frames in useAgentChat observers
  • #2051stream forwarded request bodies into sub-agents
  • #2058throttle chat UI updates by default
  • #2059preserve orphaned execution outcomes
Your agents can be told this before they touch the code. Get it for your repository: npx bluet-mcp init. What Bluet is.
cloudflare/agents: what agents should know before contributing · Bluet