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.

Everything you need to ship an agent, in one repository
Blueprints, tooling, prompts and deploy configs, already wired together and tested against real workloads.
44 agent blueprints
Support, research, content and data agents, each one a small readable project. Clone it, set your keys, run it.
Tooling and memory layer
Tool calling, retries, state and vector memory already implemented in both Python and TypeScript.
Prompt and evaluation library
System prompts with the test cases used to tune them, so you can change a prompt without guessing.
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.
See what the agent is doing in production
The observability module writes every step, tool call and token cost to your own database.
Test the agent before your users do
An evaluation suite runs your prompts against fixed cases, so a small edit never silently breaks behaviour.
Guardrails included, not left as an exercise
Budget caps, timeouts, retries and input validation are already implemented and documented in every blueprint.
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
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
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
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
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.

INTEGRATION
Swap any provider by editing one adapter file.
Built for people who ship, not for demos
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.
Agent blueprints included
Of setup work you skip
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.”
“The API experience feels incredibly polished. From the documentation to the SDK structure, everything was exactly how modern developer teams expect.”
“Before Azentie, debugging distributed workflows was painful. Now we have complete observability across every execution and integration.”
“We reduced release validation time from hours to minutes. Automated checks and environment testing completely changed how our team deploys.”
“Most developer platforms feel overly complex. Azentie keeps the experience technical without sacrificing clarity and significantly fewer failed or usability.”
“Azentie gave our platform the reliability layer we were missing. Better monitoring, cleaner deployments, and significantly fewer failed releases.”
“Azentie helped us replace fragmented deployment workflows with a single, developer-first platform. Our team ships faster with far fewer production issues.”
“The API experience feels incredibly polished. From the documentation to the SDK structure, everything was exactly how modern developer teams expect.”
“Before Azentie, debugging distributed workflows was painful. Now we have complete observability across every execution and integration.”
“We reduced release validation time from hours to minutes. Automated checks and environment testing completely changed how our team deploys.”
“Most developer platforms feel overly complex. Azentie keeps the experience technical without sacrificing clarity and significantly fewer failed or usability.”
“Azentie gave our platform the reliability layer we were missing. Better monitoring, cleaner deployments, and significantly fewer failed releases.”
“Azentie helped us replace fragmented deployment workflows with a single, developer-first platform. Our team ships faster with far fewer production issues.”
“The API experience feels incredibly polished. From the documentation to the SDK structure, everything was exactly how modern developer teams expect.”
“Before Azentie, debugging distributed workflows was painful. Now we have complete observability across every execution and integration.”
“We reduced release validation time from hours to minutes. Automated checks and environment testing completely changed how our team deploys.”
“Most developer platforms feel overly complex. Azentie keeps the experience technical without sacrificing clarity and significantly fewer failed or usability.”
“Azentie gave our platform the reliability layer we were missing. Better monitoring, cleaner deployments, and significantly fewer failed releases.”
“Azentie helped us replace fragmented deployment workflows with a single, developer-first platform. Our team ships faster with far fewer production issues.”
“The API experience feels incredibly polished. From the documentation to the SDK structure, everything was exactly how modern developer teams expect.”
“Before Azentie, debugging distributed workflows was painful. Now we have complete observability across every execution and integration.”
“We reduced release validation time from hours to minutes. Automated checks and environment testing completely changed how our team deploys.”
“Most developer platforms feel overly complex. Azentie keeps the experience technical without sacrificing clarity and significantly fewer failed or usability.”
“Azentie gave our platform the reliability layer we were missing. Better monitoring, cleaner deployments, and significantly fewer failed releases.”
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.
Pro
For teams putting agents in front of real users.
Agency
For studios shipping agents inside client work.
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.





