Execute AI agent tasks using HyperAgent, our open-source Playwright-powered framework
HyperAgent is our open-source tool that supercharges Playwright with AI. To view the full details on HyperAgent, check out the HyperAgent Github Repo. Here, we will just go over using one of the features of HyperAgent which is being able to have it automatically execute tasks on your behalf on the web with just a simple call.By default, HyperAgent tasks are handled in an asynchronous manner of first starting the task and then checking its status until it is completed. However, if you don’t want to handle the monitoring yourself, our SDKs provide a simple function that handles the whole flow and returns the data once the task is completed.You can view your HyperAgent tasks in the dashboard.
The simplest way to run a HyperAgent task is with the startAndWait() method, which handles everything for you:
Copy
Ask AI
import { Hyperbrowser } from "@hyperbrowser/sdk";import { config } from "dotenv";config();const client = new Hyperbrowser({ apiKey: process.env.HYPERBROWSER_API_KEY,});async function main() { const result = await client.agents.hyperAgent.startAndWait({ task: "Go to Hacker News and tell me the title of the top post", llm: "gpt-4o", maxSteps: 20, }); console.log(`Output:\n${result.data?.finalResult}`);}main().catch((err) => { console.error(`Error: ${err.message}`);});
Session configuration (proxy, stealth, captcha solving, etc.). Only applies when creating a new session. If you provide an existing sessionId, these options are ignored.
API key for openai. Required when useCustomApiKeys is true.
Copy
Ask AI
{ openai: "..."}
The agent may not complete the task within the specified maxSteps. If that happens, try increasing the maxSteps parameter.Additionally, the browser session used by the AI Agent will time out based on your team’s default Session Timeout settings or the session’s timeoutMinutes parameter if provided. You can adjust the default Session Timeout in the Settings page.
You can pass in an existing sessionId to the HyperAgent task so that it can execute the task on an existing session. Also, if you want to keep the session open after executing the task, you can supply the keepBrowserOpen parameter.
Copy
Ask AI
import { Hyperbrowser } from "@hyperbrowser/sdk";import { config } from "dotenv";config();const client = new Hyperbrowser({ apiKey: process.env.HYPERBROWSER_API_KEY,});const main = async () => { const session = await client.sessions.create(); try { const result = await client.agents.hyperAgent.startAndWait({ task: "What is the title of the first post on Hacker News today?", sessionId: session.id, keepBrowserOpen: true, }); console.log(`Output:\n${result.data?.finalResult}`); const result2 = await client.agents.hyperAgent.startAndWait({ task: "Tell me how many upvotes the first post has.", sessionId: session.id, }); console.log(`\nOutput:\n${result2.data?.finalResult}`); } catch (err) { console.error(`Error: ${err}`); } finally { await client.sessions.stop(session.id); }};main().catch((err) => { console.error(`Error: ${err.message}`);});
Always set keepBrowserOpen: true on tasks that you want to reuse the session from. Otherwise, the session will be automatically closed when the task completes.
Bring your own LLM API keys to avoid consuming Hyperbrowser credits for LLM calls. You’ll still be charged for browser session usage, but save on token costs.
Copy
Ask AI
import { Hyperbrowser } from "@hyperbrowser/sdk";import { config } from "dotenv";config();const client = new Hyperbrowser({ apiKey: process.env.HYPERBROWSER_API_KEY,});const main = async () => { const result = await client.agents.hyperAgent.startAndWait({ task: "What is the title of the first post on Hacker News today?", llm: "gpt-4o", useCustomApiKeys: true, apiKeys: { openai: "<OPENAI_API_KEY>", }, }); console.log(`Output:\n\n${result.data?.finalResult}`);};main().catch((err) => { console.error(`Error: ${err.message}`);});
Customize the browser session used by HyperAgent with session options.
Copy
Ask AI
import { Hyperbrowser } from "@hyperbrowser/sdk";import { config } from "dotenv";config();const client = new Hyperbrowser({ apiKey: process.env.HYPERBROWSER_API_KEY,});const main = async () => { const result = await client.agents.hyperAgent.startAndWait({ task: "What is the title of the first post on Hacker News today?", llm: "gpt-4o", sessionOptions: { acceptCookies: true, } }); console.log(`Output:\n\n${result.data?.finalResult}`);};main().catch((err) => { console.error(`Error: ${err.message}`);});
sessionOptions only applies when creating a new session. If you provide a sessionId, these options are ignored.
Proxies and CAPTCHA solving add latency to page navigation. Only enable them when necessary for your use case.
Be explicit about what you want HyperAgent to do. Instead of “check the website”, say “go to example.com, find the pricing page, and extract the cost of the Enterprise plan”.
Set appropriate maxSteps
Simple tasks need 10-20 steps. Complex multi-page workflows might need 50+ steps. Monitor failed tasks and adjust accordingly.
Reuse sessions for multi-step workflows
It is usually better to split up complex tasks into smaller, more manageable ones and execute them as separate agent calls on the same session.