AI Agent Engineer · Hyderabad, India

Production voice and chat agents
that are measured,
not demonstrated.

I design, integrate and ship agents into client environments — Claude as the reasoning layer, tool calling and structured outputs, multi-agent orchestration on LangGraph and CrewAI, exposed over MCP. Telephony-grade voice on VAPI, Twilio and ElevenLabs, with barge-in handling, confidence gating and human escalation. Everything I ship carries an eval harness, because containment and escalation rates are the only honest way to say it works.

2+ yrsbuilding on Claude
6agent systems
5live right now
27%agent cost cut by routing

Agent projects

Ordered by how much of it I can prove. Live links go to running systems, and every screenshot is of the real thing.

01

EquityCrew

liveopen source

Seven Claude agents research a public company from live market data and its SEC filings — then fact-check their own numbers before publishing.

Financials and News agents fan out in parallel on Claude Haiku 4.5, pulling live price, fundamentals and headline sentiment through tools. A Risk agent flags key risks using RAG over the company's SEC EDGAR 10-K. A Writer drafts thesis, bull and bear case and rating; a Critic on Claude Sonnet 5 approves or returns structured feedback for one capped revision.

Then the Verifier re-fetches live data and fact-checks every figure — emitting find/replace patches rather than prose, which a deterministic Finalize node applies with no LLM call. That design is the point: a model that rewrites a memo to "fix" it can also quietly destroy it. Patches can only change what they name.

Every figure comes from a tool. The verifier exists because an LLM that writes "revenue grew 12%" is not the same as one that checked.

The same tools are exposed as a standalone FastMCP server, so the research capability is reusable outside the UI.

Measured against an adversarial harness

MetricNVDAAAPLHow it's measured
Numeric accuracy94%96%every figure regex-extracted, matched against tool data
Verifier catch-rate4/44/4numeric errors deliberately planted in the memo
Critic catch-rate100%100%sabotaged memos must be rejected
Latency37s54sfull 7-node run, end to end
Cost$0.068$0.090tokens tracked per LLM call via a LangChain callback

Per-agent cost attribution exposed where the spend actually was. Routing the fan-out to Haiku and keeping Sonnet for the Critic cut cost 27% and latency 24% with the catch-rate unchanged — the kind of result you can only get by measuring per agent rather than per run.

PythonLangGraphClaude Haiku 4.5 + Sonnet 5RAG · SEC EDGAR 10-KFastMCPyfinanceFastAPIDockerRailway
02

IT & HR Helpdesk Agents

liveopen source

A low-code multi-agent helpdesk in n8n: a ticket triage flow plus IT and HR chat agents behind a router, with identity enforced outside the model and a voice agent that pages the on-call engineer.

A guard that runs before any model call

A guard sub-workflow runs before any model call and before anything is stored. It masks emails, phones, Luhn-checked card numbers, Aadhaar, PAN and secrets into typed tags, flags prompt injection, and fails closed.

In a live test the model ignored an injected instruction but did not request review. The guard did. That is the argument for not putting safety inside the thing you are trying to make safe.

Three layers against hallucinated answers

A similarity score gate, a grounded prompt, and a code check that the SOP the model cited was genuinely among those retrieved. Retrieval accuracy improved from 7 of 8 to 9 of 9 across two gate revisions — each revision driven by a real failure, including a live P1 ticket that scored just under the previous threshold.

Permissions the model cannot talk its way around

The HR agent scopes retrieval with a Pinecone metadata filter built in code rather than by the model — by country, audience and policy status. Identity is kept outside the model too: the requester's email is read from the verified session, never from a tool argument, and no tool can approve, close or delete.

EvalResultNote
HR retrieval with metadata filter14/14failures without it included wrong-country answers and manager-only guides leaking to non-managers
HR retrieval without the filter6/14
Classifier, 20 labelled tickets18/20 category · 17/20 priorityevery miss on the safe side — no risky ticket skipped review
SOP retrieval9/9including two that must return "no match"

Human approval, idempotency, and a phone call that never rings twice

Anything risky waits in Slack for approval with timeout escalation. Intake is idempotent on a key derived from the ticket. P1 incidents email the on-call engineer and place a phone call that is never retried, on purpose, so the phone cannot ring twice.

The voice agent confirms who answered before it will say anything about the incident — a wrong number hears only "sorry to disturb you, I will try again later" — then reads the alert word for word, takes the engineer's reply, and writes it back to Postgres while the call is still open.

n8nClaude HaikuPineconeOpenAI embeddingsSupabase · PostgresSupabase Auth · GoogleSlackJiraElevenLabs · SIPRailwayGitHub Actions
03

AutoAssist

liveopen sourceAzure

Four agents on Azure AI Foundry that triage a vehicle issue, run diagnostics or booking, and escalate when they should not answer — with the execution trace exposed in the interface.

The model classifies and code decides. The router is roughly 200 lines of plain Python covered by 26 tests that run with no Azure calls and no mocks.

That is not an aesthetic preference. Every routing decision becomes a logged value instead of a hidden step inside a model, and the rule "a safety issue always reaches escalation" is an if statement. An if statement does not drop a safety rule under competing instructions.

A failure that changed the retrieval design

A confident brake-safety answer once shipped without ever calling retrieval. Retrieval became hybrid over 370 chunks with reciprocal rank fusion — and more importantly, the eval suite was rewritten to score the execution trace rather than the prose. Judging the words would have passed that answer. Judging the trace catches it. The suite went from 6 of 16 cases passing to 16 of 16.

Latency came down from 20.1s to 11.9s, and the whole environment is Terraform across 17 resources.

Azure AI FoundryAzure AI SearchHybrid retrieval · RRFContainer AppsFastAPITerraformKey VaultApp InsightsZoho Bookings · MCP
04

Moo's Farm — CRM and outbound voice agent

liveclient work

A lead-tracking CRM for an agri-bio business, and an outbound voice agent that qualifies interest over the phone and books its own callbacks.

Lead capture, call history and configuration, with phone-number normalisation across input formats, duplicate rejection and a persistent do-not-call list — the unglamorous parts that decide whether a CRM is trusted or worked around.

The voice agent

An outbound agent on ElevenLabs Conversational AI over Vobiz SIP telephony, qualifying inbound interest and capturing use case, quantity and preferred contact channel.

It agrees callbacks explicitly — reading the date and time back to the person before saving it — then resumes the thread on the return call. Confirming before writing is the same rule as the healthcare portal: the model proposes, the write happens after a human says yes.

An auto-dialler is in development, and the operational limits were designed in from the start rather than bolted on: a 9am–9pm IST calling window, concurrency capped at two, retries after three hours to a maximum of three attempts, incomplete calls flagged for review, and the dialler disabled by default.

A dialler that is off unless someone deliberately turns it on is a different product from one that is on unless someone stops it.

WhatsApp runs alongside it, including coexistence — the webhook receives echoes of messages a rep sends from the WhatsApp Business app on their own phone, so the CRM thread matches what the customer actually sees. New numbers become leads automatically.

PythonElevenLabs Conversational AIVobiz SIPSupabase · PostgresRow-level securityWhatsApp BusinessAmazon listingsRailway
05

Pantry Cam

MCP client

A Telegram agent that reads a photo of a pantry shelf, works out what is running low, and orders it — without ever being handed the checkout button.

Built in TypeScript on Node with an OpenAI vision and voice front end. It acts as an MCP client against Swiggy Instamart and Zepto over OAuth 2.1 with PKCE, using structured outputs to classify every match as same, substitute or none.

The model is never given the checkout tool. It can only propose an order; the purchase runs as plain code after the owner replies YES.

That is the same boundary as the booking write in the healthcare portal and the callback in the Moo's Farm voice agent. An agent that can spend money without a human turn is not a feature, it is an incident waiting for a cause.

TypeScript · NodeMCP clientOAuth 2.1 · PKCEOpenAI vision + voiceStructured outputsTelegram
06

DANS

liveprivate repo

Marketing site for an AI automation studio — migrated off a no-code builder onto a real stack, a build pipeline and a custom domain.

A Vite + React single-page site with a live chat widget. The interesting part is not the site — it is that it started inside a no-code builder and was migrated out onto a repo, a build pipeline and a custom domain, so it could be versioned, reviewed and deployed like anything else.

ViteReactTypeScriptRailwayCustom domain

Stack

What I reach for, taken from systems that shipped rather than from a list of things I have heard of.

Claude — primary
  • 2+ years building on Claude
  • Prompt engineering
  • Tool & function calling
  • Structured outputs
  • Long-context work
  • Sonnet / Haiku routing
Agents & orchestration
  • LangGraph · LangChain
  • CrewAI · AutoGen
  • MCP server and client
  • Multi-agent routing
  • Capped revision loops
  • n8n workflow automation
Voice & telephony
  • VAPI · Twilio · ElevenLabs
  • PSTN & SIP call handling
  • Streaming STT and TTS
  • Barge-in, turn handling, VAD
  • Containment & escalation tuning
Retrieval
  • Hybrid BM25 + vector
  • Reranking · RRF
  • Pinecone · Chroma · Azure AI Search
  • Embeddings & semantic search
  • Metadata-filtered RAG
Evaluation & governance
  • Eval harnesses
  • Trace-level assertions
  • Adversarial evaluation
  • Guardrails & self-verification
  • LangSmith
  • Cost & latency optimisation
Build & ship
  • Python · TypeScript · SQL
  • FastAPI · Docker
  • Azure AI Foundry · Container Apps
  • Supabase · Railway
  • Terraform · GitHub Actions
  • REST, webhooks, OAuth 2.1 PKCE

Certifications & education

Credential IDs included, so any of these can be checked rather than taken on trust.

Microsoft Certified: Azure AI Apps and Agents Developer Associate certificate
Google Prompting Essentials specialization certificate from Coursera
EDYODA certificate for the Zepto Order-Support Agent AI project
Azure AI Apps and Agents Developer AssociateMicrosoft · earned 19 Sep 2026 · valid to 20 Sep 2027credential BDAFFC6874B50FCB
Azure AI FundamentalsMicrosoft · AI-901 · 28 Jun 2026
RAG and Agentic AI Professional CertificateIBM · Coursera · 2026 · 10 courses
Google Prompting EssentialsGoogle · Coursera · 28 Sep 2025 · 4-course specializationverify ND6D9TDIBEI3
Zepto Order-Support Agent: Route To The Right ToolEDYODA · AI project · 25 Jul 2026AILAB-IGROR02wd-XIZFOg5hby0Q
MSc Computer ScienceUniversity of East London · 2022–2024
B.Tech Computer ScienceAndhra University · 2017–2021

Also built

Smaller projects, experiments and earlier work.

Contact

Open to AI agent engineering roles. Happy to walk through any system above — including the parts that broke.