Recipes
Task-oriented pages: a problem and the smallest code that solves it. Runnable examples named here are in the repo and exercised by CI; provider integration snippets are checked against the linked official SDK documentation. For a terse API reference see using-skein.md.
Read working code first
triage-agent covers crons, background runs, idempotency, human-in-the-loop, long-term memory and time travel in one graph — and runs with no API key and no network (bundled fixtures, deterministic fallback classifier).
bash
pnpm --filter @skein-js/example-triage-agent dev # console at http://127.0.0.1:2024/console/
pnpm --filter @skein-js/example-triage-agent seed # register the schedule + sweep onceThe recipes
| Page | Covers |
|---|---|
| Serving | Pick an adapter, serve a graph as a plain endpoint, CORS for a browser |
| Running agents | Background runs, crons, idempotency, human-in-the-loop, run timeouts |
| Coupled WhatsApp workflow | A workflow with the same provider as source and destination |
| Cross-provider workflow | Email source → LangGraph workflow → allowlisted WhatsApp/email destinations |
| Memory | getStore(), semantic search, and the dedup trap |
| Authenticating requests | Better Auth, Clerk, Supabase, Firebase, OIDC/JWT, and authorization policy |
| Production | Auth, run-completion webhooks, durable storage and deploying |
Which example shows what
| Example | Shows |
|---|---|
triage-agent | Crons, background runs, idempotency, HITL, memory, time travel |
decoupled-delivery | Routed channels: email source → approval workflow → WhatsApp/email destinations |
chat-app | Full-stack chat: streaming, thinking, tool cards, HITL, memory |
invoke-endpoint | Non-chat graphs as plain HTTP endpoints |
embed-graph | A graph you already have, served with no langgraph.json |
migrated-langgraph | The drop-in proof — a stock LangGraph project under skein dev |
react-usestream | A minimal useStream frontend against any skein server |