agents-sdk

от openai

Создавайте, запускайте, развертывайте и оценивайте приложения OpenAI Agents SDK из Codex. Используйте, когда пользователь просит создать или адаптировать приложение Agents SDK, создать на основе подсказки или Codex…

npx skills add https://github.com/openai/plugins --skill agents-sdk

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.

TopicDocUse for
Getting starteddocs/getting-started.mdFirst agent, project setup
Statedocs/state.mdsetState, validateStateChange, persistence
Routingdocs/routing.mdURL patterns, routeAgentRequest, basePath
Callable methodsdocs/callable-methods.md@callable, RPC, streaming, timeouts
Schedulingdocs/scheduling.mdschedule(), scheduleEvery(), cron
Workflowsdocs/workflows.mdAgentWorkflow, durable multi-step tasks
HTTP/WebSocketsdocs/http-websockets.mdLifecycle hooks, hibernation
Emaildocs/email.mdEmail routing, secure reply resolver
MCP clientdocs/mcp-client.mdConnecting to MCP servers
MCP serverdocs/mcp-servers.mdBuilding MCP servers with McpAgent
Client SDKdocs/client-sdk.mduseAgent, useAgentChat, React hooks
Human-in-the-loopdocs/human-in-the-loop.mdApproval flows, pausing workflows
Resumable streamingdocs/resumable-streaming.mdStream 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

npm ls agents  # Should show agents package

If not installed:

npm install agents

Wrangler Configuration

{
  "durable_objects": {
    "bindings": [{ "name": "MyAgent", "class_name": "MyAgent" }]
  },
  "migrations": [{ "tag": "v1", "new_sqlite_classes": ["MyAgent"] }]
}

Agent Class

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}:

ClassURL
Counter/agents/counter/user-123
ChatRoom/agents/chat-room/lobby

Client: useAgent({ agent: "Counter", name: "user-123" })

Core APIs

TaskAPI
Read statethis.state.count
Write statethis.setState({ count: 1 })
SQL querythis.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 workflowawait this.runWorkflow("ProcessingWorkflow", params)

React Client

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

Больше skills от openai

user-context
openai
Загрузить или управлять настройками постоянной маршрутизации источников, логикой онбординга, прогрессом настройки и реестром семантического слоя плагина Data Analytics.
official
notion-research-documentation
openai
Исследовать содержимое Notion и синтезировать в структурированные брифинги, отчёты или сравнения с цитированием. Выполнять поиск и извлекать страницы Notion с помощью целевых запросов, затем организовывать результаты по темам с встроенными ссылками на источники и разделом ссылок. Выбирать из четырёх форматов вывода (краткий брифинг, исследовательская сводка, сравнение, комплексный отчёт) в зависимости от объёма и цели пользователя. Создавать и обновлять страницы Notion с помощью встроенных шаблонов; напрямую связывать источники и отслеживать изменения по мере поступления новой информации...
official
rcsb-pdb-skill
openai
Отправляйте компактные запросы RCSB PDB для получения основной метаданных, запросов Search API и загрузок FASTA. Используйте, когда пользователю нужны краткие сводки RCSB; сохраняйте сырой JSON или…
official
pdf
openai
Чтение, создание и проверка PDF с визуальным рендерингом и программной генерацией. Рендеринг страниц PDF в PNG для визуального контроля макета, интервалов и типографики перед отправкой с помощью Poppler (pdftoppm). Программная генерация PDF с reportlab для надежного форматирования; извлечение текста и метаданных с помощью pdfplumber или pypdf. Контроль качества: отсутствие обрезанного текста, перекрывающихся элементов, сломанных таблиц или артефактов рендеринга; только ASCII-дефисы, читаемые цитаты. Использовать...
official
test-coverage-improver
openai
Improve test coverage in the OpenAI Agents JS monorepo: run `pnpm test:coverage`, inspect coverage artifacts, identify low-coverage files and branches, propose…
official
playwright
openai
Терминальная автоматизация браузера с моментальными снимками элементов и интерактивными UI-процессами. Работает через обёрточный скрипт playwright-cli (требуется npx); поддерживает headless и headed режимы для визуальной отладки. Основной процесс: открыть страницу, сделать снимок для стабильных ссылок на элементы, взаимодействовать с помощью ссылок, повторно снимать после навигации или изменений DOM. Включает заполнение форм, клики, ввод текста, управление несколькими вкладками, создание скриншотов/PDF и запись трассировки для отладки процессов. Ссылки на элементы (например, e3, e15)...
official
ukb-topmed-phewas-skill
openai
Получает компактные сводки UKB-TOPMed PheWAS для отдельных вариантов, принимая rsID, GRCh37 или GRCh38 и преобразуя в требуемый запрос GRCh38. Используйте, когда…
official
code-review-context
openai
Видимый контекст модели
official