A FAQ whose last row is a live ask field. Jev opens a canned answer when it matches, or a short grounded answer becomes another row.
Use this when FAQ visitors ask in their own words and you want to open the matching canned answer or add a grounded answer as a new row.
Similar patterns, and when each one is the better fit.

Jev Table QueryUse this when users type filter or sort requests over a fixed table, with column sorts run in code and other phrases scored by the model per row.
Jev Output VerifierUse this when you want your own code to hold the confidence floor a draft answer must clear before display, with at most one retry on a miss.
Jev Loop BreakerUse this when an agent looks up facts step by step and you want the stop threshold in your own code, not left to the model to decide.
Jev Search FilterFreeUse this when you want semantic search over a known catalog, such as emoji or icons, without building embeddings, scoring each item with a boolean.Requirements, wiring steps, and what this pattern adds to your project.
Pick how you want to pull this pattern in. Then wire env vars and routes the same way.
Download → Next.js app
Use Download → Next.js app in the preview toolbar. You get a zip scaffold (Pro downloads rewrite preview `/view/.../api/*` paths to `/api/*` automatically).
Extract the zip and install dependencies
Unzip the archive, then run `pnpm install` (or npm / yarn) in the project folder.
Fill .env.local
The download includes .env.local placeholders when needed. Add real values for: AI_GATEWAY_API_KEY.
Customize the agent and tool files
Adapt prompts, tools, and stop conditions in the generated project for your product.
Run the app and open the pattern route
Run `pnpm dev`, open the setup/checklist page if present, then navigate to the generated pattern route and verify responses.
AI_GATEWAY_API_KEYGet keyAI SDK APIs
experimental_evaluategenerateTextProviders
External services
app/page.tsxapp/layout.tsxapp/api/faq/route.tscomponents/infinite-faq-demo.tsxhooks/use-infinite-faq.tslib/faq.tslib/passages.tslib/faq-questions.tslib/faq-policy.tslib/rate-limit.tslib/request-utils.tsREADME.mdnpm packages
6
Registry components
lib/faq-policy.tsevaluateFaq first decides a canned open via decideOpen (>= 0.70). On a miss, decideGrounded gates generateText with a boolean over hardcoded passages. The writer uses reasoning none so the token budget is the answer, and it does not refuse on its own. A grounding miss returns the fixed refuse copy. Inject writeAnswer in tests. Do not call Jev or generateText from unit tests. Use Experimental_EvaluationMockModelV4.
lib/faq-questions.tsFAQ is the closed canned set. buildFaqQuestions copies each question plus a gist into the choice criteria. GROUND_QUESTIONS asks whether the passages contain the facts. Floors stay in application code.
lib/faq.tsClosed FAQ entries and canned answers about AI SDK Agents. The client looks up static ids here. Live answers append as separate rows.
lib/passages.tsHardcoded grounding passages. generateText may only use this text. Do not fetch live docs or embeddings.
faq/route.tsRate-limited evaluateFaq through AI Gateway. Returns open-static, append, or refuse. Does not return a chat transcript.
A FAQ whose last row is a live ask field. Jev opens a canned answer when it matches, or a short grounded answer becomes another row.
Use this when FAQ visitors ask in their own words and you want to open the matching canned answer or add a grounded answer as a new row.
Similar patterns, and when each one is the better fit.

Jev Table QueryUse this when users type filter or sort requests over a fixed table, with column sorts run in code and other phrases scored by the model per row.
Jev Output VerifierUse this when you want your own code to hold the confidence floor a draft answer must clear before display, with at most one retry on a miss.
Jev Loop BreakerUse this when an agent looks up facts step by step and you want the stop threshold in your own code, not left to the model to decide.
Jev Search FilterFreeUse this when you want semantic search over a known catalog, such as emoji or icons, without building embeddings, scoring each item with a boolean.Requirements, wiring steps, and what this pattern adds to your project.
Pick how you want to pull this pattern in. Then wire env vars and routes the same way.
Download → Next.js app
Use Download → Next.js app in the preview toolbar. You get a zip scaffold (Pro downloads rewrite preview `/view/.../api/*` paths to `/api/*` automatically).
Extract the zip and install dependencies
Unzip the archive, then run `pnpm install` (or npm / yarn) in the project folder.
Fill .env.local
The download includes .env.local placeholders when needed. Add real values for: AI_GATEWAY_API_KEY.
Customize the agent and tool files
Adapt prompts, tools, and stop conditions in the generated project for your product.
Run the app and open the pattern route
Run `pnpm dev`, open the setup/checklist page if present, then navigate to the generated pattern route and verify responses.
AI_GATEWAY_API_KEYGet keyAI SDK APIs
experimental_evaluategenerateTextProviders
External services
app/page.tsxapp/layout.tsxapp/api/faq/route.tscomponents/infinite-faq-demo.tsxhooks/use-infinite-faq.tslib/faq.tslib/passages.tslib/faq-questions.tslib/faq-policy.tslib/rate-limit.tslib/request-utils.tsREADME.mdnpm packages
6
Registry components
lib/faq-policy.tsevaluateFaq first decides a canned open via decideOpen (>= 0.70). On a miss, decideGrounded gates generateText with a boolean over hardcoded passages. The writer uses reasoning none so the token budget is the answer, and it does not refuse on its own. A grounding miss returns the fixed refuse copy. Inject writeAnswer in tests. Do not call Jev or generateText from unit tests. Use Experimental_EvaluationMockModelV4.
lib/faq-questions.tsFAQ is the closed canned set. buildFaqQuestions copies each question plus a gist into the choice criteria. GROUND_QUESTIONS asks whether the passages contain the facts. Floors stay in application code.
lib/faq.tsClosed FAQ entries and canned answers about AI SDK Agents. The client looks up static ids here. Live answers append as separate rows.
lib/passages.tsHardcoded grounding passages. generateText may only use this text. Do not fetch live docs or embeddings.
faq/route.tsRate-limited evaluateFaq through AI Gateway. Returns open-static, append, or refuse. Does not return a chat transcript.
Loading preview…
Early-bird pricing — limited time


Open on desktop for the interactive preview.
A FAQ whose last row is a live ask field. Jev opens a canned answer when it matches, or a short grounded answer becomes another row.
Loading preview…
Early-bird pricing — limited time


Open on desktop for the interactive preview.
A FAQ whose last row is a live ask field. Jev opens a canned answer when it matches, or a short grounded answer becomes another row.