unlob Docs
Browse documentation

Frameworks

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, and it hands the agent all eleven tools with their descriptions and schemas intact — including corroborate and dossier, which have no equivalent in a generic search tool. Nothing to define.

As one tool you write. Eleven tools is a lot of schema in every request, and a tool you define is a tool whose defaults you control. Pinning min_independent_sources and collapse=story 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 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 clears in a second; without it the monthly quota is hard-capped and a retry loop cannot succeed.
  • Set the corroboration floor in code. min_independent_sources 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.

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