Loading...
Loading...
Design, build, run, and test Restate durable services, virtual objects, workflows, and AI agents across TypeScript, Python, Java, and Go. This skill should be used when the user mentions "restate", "durable execution", "virtual object", "restate service", "restate workflow", or "durable agent" or wants to build resilient backend services, AI agents, or workflows with automatic failure recovery. Also use when converting existing applications or migrating from workflow orchestrators to Restate. Use proactively when a project contains restate dependencies in package.json, requirements.txt, pyproject.toml, pom.xml, build.gradle, or go.mod.
npx skill4agent add restatedev/skills building-restate-servicespackage.json@restatedev/restate-sdkrequirements.txtpyproject.tomlrestate-sdkpom.xmlbuild.gradledev.restatego.modgithub.com/restatedev/sdk-go@restatedevrestate-sdkdev.restate.sdkgithub.com/restatedev@ai-sdk/openai-agentsgoogle-adkpydantic-aitemporalio@temporalioaws-cdk/aws-stepfunctionsreferences/<sdk>/api-and-pitfalls.md| Context | Reference |
|---|---|
| Design a new application, choose service types | |
| Convert from a workflow orchestrator or existing app | |
| Invoking services, interacting with invocations (cancel, attach, idempotency, sends, Kafka) | |
| Build AI agent with Vercel AI SDK | |
| Build AI agent with OpenAI Agents SDK | |
| Build AI agent with Google ADK | |
| Build AI agent with Pydantic AI | |
| Debug errors, stuck invocations, journal mismatches | |
| Testing, deployment, server config, Kafka, advanced topics | Use the bundled restate-docs MCP server |
| Code examples and templates | |
| Question | Consult |
|---|---|
| Restate service types, stateful entities, keying, concurrency? | |
| Non-Restate orchestrator in the project? | |
| Invoking, cancelling, deduplicating, or attaching to invocations? | |
| Error handling, compensation, sagas? | Error handling guide, Sagas guide |
| AI agent or LLM calls? | The relevant agent integration reference |
ctx.run()Promise.allasyncio.gatherwaitCompletableFutureselectctx.run()TerminalErrorexcept:ctxctx.run()alwaysReplay: trueRestateTestEnvironment.startalways_replay=Truerestate.test_harnessRESTATE_WORKER__INVOKER__INACTIVITY_TIMEOUT=0mreferences/<sdk>/api-and-pitfalls.md