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

Our process

Four phases, and the one most teams leave until last comes second here: what the agent says when it does not know.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

Before you buy a chatbot

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

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.