lavague-ai / LaVague

Large Action Model framework to develop AI Web Agents
https://docs.lavague.ai/en/latest/
Apache License 2.0
4.94k stars 420 forks source link

Chrome extension driver #358

Closed dhuynh95 closed 1 week ago

dhuynh95 commented 1 week ago

We are doing an MVP of Chrome extension where end users can consume web agents defined by devs.

The interface should

from lavague.core import  WorldModel, ActionEngine
from lavague.core.agents import WebAgent
from lavague.core.server import AgentServer
from lavague.core.extractors import JsonFromMarkdownExtractor
from lavague.drivers.selenium.base import SeleniumDriver
from lavague.drivers.remote import RemoteDriver

driver = DriverServer()
world_model = WorldModel()
action_engine = ActionEngine(driver, extractor=JsonFromMarkdownExtractor())
agent = WebAgent(world_model, action_engine)
server = AgentServer(agent)
server.serve()

In that scenario, the workflow is:

To do:

adeprez commented 5 days ago

The agent server uses a builder to manage multiple simultaneous connections, and thus multiple agents

from lavague.core import WorldModel, ActionEngine
from lavague.core.agents import WebAgent
from lavague.drivers.driverserver import DriverServer
from lavague.server import AgentServer, AgentSession

def create_agent(session: AgentSession):
    world_model = WorldModel()
    driver = DriverServer(session)
    action_engine = ActionEngine(driver)
    return WebAgent(world_model, action_engine)

server = AgentServer(create_agent)
server.serve()