Skip to main content
Glama

recall_followup

Fetch results for follow-up queries from iterative recall, returning only new records not already retrieved. Pass prior_ids to preserve continuation state and avoid duplicate hits.

Instructions

MULTI-HOP recall, PHASE 2 of 2 — hand back the follow-up queries YOUR model wrote after reading recall_iterative's round-1 hits, together with the prior_ids it returned. Each follow-up is retrieved and only the records you do NOT already hold come back, so the second round costs you the bridge evidence and nothing else.

prior_ids is the whole continuation state — there is no session on the server, nothing to expire, and nothing that can be served to the wrong caller. Pass it. Without it every follow-up hit is reported as new, including the ones round 1 already gave you.

Want a further round? Call this again with merged_ids from this result as the new prior_ids. Rounds are your loop; the server holds no state between them.

Returns {followups_used, followups_dropped, new_hits, bridged, merged_ids, recall_calls, bounds}. bridged is how many records this hop added — 0 is a legitimate answer and means the bridge was not there.

BOUND: at most min(len(followups), max_followups) recall() calls, max_followups itself capped at 8, and at most k * max_followups NEW records. Worst case with both at their ceilings: 8 retrievals, 400 records. Nothing here scales with store size. Honours the active project scope; all_projects=True crosses it, and must match what you passed to recall_iterative or round 2 searches a different pool than round 1.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
kNo
fullNo
queryYes
user_idNo
agent_idNo
followupsNo
prior_idsNo
session_idNo
all_projectsNo
trusted_onlyNo
max_followupsNo
snippet_charsNo
Install Server

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so thoroughly: it discloses statelessness, deduplication behavior, the consequence of omitting prior_ids, exact cost bounds, and project-scope consistency with recall_iterative. This goes well beyond what the schema alone provides.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but dense, with the phase announcement front-loaded and clear sections for returns, bounds, and project scope. Some repetition about statelessness and the bridge cost could be trimmed, but the structure makes it easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

It covers the hidden complexity well: continuation state, prior_ids, deduplication, cost bounds, return shape, and scope matching with recall_iterative. It is nearly complete, but a required parameter, query, is left unexplained, and a few optional knobs could still trip up an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

It adds real meaning to prior_ids, followups, max_followups, all_projects, k, and the returned fields, which is important given 0% schema description coverage. However, it never explains the required query parameter, and leaves several optional flags such as full, trusted_only, snippet_chars, user_id, agent_id, and session_id to inference.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource: it is the second phase of multi-hop recall that takes the caller's follow-ups plus prior_ids and returns only records not already held. It explicitly ties itself to recall_iterative, so an agent can distinguish it from that sibling tool without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states exactly when to call it (after recall_iterative produces round-1 hits), that prior_ids must be passed, and how to continue with merged_ids as the next prior_ids. The note that the server holds no state also prevents the caller from relying on a session that does not exist.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DanceNitra/inspeximus'

If you have feedback or need assistance with the MCP directory API, please join our Discord server