agent402-langchain
v0.2.0
Published
LangChain.js tools for Agent402: turn ~1,100 pay-per-call x402 tools (browser, web search, OCR, PDFs, memory) into LangChain tools via four meta-tools (find/route/call/about), plus the cross-seller x402 Smart Order Router. Free via proof-of-work or pay pe
Maintainers
Readme
agent402-langchain
LangChain.js tools for Agent402 — the open-source x402 + MCP server with ~1,100 pay-per-call web tools (browser, web search, OCR, PDFs, durable memory, ~1,000 pure-CPU utilities) and the cross-seller Smart Order Router that ranks tools across the whole x402 ecosystem.
npm install agent402-langchain @langchain/core zodQuickstart
import { agent402Tools } from "agent402-langchain";
// Free tier (proof-of-work auto-pay, no wallet)
const tools = await agent402Tools();
// Or, for wallet-required tools (browser, search, memory), supply an
// x402-wrapped fetch (e.g. @x402/fetch with your funded Base wallet):
const tools = await agent402Tools({ fetch: payFetch });
// Plug into any LangChain agent
import { createReactAgent } from "@langchain/langgraph/prebuilt";
const agent = createReactAgent({ llm, tools });What you get — four meta tools
The LLM picks tasks; the router picks sellers; the caller handles payment.
| Tool | Purpose |
|---|---|
| agent402_find | Resolve a plain-language task to the best local Agent402 tool — slug, route, price, input schema, and a ready example. |
| agent402_route | Cross-seller x402 router: rank tools across every x402 seller (Agent402 + auto-discovered competitors from the Coinbase CDP Bazaar). include: "external" excludes Agent402 itself — neutral discovery API over the rest of the ecosystem. |
| agent402_call | Call a tool by slug. Pays automatically: pure-CPU tools via proof-of-work; wallet-only via your x402 fetch. |
| agent402_about | The Agent402 service manifest — payment options, capability map, MCP connector, trust signals. |
Why four meta tools and not one tool per slug? Registering ~1,100 individual tools blows past most agents' tool-budget and the LLM can't reason over hundreds of entries. Routing-as-discovery scales — the LLM describes the task, the router picks the cheapest healthy seller, the caller handles payment.
Migration from 0.1.x
[email protected] replaces the per-slug tool generator with the four-
meta-tool pattern. If you were using agent402Tools({ slugs: [...] }), the
new entry point is just agent402Tools() — the LLM picks slugs at runtime
via agent402_find and agent402_route.
Framework-agnostic specs
If you'd rather not pull in @langchain/core (or you want to wrap the tools
with your own factory), use the framework-agnostic export:
import { agent402ToolSpecs } from "agent402-langchain";
const specs = agent402ToolSpecs();
// specs = [{ name, description, parametersJsonSchema, execute }, ...]
const result = await specs.find((s) => s.name === "agent402_route").execute({
query: "ocr image",
top: 3,
include: "external",
});Options
agent402Tools({
baseUrl?: string, // default: "https://agent402.tools"
fetch?: typeof fetch, // x402-wrapped fetch for wallet-required tools
fetchImpl?: typeof fetch, // base fetch for unpaid lookups (default: global fetch)
})License
MIT — part of Agent402.
