Basic Browser Agent
Navigate and extract information from web pages.import asyncio
from definable.agent import Agent
from definable.browser import BrowserToolkit, BrowserConfig
async def main():
config = BrowserConfig(headless=False)
async with BrowserToolkit(config=config) as toolkit:
agent = Agent(
model="gpt-4o",
toolkits=[toolkit],
instructions="Use browser_snapshot before interacting with any page.",
)
result = await agent.arun("Go to news.ycombinator.com and list the top 3 stories")
print(result.content)
asyncio.run(main())
pip install 'definable[browser]'
playwright install chromium
Connect to Existing Browser
Attach to an already-running Chrome instance:# Launch Chrome with remote debugging
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \
--remote-debugging-port=9222 --no-first-run
config = BrowserConfig(cdp_url="http://127.0.0.1:9222")
async with BrowserToolkit(config=config) as toolkit:
agent = Agent(model="gpt-4o", toolkits=[toolkit])
result = await agent.arun("What page am I on?")
Persistent Profile
Keep cookies and login state across runs:config = BrowserConfig(user_data_dir="/tmp/my-browser-profile")
Form Filling
result = await agent.arun("""
Go to https://example.com/signup
Fill in the email field with "[email protected]"
Fill in the password field with "secure123"
Click the submit button
""")
Combined with MCP
from definable.mcp import MCPToolkit, MCPConfig
async with BrowserToolkit(config=config) as browser:
async with MCPToolkit(config=MCPConfig(...)) as mcp:
agent = Agent(
model="gpt-4o",
toolkits=[browser, mcp],
)