AI development services
Answers you can trace
back to a page you own
Agents grounded in content you control, that cite the page they answered from, and that say so when there is nothing to answer with.
Built on
- Anthropic
- OpenAI
- Ollama
- Python
- FastAPI
- LangChain
- Postgres + pgvector
- Redis
- SQLite
- TypeScript
- Node.js
- Next.js
- Docker
- GitHub Actions
- Vercel
AI development
services we offer
Grounded chat & support agents
Public-facing or internal, answering only from pages you control. FutureGen Agent is our own, in production, and built this way.
Retrieval over your content
Ingest, chunking and freshness for sites, handbooks and PDFs — so the index reflects what you publish today, not last quarter.
The refusal case
What the agent says when there is no supporting source, and where it routes the person instead. We design this state before the happy path.
Evaluation & guardrails
A question set drawn from your real support history, run on every change, with refusal rate and citation accuracy tracked as first-class numbers.
Model integration into existing tools
Inside the CRM or admin your team already opens each morning, rather than one more tab nobody remembers to check.
Review of someone else's build
A day-rate engagement on a system you already have: where it is ungrounded, what it will say under pressure, and what to fix first.
Our core
tech stack
Models
- Anthropic
- OpenAI
- Ollama
Retrieval
- Postgres + pgvector
- SQLite
- Redis
- LangChain
Services
- Python
- FastAPI
- Node.js
- TypeScript
Delivery
- Next.js
- Vercel
- Docker
- GitHub Actions
How a grounded
agent gets built
Four phases, and the one most teams leave until last comes second here: what the agent says when it does not know.
Step #1
Read your pages
Before any code, we read what your visitors actually ask. The questions your pages cover, the ones they almost cover, and the ones they cannot answer at all.
Step #2
Design the refusal
The first thing we write is what the agent says when it does not know. That state is designed before a single answer, because it is the one that protects you.
Step #3
Build the question set
A representative set drawn from your real traffic, not made-up examples. Every answer and every refusal is reviewable before go-live.
Step #4
You review before it ships
You see every answer and every refusal in the question set. One you are not satisfied with means we do not ship. No exceptions.
Tell us what your users ask and we’ll tell you whether an agent helps
- What your pages answer
- What they do not
- Where refusal routes
- A clear next step
Why clients choose us
Grounded, not generative
Retrieval runs over sources you control — your pages, your policies, your documents. No open-web fallback, so an answer can never come from somewhere you have not approved.
Every answer cites its source
Each reply carries the page it came from, as a link the reader can check. Citation is part of the answer's layout, not a tooltip.
The refusal is designed first
With no supporting source the agent declines and routes to a human. A confident wrong answer costs more than no answer at all.
Evaluated on your real questions
A question set drawn from your support history, run on every change, with refusal rate and citation accuracy tracked rather than assumed.
Every interaction is inspectable
Questions, retrievals and refusals are all logged for your team. You can read what people asked and what the system did about it.
There are things we will not build
No agent answering from the open web in your brand, nothing impersonating a named member of staff, and no automated decisions about people.
FAQ
Retrieval is scoped to sources you control and there is no open-web fallback, so there is nowhere else for an answer to come from. When nothing in those sources supports a question, the agent declines rather than filling the gap.
It says so and routes the person to a human. We design that state before we write a single answer, because it is the one that protects you when the system is wrong.
A question set drawn from your real support history, not invented examples, run on every change. Refusal rate and citation accuracy are tracked as numbers you can see, and you review every answer and refusal before go-live.
Whichever fits the job and your constraints — hosted or self-run. The grounding, the citation and the refusal behaviour are ours; the model underneath is a replaceable part, and we build so it stays replaceable.
Not without the explicit consent of the people whose data it is. In practice most of this work is retrieval over content you already publish, which needs no training at all.
Yes, usually as a day-rate review: where it is ungrounded, what it will say under pressure, what its refusal behaviour actually is, and what to fix first.
Agents that answer from the open web while wearing your brand, anything impersonating a named member of your staff, automated decisions on people — hiring, credit, admissions, grades — and training on your customers' data without their consent.
Yes, on the same terms as every other engagement here. Repository, hosting and credentials move to your accounts at handover, and nothing runs on a platform you can only leave by rebuilding.
Not sure an agent is
the right answer?
Send over the questions your team answers most often. You get back an honest read on which ones a grounded agent should handle — including, often enough, none of them.