---
title: "Context engineering: the context your AI agent is missing"
description: "An AI agent is only as good as its context, which almost always lacks what users say. We show how to collect it and wire it in."
url: "https://raconte.ai/en/blog/context-engineering-ai-agents"
---

# Context engineering: the context your AI agent is missing

An AI agent is only as good as its context, which almost always lacks what users say. We show how to collect it and wire it in.

October 14, 2026

Godefroy

Key takeaways

*   Teams doing context engineering take care of an AI agent’s docs, tools and memory. Yet they almost always leave out what users say about their problem, in their own words.
*   Analytics show what people do and tickets show what breaks. To learn why, you have to talk to people. An agent without those conversations makes the why up.
*   An async voice interview collects what users say without a research team: one link per person, an AI that asks follow-ups, a transcript the agent reads over the API or MCP.
*   Put a short, dated, sourced brief in the prompt rather than fifty raw transcripts. A context that runs too long also makes the agent’s answers worse.
*   A dozen interviews point to a direction, which your analytics then have to put a number on. Date every finding and rerun the same interview every quarter.

An AI agent never does better than the context you give it. Context engineering is the work of choosing that context: the prompt, the documents, the tools, the memory. Most teams put their documentation and their data in there, then stop. What is missing is what users say about their problem: their reasons, and the words they use. You can collect it without a research team, through voice interviews run by an AI, then wire it into the agent over a REST API or an MCP server as a short, dated brief. Below is a complete n8n chain, then the limits of the method.

## Context engineering and its missing piece

The term caught on in June 2025. Shopify CEO Tobi Lütke said he preferred it to “prompt engineering”, and Andrej Karpathy, an AI researcher and OpenAI co-founder, backed him with a definition: [“the delicate art and science of filling the context window with just the right information for the next step”](https://the-decoder.com/shopify-ceo-and-ex-openai-researcher-agree-that-context-engineering-beats-prompt-engineering/). Anthropic then published its [advice on context engineering for agents](https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents), stressing something teams learn the hard way: a model recalls information less reliably as its context grows, so you cannot pour everything in.

It matters because agents mostly disappoint through their answers. In LangChain’s [State of Agent Engineering survey](https://langchain.com/state-of-agent-engineering), run in late 2025 with 1,340 practitioners, 57% already have agents in production, yet output quality is still the top barrier they cite (32%), while worries about cost have eased. Gartner, for its part, expects [over 40% of agentic AI projects to be cancelled by the end of 2027](https://www.outlookbusiness.com/artificial-intelligence/over-40-of-agentic-ai-projects-will-be-scrapped-by-2027-says-gartner) as costs climb and the business value stays unclear. An agent whose answers are correct but miss what people needed lands squarely in both statistics.

## An AI agent’s context sources and their blind spots

A company agent usually draws on four sources, and can have a fifth: what its users say. Each has a blind spot.

Context source

What it brings

What it leaves out

System prompt and rules

Tone, limits, the steps to follow

Whether those rules match what people want

Docs and knowledge base

What the product does and how it works

What people misunderstand about it

Product analytics

What people do, where they drop off

Why they drop off

Support tickets and CRM

What breaks, who bought what

What the people who leave without complaining think

What users say

Their reasons, their words, what they tried before

A measurement: a dozen people is not a statistic

The prompt, the docs, the analytics and the tickets describe the product and the behaviour. None of these sources holds the reasons. Picture an agent that prioritises a backlog. It sees that 30% of accounts never turn on the Slack integration, but it cannot tell whether they see no point in it, whether their admin blocks third-party apps, or whether they never found it. It will pick an explanation anyway. In the best case it picks the one its documentation repeats most. In the worst case it invents one, confidently.

Words matter as much as reasons. An agent that writes a landing page or an onboarding email says “centralise your workflows” because that is the vocabulary of the internal docs. Your customers say “stop copying orders by hand”. Without their sentences in the context, the agent writes in the team’s jargon.

```mermaid
graph TD
    P[System prompt and rules] --> A[AI agent]
    D[Documentation] --> A
    N[Product analytics] --> A
    T[Tickets and CRM] --> A
    U[What users say<br/>reasons, words, alternatives tried] -.->|often missing| A
    A --> R[Answer, decision, copy]
```

## The agents that need field signal most

Not every agent needs to hear from users. An agent that reconciles invoices against a ledger can check its work against the numbers themselves, so the accountants’ opinion will not change the reconciliation. The gap shows as soon as the agent produces something a person has to find useful, convincing or clear:

*   a product prioritisation agent, which ranks requests without knowing which ones actually block people,
*   a marketing copy agent, which needs customers’ objections and vocabulary,
*   a support agent, whose answers are accurate but sometimes miss the question asked,
*   an onboarding agent, which has to know where new accounts get lost and what they were looking for when they signed up,
*   a sales qualification agent, which has to recognise a prospect’s problem in the prospect’s own words.

For these agents, what users say goes into the context before the run, so the agent starts from the right place. Feedback collected afterwards on a specific answer does a different job: it corrects a mistake already made. That correction loop belongs to [human in the loop for AI agents](/en/blog/human-in-the-loop-automation).

## Collecting field signal without a research team

The method is old: you talk to people. What stops a product team is the cost. Finding a slot, running the call, taking notes, transcribing: ten interviews take someone a week, so they happen at launch and rarely after.

We built Raconte to take that work off the team’s hands. You describe the interview in a prompt, each person gets a link and talks when they have a moment, and an AI runs the conversation by voice, asking follow-ups the way an interviewer would. On Raconte, 82% of invitees finish their interview, which lasts 16 minutes on average. For each interview you get the transcript, the audio, a summary and the sentiment of every answer.

Voice matters here for a practical reason: people type around [40 words a minute and speak around 150](https://en.wikipedia.org/wiki/Words_per_minute), so a free-text form field gets two sentences where a conversation gets examples, hesitations and tangents. Those tangents often hold what an agent will find nowhere else.

Three settings make an interview useful to an agent:

*   Ask one core question per interview (“why did you stop using the Slack integration?”), with two or three follow-ups written into the prompt.
*   Ask about past facts rather than intentions, as Rob Fitzpatrick, founder and author of _The Mom Test_, recommends: “tell me about the last time you” gets material, while people answer “would you use” out of politeness. You can [build your interview guide](/en/blog/interview-guide) one question at a time.
*   Always end on an open question (“is there anything I should have asked you?”), because the answers neither you nor the agent expected often come up at that point.

## Connecting Raconte to an agent: REST API, MCP and webhooks

You can connect Raconte to an agent in three ways. The right one depends on who is in charge: an AI assistant that reasons, or a workflow you wired yourself.

Surface

Who calls it

Typical use

[MCP server](/en/docs/mcp)

An assistant or an agent (Claude, Cursor, an n8n agent)

The agent decides on its own to create an interview, invite people and read the transcripts

[REST API](/en/docs/api)

Your backend or an HTTP node

A deterministic workflow that creates interviews and invites lists of people

[Webhooks](/en/docs/webhooks)

Raconte, calling your endpoint

Getting notified when each interview ends, with the transcript in the payload

The MCP server answers at `https://api.raconte.ai/api/mcp` and exposes eight tools, four for interviews and four for invitations. An agent can, for example, call `create-interview` with a prompt and a list of invitees, then `get-interview` to read the transcripts and summaries. [Setting up the MCP server](/en/guides/mcp-setup) differs from one client to the next. Each tool also comes with [example requests to give the agent](/en/guides/mcp-usage).

The REST API answers at `https://api.raconte.ai/v1`, with an organisation API key as a bearer token and a quota of 300 requests a minute. Three routes cover most chains:

*   `POST /v1/interviews` creates the interview from a prompt.
*   `POST /v1/interviews/{id}/invitations/bulk` creates and sends one invitation per person.
*   `GET /v1/invitations/{invitationId}` returns the full transcript, the summary and per-answer sentiment.

The `interview.completed` webhook fires when a person finishes their interview. It waits for the analysis to finish so it can include the summary and the full transcript, with a sentiment (`positive`, `neutral` or `negative`) on each answer. Its payload therefore already holds what the agent needs, with no extra call.

Raconte does not produce an aggregated report across interviews. The agent compares them itself by reading the transcripts, which is exactly the work you want from it.

## Example: an end-to-end n8n chain

Take a B2B SaaS whose onboarding agent emails new accounts. The team wants it to know why some accounts never activate the product, and in which words they say so. Most of the chain fits in two n8n workflows.

The first workflow invites people:

1.  A _Schedule Trigger_ node fires every Monday at 9 am.
2.  An _HTTP Request_ node queries your database or CRM for accounts that signed up fourteen days ago and never connected the main integration.
3.  A second _HTTP Request_ node calls `POST /v1/interviews/{id}/invitations/bulk` on an interview created once and for all, with each person’s name and email.

You create that interview with a prompt along these lines:

```json
{
  "title": "Non-activated accounts at day 14",
  "locale": "en",
  "prompt": "You are talking to someone who created an account two weeks ago without connecting their main tool. Ask what they were looking for when they signed up, then walk through the last time they opened the product: what they tried, where they stopped, what they did instead. Get them to describe their problem in their own words. End by asking whether there is anything else we should have asked."
}
```

The second workflow turns each interview into context:

1.  A _Webhook_ node receives `interview.completed`. Reply with a 200 straight away: Raconte drops the request after 5 seconds and does not retry.
2.  A _Code_ node checks the HMAC signature (`x-raconte-signature`) against your secret.
3.  An _AI Agent_ node reads the transcript and pulls out a finding, the quote behind it, and the account’s segment.
4.  The finding is appended to a context brief (a Notion page, a Google Doc or a Markdown file in a repo), which the onboarding agent loads into its prompt.

A third trigger, monthly, asks an agent to reread the whole brief, merge findings that repeat, and propose changes to the onboarding agent’s prompt. A person approves those changes before they go live.

```mermaid
graph TD
    S[Schedule Trigger, every Monday] --> Q[HTTP Request: non-activated accounts at day 14]
    Q --> I[HTTP Request: POST invitations/bulk]
    I --> R[Raconte runs the voice interviews]
    R -->|interview.completed| W[n8n Webhook and signature check]
    W --> X[AI Agent: finding, quote, segment]
    X --> F[Dated context brief]
    F --> O[Onboarding agent: its prompt loads the brief]
    F --> M[Monthly review: a person approves prompt changes]
    M --> O
```

Since the webhook does not retry, add a daily catch-up: `GET /v1/interviews/{id}/invitations` lists the invitations with their status, and the workflow processes the completed ones missing from the brief. If you would rather have an agent drive everything without a fixed workflow, n8n’s _MCP Client Tool_ node plugs Raconte’s MCP server straight into an _AI Agent_ node.

The context brief matters more than the transcripts in this chain. Every line in it carries a date and a source. It stays short, since the agent reads all of it on every run.

![A user context brief with its six fields: finding, quote, segment, number of interviews, date and review date](/.netlify/images?url=_astro%2Fcontext-card-en.iDeWSXq6.jpg&w=1376&h=768&dpl=6ad1cc428d394a5c89e0155b)

## The limits: sample, bias and freshness

An agent fed with what users say makes fewer mistakes, but it can make them with more confidence. We see five limits. Most of them deserve a line in the agent’s own prompt.

A dozen interviews give a direction. They do not give a proportion. If seven people out of eleven mention the Excel import, the agent can conclude it is a common blocker in that segment, not that 64% of customers hit it. Keep the number of interviews next to each finding, and check frequency against your analytics.

The people who answer do not represent everyone. Those who agree to talk are often the most engaged or the most annoyed. Invite by segment rather than in bulk, and note which segments did not answer: a gap in the brief is information too.

The interview prompt carries the biases of whoever writes it. An agent that drafts its own questions will ask about what it already thinks matters. Have a person read the prompt before it goes out, and keep the open question at the end.

A summary loses things. Use each interview’s summary to sort, then the exact quote to decide. Put at least one quote per finding in the brief, and keep the link to the transcript so a person can check. Per-answer sentiment helps you spot tense passages, but it does not replace reading them.

A finding goes stale. What non-activated accounts said in March may no longer hold after an onboarding redesign in June. Date each line, give it a review date, and rerun the same interview every quarter. Drop from the brief whatever nobody has said again in two quarters. A context that is too long also degrades the answer, as Anthropic points out, so a brief that only ever grows ends up hurting the agent it was meant to help.

You also need to think about personal data. Tell people their interview is used to improve the product, and strip names and emails before a quote goes into a context that other tools will read.

## Where to start

Pick the agent whose answers sound right but miss the point, and the question it currently answers by guessing. Write an interview around that question, invite ten people from the relevant segment, and fit what they say into a one-page brief the agent loads on every run. Compare its output before and after.

The [60 free interview minutes you get each month](/en/pricing), no card required, cover at least three interviews of average length. Beyond that, an active interview minute costs $0.12. [Create a Raconte account](/en), generate an API key, and your agent can launch its first interview on its next run.

Ready to launch your first interview?

Describe your interview, share the link: an AI agent runs it by voice with each participant. You get back the transcript and analysis.

[Try for free](/login)

## Continue reading

[![Human in the loop automation: gate the agent, ask the user](/.netlify/images?url=_astro%2Fthumbnail.cLCgDnIp.jpg&w=1376&h=768&dpl=6ad1cc428d394a5c89e0155b)

August 16, 2026

## Human in the loop automation: gate the agent, ask the user

The approval gate is half of human in the loop automation. The other half feeds judgement, taste and what users actually experienced back into the agent.



](/en/blog/human-in-the-loop-automation)[![Automate your content strategy with Claude Tag](/.netlify/images?url=_astro%2Fthumbnail.DxzDZQnN.jpg&w=1424&h=752&dpl=6ad1cc428d394a5c89e0155b)

June 28, 2026

## Automate your content strategy with Claude Tag

Claude Tag drafts and updates for a whole team, but from what? How to feed it your experts' and customers' knowledge, so it automates content AI engines cite.



](/en/blog/claude-tag)[![Introducing Raconte](/.netlify/images?url=_astro%2Fthumbnail.Ch_D91ZI.jpg&w=1424&h=752&dpl=6ad1cc428d394a5c89e0155b)

May 31, 2026

## Introducing Raconte

Why we built an AI that interviews people by voice, and how it turns real human knowledge into content no generic model could ever write.



](/en/blog/introducing-raconte)
