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

Add a web surfer agent that can search and browse the web. #888

Closed
wants to merge 16 commits into from

Conversation

afourney
Copy link
Member

@afourney afourney commented Dec 6, 2023

[Work in Progress -- Updates welcome]

Why are these changes needed?

At present, AutoGen agents need to write code, or be set up with specific function-calling routines to gather information from the web. Inspired by OpenAI's WebGPT work, this PR adds a stateful agent that can command a (simulated) web browser. Add a WebSurferAgent to any conversation to instantly and seamlessly add web content and browsing abilities to your workflows.

This simulated web browser uses Bing web search and renders all webpages as Markdown. It supports a stateful scrollable viewport (to save you context tokens), as well as actions on that viewport (e.g., page up, page down, find on page). Given that this is largely driven by the python requests library and BeautifulSoup, JavaScript and other modern web content are not supported directly. In the future, this simulated browser can be replaced with a real headless browser (e.g., powered by Selenium).

Related issue number

#287 , #132 , etc.

Checks

@afourney
Copy link
Member Author

afourney commented Dec 6, 2023

Example Run

Configuration:

import os
import autogen
from autogen.agentchat.contrib.web_surfer import WebSurferAgent
from datetime import datetime

config_list = autogen.config_list_from_json("OAI_CONFIG_LIST")
llm_config = {
    "config_list": config_list,
    "timeout": 180,
    "cache_seed": None
}

assistant = autogen.AssistantAgent(
    "ai_assistant",
    system_message="You are partnered with with a Web Surfer -- they are your eyes and ears on the Internet. If you need any information from the web, just ask them. You can ask them to search, visit any of the results, or directly navigate to any URLs. Working with the Web Surfer, answer the question or task that is asked of you. Collect enough information to write a definitive response, then write your response followed by the word 'TERMINATE'. Remember, Today's date is " + datetime.now().date().isoformat() + " and you MUST 'TERMINATE' THE CONVERSATION when the task is complete.",
    llm_config=llm_config,
    is_termination_msg=lambda x: x.get("content", "").find("TERMINATE") >= 0,
)

web_surfer = WebSurferAgent(
    "web_surfer",
    llm_config=llm_config,
browser_config={"bing_api_key": os.environ["BING_API_KEY"]},
    is_termination_msg=lambda x: x.get("content", "").find("TERMINATE") >= 0,
)

prompt = input("Prompt: ")
web_surfer.initiate_chat(assistant, message=prompt)

Abridged Trace:

web_surfer (to ai_assistant):
 
On peloton you earn badges for attending certain classes. What is the name of the class that has a Tragically Hip set list, and what badge(s) does it earn?
 
--------------------------------------------------------------------------------
ai_assistant (to web_surfer):
 
Web Surfer, can you search 'Tragically Hip set list class on Peloton and associated badges'?
 
...
 
Web Surfer, could you please visit the first link: "Complete List of Peloton Badges & Special Achievements"?
 
...
 
Web Surfer, could you please search for 'Tragically Hip' on the current page?
 
...
 
The class that features a Tragically Hip set list on Peloton is the "15 min AFO Ride: The Tragically Hip" class taught by Emma Lovewell.
 
This class earns the following badges:
- Made for Canada Badge: Awarded for participating in a Made for Canada workout.
- Go Canada! 2021 Badge: Awarded for participating in a Go Canada! 2021 workout.
 
Please note that the information provided is based on the Pelobuddy website and may be subject to change or updates.
 
TERMINATE
Detailed Trace (Click to Expand)

``` Prompt:On peloton you earn badges for attending certain classes. What is the name of the class that has a Tragically Hip set list, and what badge(s) does it earn? web_surfer (to ai_assistant):

On peloton you earn badges for attending certain classes. What is the name of the class that has a Tragically Hip set list, and what badge(s) does it earn?


ai_assistant (to web_surfer):

Web Surfer, can you search 'Tragically Hip set list class on Peloton and associated badges'?


USING AUTO REPLY...

EXECUTING FUNCTION bing_search...
web_surfer (to ai_assistant):

Address: bing: Tragically Hip set list class on Peloton and associated badges
Title: Tragically Hip set list class on Peloton and associated badges - Search

A Bing search for 'Tragically Hip set list class on Peloton and associated badges' found 10 results:

Web Results

  1. Complete List of Peloton Badges & Special Achievements
    The following is a list of Peloton’s badges & special achievements members can earn by taking special classes (rides, runs, yoga, strength, etc). This list is sorted by the date the badges were created & made available to members.

  2. The Tragically Hip Concert Setlists | setlist.fm
    Sep 16 2022 The Tragically Hip at National Arts Centre, Ottawa, ON, Canada Artist: The Tragically Hip , Venue: National Arts Centre , Ottawa, ON, Canada Now That the Buffalo's Gone Edit setlist Jun 6 2021 The Tragically Hip at Juno Awards 2021 Artist: The Tragically Hip , Venue: Massey Hall , Toronto, ON, Canada It's a Good Life if You Don't Weaken

  3. Peloton Listening Party Classes Monthly, Collection, and Badge
    There is a brand new badge available for taking one of the new classes – you can find it on our Peloton badge list. Note that there is a dedicated Listening Party Collection, ... Peloton Classes From September 6 - 15, 2020 Removed from the On-Demand Library on November 3, 2023. Another Peloton Outage On Nov 4,2023.

  4. List of classes, artists, and instructors for the 2021 Peloton All For ...
    Below, you can find the full list of classes, artists, instructors, and schedule for this year’s event, which will take place from July 1-3 2021. The list is in alphabetical order by artist. Most of the classes are being released straight to on-demand & encore, but a few will be live.

  5. Peloton Special Events Badge Scavenger Hunt Tracking Sheet
    This is the output from a scan of over 400 users. Shows first / last time badge earned in the sample, classes that earned the badge. List classes that are still available vs archived. I'm pretty sure this is definitive. I would like to improve the output format, I gave a few choices.

  6. The Tragically Hip Average Setlists of year: 2000 | setlist.fm
    Tragically Hip, The > Tour Statistics. Song Statistics Stats; Tour Statistics Stats; Other Statistics; All Setlists. All setlist songs (1313) Years on tour. Show all. 2022 (1) 2021 (1) ... Average setlist for year: 2000. Note: only considered 78 of 83 setlists (ignored empty and strikingly short setlists) Setlist. share setlist My Music at Work ...

  7. The Tragically Hip - Wikipedia
    The Tragically Hip, often referred to simply as the Hip, were a Canadian rock band formed in Kingston, Ontario in 1984, consisting of vocalist Gord Downie, guitarist Paul Langlois, guitarist Rob Baker (known as Bobby Baker until 1994), bassist Gord Sinclair, and drummer Johnny Fay. They released 13 studio albums, one live album, one EP, and over 50 singles over a 33-year career.

  8. The Tragically Hip Setlist at Gothic Theatre, Englewood

  9. In Between Evolution 7. Phantom Power 4. Fully Completely 3. Day for Night 2. In Violet Light 1. Music @ Work 1. Road Apples 1. Up to Here 1.

  10. The Tragically Hip Setlist at Metropol, Pittsburgh

T > Tragically Hip, The > October 2, 1998 Setlist Oct 2 1998 The Tragically Hip Setlist at Metropol, Pittsburgh, PA, USA Edit setlist Setlist Save the Planet Twist My Arm Poets Gift Shop Bobcaygeon Nautical Disaster Ahead by a Century The Luxury Something On Courage (for Hugh MacLennan) Fireworks Springtime in Vienna Chagrin Falls

  1. The Tragically Hip Setlist at House of Blues, Chicago
    The Tragically Hip House of Blues, Chicago, IL - Jul 19, 2002 Jul 19 2002 The Tragically Hip First Avenue, Minneapolis, MN - Jul 20, 2002 Jul 20 2002 Last updated: 23 Nov 2023, 20:14 Etc/UTC

ai_assistant (to web_surfer):

Web Surfer, could you please visit the first link: "Complete List of Peloton Badges & Special Achievements"?


USING AUTO REPLY...

EXECUTING FUNCTION visit_page...
web_surfer (to ai_assistant):

Address: https://www.pelobuddy.com/list-peloton-badges/
Title: Complete List of Peloton Badges & Special Achievements - Peloton Buddy

Complete List of Peloton Badges & Special Achievements - Peloton Buddy

Challenges, Class Information, Collections & Programs
Complete List of Peloton Badges & Special Achievements

Chris Lewis on January 28, 2021

The following is a list of Peloton’s badges & special achievements members can earn by taking special classes (rides, runs, yoga, strength, etc). This list is sorted by the date the badges were created & made available to members. Each badge is linked to jump down to a section where you can then see a mostly-complete list of Peloton classes that are able to earn a specific badge. Note that some classes have been purged, so it is no longer possible to earn some of the badges. We will note which classes have been archived (note that purges happen with no notice so it’s possible we don’t know a class has been recently purged, but just email us and let us know and we can update it!) Feel free to email us if you know of a class that earns a badge we don’t have listed, and we can get that updated as well. If you’ve earned most of these badges already and are looking for some unique classes to take, be sure to check out our special interest class list, or the instructor signature series list.
Full List of Peloton Badges & Peloton Special Achievement Awards

Holiday 2023 Badge

Liverpool FC Badge

Turkey Burn PR 2023 Badge

Turkey Burn On Demand 2023 Badge

Turkey Burn Live 2023 Badge

The Chelsea Set Badge

Listening Party Badge

UK 5 Year Anniversary Badge

Halloween 2023 Badge

Black History Month 2023 Badge

Unity 2023 Badge

LHHM 2023 Badge

Oktoberfest 2023 Badge

Listening Party Badge

All For One 2023 Badge

Summer Break Badge

Juneteenth 2023 Badge

Hip Hop Tour Badge

Peloton Outdoor AS: Reloaded Badge

Madonna Artist Series Badge

Zeitlose Stimmen Badge

Pride 2023 Badge

Cro 2023 Badge

Mental Health Awareness Badge

Euro Pop Badge

APIHM 2023 Badge

Peloton x Ed Sheeran Badge

RTG S3: Activate Season Champs Badge

RTG S3: Activate Tread Champs Badge

RTG S3: Validate Bike Champs Badge

RTG S3: Game Participation Badge

RTG S3: Practice Badge Badge

Hip Hop 50 Badge

Women’s History Month Badge

Jess King Experience 2022 Badge

Top 50 2022 Badge


ai_assistant (to web_surfer):

Web Surfer, could you please search for 'Tragically Hip' on the current page?


USING AUTO REPLY...

EXECUTING FUNCTION find_on_page...
web_surfer (to ai_assistant):

Address: https://www.pelobuddy.com/list-peloton-badges/
Title: Complete List of Peloton Badges & Special Achievements - Peloton Buddy
Scrolled to result 1 of 4 for string 'Tragically Hip'

EDT](https://members.onepeloton.com/classes/cycling?modal=classDetailsModal&classId=4784b7ccc99f4b17b377bf81e1bbed3d)

15 min AFO Ride: The Tragically Hip – Emma Lovewell – 2021-07-01 12:00 PM EDT

15 min AFO Ride: Sturgill Simpson – Denis Morton – 2021-07-01 12:00 PM EDT

20 min AFO Glutes & Legs: WizKid – Rad Lopez – 2021-07-01 12:00 PM EDT

10 min AFO Upper Body: Gorgon City – Ben Alldis – 2021-07-01 12:00 PM EDT

20 min AFO Ride: WizKid – Cliff Dwenger – 2021-07-01 12:00 PM EDT

30 min AFO Bootcamp: WizKid – Chase Tucker – 2021-07-01 12:00 PM EDT

Made for Canada – Awarded for participating in a Made for Canada workout.

Press here to show or hide list of Peloton classes to earn the Made for Canada badge
15 min AFO Ride: The Tragically Hip – Emma Lovewell – 2021-07-01 12:00 PM EDT

30 min Go Canada! Ride – Leanne Hainsby – 2021-07-01 11:00 AM EDT

20 min Go Canada! Bodyweight Strength – Ben Alldis – 2021-07-01 01:00 AM EDT

Go Canada! 2021 – Awarded for participating in a Go Canada! 2021 workout.

Press here to show or hide list of Peloton classes to earn the Go Canada! 2021 badge
15 min AFO Ride: The Tragically Hip – Emma Lovewell – 2021-07-01 12:00 PM EDT

30 min Go Canada! Ride – Leanne Hainsby – 2021-07-01 11:00 AM EDT

20 min Go Canada! Bodyweight Strength – Ben Alldis – 2021-07-01 01:00 AM EDT

Father’s Day 2021 – Awarded for completing a Father’s Day 2021 class.

Press here to show or hide list of Peloton classes to earn the Father's Day 2021 badge
10 min Father’s Day Meditation – Chelsea Jackson Roberts – 2021-06-20 11:45 AM EDT

10 min Father’s Day HIIT Cardio – Callie Gullickson – 2021-06-20 11:30 AM EDT

45 min Father’s Day Bootcamp – Adrian Williams – 2021-06-20 10:00 AM EDT

30 min Father’s Day Ride – Kendall Toole – 2021-06-20 08:00 AM EDT

Juneteenth 2021 – Awarded for completing a Juneteenth 2021 workout.

Press here to show or hide list of Peloton classes to earn the Juneteenth 2021 badge
30 min Jon Batiste Yoga Flow – Chelsea Jackson Roberts – 2021-06-18 09:00 AM EDT

30 min Juneteenth HIIT Cardio – Chase Tucker – 2021-06-18 09:00 AM EDT

30 min Juneteenth Full Body Strength – Adrian Williams – 2021-06-18 09:00 AM EDT

10 min Juneteenth Meditation – Chelsea Jackson Roberts – 2021-06-18 09:00 AM EDT

20 min Juneteenth Ride – Ally Love – 2021-06-18 09:00 AM EDT

30 min Juneteenth Ride – Alex Toussaint – 2021-06-18 09:00 AM EDT

AT’s RTG: S1 Winner_Validate – Awarded to the champions of Season 1 for winning the most games with #teamvalidate.

Press here to show or hide list of Peloton classes to earn the AT's RTG: S1 Winner_Validate badge

NOTE – This was awarded to those who rode with #TeamValidate for winning the overall competition of Alex Toussaint’s Ride to Greatness.

AT’s RTG: G4 Winner_Validate – Awarded for winning Game 4 with #teamvalidate.

Press here to show or hide list of Peloton classes to earn the AT's RTG: G4 Winner_Validate badge

NOTE – This badge was awarded to the winning team who took Game 4 live for Alex Toussaint’s Ride to Greatness.

Broadway Series 2021 – Awarded for participating in a Broadway Series 2021 class.

Press here to show or hide list of Peloton classes to earn the Broadway Series 2021 badge
30 min Broadway Full Body Strength – Matty Maggiacomo – 2021-09-26 11:30 AM EDT

30 min In the Heights Run – Jess King – 2021-07-13 10:30 AM EDT

30 min In the Heights Yoga Flow – Mariana Fernández – 2021-07-10 02:05 PM EDT

30 min In the Heights Ride – Robin Arzón – 2021-07-10 12:00 PM EDT

20 min In the Heights Pilates – Ally Love – 2021-07-10 10:00 AM EDT

20 min In the Heights Core Strength – Emma Lovewell – 2021-07-10 10:00 AM EDT

20 min RENT Run – Matty Maggiacomo – 2021-06-04 11:00 AM EDT

30 min RENT Full Body Strength – Matty Maggiacomo – 2021-06-03 10:00 AM EDT

45 min RENT Ride – Christine D’Ercole – 2021-06-02 07:30 PM EDT

45 min RENT Yoga Flow – Ross Rayburn – 2021-06-02 10:30 AM EDT

30 min RENT Run – Jess King – 2021-06-01 10:30 AM EDT

Pride 2021 – Awarded for completing a Pride 2021 workout.

Press here to show or hide list of Peloton classes to earn the Pride 2021 badge
30 min Pride Celebration Yoga Flow – Denis Morton – 2021-06-30 06:00 PM EDT

30 min Pride Celebration Ride – Christine D’Ercole – 2021-06-27 01:30 PM EDT

10 min Pride Icons Meditation – Chelsea Jackson Roberts – 2021-06-27 08:45 AM EDT

30 min Pride Icons Slow Flow – Chelsea Jackson Roberts – 2021-06-27 08:00 AM EDT

30 min Pride Celebration Yoga Flow – Mariana Fernández – 2021-06-26 01:30 PM EDT

45 min Pride Celebration Yoga Flow – Ross Rayburn – 2021-06-26 09:30 AM EDT

30 min Casablanca Records Live DJ Run – Adrian Williams – 2021-06-25 07:30 PM EDT

30 min Live DJ Ride – Cody Rigsby – 2021-06-25 05:30 PM EDT

30 min Pride Run – Jess King – 2021-06-25 11:00 AM EDT

30 min Pride Celebration Full Body – Adrian Williams – 2021-06-24 08:30 AM EDT

30 min Janelle Monáe Ride – Emma Lovewell – 2021-06-23 07:30 PM EDT

30 min Janelle Monáe Run – Matty Maggiacomo – 2021-06-23 07:00 PM EDT

30 min Janelle Monáe Bodyweight Strength – Chase Tucker – 2021-06-23 12:00 PM EDT

30 min Casablanca Records Ride – Cody Rigsby – 2021-06-22 07:30 PM EDT

30 min Pride Broadway Yoga Flow – Kristin McGee – 2021-06-22 10:30 AM EDT

30 min New Queer Musicians Full Body – Matty Maggiacomo – 2021-06-22 08:30 AM EDT

30 min Janelle Monáe Yoga Flow – Chelsea Jackson Roberts – 2021-06-21 06:00 PM EDT

45 min Pride Celebration Ride – Erik Jäger – 2021-06-21 12:00 PM EDT

20 min Pride Bodyweight Strength – Erik Jäger – 2021-06-21 10:00 AM EDT

20 min Pride Celebration HIIT Cardio – Jess Sims – 2021-06-18 08:30 AM EDT

30 min Big Freedia Run – Adrian Williams – 2021-06-18 07:00 AM EDT

30 min Big Freedia Ride – Jess King – 2021-06-16 07:30 PM EDT

30 min Pride: Dance Music Ride – Ben Alldis – 2021-06-15 01:30 PM EDT

20 min Pride Celebration Core Strength – Olivia Amato – 2021-06-15 08:30 AM EDT

20 min Pride Celebration Power Yoga – Aditi Shah – 2021-06-15 08:00 AM EDT

20 min Pride Celebration Run – Matt Wilpers – 2021-06-15 07:00 AM EDT

20 min Pride Celebration Ride – Kendall Toole – 2021-06-14 12:05 PM EDT

5 min Pride Celebration Meditation – Cody Rigsby – 2021-06-14 10:00 AM EDT

20 min Pride Celebration Run – Becs Gentry – 2021-06-12 08:30 AM EDT

30 min Sam Smith Bootcamp – Cody Rigsby – 2021-06-11 08:00 AM EDT

15 min Pride Arms & Shoulders Strength – Ben Alldis – 2021-06-11 04:45 AM EDT

30 min Sam Smith Run – Becs Gentry – 2021-06-10 03:00 PM EDT

10 min Sam Smith Core Strength – Emma Lovewell – 2021-06-10 10:00 AM EDT

30 min Pride: Indie Pop Ride – Emma Lovewell – 2021-06-10 08:00 AM EDT


ai_assistant (to web_surfer):

The class that features a Tragically Hip set list on Peloton is the "15 min AFO Ride: The Tragically Hip" class taught by Emma Lovewell.

This class earns the following badges:

  • Made for Canada Badge: Awarded for participating in a Made for Canada workout.
  • Go Canada! 2021 Badge: Awarded for participating in a Go Canada! 2021 workout.

Please note that the information provided is based on the Pelobuddy website and may be subject to change or updates.

TERMINATE

</p></details>

@codecov-commenter
Copy link

codecov-commenter commented Dec 6, 2023

Codecov Report

Attention: Patch coverage is 0% with 393 lines in your changes missing coverage. Please review.

Project coverage is 34.38%. Comparing base (9cec541) to head (97555f1).
Report is 838 commits behind head on main.

Files with missing lines Patch % Lines
autogen/browser_utils.py 0.00% 222 Missing and 1 partial ⚠️
autogen/agentchat/contrib/web_surfer.py 0.00% 170 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #888      +/-   ##
==========================================
+ Coverage   26.63%   34.38%   +7.75%     
==========================================
  Files          28       30       +2     
  Lines        3777     4170     +393     
  Branches      858      968     +110     
==========================================
+ Hits         1006     1434     +428     
+ Misses       2700     2609      -91     
- Partials       71      127      +56     
Flag Coverage Δ
unittests 34.34% <0.00%> (+7.75%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@afourney
Copy link
Member Author

Superseded by #1093

@afourney afourney closed this Dec 29, 2023
@afourney afourney deleted the web_surfer branch January 29, 2024 16:45
whiskyboy pushed a commit to whiskyboy/autogen that referenced this pull request Apr 17, 2024
* add cost budget; move loc of make_dir

* remove None in return

---------

Co-authored-by: Qingyun Wu <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants