Agent skill

Inngest Agents

by Asymmetric-al in Asymmetric-al/core

A skill your agent uses when building durable AI agents or agentic workflows with Inngest and AgentKit, including model calls, tool calls, multi-agent networks, human approval, realtime progress…

AGPL-3.0Auto-check passedAgent Workflows

Install Inngest Agents

skills CLI
$ npx skills add Asymmetric-al/core --skill inngest-agents -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Asymmetric-al/core inngest-agents --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Asymmetric-al/core.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/inngest-agents .claude/skills/inngest-agents && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
inngest-agents
GitHub stars
381
Token cost
~2.6k tokens
SKILL.md length
1,044 words
Files
1
Skills in repo
43
Repo updated
First seen
Licence
AGPL-3.0

At a glance

A skill your agent uses when building durable AI agents or agentic workflows with Inngest and AgentKit, including model calls, tool calls, multi-agent networks, human approval, realtime progress…

  • Works in 9 steps: The HTTP/server action layer validates… → An Inngest function owns the agent run. → Load state and external context inside… → …
  • Building durable AI agents
  • SKILL.md covers Copyable Example, When to Use Inngest for Agents, Architecture and Basic AgentKit Function, plus 12 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Inngest Agents is an agent skill from Asymmetric-al/core. Use when building durable AI agents or agentic workflows with Inngest and AgentKit, including model calls, tool calls, multi-agent networks, human approval, realtime progress, provider rate limits, crash-safe execution, and Agent Evals handoff. Covers AgentKit, step.ai, step.run, step.waitForEvent, native realtime, and when to use lower-level Inngest primitives instead of an in-memory agent loop. Use inngest-agent-evals with this skill when the user wants scoring, sessions, experiments, deferred scorers, or…

Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Agent Workflows, covering LLM evaluation, Autonomous loops and Rate limiting. The repository describes itself as: A high-performance, enterprise-grade Next.js 16 application for mission-focused non-profit organizations. Built for high impact teams. The licence is AGPL-3.0.

When your agent uses it

  • Building durable AI agents
  • Agentic workflows with Inngest and AgentKit
  • Including model calls
  • Multi-agent networks

Example prompts

  • “/inngest-agents”

Workflow steps

9 steps, taken from the first numbered list in SKILL.md.

  1. The HTTP/server action layer validates auth, stores the user's intent if
  2. An Inngest function owns the agent run.
  3. Load state and external context inside step.run.
  4. Create AgentKit agents inside the function or import agent/network
  5. Run model inference through AgentKit / step.ai; wrap non-model tool side
  6. Use step.waitForEvent or step.waitForSignal for human approval and
  7. Publish durable progress with native realtime.
  8. Add sessions and scores when the agent outcome needs to be evaluated later.
  9. Apply flow control at the function level for provider and tenant limits.

What it can do on your machine

Read from SKILL.md and the folder at commit c30c8ff. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are typescript).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • inngest.com
    • agentkit.inngest.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Inngest Agents loads about 2.6k tokens when it runs. Until then it costs about 144 tokens; SKILL.md has 1,044 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~144
When it runs · the whole SKILL.md, loaded when a task matches
~2.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Asymmetric-al/core at commit c30c8ff, republished under its AGPL-3.0 licence (© Asymmetric-al). 1,044 words, ~2,581 tokens.

Download SKILL.mdSave it as .claude/skills/inngest-agents/SKILL.md (or your agent's skills folder).
name
inngest-agents
description
Use when building durable AI agents or agentic workflows with Inngest and AgentKit, including model calls, tool calls, multi-agent networks, human approval, realtime progress, provider rate limits, crash-safe execution, and Agent Evals handoff. Covers AgentKit, `step.ai`, `step.run`, `step.waitForEvent`, native realtime, and when to use lower-level Inngest primitives instead of an in-memory agent loop. Use `inngest-agent-evals` with this skill when the user wants scoring, sessions, experiments, deferred scorers, or outcome-based evaluation for the agent.

Inngest Agents

Use this skill when the user wants to build, migrate, or debug an AI agent, multi-step AI workflow, tool-calling loop, support agent, research agent, human-in-the-loop review flow, or realtime agent UI.

Inngest's AgentKit defines agents with createAgent; when an AgentKit run is owned by an Inngest function, model calls use Inngest step.ai so they retry and cache model results durably. Use the lower-level Inngest step primitives around the agent for database reads/writes, tool side effects, waits, approvals, realtime progress, and flow control.

Official references:

Copyable Example

When starting a durable support or tool-calling agent from scratch, use the official inngest/inngest-codex-plugin companion example at plugins/inngest/examples/durable-agent as the upstream reference. This repo does not vendor Codex plugin examples; copy only the patterns needed for a separate product integration change.

When to Use Inngest for Agents

Good fit:

  • Agent can take longer than one HTTP request.
  • Agent calls tools, APIs, databases, browsers, sandboxes, or MCP servers.
  • Agent needs to survive deploys, crashes, serverless timeouts, or model/API failures.
  • Agent may wait for human approval, external callbacks, scheduled follow-up, or user input.
  • Agent progress should stream to a UI from the durable workflow.
  • Model/provider calls need concurrency or throttle limits.
  • Duplicate sends, charges, writes, or model calls would be costly.

Not usually worth it:

  • One short, read-only model call with no side effects and no need for durable progress.
  • UI-only autocomplete where losing the request is acceptable.

Architecture

Use this shape unless the repo already has a stronger established pattern:

  1. The HTTP/server action layer validates auth, stores the user's intent if needed, emits an event with a stable id, and returns quickly.
  2. An Inngest function owns the agent run.
  3. Load state and external context inside step.run.
  4. Create AgentKit agents inside the function or import agent/network factories.
  5. Run model inference through AgentKit / step.ai; wrap non-model tool side effects in step.run.
  6. Use step.waitForEvent or step.waitForSignal for human approval and external callbacks.
  7. Publish durable progress with native realtime.
  8. Add sessions and scores when the agent outcome needs to be evaluated later.
  9. Apply flow control at the function level for provider and tenant limits.

Basic AgentKit Function

Prefer a small, typed function first; add networks and extra tools after the single-agent path is proven.

typescript
import { createAgent, openai } from "@inngest/agent-kit";
import { inngest } from "@/inngest/client";

export const summarizeTicket = inngest.createFunction(
  {
    id: "summarize-ticket",
    triggers: [{ event: "support/ticket.created" }],
    concurrency: [{ key: "event.data.accountId", limit: 2 }],
  },
  async ({ event, step }) => {
    const ticket = await step.run("load-ticket", () => {
      return getTicket(event.data.ticketId);
    });

    const writer = createAgent({
      name: "support-summary-writer",
      system: "Write a concise support-ticket summary with next actions.",
      model: openai({ model: "gpt-4o" }),
    });

    const { output } = await writer.run(JSON.stringify(ticket));

    await step.run("save-summary", () => {
      return saveTicketSummary(event.data.ticketId, output);
    });

    return { ticketId: event.data.ticketId };
  },
);

Tool Calls

Tools can be defined with AgentKit, but agent-safe tools should still follow durability rules:

  • Read-only tool calls can run as part of the agent when replaying is harmless.
  • External side effects should be isolated with stable IDs and step.run boundaries, or implemented as tool handlers that use the provided step.
  • Tool outputs should be small enough for step state limits.
  • Validate tool parameters with schemas; never trust model-provided arguments.
  • Use tenant/user IDs from authenticated event data, not only from model text.

Tool side-effect checklist:

text
- What external state can this tool change?
- What idempotency key prevents duplicate writes?
- What should happen if the model calls the same tool twice?
- Is the output safe to store in function run state?
- Does the tool need provider-specific concurrency or throttle limits?

Human in the Loop

Use a durable wait instead of polling a database or keeping state in memory.

typescript
const approval = await step.waitForEvent("wait-for-approval", {
  event: "support/reply.approved",
  timeout: "3d",
  match: "data.ticketId",
});

if (!approval) {
  await step.run("mark-review-timeout", () => {
    return markTicketNeedsManualReview(event.data.ticketId);
  });
  return { status: "timed_out" };
}

await step.run("send-reply", () => {
  return sendSupportReply({
    ticketId: event.data.ticketId,
    approvalId: approval.data.approvalId,
  });
});

Realtime Progress

For v4 native realtime:

  • Use step.realtime.publish between steps.
  • Use inngest.realtime.publish inside an existing step.run.
  • Do not install the v3 @inngest/realtime package for v4 projects.
  • Do not build a process-local WebSocket as the only source of progress for a durable function.

For AgentKit-specific UI hooks, check the installed @inngest/agent-kit version and current docs before wiring useAgent or useChat.

Agent Evals

Use inngest-agent-evals when the user asks to score an agent, compare prompts or models, track user feedback, group runs by conversation/ticket, or debug agent quality over time. In durable agent workflows, add meta.sessions at the event that starts or connects the user flow, use direct scoring for signals known during the run, and use deferred scorers for product outcomes that arrive later.

Show full SKILL.md (424 more words)Show less

Flow Control and Cost

Agent workloads often need provider and tenant limits:

  • Use account-scoped concurrency or throttle keys for model providers.
  • Key per tenant or account where fairness matters.
  • Use deterministic event IDs so duplicate user actions do not spawn duplicate expensive runs.
  • Keep successful model/tool results in steps so retrying a later failure does not re-charge earlier model calls.

Example:

typescript
{
  id: "support-agent-run",
  triggers: [{ event: "support/agent.requested" }],
  throttle: {
    limit: 120,
    period: "1m",
    key: `"openai"`
  },
  concurrency: [
    { key: "event.data.accountId", limit: 3 }
  ]
}

Brownfield Migration

When migrating an existing agent:

  1. Search for model calls, tool loops, in-memory state, streaming handlers, approval polling, and external side effects.
  2. Keep prompt/tool behavior stable at first.
  3. Move the trigger into an event and an Inngest function.
  4. Move model calls to AgentKit / step.ai.
  5. Move side-effecting tools into step.run or durable tool handlers.
  6. Replace process-local waits with step.waitForEvent or step.waitForSignal.
  7. Add realtime after the durable run is working.

Use inngest-brownfield-audit first when the repo has multiple possible workflows and the user has not picked one.

Anti-Patterns

  • Agent loop state only in memory.
  • One giant try/catch around all model and tool calls.
  • Retrying the entire agent after one tool failure.
  • Charging repeatedly for successful model calls after a later step fails.
  • setTimeout, cron polling, or Redis TTL as the human-review mechanism.
  • Side-effecting tools with no idempotency key.
  • Streaming progress from a server process that can die while the durable work continues elsewhere.
  • Adding AgentKit without registering the surrounding Inngest function.

Verification

  • Typecheck the agent, tool schemas, and event payloads.
  • Unit-test tool handlers separately from model behavior.
  • Test that the HTTP entrypoint emits one deterministic event and returns fast.
  • Test that duplicate event IDs do not duplicate final side effects.
  • If possible, run the Inngest dev server and inspect the agent steps/traces.

This Repository

These upstream Inngest instructions are vendored for agent tooling and integration work in this monorepo.

Repository Triggers

Use this skill when inngest-agents matches the current Inngest task. If the right skill is unclear, start with docs/ai/skills/inngest/SKILL.md.

Repository Workflow

  1. Confirm whether the request is agent-tooling guidance or product runtime integration.
  2. Use inngest-brownfield-audit before changing existing app workflows or fragile background work.
  3. Follow this upstream guidance under OpenSpec, root AGENTS.md, repo rulebooks, framework docs, and runtime evidence.
  4. Keep runtime packages, app code, migrations, and INNGEST_* env requirements out of agent-tooling-only changes.

Repository Checklist

  • The task has explicit product-runtime scope before adding Inngest app code or dependencies.
  • Existing workflows were audited before introducing or changing durable workflow behavior.
  • Any MCP usage is backed by a running Inngest dev server on the configured port.
  • Upstream source and license attribution remain documented in docs/ai/skills/inngest/references/upstream.md.

© Asymmetric-al, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/inngest-agents of Asymmetric-al/core.

Open the folder on GitHubat commit c30c8ff

Compare with similar skills

Inngest Agents next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Inngest Agents compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Inngest Agents this skillAsymmetric-al/core381—~2.6kAutomated safety check: PassAGPL-3.0
Loop Architectfabricioctelles/skills106—~2.1kAutomated safety check: NotesMIT
Autoresearchbyungjunjang/jangpm-meta-skills120—~6kAutomated safety check: WarnNone
Improving MCP ToolsPostHog/posthog40k—~1.5kAutomated safety check: PassCustom licence
Author Skillericrisco/rsc-harness180—~4.3kAutomated safety check: PassMIT
Agents Best PracticesDenisSergeevitch/agents-best-practices2.4k—~7.4kAutomated safety check: PassMIT

Similar skills

  • Loop Architect

    fabricioctelles/skills

    Design well-structured agent loops with best-practice coaching and cross-model review gates before you run them.

    106 GitHub stars~2.1k tokensUpdated today
    Agent WorkflowsAuto-check: notes
  • Autoresearch

    byungjunjang/jangpm-meta-skills

    Autonomously optimize a Claude Code skill or agent system by running it repeatedly, scoring outputs against evals, mutating owned artifacts (prompt, references, scripts, agent definitions), and…

    120 GitHub stars~6k tokensUpdated 2 mo ago
    Agent WorkflowsAuto-check: warnings
  • Improving MCP Tools

    PostHog/posthog

    Official

    Run an improve-my-MCP campaign: an autoresearch-style loop that measures the MCP agent experience with the eval harness, picks the highest-impact tool problem from production data, makes one bounded…

    40k GitHub stars~1.5k tokensUpdated yesterday
    Agent WorkflowsAuto-check passed
  • Author Skill

    ericrisco/rsc-harness

    A skill your agent uses when authoring a NEW rsc skill or editing an existing one — scoping it to one job, writing the description that decides whether it ever loads, splitting the body into…

    180 GitHub stars~4.3k tokensUpdated yesterday
    Agent WorkflowsAuto-check passed
  • Agents Best Practices

    DenisSergeevitch/agents-best-practices

    A skill your agent uses when designing, generating an MVP blueprint for, auditing, troubleshooting, refactoring, or explaining an agentic harness for any domain.

    2.4k GitHub stars~7.4k tokensUpdated 6 days ago
    AI & LLM EngineeringAuto-check passed
  • Autocontext Knowledge Creator

    greyhaven-ai/autocontext

    Runs the `autoctx` CLI to improve an approach to a task over several generations, score or refine a single output and inspect what a run produced.

    1.3k GitHub stars~964 tokensUpdated 4 days ago
    AI & LLM EngineeringAuto-check passed

More from Asymmetric-al/core

All 43 skills in this repo
  • Idempotency Handling

    Asymmetric-al/core

    Implement idempotency keys and handling to ensure operations can be safely retried without duplicate effects.

    381 GitHub stars~867 tokensUpdated today
    Auto-check passed
  • Accessibility Review

    Asymmetric-al/core

    Audit and fix accessibility in Core UI. An agent skill from Asymmetric-al/core.

    381 GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Agent Email Inbox

    Asymmetric-al/core

    A skill your agent uses when building any system where email content triggers actions — AI agent inboxes, automated support handlers, email-to-task pipelines, or any workflow processing untrusted…

    381 GitHub stars~4.1k tokensUpdated today
    Auto-check: notes
  • Components Build

    Asymmetric-al/core

    Build modern, composable, and accessible React UI components following the components.build specification.

    381 GitHub stars~2.1k tokensUpdated today
    Auto-check passed
  • Create Agent

    Asymmetric-al/core

    Guides a one-question-at-a-time design interview, captures alignment in agent/EVE-BRIEF.md, then scaffolds and implements a runnable eve agent with verbose teaching comments.

    381 GitHub stars~2.6k tokensUpdated today
    Auto-check: notes
  • Emil Design Engineering

    Asymmetric-al/core

    Design engineering principles and patterns for building polished, accessible web interfaces.

    381 GitHub stars~1.4k tokensUpdated today
    Auto-check passed

Questions about Inngest Agents

What does Inngest Agents do?

A skill your agent uses when building durable AI agents or agentic workflows with Inngest and AgentKit, including model calls, tool calls, multi-agent networks, human approval, realtime progress…. Inngest Agents is an agent skill from Asymmetric-al/core. Use when building durable AI agents or agentic workflows with Inngest and AgentKit, including model calls, tool calls, multi-agent networks, human approval, realtime progress, provider rate limits, crash-safe execution, and Agent Evals handoff.

When should I use Inngest Agents?

Inngest Agents fits situations like: building durable AI agents; agentic workflows with Inngest and AgentKit; including model calls; multi-agent networks.

How do I install Inngest Agents in Claude Code?

Run `npx skills add Asymmetric-al/core --skill inngest-agents -a claude-code`. Or copy the skill folder (.agents/skills/inngest-agents in Asymmetric-al/core) into .claude/skills/inngest-agents in your project. Claude Code loads it when a task matches its description.

How do I install Inngest Agents in Codex?

Run `npx skills add Asymmetric-al/core --skill inngest-agents -a codex`. Or copy the skill folder (.agents/skills/inngest-agents in Asymmetric-al/core) into .agents/skills/inngest-agents in your project. Codex loads it when a task matches its description.

Can I use Inngest Agents in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Asymmetric-al/core --skill inngest-agents -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/inngest-agents, .gemini/skills/inngest-agents, .github/skills/inngest-agents and .opencode/skills/inngest-agents in your project.

What does Inngest Agents need to run?

SKILL.md names no scripts, command-line tools or credentials: Inngest Agents is instructions for the agent only.

Does Inngest Agents access the network?

SKILL.md names 2 domains. As links in the text: inngest.com and agentkit.inngest.com. This is read from the text; nothing was executed.

Is Inngest Agents safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Inngest Agents use?

Inngest Agents is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Inngest Agents use?

About 2.6k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Inngest Agents?

Skills that share tags, products or a category with Inngest Agents: Loop Architect (fabricioctelles/skills, 106 stars), Autoresearch (byungjunjang/jangpm-meta-skills, 120 stars), Improving MCP Tools (PostHog/posthog, 40k stars) and Author Skill (ericrisco/rsc-harness, 180 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Inngest Agents?

Asymmetric-al (a GitHub organization) maintains it in Asymmetric-al/core, which has 381 GitHub stars. The repository holds 43 skills in this directory. The repository was last updated on October 9, 2026.

Source: Asymmetric-al/core on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.