Skip to content

Open source version of OpenAI Operator - Ask your browser to perform highlevel tasks

License

Notifications You must be signed in to change notification settings

agentlabs-dev/openator

Repository files navigation

Magic Inspector

.

Your Open-Source Browser Operator — Openator is a state-of-the-art browser agent tool that is capable of planning and executing actions formulated in natural language.

This project is under active development and any help or support is welcome.

License version Docker Image CI

.

🌟 Give us some love by starring this repository! 🌟

.

Open-Source browser operator

Openator is fully open-sourced (Apache 2.0).

Demo

GUI VERSION

amazon-openator-demo.mp4

CLI VERSION

Log in to my account with '[email protected]' and 'demopassword' and create a new test inside the Default Project. Once the test has been created, I can see the test editor.

auto-inspector-demo.mp4

How it works

agentlabs.dev

Getting Started

ℹ️ Note: Openator is currently in development and not ready to self-host. Stay tuned for updates.

Openator is available as a CLI utility and as a web application.

  • The GUI web version is the easiest way to get started if you just to play with the agent.
  • The CLI is probably more adapted to improve the agent and add new features to the core.

GUI Version

This is work in progress

CLI Version

Prerequisites

ℹ️ Note: Openator requires Node.js version 20 or higher.

Clone the repository and go to the backend folder

git clone [email protected]:agentlabs-dev/openator.git
cd openator/backend

npm install

Add your OpenAI API key

echo OPENAI_API_KEY="<replace-with-your-key>" >> .env

Usage

npm run openator [-- options]
Option Description
-f, --file Specify the file containing WebVoyager test cases. Default to our web voyager benchmark.
-w, --web The website name to run the benchmark on (e.g., Allrecipes, Amazon). Default: Runs on all available websites.
-t, --threads The number of threads to run the benchmark on. Default: 1
-h, --headless Run the benchmark in headless mode. Default: false
-i, --id <TASK_ID> The task id to run. Default to all.
-o, --output <OUTPUT_PATH> The path to save the benchmark results. Default to eval/answers.json.
Example
npm run openator -- --web=Amazon --threads=5 --headless

Roadmap for a stable release

We're committed to improving the project, feel free to open an issue if you have any suggestions or feedback.

Component Status Features
Alpha release ✅️️
  • Release a first minimap version that is able to run a test
Add support for variables and secrets ✅️️
  • The agent can take variables and secrets from the user story
  • Secrets are not displayed in the logs or sent to the LLM
Run multiple cases from a test file ✅️️
  • Check the npm run example:file command for more information
Interrupt actions when dom changes ✅️
  • We need to interrupt the action if the interactives elements change after one action
Wait page stabilized before evaluation ✅️
  • Wait for the domContentLoaded event to be fired
  • Wait for a minimal time to make sure the page is stable
Manage completion at the action level ✅️
  • We must manage completion at the action level insted of the task level to make sure the agent does not restart filling inputs over and over
Update UI version to display steps in real-time 🏗️
  • Update the UI to show the steps generated by the agent in real-time
Add unit tests 🏗️
  • Add vitest to test business logic
Manager multiple tabs 🏗️
  • We must listen to the tab events and manage the tabs
Persist voyager results in file 🏗️
  • we need to persist screenshots and results in a file for every test we run
Refine user inputs 🏗️
  • We must make sure that the Manager Agent and the Evaluation Agent get distinct inputs so the Manager Agent does not try to update its behavior based on the expected result
Provide a GUI 🏗️
  • Add docker configuration
  • Add a simple UI to create a test
Allow to launch the Web Voyager benchmark in multiple threads ✅️
  • The only serious way to improve the agent is to build a serious benchmark dedicated to the web testing.
Add OpenAI YAML spec and generate frontend SDK dynamically 🏗️
  • Automatically add OpenAI YAML specification
  • Generate frontend SDK dynamically based on the specification

.

🌟 Give us some love by starring this repository! 🌟

.