All integrations

Agent Frameworks

LlamaIndex

Give your LlamaIndex.TS agents reliable web access. Schema-enforced extraction, research, generation, and browser automation as native LlamaIndex tools.

TypeScript@tabstack/llamaindex

Why LlamaIndex + Tabstack

Wiring web access into an agent usually means hand-rolled fetches, HTML parsing, and prompt gymnastics to coax structured data out of messy text. @tabstack/llamaindex replaces that with a hosted API exposed as native LlamaIndex tools: schema-enforced output, server-side rendering of JS-heavy pages, and one key for extraction, research, generation, and automation.

Quickstart

Install the adapter and set your key:

npm install @tabstack/llamaindex llamaindex zod
 
export TABSTACK_API_KEY="your-key-here"

llamaindex (v0.12 or later) and zod are peer dependencies. The tools come pre-built as an array, so pass them straight to an agent:

import { tabstackTools } from "@tabstack/llamaindex";
import { agent } from "@llamaindex/workflow";
import { openai } from "@llamaindex/openai";
import { Settings } from "llamaindex";
 
Settings.llm = openai({ model: "gpt-4o" });
 
const researcher = agent({ tools: tabstackTools });
 
const result = await researcher.run(
  "What are Vercel's current pricing plans? Cite your sources.",
);
console.log(result.data);

The tools resolve TABSTACK_API_KEY lazily on first call, so importing the package never requires a key.

For a custom key, base URL, or a shared client, build the tools explicitly:

import { createTabstackLlamaindexTools } from "@tabstack/llamaindex";
 
const tools = createTabstackLlamaindexTools({ apiKey: process.env.MY_KEY });
// or pass an SDK client you already have: createTabstackLlamaindexTools({ client })

The tools

ExportTool nameWhat it does
extractStructuredDataToolextract_structured_dataPull specific fields from a URL into a JSON shape you define.
extractPageContentToolextract_page_contentFetch a page as clean markdown.
researchQuestionToolresearch_questionSynthesized answer with cited sources across multiple pages.
generateStructuredDataToolgenerate_structured_dataFetch a page, then AI-transform it into derived or reshaped JSON.
automateBrowserTaskToolautomate_browser_taskRun a multi-step, natural-language browser task.

Import individual tools for a subset, or use the tabstackTools array for all of them. The names stay in lockstep with the @tabstack/langchain, @tabstack/ai, @tabstack/eve, and Python langchain-tabstack packages.

Good to know

  • automate_browser_task runs non-interactively. It does not pause for human-in-the-loop form input, so it never blocks. It returns the final answer plus the data it extracted and the pages it visited.
  • Failed calls throw TabstackToolError, a normalized message plus an HTTP status for API errors. LlamaIndex surfaces this in the tool result.
  • Inputs are validated against the core Zod schema, since LlamaIndex passes the schema straight through as the tool's parameters, so malformed model output is caught before the call runs.
  • Zod 3 and Zod 4 both work. LlamaIndex's tool() is Zod-native and accepts either, and your app's own Zod version is used.

Common use cases

  • Replace a brittle web loader with a hosted API that returns the shape you asked for.
  • Give a LlamaIndex agent cited, multi-source research over live pages.
  • Read a specific URL as clean markdown for indexing or summarisation.
  • Keep tool names consistent across your TypeScript and Python agents.

Next steps

Ship LlamaIndex with live web data.

The model, the browser, and the orchestration all run on Tabstack. You just make the call.