Founder & CTO
Tirth Gajjar
In short
Tirth Gajjar is the Founder & CTO at Bigcircle. He hires and trains the engineering team, leads the production AI work, and writes the guides on this site.
Tirth Gajjar is the founder and CTO of Bigcircle. He started the company after several years working with engineering teams in the US and Europe, where he kept running into the same setup: engineers split across three or four accounts, tracked in billable hours, and left on whatever stack the account already ran.
He hired every engineer at Bigcircle himself and trained them the same way, for depth in one or two areas and enough breadth to follow a problem across the stack. He leads the engineering on the agent, retrieval, document intelligence and voice systems the team runs in production.
He writes the guides on this site, mostly about the parts of AI engineering that only show up after launch: retrieval quality degrading over time, agents reporting success on work that is not finished, and how to widen an agent's autonomy one action at a time.
Writing
- Why temperature zero doesn't make an LLM agent repeatable, and what doesAt Bigcircle a step that must not vary runs in deterministic code or through a fixed decision layer. We pin the model and the serving build, keep a log that replays the inputs, and score repeat runs. A safety case has to pass on every run.
- When to fan out to many agents, and how to keep the result correctAt Bigcircle a fan-out starts with a fit test, then a worker contract, then a verification gate. Jev is the decision layer on that gate, and a shared cap ends the run when the budget is spent. A lead that pastes worker replies together has not checked the result.
- Stopping prompt injection from spreading between agentsStop a prompt injection from spreading between agents by re-checking trust at every hop. The text a parent forwards is data. Bind the child to the same principal, a narrower target, and a fresh expiry, and validate tool arguments where they resolve.
- Testing MCP servers before agents depend on themTest an MCP server in two layers before an agent depends on it. A contract test on every pull request pins the catalogue, the arguments, the session, and the error shape. An agent-in-the-loop eval runs on a schedule, or when that catalogue changes.
- What a production AI agent costs to build and runA production agent costs the build, the run, and the keep-alive. The model line moves after launch, and a cap that only sends an email has already paid for the calls in between.
- When not to build an AI agentA workflow is enough when the steps are already written down. Retrieval is enough when one query can find the passage. An agent earns the loop only when the next tool depends on a result you could not name in advance.
- MCP tool access in production: scoped tokens, audit, and refusalAn MCP connection is not a place to put the application secret. Mint a short-lived token for the run, check policy before the call leaves, and keep an audit line for every allow and every refusal.
- Multi-user agent memory and credential isolationA scoped tool token does not stop one user's memory or OAuth from reaching a Slack group or another tenant. Key memory and credentials to the acting user inside the tenant, and decide in code what a direct message may carry that a channel may not.
- Voice AI evals: conversation audio, not just transcriptA correct transcript can still be a failed call. Score turn-taking, interruptions, intelligibility and silence on the audio, keep those verdicts off the text score, and prove a fix by replaying the same recorded calls.
- Dual-layer production agent ops: quality evals vs infrastructure investigationRun a production agent on two layers that answer different questions. The quality layer asks whether the user got what they needed, using evals on a sample of traces. The infrastructure layer asks whether every model call, tool call and permission check ran as intended, and investigates when one did not. Anything that must never reach a user runs inline on every turn, both layers read one trace, and every escaped failure ends as an eval case or a probe, with personal data removed first.
- Document intelligence beyond extraction: cross-document reasoning for agentsExtraction reads each document; a decision needs the whole packet. Before an agent acts on documents, resolve every party to one entity, reconcile the figures that should agree, check the packet is complete, keep a page and span on every value, validate in code, and pass a policy gate that decides between writing, review and asking for a missing document. Field accuracy per document says nothing about any of those steps, so evaluate the case, not the field.
- Production voice-agent architecture: cascade vs streaming vs managedChoose a voice-agent architecture on your latency budget and on how much control you need at each stage, not on how fluent the demo sounds. A cascade gives you text and a check at every step, a speech-to-speech model gives the most natural turn-taking with the least visibility, and a managed pipeline hands the audio path to a vendor while you keep the tools. In all three, code owns turn-taking rules, read-back confirmation before irreversible actions, and a warm handoff with a context packet, and we design the handoff first.
- Building production-grade analytics agentsA production analytics agent is a layered system: intake, a governed metric layer, planning, SQL generation, validation gates, execution, result shaping and answer synthesis, with memory and a tool boundary around them. Its minimum core parses every query, prices it with EXPLAIN, runs it read-only under caps, and filters the answer so every number cites its query. A bounded workflow orchestrates it, every step is traced and replayable, changes pass eval gates, and people review only the cases that earn it. Jev judges, code enforces, and the model generates.
- Introducing Jev into agentic workflowsJev is TypeSafe's System One model: state in, Choice, Score or Noul answers out, each with calibrated probabilities. We introduce it as a shadow tool gate first, then a soft gate, a model router, catalogue selection, and loop and completion supervisors. It is never the only decider for an irreversible action.
- Shared business context for every AI agentAgent sprawl without shared definitions produces conflicting numbers. Define business terms once, each with an owner and a version, and serve retrieval through one governed MCP entry point that runs as the user, cites its sources, and logs every call.
- MCP tool design: fewer, larger toolsWhen several sources answer the same questions, put one consolidation MCP between your agents and the vendors. Expose fewer, larger tools that return structured JSON, authenticate every request as the user, rate-limit by caller, and read the call log to decide the next batch mode or schema change.
- Agent playbooks as MCP toolsWrite each recurring workflow as a playbook with a typed contract, expose it through MCP as a tool, and put three meta-tools in front of the catalog: search, get the schema, execute. Keep central and repo-local playbooks in one catalog, and log every run.
- Embed vs CTO-led pod vs fixed-scopeEmbed a Bigcircle engineer when you can direct the work and the gap is AI depth in your repository. Take a CTO-led pod when you have a roadmap and no senior AI leadership to run it. Buy a fixed-scope build when you want the working system, and not the hiring.
- Embedded AI engineer vs hire vs agencyEmbed a Bigcircle engineer when you need AI depth in your repository without a permanent headcount bet. Hire full-time when AI is a multi-year competency you can manage. Use an agency for a bounded deliverable with acceptance tests, and not for ongoing ownership inside your systems.
- How to build an audit trail for AI decisionsA tool trace can show what ran without explaining the accepted business decision. This guide defines the record an AI workflow needs when a case is challenged or its evidence changes.
- How to build LLM evalsYou cannot write the rubric first. Criteria emerge from reading your own failures, and everything downstream depends on doing that step properly.
- RAG vs fine-tuning vs agentic searchExhaust prompting first. Use retrieval when the model is missing a fact, fine-tuning when the facts are right and the format is wrong, and agentic search only when no single query can find the answer.
- How to roll out AI agent autonomy in five levelsPromote one action class by one authority level, and only after that action has the exit evidence the change requires. A drift or an incident demotes the action. A read, a payment, and an infrastructure change do not share a level.
- Why AI agents report unfinished work as doneA successful API response is not a finished task. A run may report done only after a separate read matches the expected state, including the downstream effects the contract named.
- How to scope AI agent permissionsApproving a whole agent accepts consequences that are not defined yet. Bind one action to a principal, task, target, policy, credential, approval, expected state, and recovery path. Bigcircle calls that contract an Agent Action Boundary.
- When your AI product needs write accessWrite access is the point where a wrong answer becomes a wrong change to money, access, or production state. The next release should ask for the smallest authority that can finish the task, and that boundary should be reviewable.
- Why enterprise AI pilots failThe choices that sink a pilot are made before the code: which problem to pick, what data grounds it, how you measure it, who owns it when it misbehaves, and what happens to the workflow around it. The published failure studies disagree on the yardstick, so the table comes before the headline.
- How to build production AI agentsAn agent is a loop that observes, acts through tools, and stops. The production question is which decisions the model may make, which code must make, and where a person approves the risk.
- Why RAG systems fail in productionMost RAG failures look like model failures until retrieval, context assembly, and generation are measured separately. A plausible answer with a nearby citation can still be the wrong passage.
- How LLM inference worksInference splits into compute-bound prefill and memory-bound decode. Cache, batching, and kernel choice follow from that split, and they are tuned for the product's latency rather than for a short benchmark.