langchainjs-browsing
v1.1.1
Published
LangChain library that provides browser automation tools for AI agents
Maintainers
Readme
langchainjs-browsing
A LangChain library that provides browser automation tools for AI agents. This package allows AI agents to interact with web pages through a set of browser automation tools.
Installation
npm install langchainjs-browsing langchain puppeteer
# or
pnpm add langchainjs-browsing langchain puppeteerUsage
Basic Example
import { createAgent } from "langchain";
import { launch } from "puppeteer";
import { ChatGoogleGenerativeAI } from "@langchain/google-genai";
import { createBrowsingMiddleware } from "langchainjs-browsing";
// Launch a Puppeteer browser
const browser = await launch({ headless: false });
const page = await browser.newPage();
// Create your LLM
const model = new ChatGoogleGenerativeAI({
model: "gemini-2.5-flash",
apiKey: process.env.GOOGLE_API_KEY,
});
// Create an agent with the browsing library
const agent = createAgent({
model,
middleware: [createBrowsingMiddleware({ page })],
});
// Use the agent to browse and interact with web pages
const response = await agent.invoke({
messages: ["Navigate to https://example.com and tell me what you see."],
});
console.log(response.messages.at(-1)?.text);Selective Tool Inclusion
You can choose which tools to make available to the agent:
const agent = createAgent({
model,
middleware: [
createBrowsingMiddleware({
page,
includeTools: {
goto: true,
click: true,
type: true,
viewPage: true,
getScreenshot: false, // Exclude screenshot tool
inspectNetwork: false, // Exclude network inspector
},
}),
],
});Available Tools
The library provides the following tools:
goto- Navigate to a URL in the current browsing sessionclick- Click an element using a CSS selectortype- Type text into an input element using a CSS selectorevaluate- Execute JavaScript code in the browsing session contextviewPage- View the current browsing session in a simplified form containing only 'interesting' elementsinspectHTML- Inspect the outer HTML of a specific element or the entire pageinspectConsole- Retrieve console logs from the current browsing sessioninspectNetwork- Inspect network logs of the current sessiongetCookies- Return cookies for the current session as a JSON stringgetScreenshot- Take a screenshot of the current browsing session
API
createBrowsingMiddleware(options)
Creates browsing tools for LangChain agents.
Options
page(required): A PuppeteerPageinstanceincludeTools(optional): An object to selectively enable/disable tools- Type:
Partial<Record<ToolName, boolean>> - Default: All tools enabled
- Type:
Tool Names
type ToolName =
| "goto"
| "click"
| "type"
| "evaluate"
| "getCookies"
| "viewPage"
| "getScreenshot"
| "inspectHTML"
| "inspectConsole"
| "inspectNetwork";Development
Install Dependencies
pnpm installRun Playground
pnpm startBuild
pnpm buildRun Tests
pnpm testFormat Code
pnpm formatLicense
MIT
