Service
AI agent development
AI agent development is the engineering of LLM systems that plan, call tools, hold state across steps and recover when a step fails. I, Matin Labkhandagh, build production agents on LangGraph with hardened tool calling, MCP integration, RAG retrieval and evaluation tests, delivered as a fixed-scope AI Agent Engineering Sprint for teams that need an agent they can operate, not a demo.
When you need this
- You have a working agent demo in a notebook or a single script, and the first real users exposed retries that loop, state that disappears between turns and tool calls that fail silently.
- Your product needs to take actions in other systems, such as tickets, a CRM or internal APIs, and every action has to be logged, permissioned and possible to review afterwards.
- The agent framework was chosen a year ago by an engineer who has since left, and nobody on the team can say what happens when a run is interrupted in the middle of a tool call.
- You are deciding between a single prompt with function calling and a multi-step orchestrated agent, and you want that decision made from the failure cases rather than from opinion.
- Token cost per conversation climbs with every tool you add, and there is no per-call accounting that shows where the spend goes.
What you get
- LangGraph orchestration graph with typed state, a checkpointer and explicit interrupt points
- State and retry handling for every node, including resumable tool turns
- Tool-calling hardening: schema-validated inputs, timeouts, idempotent actions and a tool-call ledger
- MCP integration so the agent reaches external tools through standard connectors rather than one-off wrappers
- RAG integration where the agent needs grounded context from your documents or database
- Evaluation tests covering expected trajectories, tool failures and refusal cases
- Docker deployment with a compose file or an equivalent your team already runs
- Documentation: architecture notes, a runbook for stuck and interrupted runs, and a guide to adding a tool
Outcomes
- An agent whose every tool call is written to a ledger and can be resumed after a crash, a timeout or a user pause, instead of being replayed from the start.
- Tools that require explicit user consent before they run, so the agent cannot take an action nobody approved.
- Clear boundaries between orchestration, tools, retrieval and model access, so your team can swap a model or add a tool without editing the graph.
- A test suite that encodes the agent's expected trajectories and failure handling, runs in CI, and serves as the acceptance criteria for the sprint.
- Per-token cost accounting per run, so you know what a conversation costs before you scale it, and a written note on where semantic caching or model routing would cut it.
How it works
- 1
20-minute technical call
We go through what the agent must do, which systems it touches, what has already been built and where it fails today. If you have the code, a trace or a recording of a failing run, I read it before we talk so the call is spent on decisions.
- 2
Written diagnosis
You receive a written diagnosis: where state is lost, which tool calls are unsafe to retry, what the retrieval path actually returns, whether the orchestration is doing work a plain function could do, and what a run costs in tokens. It is written to be useful even if you stop here.
- 3
Fixed-scope proposal
Scope, timeline and price in writing under the AI Agent Engineering Sprint, starting at $1,200 for 7–10 working days. The scope names the tools, the graph nodes and the tests that define done, so there is no argument later about what finished means.
- 4
Implementation and handover
I build the agent in your repository or a fresh one, with the tests as acceptance criteria. Handover is the code, the documentation and the runbook, plus a walkthrough with your engineers so they can extend the agent without me.
Proof: what I built
In OmidGPT I built the agentic tool-calling runtime: resumable tool turns, a tool-call ledger, per-tool user consent and MCP connectors behind an OAuth / MCP relay. The platform exposes 209 API endpoints, serves multiple model providers and accounts for cost per token.
Read the OmidGPT case studyIn Jozveh-AI a LangGraph supervisor coordinates eight agents that turn source material into cited study documents. The pipeline is covered by 673 tests across 77 files, which is the model I follow for acceptance tests in client sprints.
Read the Jozveh-AI case studyFor AiMatin I built a custom Node.js MCP server through which an AI operator runs admin workflows, such as coupons, popups, funnel automations and reports, against a FastAPI and PostgreSQL backend.
Read the AiMatin case study
Questions about ai agent development
- How long does an AI agent engineering sprint take?
- 7–10 working days, starting at $1,200. The sprint covers LangGraph orchestration, state and retry handling, tool-calling hardening, MCP and RAG integration, evaluation tests, Docker deployment and documentation. If the diagnosis shows the work is larger than a sprint, I say so in the proposal rather than compressing it.
- What do you need to start?
- Access to the current code if there is any, a description of the tools the agent must call and the systems they touch, a handful of real or realistic conversations including the ones that went wrong, and an API key for the model provider you already use. A short call is enough for the rest; I do not need a specification document.
- Do I have to use LangGraph, or can the agent be built another way?
- LangGraph is my default because it makes state, checkpoints and interrupts explicit, which is what production agents need most. If your workflow is a single tool-calling loop with no human approval and no long-running steps, a plain loop with a proper ledger can be the right answer, and I will recommend that instead of adding a framework.
- How do you keep the agent from taking actions it should not?
- Three layers. Each tool declares whether it is read-only or has side effects, side-effecting tools require user consent before they execute, and every call is written to a ledger with its inputs and outcome. On top of that, the graph pauses at interrupt points where a decision is irreversible, so a human can approve or reject before the step runs.
- Do you build inside our codebase or deliver a separate service?
- Either, and I say which in the proposal. If your product already has a Python backend, the agent usually lives there so it shares auth, logging and deployment. If it does not, I deliver a FastAPI service in Docker with a small, documented interface your existing stack calls.