---
title: "Production LLM Agents: typed tools, guardrails, traces"
description: "Tool-using agents with schema-validated function calling, bounded retry budgets, per-tool rate limits, OpenTelemetry traces. Direct LLM API, no agent framework lock-in."
source: "https://www.kensink.com/llm/agents/"
canonical: "https://www.kensink.com/llm/agents/"
---
★ Production agents Direct LLM · no framework 8-week engagement

PRODUCTION AGENTS · TOOL-USING LLMS

# Tool-using agents in production. Hard guardrails, traces, eval-gated.

Schema-validated function calling, per-tool rate limits, observable traces, and bounded retry budgets. The engineering view of /ai-agents: same lab, deeper plumbing.

TypeScript Anthropic Zod OpenTelemetry

[Start this engagement →](https://www.kensink.com/contact) [All LLM services →](https://www.kensink.com/llm)

Cycle

8 weeks · agent to live

Stack

TypeScript · Zod · Anthropic / OpenAI

Output

Agent runtime + tools + traces

Crossref

Companion to /ai-agents, same builds

\[WHY THIS EXISTS\]

## Most production agents run unbounded.

No retry budget, no cost cap, no schema validation, no per-tool rate limit. The first user with adversarial input or a flakey tool triggers a runaway loop, and your inference bill goes vertical. Production agents are 80% guardrails, 20% prompt.

-   Tool-call retry budgets: bounded loops, not infinite ones
-   Per-tool rate limits to protect downstream APIs from agent enthusiasm
-   Schema-validated tool inputs, so no JSON-parse roulette
-   Cost caps plus observable traces: see every step, every retry, every spend

\[HOW WE BUILD IT\]

## Direct API + Zod + telemetry.

01

### Tools as Zod schemas

Every tool's input is a Zod schema. The model's output is parsed and validated. Invalid output triggers a repair prompt with bounded retries, not silent failure.

02

### Bounded retry budget

Maximum N tool calls per session, M retries per tool. The runtime kills the loop when either budget exhausts. The user gets a graceful fallback.

03

### Observable traces

OpenTelemetry spans on every model call and tool invocation. You can replay any session as a trace tree: input, output, retries, cost, latency.

04

### Eval-gated tools

Adding a tool runs the agent eval suite end-to-end. If the new tool breaks an existing flow, the PR doesn't merge.

\[ OUTCOMES AT HANDOFF \]

## What's live at week eight.

Bounded

Retry + cost budgets on every session

Typed

Tool I/O validated end-to-end

Traced

Every step visible in your APM

Eval-gated

New tools tested against existing flows

\[ALSO WORTH READING\]

## Related LLM engagements.

[

STRUCTURED OUTPUT

Structured Output

Read the engagement

](https://www.kensink.com/llm/structured-output)[

OBSERVABILITY

LLM Observability

Read the engagement

](https://www.kensink.com/llm/observability)[

MODEL EVALUATION

Model Evaluation

Read the engagement

](https://www.kensink.com/llm/evaluation)

DIRECT LLM · APPLIED K

## Bring the problem.  
We’ll bring the build.

Eight weeks, fixed price, eval suite at handoff. Direct LLM engineering on top of the K-Framework. Two Q3 slots remain.

[Start this engagement →](https://www.kensink.com/contact) [Read the K-Framework](https://www.kensink.com/k-framework)
