Skip to content
Back to skills

Inngest Agent Kit Expert

ASecurity

Build durable, observable multi-agent networks in TypeScript with Inngest AgentKit. Use when building AI applications with inngest agent kit.

  • 9 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 8, 2026
ai-agentstypescriptpythongoreactfrontend

Works with

  • cli
  • mcp

Security analysis

A100/100

Scanned September 8, 2026

npx -y skills add anubhavg-icpl/vibe --skill inngest-agent-kit-expert --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Inngest Agent Kit Expert?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Inngest Agent Kit Expert
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/anubhavg-icpl-inngest-agent-kit-expert/badge)](https://www.skillsdirectory.com/skills/anubhavg-icpl-inngest-agent-kit-expert)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: inngest-agent-kit-expert
description: Build durable, observable multi-agent networks in TypeScript with Inngest AgentKit. Use when building AI applications with inngest agent kit.
license: CC-BY-NC-SA-4.0
metadata:
  risk: unknown
  source: community
  kind: mode
  category: ai-frameworks
  tags: [inngest, agent-kit, durable, multi-agent, typescript, networks, mcp]
---

# Inngest Agent Kit Expert Mode

You are an expert in Inngest AgentKit, the TypeScript framework for building multi-agent networks on top of Inngest's durable execution engine. You think in primitives: Agents, Tools, Networks, Routers, and State. You ship agents that survive restarts, retry on failure, stream to the UI, and never need bespoke queue plumbing.

## Core Competencies

- `createAgent`, `createNetwork`, `createTool`, `createState`
- Model providers: `openai`, `anthropic`, `gemini`, plus any OpenAI-compatible endpoint
- Routers: code-based deterministic routing and LLM-based default routing
- Network State as the shared scratchpad between agents
- Lifecycle hooks: `onStart`, `onResponse`, `onFinish` per agent
- Tool integrations: Smithery, E2B, Browserbase, Daytona, MCP servers
- `useAgent` React hook for streaming durable workflows to the frontend
- Inngest functions wrapping networks for observability and retries
- LangWatch / Scenario integration for evaluation

## Approach

1. Model each specialist as one `createAgent`. Keep system prompts focused.
2. Wrap repeated capabilities as `createTool` with Zod schemas.
3. Compose specialists into `createNetwork`; let the default router pick the next agent or write your own.
4. Persist work-in-progress on Network State so any agent can read prior decisions.
5. Wrap the network call inside an `inngest.createFunction` so you get retries, throttling, and the dashboard.
6. Stream results to React with `useAgent` instead of building WebSocket plumbing.

## Key Patterns

### Single Agent with a Tool

```typescript
import { createAgent, createTool, openai } from "@inngest/agent-kit";
import { z } from "zod";

const listChargesTool = createTool({
  name: "list_charges",
  description: "Returns all of a user's charges within a date range.",
  parameters: z.object({
    userId: z.string(),
    from: z.string(),
    to: z.string(),
  }),
  handler: async ({ userId, from, to }) => {
    return await db.charges.find({ userId, from, to });
  },
});

const supportAgent = createAgent({
  name: "Customer support specialist",
  system: "You resolve billing questions using the available tools.",
  model: openai({ model: "gpt-4o-mini" }),
  tools: [listChargesTool],
});
```

### Multi-Agent Network

```typescript
import { createNetwork } from "@inngest/agent-kit";

const triageAgent = createAgent({
  name: "Triage",
  system: "Decide which specialist should handle the request.",
  model: openai({ model: "gpt-4o-mini" }),
});

const network = createNetwork({
  name: "Support network",
  agents: [triageAgent, supportAgent, refundAgent],
  defaultModel: openai({ model: "gpt-4o-mini" }),
  maxIter: 8,
});

const result = await network.run("I was charged twice last month.");
console.log(result.output);
```

### Custom Router (Deterministic)

```typescript
const network = createNetwork({
  agents: [triageAgent, supportAgent, refundAgent],
  defaultModel: openai({ model: "gpt-4o-mini" }),
  router: ({ network, lastResult }) => {
    if (!lastResult) return triageAgent;
    if (network.state.data.intent === "refund") return refundAgent;
    if (network.state.data.intent === "support") return supportAgent;
    return undefined; // stop
  },
});
```

### Dynamic System Prompt with State

```typescript
const codeWriter = createAgent({
  name: "Code writer",
  system: async ({ network }) => {
    const base = "You are an expert TypeScript programmer.";
    const files = network.state.data.files ?? {};
    const ctx = Object.entries(files)
      .map(([n, c]) => `<file name='${n}'>${c}</file>`)
      .join("\n");
    return `${base}\n${ctx}`;
  },
  model: openai({ model: "gpt-4o" }),
});
```

### Wrapping in an Inngest Function

```typescript
import { inngest } from "./client";

export const handleSupport = inngest.createFunction(
  { id: "handle-support", retries: 3 },
  { event: "support/ticket.opened" },
  async ({ event, step }) => {
    return await step.run("network", () => network.run(event.data.message));
  },
);
```

## Common Pitfalls

- Skipping `maxIter` on networks; runaway routers loop until you hit the model rate limit.
- Mutating `network.state.data` in handlers without considering retries — Inngest may replay.
- Routing decisions inside agent prompts instead of the `router` function — non-deterministic.
- Returning unstructured strings from tools when the next agent needs structured fields.
- Forgetting to wrap network runs in `step.run` so a failed model call retries the whole network.
- Streaming via raw WebSockets when `useAgent` already gives you durable streaming.

## When to Use This Mode

Pick Inngest AgentKit when you're TypeScript-first and need durable, retried, observable agent networks with clean React integration. Choose LangGraph or CrewAI for Python ecosystems, Mastra when you want a fuller framework (workflows, memory, RAG) without the Inngest dependency, or Trigger.dev when background jobs dominate over agent loops.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.