unlob Docs
Browse documentation

Ten agent frameworks that reach unlob

Ten agent frameworks, and the two ways each of them can reach the index.

Two ways in, whichever framework you use

Through MCP. Most frameworks now have an MCP adapter. Connect it to https://api.unlob.com/mcp?profile=grounding and the agent gets ground and get_document with their descriptions and schemas intact — the right surface for most tasks, and two schemas rather than a dozen in every request. Drop the profile and it gets every tool, including corroborate and dossier, which have no equivalent in a generic search tool. Nothing to define either way; see Profiles.

As one tool you write. A tool you define is a tool whose defaults you control. Pinning max_age, min_independent_origins or require_role on ground — or min_independent_sources and collapse=story on search — in your own code rather than leaving them to the model is the single cheapest thing you can do for the quality of what reaches the context window.

Neither is more correct. Use MCP when the agent should be able to reach for the graph; write the tool when it only ever grounds or searches.

The guides

FrameworkLanguageMCP adapter
LangChain and LangGraphPythonYes
Claude Agent SDKPython, TypeScriptYes
LlamaIndexPythonYes
Vercel AI SDKTypeScriptExperimental
OpenAI Agents SDKPythonYes
Pydantic AIPythonYes
CrewAIPythonVia tools
MastraTypeScriptYes
Google ADKPythonVia functions
n8nNo codeREST is simpler here

Using Claude directly, without a framework? Tool use, directly and the remote MCP connector. Using a desktop or editor client rather than building an agent? Connect a client.

What every one of these guides gets right

The examples differ per framework, but three things recur because they are what agents get wrong:

  • Surface partial. A search response with partial: true is a 200 that means part of the corpus was unreachable. A model handed a short list with no explanation reports it as “nothing found”. Every example passes that flag through rather than the raw JSON.
  • Branch on retry-after, not on 429. With the header it is a rate limit, and the header is the real wait in seconds — sleep it, do not substitute a constant. Without it the key is hard-capped and out of credits, and a retry loop cannot succeed.
  • Set the evidence bar in code. min_independent_origins on ground (or min_independent_sources on search) left to the model is a suggestion it can lower. Set as a default it is a floor — while still overridable when a single-source document is exactly what you want.
  • Read the receipt. A ground answer with status: insufficient and a source_roles_missing list is telling the agent something; pass status and coverage.known_gaps through rather than only the evidence.

Nothing to install

There is no unlob package in any language. The API is HTTP and JSON, so the client in each of these guides is a function, not a dependency. If you want the no-framework version, the SDK quickstarts have it in five languages.

Next