Patch Changes
-
#1570
4f14b9cThanks @threepointone! - Addagents/chat-sdk, a Chat SDKStateAdapterbacked by Agents sub-agents.This new package entrypoint exports:
createChatSdkState(), a convenience factory for Chat SDKstate.ChatSdkStateAdapter, the concrete adapter implementation.ChatSdkStateAgent, the default sub-agent used for durable Chat SDK state.defaultThreadShard()anddefaultKeyShard(), the default sharding helpers used by the adapter.
The adapter stores Chat SDK subscriptions, concurrency locks, pending queues, generic cache entries, callback metadata, thread and channel state, persisted message history, and transcript lists in Durable Object SQLite. State is sharded through
parent.subAgent()so a messenger ingress Agent can keep Chat SDK infrastructure state inside child facets instead of requiring a separate top-level Durable Object binding for every state shard.createChatSdkState()now works with the defaultChatSdkStateAgentclass when it is re-exported from the Worker entrypoint. It also defaultsparentfromgetCurrentAgent()when called inside an Agent lifecycle method or request handler, so the common setup is:export { ChatSdkStateAgent } from "agents/chat-sdk"; const chat = new Chat({ adapters, state: createChatSdkState(), });
Applications that need custom state behavior can still pass a custom
agentsubclass and explicitparent.This also documents the sub-agent configuration model more clearly: production Workers should export facet classes, but facet-only child classes do not belong in
new_sqlite_classesunless they are also used as top-level Durable Objects. Test wrangler configs may still include facet classes as test-only Durable Object bindings for@cloudflare/vitest-pool-workerscompatibility, while keeping them out ofnew_sqlite_classes.