Websites11 min read

Agentic AI workflows production: 2026 architecture (Claude, GPT-4, agents)

Mohamed Bah·Fondateur, Kolonell
May 26, 2026
Share:
Agentic AI workflows production: 2026 architecture (Claude, GPT-4, agents)

Agentic AI workflows production: 2026 architecture (Claude, GPT-4, agents)

Websites

2026 = year agentic AI hits production. Anthropic Claude 4.7 + Anthropic Computer Use, OpenAI GPT-4 Agent, Operator. But deploying AI agent in production demands rigorous architecture: observability, safeguards, fallbacks.

TL;DR

- AI agents = LLM with tool-invoking capability + reflection loop.

- 2026 stack: Claude API + tool use + LangSmith/Helicone observability + safeguards.

- Production use cases: customer support, code review, content generation, data analysis.

Production AI agent architecture

`

[User input]

[Claude Agent SDK]

[Planner: decompose task]

[Executor: invoke tools]

├── Search web

├── Query DB

├── Send email

├── Run code

└── Call APIs

[Memory: step results]

[Reflection: task done?]

[Output or continue]

`

Step 1 — Claude Agent SDK setup

`ts

import Anthropic from '@anthropic-ai/sdk';

const anthropic = new Anthropic({ apiKey: process.env.ANTHROPIC_API_KEY! });

const tools = [

{

name: 'search_database',

description: 'Search internal customer database',

input_schema: {

type: 'object',

properties: {

query: { type: 'string', description: 'Search query' },

},

required: ['query'],

},

},

{

name: 'send_email',

description: 'Send email to customer',

input_schema: {

type: 'object',

properties: {

to: { type: 'string', format: 'email' },

subject: { type: 'string' },

body: { type: 'string' },

},

required: ['to', 'subject', 'body'],

},

},

{

name: 'create_ticket',

description: 'Create support ticket in Linear',

input_schema: {

type: 'object',

properties: {

title: { type: 'string' },

description: { type: 'string' },

priority: { type: 'string', enum: ['LOW', 'MEDIUM', 'HIGH', 'URGENT'] },

},

required: ['title', 'description', 'priority'],

},

},

];

async function runAgent(userMessage: string, sessionId: string) {

let messages = [{ role: 'user', content: userMessage }];

let iterations = 0;

const MAX_ITERATIONS = 10;

while (iterations < MAX_ITERATIONS) {

const response = await anthropic.messages.create({

model: 'claude-opus-4-7',

max_tokens: 4096,

tools,

messages,

});

if (response.stop_reason === 'end_turn') {

return response.content[0].text;

}

if (response.stop_reason === 'tool_use') {

const toolUse = response.content.find(c => c.type === 'tool_use');

if (!toolUse) break;

const result = await executeTool(toolUse.name, toolUse.input);

messages.push({ role: 'assistant', content: response.content });

messages.push({

role: 'user',

content: [{ type: 'tool_result', tool_use_id: toolUse.id, content: result }],

});

}

iterations++;

}

throw new Error('Max iterations reached');

}

`

Step 2 — execute tools

`ts

async function executeTool(name: string, input: any) {

await logToolCall(name, input);

switch (name) {

case 'search_database':

return await searchDatabase(input.query);

case 'send_email':

if (containsPII(input.body)) {

return { error: 'Body contains PII, blocked' };

}

return await sendEmail(input);

case 'create_ticket':

return await createLinearTicket(input);

default:

return { error: Unknown tool: ${name} };

}

}

`

Need a professional website?

Kolonell builds websites that attract clients, optimized for the Sénégalese market. Free quote in 2 minutes.

Step 3 — critical production safeguards

1. Tool whitelist

`ts

const AGENT_TOOLS_BY_ROLE = {

customer_support: ['search_database', 'send_email', 'create_ticket'],

code_reviewer: ['search_codebase', 'run_tests', 'create_pr_comment'],

data_analyst: ['query_warehouse', 'generate_chart'],

};

function getToolsForAgent(agentRole: string) {

const allowedNames = AGENT_TOOLS_BY_ROLE[agentRole] ?? [];

return tools.filter(t => allowedNames.includes(t.name));

}

`

2. Output validation

`ts

async function executeTool(name: string, input: any) {

const validation = validateToolInput(name, input);

if (!validation.ok) {

return { error: validation.reason };

}

const result = await runTool(name, input);

const sanitized = sanitizeOutput(result);

return sanitized;

}

function validateToolInput(name: string, input: any) {

if (name === 'send_email') {

if (input.to.endsWith('@example.com')) {

return { ok: false, reason: 'Test domain not allowed in prod' };

}

if (input.body.length > 10000) {

return { ok: false, reason: 'Body too long' };

}

}

return { ok: true };

}

`

3. Approval required for critical actions

`ts

const CRITICAL_TOOLS = ['send_email', 'transfer_funds', 'delete_user'];

async function executeTool(name: string, input: any) {

if (CRITICAL_TOOLS.includes(name)) {

const approval = await requestHumanApproval({ tool: name, input, agentSession: sessionId });

if (!approval.approved) {

return { error: 'Human declined approval' };

}

}

return await runTool(name, input);

}

`

4. Rate limiting

`ts

import { Ratelimit } from '@upstash/ratelimit';

const agentLimiter = new Ratelimit({

redis: redisClient,

limiter: Ratelimit.slidingWindow(50, '1 h'),

});

async function runAgent(userMessage: string, sessionId: string) {

const { success } = await agentLimiter.limit(sessionId);

if (!success) {

throw new Error('Rate limit exceeded');

}

}

`

Step 4 — observability

LangSmith or Helicone for LLM observability:

`ts

import { LangChainTracer } from 'langsmith';

const tracer = new LangChainTracer({

apiKey: process.env.LANGSMITH_API_KEY,

projectName: 'kolonell-agent-prod',

});

await tracer.startTrace({

name: 'customer_support_agent',

metadata: { sessionId, userId },

});

const result = await runAgent(userMessage, sessionId);

await tracer.endTrace({ output: result });

`

Visibility:

  • Prompt → response latency
  • Tokens consumed
  • Tool call success/failure
  • Cost per session
  • Error rate
  • User satisfaction (thumbs up/down)

Step 5 — agentic AI costs

Assumption: customer support agent, 1000 conversations/day.

Average tokens per conversation :

  • Input: 4K tokens (system prompt + context + history)
  • Output: 2K tokens (responses + tool calls)
  • Claude Opus 4.7 cost (2026):
  • Input: $15 / 1M tokens
  • Output: $75 / 1M tokens

Per conversation :

  • $15 × 4K/1M = $0.06
  • $75 × 2K/1M = $0.15
  • Total: $0.21
  • 1000 conversations/day × $0.21 = $210/day = $6.3K/month

Compare $5-15K/month human support. Fast ROI if automation > 60-70%.

2026 production use cases

Customer support

AI agent handles 70-80% level 1 tickets, level 2 human escalation.

Automatic code review

Agent reviews PRs: security, perf, style. Human final merge.

Content moderation

Agent flags suspect content, human validates.

Data analysis

Agent generates insights, charts, reports automatically.

Recruitment screening

Agent scans CVs, scores, writes feedback, schedules interviews.

Real case — Dakar SaaS support agent

MetricPre-agentAfter 6 months
Tickets/day850850
% AI auto-resolved0%72%
% human escalation100%28%
Avg resolution time4h25 min
AI cost/month0$4.2K
Support team cost$18K/month$6K/month (-66%)
Net savings$7.8K/month

Common pitfalls

  • Infinite loop agent — always strict MAX_ITERATIONS.
  • Destructive hallucinations — no DELETE, UPDATE without human approval.
  • No cost monitoring — Claude API can explode billing. Critical alerts.
  • Vendor lock-in — abstract LLM provider (Vercel AI SDK, LangChain).
  • No eval framework — test regressions on prompt changes.

FAQ

Q: Claude vs GPT-4 vs Gemini for agents?

A: Claude Opus 4.7 = 2026 state-of-art tool use. GPT-4 close second. Gemini less reliable.

Q: Open-source alternative?

A: Llama 3.3 70B + AutoGen. More complex setup but 10× cheaper.

Q: When not to use agent?

A: Deterministic tasks = traditional code. Agents for ambiguous reasoning tasks.

Conclusion

Production agentic AI 2026 = paradigm shift. $0.20/conversation cost vs $5-20 human. Fast ROI for >500/day volume use cases. Architecture + safeguards investment essential for solid production.

Tags:#Agentic AI#Claude#GPT-4#Production#LangSmith#Tool Use
Share:

Mohamed Bah

Fondateur, Kolonell

Passionate about digital and entrepreneurship in Africa, Mohamed has been helping Sénégalese businesses with their digital transformation since 2020. Founder of Kolonell, he believes every SME deserves a professional and accessible online présence.