We built Index - new SOTA Open Source browser agent.
It reached 92% on WebVoyager with Claude 3.7 (extended thinking). o1 was used as a judge, also we manually double checked the judge.
At the core is same old idea - run simple JS script in the browser to identify interactable elements -> draw bounding boxes around them on a screenshot of a browser window -> feed it to the LLM.
What made Index so good:
1. We essentially created browser agent observability. We patched Playwright to record the entire browser session while the agent operates, simultaneously tracing all agent steps and LLM calls. Then we synchronized everything in the UI, creating an unparalleled debugging experience. This allowed us to pinpoint exactly where the agent fails by seeing what it "sees" in session replay alongside execution traces.
2. Our detection script is simple but extremely good. It's carefully crafted via trial and error. We also employed CV and OCR.
3. Agent is very simple, literally just a while loop. All power comes from carefully crafted prompt and ton of eval runs.
Index is a simple python package. It also comes with a beautiful CLI.
pip install lmnr-index
playwright install chromium
index run
We've recently added o4-mini, Gemini 2.5 Pro and Flash. Pro is extremely good and fast. Give it a try via CLI.
You can also use index via serverless API. (https://docs.lmnr.ai/index-agent/api/getting-started)
Or via chat UI - https://lmnr.ai/chat.
To learn more about browser agent observability and evals check out open-source repo (https://github.com/lmnr-ai/lmnr) and our docs (https://docs.lmnr.ai/tracing/browser-agent-observability).
pip install lmnr-index playwright install chromium index run
Also try experimenting with different models. So far, Gemini 2.5 Pro is the best in terms of quality/speed. Claude 3.7 is also pretty good.
Deleted Comment
https://simplify.jobs/install
Can run with `uvx --from lmnr-index --python 3.12 index run`
I've written a handful of pretty hacky Python scripts that just pull down all of the HTML content from a page and toss it over to OpenAI. As you can imagine, these were all extremely simple tasks, e.g., "find out if there's a login button"
What's a good example of a complex task that Index is well-suited for? What's the threshold of minimal complexity where you guys are a really good fit?
- any task that requires UI interaction, button clicking, filter selection, form filling and so on. Just prompt it, it's surprisingly very robust and self-healing.
- complex long-running task that require extensive context - e.g. researching one topic and then creating spreadsheet, creating a presentation for a topic and so on.
Essentially, any task that can be done within a browser environment that previously required flacky hardcoded predefined scripts. Also, website testing is a great example.
- SOTA on webvoyager
- browser agent observability
- fast and reliable
- CLI for easier interaction
- available as a serverless API