Inspiration
AI agents are easy to build and hard to trust. When an agent tells a customer "you'd save $30 at Best Buy," nobody checks where that number came from: a real listing, a stale page, or a guess. We wanted a platform where every number an agent states has to be backed by data it actually retrieved, and where you can prove it afterwards.
What it does
Agent Forge lets you configure, deploy and monitor AI agents that use real tools: live shopping prices, web search, news and local places (SerpApi), plus banking data (Capital One's Nessie API).
What makes it different is a deterministic fact-check: every dollar amount and percentage in an agent's answer is matched against the tool results from that same run. Each figure is marked verified, with the tool and step it came from, or flagged. In block mode, unbacked figures are removed before the user sees them.
- Self-correcting answers: when the agent states a figure no tool returned, the platform sends it back once to find a source or remove it, then re-checks the new answer with the same deterministic check. The UI shows the original draft with the made-up figures struck through.
- Nobody's numbers are trusted, not even the user's: if a user says "someone told me it's $59," the agent can work with it, but the figure stays flagged as the user's until a tool confirms it.
- Rules enforced in code, not the prompt: agents can only call the tools enabled for them, financial data is read-only, and tool calls are capped.
- Full observability: every run is stored with each step, its latency and tokens, and whether its data was live, cached or demo.
How we built it
- Runtime: a Gemini function-calling loop in Python that handles the realities of a live API: retries, fallback across several Flash models, timeouts, and remembering which models just failed so later calls skip them.
- Tools: a shared registry of 4 SerpApi tools and 3 Nessie tools with a shared cache. The shopping tool keeps only new items that match the product and prefers major retailers or the brand's own store, so resale listings and accessories can't produce fake "savings."
- Fact-check: rule-based, with no model call. Figures can verify exactly, as a difference or sum of two verified figures (savings), or as a monthly figure × 12. Derived figures only count when both inputs are verified and stated in the answer.
- Backend: FastAPI and SQLAlchemy on Tiger Data Postgres, deployed on Vultr.
- Frontend: React, Vite and Tailwind, with a live step-by-step trace of each run.
Challenges we ran into
- Real data is messy. A $40 resale listing once produced a fake "$209 saving." Halfway through the night, Google Shopping stopped returning new AirPods Pro 2 listings at all. We rebuilt the shopping filter and changed demo products.
- Our own fact-checker had bugs we found live. For example, "$249 − made-up $199 = $50" was briefly "verified" because two unrelated purchases happened to add up to $50. Every live bug got a regression test (60 runtime and tool tests).
- Gemini overload and quota limits (503s, 504s, daily caps) forced us to build retry, fallback and cooldown logic, and error messages that say exactly which limit was hit.
Accomplishments that we're proud of
- Live runs where every figure was verified (30 of 30 on a bill-savings answer), and a live self-correction where an agent's guessed prices were caught and removed in under 4 seconds.
- A fact-check that can't be talked out of its answer, because it isn't an AI.
What we learned
Trust in agents comes from checks you can inspect, not from better prompts. The most useful thing a platform can say is "this number came from step 3, Google Shopping," or "nothing backs this."
What's next for Agent Forge
- Tamper-proof audit receipts: a chained hash of every tool result and answer.
- Checking more kinds of claims, like dates and names, against tool data.
- Re-checking past runs whenever the fact-check rules improve.
Built With
- fastapi
- gemini
- nessie
- postgresql
- python
- react
- serpapi
- sqlalchemy
- tailwindcss
- tiger-data
- typescript
- vite
- vultr
Log in or sign up for Devpost to join the conversation.