ONE PAYMENT NO SUBSCRIPTION, LIFETIME UPDATES

Ship production AI agents in days, not months.

The complete agent codebase for Python and TypeScript: 44 blueprints, tooling, prompts and deploy configs. Buy it once, download it now, own it forever.

BUILT ON THE STACK YOU ALREADY USE
Brand
Brand
Brand
Brand
Brand
Brand
A computer screen with a bunch of text on it.

Everything you need to ship an agent, in one repository

Blueprints, tooling, prompts and deploy configs, already wired together and tested against real workloads.

Icon

44 agent blueprints

Support, research, content and data agents, each one a small readable project. Clone it, set your keys, run it.

Icon

Tooling and memory layer

Tool calling, retries, state and vector memory already implemented in both Python and TypeScript.

A black background with green text and a green line.
Icon

Prompt and evaluation library

System prompts with the test cases used to tune them, so you can change a prompt without guessing.

s-icon

Deploy configs

Dockerfiles, queue workers and Vercel or Fly configs so the agent runs somewhere other than your laptop.

Everything wired, so you write logic not plumbing

Each blueprint ships with the parts tutorials skip: retries, observability, tests and safe rollout.

Agent logic in plain, readable code

Plain Python or TypeScript functions. No proprietary runtime, no hidden framework, nothing to lock you in.

Icon
Explicit control flow you can read in one sitting
Icon
Typed inputs and outputs on every agent step
Icon
Swap model providers without rewriting the agent
A screenshot of a web page with a black and green background.
A computer screen with a black and white background.

See what the agent is doing in production

The observability module writes every step, tool call and token cost to your own database.

Icon
Full traces of prompts, tools and outputs per run
Icon
Token and cost tracking per run and per customer
Icon
Alerts when an agent starts failing or looping

Test the agent before your users do

An evaluation suite runs your prompts against fixed cases, so a small edit never silently breaks behaviour.

Icon
Regression tests for prompts and tool calls
Icon
Golden datasets included with every blueprint
Icon
Run the suite locally or in your CI pipeline
A screenshot of a web page with the privacy settings highlighted.
A black and white photo of a computer screen.

Guardrails included, not left as an exercise

Budget caps, timeouts, retries and input validation are already implemented and documented in every blueprint.

Icon
Spend caps per run and per customer
Icon
Timeouts and retries on every tool call
Icon
Input and output validation out of the box

Drop in. Start shipping.

The kit handles state, retries and tool calling in Python and TypeScript, with Go and cURL examples for the HTTP layer.

Python blueprints

IconIcon

Full Python projects with pinned dependencies. Works with pandas, numpy or any pip package for data and ML steps inside the agent.

{
  id: "content-pipeline",

  run: async ({ topic }: { topic: string }) => {
    // Step 1: AI plans content strategy
    const { object: plan } = await generateObject({
      model: openai("o3-mini"),
      schema: contentPlanSchema,
      prompt: `Plan a comprehensive content strategy for: ${topic}`,
    });

    logger.info("Content plan", {
      pieces: plan.pieces.length,
    });

    // Step 2: Generate all content in parallel
    const results = await batch.triggerByTaskAndWait(
      plan.pieces.map((piece) => ({
        task: piece.type === "blog" ? writeBlog : writeThread,
        payload: {
          topic,
          angle: piece.angle,
          tone: plan.tone,
        },
      }))
    );

    // Step 3: Review and publish successful pieces
    const approved = results.runs.filter((r) => r.ok);

    await batch.triggerAndWait(
      approved.map((r) => ({
        task: publishContent,
        payload: r.output,
      }))
    );

    return {
      published: approved.length,
      total: plan.pieces.length,
    };
  },
}

TypeScript blueprints

IconIcon

The same blueprints in TypeScript, typed end to end, ready to drop into a Node or Next.js project without a build step of their own.

// Human-in-the-loop approval workflow
export const contentApproval = task({
  id: "content-approval",

  run: async ({ draft }: { draft: ContentDraft }) => {
    // Generate content
    const content = await generateContent(draft);

    // Create approval token and notify
    const token = await wait.createToken({ timeout: "24h" });

    await notify.slack({
      channel: "#content-review",
      text: `New content needs approval`,
      actions: [
        { label: "Approve", url: approveUrl(token.id) },
        { label: "Reject", url: rejectUrl(token.id) },
      ],
    });

    // Wait for human decision
    const { data } = await wait.forToken<{ approved: boolean }>(token);

    if (!data.approved) {
      return { status: "rejected" };
    }

    await publishContent(content);

    return {
      status: "published",
    };
  },
});

Go examples

IconIcon

Go examples for the HTTP layer, useful when the agent runs behind an existing Go service or you need a small static binary.

// AI agent with tool calling – works with any model
export const researchAgent = task({
  id: "research-agent",

  run: async ({ topic }: { topic: string }) => {
    const messages: CoreMessage[] = [
      {
        role: "user",
        content: `Research: ${topic}`,
      },
    ];

    for (let i = 0; i < 10; i++) {
      const { text, toolCalls, steps } = await generateText({
        model: anthropic("claude-opus-4-20250514"),
        system: "You are a research assistant with web access.",
        messages,
        tools: { search, browse, analyze },
        maxSteps: 5,
      });

      if (!toolCalls.length) {
        return {
          summary: text,
          stepsUsed: steps.length,
        };
      }

      for (const call of toolCalls) {
        const result = await executeTool(call);

        messages.push({
          role: "tool",
          content: result,
        });
      }
    }

    throw new Error("Maximum iterations reached.");
  },
});

cURL examples

IconIcon

Raw cURL calls for every endpoint, so you can test the flow from a terminal before writing a single line of application code.

// Generate content with validated schema - can be used as AI tool
export const generateContent = schemaTask({
  id: "generate-content",

  schema: z.object({
    theme: z.string().describe("The theme of the content"),
    description: z
      .string()
      .describe("What the content should be about"),
  }),

  run: async ({ theme, description }) => {
    const { object } = await generateObject({
      model: openai("o3-mini"),

      schema: z.object({
        title: z.string(),
        body: z.string(),
        tags: z.array(z.string()),
        imagePrompt: z.string(),
      }),

      prompt: `Create content about ${theme}: ${description}`,
    });

    const { images } = await fal.subscribe("fal-ai/bananana", {
      input: {
        prompt: object.imagePrompt,
        aspect_ratio: "16:9",
      },
    });

    return {
      ...object,
      image: images[0].url,
    };
  },
});
{
  id: "content-pipeline",

  run: async ({ topic }: { topic: string }) => {
    // Step 1: AI plans content strategy
    const { object: plan } = await generateObject({
      model: openai("o3-mini"),
      schema: contentPlanSchema,
      prompt: `Plan a comprehensive content strategy for: ${topic}`,
    });

    logger.info("Content plan", {
      pieces: plan.pieces.length,
    });

    // Step 2: Generate all content in parallel
    const results = await batch.triggerByTaskAndWait(
      plan.pieces.map((piece) => ({
        task: piece.type === "blog" ? writeBlog : writeThread,
        payload: {
          topic,
          angle: piece.angle,
          tone: plan.tone,
        },
      }))
    );

    // Step 3: Review and publish successful pieces
    const approved = results.runs.filter((r) => r.ok);

    await batch.triggerAndWait(
      approved.map((r) => ({
        task: publishContent,
        payload: r.output,
      }))
    );

    return {
      published: approved.length,
      total: plan.pieces.length,
    };
  },
}
// Human-in-the-loop approval workflow
export const contentApproval = task({
  id: "content-approval",

  run: async ({ draft }: { draft: ContentDraft }) => {
    // Generate content
    const content = await generateContent(draft);

    // Create approval token and notify
    const token = await wait.createToken({ timeout: "24h" });

    await notify.slack({
      channel: "#content-review",
      text: `New content needs approval`,
      actions: [
        { label: "Approve", url: approveUrl(token.id) },
        { label: "Reject", url: rejectUrl(token.id) },
      ],
    });

    // Wait for human decision
    const { data } = await wait.forToken<{ approved: boolean }>(token);

    if (!data.approved) {
      return { status: "rejected" };
    }

    await publishContent(content);

    return {
      status: "published",
    };
  },
});
// AI agent with tool calling – works with any model
export const researchAgent = task({
  id: "research-agent",

  run: async ({ topic }: { topic: string }) => {
    const messages: CoreMessage[] = [
      {
        role: "user",
        content: `Research: ${topic}`,
      },
    ];

    for (let i = 0; i < 10; i++) {
      const { text, toolCalls, steps } = await generateText({
        model: anthropic("claude-opus-4-20250514"),
        system: "You are a research assistant with web access.",
        messages,
        tools: { search, browse, analyze },
        maxSteps: 5,
      });

      if (!toolCalls.length) {
        return {
          summary: text,
          stepsUsed: steps.length,
        };
      }

      for (const call of toolCalls) {
        const result = await executeTool(call);

        messages.push({
          role: "tool",
          content: result,
        });
      }
    }

    throw new Error("Maximum iterations reached.");
  },
});
// Generate content with validated schema - can be used as AI tool
export const generateContent = schemaTask({
  id: "generate-content",

  schema: z.object({
    theme: z.string().describe("The theme of the content"),
    description: z
      .string()
      .describe("What the content should be about"),
  }),

  run: async ({ theme, description }) => {
    const { object } = await generateObject({
      model: openai("o3-mini"),

      schema: z.object({
        title: z.string(),
        body: z.string(),
        tags: z.array(z.string()),
        imagePrompt: z.string(),
      }),

      prompt: `Create content about ${theme}: ${description}`,
    });

    const { images } = await fal.subscribe("fal-ai/bananana", {
      input: {
        prompt: object.imagePrompt,
        aspect_ratio: "16:9",
      },
    });

    return {
      ...object,
      image: images[0].url,
    };
  },
});

Works with the stack you already use

Adapters for the main model providers, vector stores and queues are included. Each one is a single file you can read in a couple of minutes and change to fit your stack.

A green object with a black background.

INTEGRATION

Swap any provider by editing one adapter file.

Brand
Brand
Brand
Brand
Brand
Brand
Brand
Brand
Brand
Brand
Brand
Brand

Built for people who ship, not for demos

A man in a suit and tie posing for a picture.

Most agent demos die between the notebook and production. This kit exists to cover that gap: the retries, the traces, the tests and the deploy files nobody writes on a Friday afternoon.

From the maintainers
Azentie Agent Kit
Brand
0
2
3
4
5
6
7
8
4
4
3
2
1
9
8
7
6
4
+

Agent blueprints included

0
8
7
6
5
4
3
2
1
0
3
2
1
9
8
7
6
5
Hrs

Of setup work you skip

0
8
7
6
5
4
3
2
1
0
3
2
1
9
8
7
6
0
min

From download to first agent run

Trusted by modern teams

PLACEHOLDER: these are the template’s stock testimonials. Replace them with real ones or set TESTIMONIALS = False in _build/build.py.

“Azentie helped us replace fragmented deployment workflows with a single, developer-first platform. Our team ships faster with far fewer production issues.”

A close up of a person wearing a black shirt.
Bessie Cooper
CEO, Lead Engineer Core

“The API experience feels incredibly polished. From the documentation to the SDK structure, everything was exactly how modern developer teams expect.”

A man in an orange shirt poses for a picture.
Ronald Richards
CTO, AI Automation Startup

“Before Azentie, debugging distributed workflows was painful. Now we have complete observability across every execution and integration.”

A man with a beard wearing a jacket.
Floyd Miles
Platform Engineering Manager

“We reduced release validation time from hours to minutes. Automated checks and environment testing completely changed how our team deploys.”

A man in a gray shirt looking at the camera.
Jenny Wilson
Senior DevOps Engineer

“Most developer platforms feel overly complex. Azentie keeps the experience technical without sacrificing clarity and significantly fewer failed  or usability.”

A man with a beard wearing a white shirt.
Brooklyn Simmons
Backend Team Lead

“Azentie gave our platform the reliability layer we were missing. Better monitoring, cleaner deployments, and significantly fewer failed releases.”

A close up of a person wearing a black shirt.
Theresa Webb
Head of Engineering

“Azentie helped us replace fragmented deployment workflows with a single, developer-first platform. Our team ships faster with far fewer production issues.”

A close up of a person wearing a black shirt.
Bessie Cooper
CEO, Lead Engineer Core

“The API experience feels incredibly polished. From the documentation to the SDK structure, everything was exactly how modern developer teams expect.”

A man in an orange shirt poses for a picture.
Ronald Richards
CTO, AI Automation Startup

“Before Azentie, debugging distributed workflows was painful. Now we have complete observability across every execution and integration.”

A man with a beard wearing a jacket.
Floyd Miles
Platform Engineering Manager

“We reduced release validation time from hours to minutes. Automated checks and environment testing completely changed how our team deploys.”

A man in a gray shirt looking at the camera.
Jenny Wilson
Senior DevOps Engineer

“Most developer platforms feel overly complex. Azentie keeps the experience technical without sacrificing clarity and significantly fewer failed  or usability.”

A man with a beard wearing a white shirt.
Brooklyn Simmons
Backend Team Lead

“Azentie gave our platform the reliability layer we were missing. Better monitoring, cleaner deployments, and significantly fewer failed releases.”

A close up of a person wearing a black shirt.
Theresa Webb
Head of Engineering

“Azentie helped us replace fragmented deployment workflows with a single, developer-first platform. Our team ships faster with far fewer production issues.”

A close up of a person wearing a black shirt.
Bessie Cooper
CEO, Lead Engineer Core

“The API experience feels incredibly polished. From the documentation to the SDK structure, everything was exactly how modern developer teams expect.”

A man in an orange shirt poses for a picture.
Ronald Richards
CTO, AI Automation Startup

“Before Azentie, debugging distributed workflows was painful. Now we have complete observability across every execution and integration.”

A man with a beard wearing a jacket.
Floyd Miles
Platform Engineering Manager

“We reduced release validation time from hours to minutes. Automated checks and environment testing completely changed how our team deploys.”

A man in a gray shirt looking at the camera.
Jenny Wilson
Senior DevOps Engineer

“Most developer platforms feel overly complex. Azentie keeps the experience technical without sacrificing clarity and significantly fewer failed  or usability.”

A man with a beard wearing a white shirt.
Brooklyn Simmons
Backend Team Lead

“Azentie gave our platform the reliability layer we were missing. Better monitoring, cleaner deployments, and significantly fewer failed releases.”

A close up of a person wearing a black shirt.
Theresa Webb
Head of Engineering

“Azentie helped us replace fragmented deployment workflows with a single, developer-first platform. Our team ships faster with far fewer production issues.”

A close up of a person wearing a black shirt.
Bessie Cooper
CEO, Lead Engineer Core

“The API experience feels incredibly polished. From the documentation to the SDK structure, everything was exactly how modern developer teams expect.”

A man in an orange shirt poses for a picture.
Ronald Richards
CTO, AI Automation Startup

“Before Azentie, debugging distributed workflows was painful. Now we have complete observability across every execution and integration.”

A man with a beard wearing a jacket.
Floyd Miles
Platform Engineering Manager

“We reduced release validation time from hours to minutes. Automated checks and environment testing completely changed how our team deploys.”

A man in a gray shirt looking at the camera.
Jenny Wilson
Senior DevOps Engineer

“Most developer platforms feel overly complex. Azentie keeps the experience technical without sacrificing clarity and significantly fewer failed  or usability.”

A man with a beard wearing a white shirt.
Brooklyn Simmons
Backend Team Lead

“Azentie gave our platform the reliability layer we were missing. Better monitoring, cleaner deployments, and significantly fewer failed releases.”

A close up of a person wearing a black shirt.
Theresa Webb
Head of Engineering

One payment. No subscription.

Buy the kit once and download it immediately.
No seats, no usage fees, no renewal date.

Core

For solo developers shipping their first agent.

€39

/one-time
Instant download, lifetime updates
Icon
12 agent blueprints, Python and TypeScript
Icon
Tooling, retries and memory layer
Icon
Prompt library with the test cases
Icon
Docker and Vercel deploy configs
Icon
Licence for your own projects

Pro

For teams putting agents in front of real users.

MOST POPULAR

€79

/one-time
Instant download, lifetime updates
Icon
Everything in Core, plus
Icon
All 44 agent blueprints
Icon
Observability and cost tracking module
Icon
Evaluation and regression suite
Icon
Unlimited projects, single company

Agency

For studios shipping agents inside client work.

€149

/one-time
Instant download, lifetime updates
Icon
Everything in Pro, plus
Icon
Client licence for delivered work
Icon
White-label documentation files
Icon
CI templates for staged rollout
Icon
Email support for 12 months

One-time payment in EUR, no subscription. By buying you accept the Terms of Sale, the Licence and the Refund Policy. Full refund within 14 days.

Get the Azentie Agent Kit today

One payment, instant download, lifetime updates.