agents-sdk · openai — скилл для Codex: что делает и как установить
Помогает создавать ИИ-агентов на Cloudflare Workers с персистентным состоянием, фоновыми задачами и MCP. Пригодится при разработке серверных агентов и чат-приложений.
npx skills add openai/plugins --skill agents-sdk -a codexЧто делает agents-sdk
Скилл инструктирует модель генерировать код для Cloudflare Agents SDK. Он предписывает сверяться с актуальной документацией Cloudflare на GitHub, а не полагаться на базовые знания модели. Описан класс Agent, валидация данных через validateStateChange, хранение состояния в SQLite и роутинг запросов с помощью routeAgentRequest.
Внутри содержатся шаблоны вызова методов через декоратор @callable(), настройка воркфлоу AgentWorkflow для фоновых задач и интеграция с протоколом MCP через McpAgent. Для клиентской части показана работа с React-хуком useAgent.
Для работы потребуется npm-пакет agents и настройка привязок Durable Objects с SQLite-миграциями в файле Wrangler. Скилл стоит ставить тем, кто пишет агентные приложения под стек Cloudflare. Без этой платформы он не пригодится.
Какие задачи решает
- настроить персистентное состояние агента в SQLite на Cloudflare Workers
- организовать вызов RPC-методов через WebSockets с декоратором
@callable() - создать многошаговые фоновые процессы с помощью
AgentWorkflow - подключить React-клиент к агенту через хук
useAgent - собрать собственный MCP-сервер на базе класса
McpAgent
Примеры запросов агенту
- Создай агента на Cloudflare Workers с хранением счетчика в SQLite и методом @callable
- Настрой воркфлоу с помощью AgentWorkflow для фоновой обработки данных
- Покажи, как подключить React-компонент к инстансу Counter через useAgent
Как установить agents-sdk
1Через Skills CLI (Vercel)
npx skills add openai/plugins --skill agents-sdk -a codex2Вручную: положить файлы
.agents/skills/agents-sdk/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add openai/plugins --skill agents-sdk -a claude-code2Вручную: положить файлы
~/.claude/skills/agents-sdk/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/agents-sdk/
Вручную: положить файлы
.cursor/skills/agents-sdk/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install openai/plugins agents-sdk2Вручную: положить файлы
.github/skills/agents-sdk/SKILL.mdКомандой платформы
gemini skills install https://github.com/openai/plugins --path plugins/cloudflare/skills/agents-sdkВручную: положить файлы
.devin/skills/agents-sdk/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Claude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
Из того же набора201
Весь набор →Другие версии agents-sdk
Похожие
Вопросы о agents-sdk
Как установить agents-sdk в Codex?
Выполните в терминале команду npx skills add openai/plugins --skill agents-sdk. Файл скилла запишется по пути .agents/skills/agents-sdk/SKILL.md.
Что делает agents-sdk?
Он направляет модель при написании кода на базе Cloudflare Agents SDK: настройке Durable Objects, сохранении состояния в SQLite и создании MCP-серверов.
Что нужно подготовить в проекте для работы с SDK?
Установите пакет agents с помощью команды npm install agents. Затем настройте привязки Durable Objects и миграции SQLite в конфигурации Wrangler.
Исходный текст
SKILL.md · Apache-2.0
---
name: agents-sdk
description: Build AI agents on Cloudflare Workers using the Agents SDK. Load when creating stateful agents, durable workflows, real-time WebSocket apps, scheduled tasks, MCP servers, or chat applications. Covers Agent class, state management, callable RPC, Workflows integration, and React hooks. Biases towards retrieval from Cloudflare docs over pre-trained knowledge.
---
# Cloudflare Agents SDK
Your knowledge of the Agents SDK may be outdated. **Prefer retrieval over pre-training** for any Agents SDK task.
## Retrieval Sources
Fetch current docs from `https://github.com/cloudflare/agents/tree/main/docs` before implementing.
| Topic | Doc | Use for |
|-------|-----|---------|
| Getting started | `docs/getting-started.md` | First agent, project setup |
| State | `docs/state.md` | `setState`, `validateStateChange`, persistence |
| Routing | `docs/routing.md` | URL patterns, `routeAgentRequest`, `basePath` |
| Callable methods | `docs/callable-methods.md` | `@callable`, RPC, streaming, timeouts |
| Scheduling | `docs/scheduling.md` | `schedule()`, `scheduleEvery()`, cron |
| Workflows | `docs/workflows.md` | `AgentWorkflow`, durable multi-step tasks |
| HTTP/WebSockets | `docs/http-websockets.md` | Lifecycle hooks, hibernation |
| Email | `docs/email.md` | Email routing, secure reply resolver |
| MCP client | `docs/mcp-client.md` | Connecting to MCP servers |
| MCP server | `docs/mcp-servers.md` | Building MCP servers with `McpAgent` |
| Client SDK | `docs/client-sdk.md` | `useAgent`, `useAgentChat`, React hooks |
| Human-in-the-loop | `docs/human-in-the-loop.md` | Approval flows, pausing workflows |
| Resumable streaming | `docs/resumable-streaming.md` | Stream recovery on disconnect |
Cloudflare docs: https://developers.cloudflare.com/agents/
## Capabilities
The Agents SDK provides:
- **Persistent state** - SQLite-backed, auto-synced to clients
- **Callable RPC** - `@callable()` methods invoked over WebSocket
- **Scheduling** - One-time, recurring (`scheduleEvery`), and cron tasks
- **Workflows** - Durable multi-step background processing via `AgentWorkflow`
- **MCP integration** - Connect to MCP servers or build your own with `McpAgent`
- **Email handling** - Receive and reply to emails with secure routing
- **Streaming chat** - `AIChatAgent` with resumable streams
- **React hooks** - `useAgent`, `useAgentChat` for client apps
## FIRST: Verify Installation
```bash
npm ls agents # Should show agents package
```
If not installed:
```bash
npm install agents
```
## Wrangler Configuration
```jsonc
{
"durable_objects": {
"bindings": [{ "name": "MyAgent", "class_name": "MyAgent" }]
},
"migrations": [{ "tag": "v1", "new_sqlite_classes": ["MyAgent"] }]
}
```
## Agent Class
```typescript
import { Agent, routeAgentRequest, callable } from "agents";
type State = { count: number };
export class Counter extends Agent<Env, State> {
initialState = { count: 0 };
// Validation hook - runs before state persists (sync, throwing rejects the update)
validateStateChange(nextState: State, source: Connection | "server") {
if (nextState.count < 0) throw new Error("Count cannot be negative");
}
// Notification hook - runs after state persists (async, non-blocking)
onStateUpdate(state: State, source: Connection | "server") {
console.log("State updated:", state);
}
@callable()
increment() {
this.setState({ count: this.state.count + 1 });
return this.state.count;
}
}
export default {
fetch: (req, env) => routeAgentRequest(req, env) ?? new Response("Not found", { status: 404 })
};
```
## Routing
Requests route to `/agents/{agent-name}/{instance-name}`:
| Class | URL |
|-------|-----|
| `Counter` | `/agents/counter/user-123` |
| `ChatRoom` | `/agents/chat-room/lobby` |
Client: `useAgent({ agent: "Counter", name: "user-123" })`
## Core APIs
| Task | API |
|------|-----|
| Read state | `this.state.count` |
| Write state | `this.setState({ count: 1 })` |
| SQL query | `` this.sql`SELECT * FROM users WHERE id = ${id}` `` |
| Schedule (delay) | `await this.schedule(60, "task", payload)` |
| Schedule (cron) | `await this.schedule("0 * * * *", "task", payload)` |
| Schedule (interval) | `await this.scheduleEvery(30, "poll")` |
| RPC method | `@callable() myMethod() { ... }` |
| Streaming RPC | `@callable({ streaming: true }) stream(res) { ... }` |
| Start workflow | `await this.runWorkflow("ProcessingWorkflow", params)` |
## React Client
```tsx
import { useAgent } from "agents/react";
function App() {
const [state, setLocalState] = useState({ count: 0 });
const agent = useAgent({
agent: "Counter",
name: "my-instance",
onStateUpdate: (newState) => setLocalState(newState),
onIdentity: (name, agentType) => console.log(`Connected to ${name}`)
});
return (
<button onClick={() => agent.setState({ count: state.count + 1 })}>
Count: {state.count}
</button>
);
}
```
## References
- **[references/workflows.md](references/workflows.md)** - Durable Workflows integration
- **[references/callable.md](references/callable.md)** - RPC methods, streaming, timeouts
- **[references/state-scheduling.md](references/state-scheduling.md)** - State persistence, scheduling
- **[references/streaming-chat.md](references/streaming-chat.md)** - AIChatAgent, resumable streams
- **[references/mcp.md](references/mcp.md)** - MCP server integration
- **[references/email.md](references/email.md)** - Email routing and handling
- **[references/codemode.md](references/codemode.md)** - Code Mode (experimental)
© Cloudflare · Apache-2.0 · openai/plugins