Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WebSurfer Agent #496

Open
marklysze opened this issue Jan 14, 2025 · 0 comments
Open

WebSurfer Agent #496

marklysze opened this issue Jan 14, 2025 · 0 comments
Labels
agents:websurferagent WebSurfer Agent enhancement New feature or request

Comments

@marklysze
Copy link
Collaborator

marklysze commented Jan 14, 2025

--FEEDBACK WELCOME--

Web Surfer Agent will be an agent able to navigate the web, searching for content based on its system message and the task on hand, and return its findings.

Examples of use-cases:

  • Question Answering
  • Information Collation

Capabilities include:

  • Use the agent's system message and the current message conversation to search the web
  • Standard set of starting points (e.g. Bing Search, Google Search, Wikipedia) to start the search
  • User-provided set of starting points (e.g. a URL to start from)
  • Navigate the links on pages to continue the search until satisfied or maximum link depth
  • Support for 3rd party browser plugin, e.g. AgentQL
  • Support for Structured Outputs to control output format

Objective: It is preferable for the underlying functionality to be an agent capability (e.g. my_websurfer_capability.add_to_agent(some_agent)) and for this agent to be essentially a ConversableAgent + Capability. It will be evaluated as designed to see if this is possible or, possibly, a subset of functionality made available as a capability (if not able to fully)

Note: An existing WebSurferAgent exists in AG2, this agent may be renamed to avoid conflicting with the existing one or the current one could be replaced as more modern capabilities exist (computer use).

Example code (not final API):

# Most basic (using default system message, conversation messages to determine request, standard starting points like Bing Search, Google Search, etc., default link depth)
my_websurfer_agent = WebSurferAgent(
    name="websurferagent",
    llm_config=...,)

# Configuration
my_websurfer_agent = WebSurferAgent(
    name="websurferagent",
    llm_config=...,
    search_config=WebSurferConfig(link_depth=3, max_search_points=2),
)

# Specify URLs / search providers to use
my_websurfer_agent = WebSurferAgent(
    name="websurferagent",
    llm_config=...,
    search_points=["https://my_url", BingSearch(config=...), PerplexitySearch(config=...)],
)

# Specify 3rd party browser
my_websurfer_agent = WebSurferAgent(
    name="websurferagent",
    llm_config=...,
    browser=AgentQLBrowser(...)
)

Internal agent workflow:

  1. Load and configure the search points (if necessary)
  2. For each search point (based on a pre-defined order or list order):
    2.1. Create search point specific query string (may require LLM)
    2.2. Start search, load content
    2.3. Parse format (possibly into an intermediate format)
    2.4. Send content to LLM with the objective and extract back the relevant content and relevant links as well as a determination on whether the objective has been satisfied. If not satisfied, work through relevant links, going to the maximum link depth, all the time compiling the content.
    2.5. If objective satisfied, do not continue to next search point, LLM reflect with compiled content into the return format.
  3. If all search points exhausted and objective not satisfied, return a pre-configured output (text or something based on structured output)

Deliverables:

  • WebSurfer Agent code
  • Documentation
  • Blog
  • Notebook
  • Video script
@marklysze marklysze added this to ag2 Jan 14, 2025
@marklysze marklysze converted this from a draft issue Jan 14, 2025
@marklysze marklysze added enhancement New feature or request agents:websurferagent WebSurfer Agent labels Jan 15, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
agents:websurferagent WebSurfer Agent enhancement New feature or request
Projects
Status: Todo
Development

No branches or pull requests

1 participant