-
Notifications
You must be signed in to change notification settings - Fork 44.5k
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
Web Navigation Challenge #3936
Comments
I would really like to learn more about these challenges you keep coming up with. I'm assuming that these serve as guidelines for writing unit tests? |
yes exactly, but they're more end to end tests that unit tests. We test the system, we don't test the code. This way even if in 6 months we do a complete refactorisation the tests will still be valid, and they will allow us to refactor Auto-GPT. |
good thinking:
|
It's probably best to use selenium awaiters for a portion of that, and prompt the human user to navigate those, as the human would be who is agreeing to them, not the bot. |
those were based on observing the agent "browse" with the browser instance set to visible - it's not confirming anything, and also isn't using search facilities and also doesn't seem to be using sitemap.xml to find its way (personally, not a huge fan of using selenium for non-dynamic websites, where classic crawling should suffice) |
@anonhostpi @Boostrix I like that you think of how to solve this problem. This issue is more about how to test whether the problem has been solved (aka create the challenge). @NotSkynet is going to help us find good static website where we can test whether Auto-GPT is able to navigate. |
just keep the browser open/visible to see for yourself that browsing could use some TLC ...
re navigation: randomly generate navbar structures using a nested loop with different labels and menus/sub menus, generate a matching sitemap.xml and use the two in combination to see if the agent is able to "visit" a certain part, each link would trigger the same python CGI script to tell the back-end which links were found/clicked. re the search form: probably analogous to the click form we talked about yesterday, just with the twist that it's a single SEARCH field (input text) and a simple python based back-end that we can execute via a conventional HTTPServer instance, at which point we can then hook up the whole thing to pytest, as before. |
We can just use the XPath |
Yes, exactly what I suggested here: #3551 (comment) I believe, this sort of feature could be useful in general, so we could just as well implement a more generic "browse_website" or extend it as needed (with support for xpath, like you say) If this is augmented with sitemap.xml data, it's probably rather flexible as is:
|
Oh yeah, duh. I forgot sitemaps are a thing. We can integrate one of the many, many pre-existing crawling tools there are out there and automatically generate a sitemap for every site visited that doesn't already have one. I was already thinking about overcomplicating things and indexing the pages on the fly ourselves when I remembered that search engines can do things like |
For a collection of issues/PRs/discussions to base the challenge off of you could use my trackers: Gist (Alt) You are more than welcome to use them as the "static website." recommend using the README.md file. I do update my tracker files frequently, but I imagine you could find a github xpath on it that doesn't change. |
That gist is really looking good and super useful, must have been a ton of work, thanks for that ! (probably should be added to the wiki in a similar shape or form) |
Thank you!
I would have added it to the catalyzing and/or moderator page, but I think you have to have repo ownership privileges for that. You can't make a PR against a wiki, unfortunately. |
@Boostrix, if you are interested in contributing to my gist, you can take a look at https://github.com/anonhostpi/AUTOGPT.TRACKERS. I use Github Copilot to autofill a lot of the data, and then use the powershell script https://github.com/anonhostpi/AUTOGPT.TRACKERS/blob/main/.SCRIPTS/CONTRIBUTE.ps1 to push updates to it. |
yeah great gist. |
I would say, this could just as well be a static local website - i.e. via a Python HTTP Server that is locally running as part of the test suite, we talked about using that idea in the context of the "contact form". So basically we need a pytest module that starts up a HTTP server to track "actions" (GET/POST requests). To the agpt agent it should not be relevant if it's navigating google.com or 127.0.0.1 :-) |
Oh I was able to get this working with ChromeGPT (https://github.com/richardyc/Chrome-GPT) using the AutoGPT agent. I was able to login to Reddit with pretty basic sentence Here's my demo: Not only that but I got extensions working so I was able to use the ScribeAI Plugin to create an auto generated guide (though basic) Edit: |
testing would be the level to see if any submissions solve the challenge or not - ideally, we would be able to throw different URLs at the challenge, with goals to navigate to some pre-defined page, and possibly "action" (contact form etc). For starters/experiments, this could be based on localhost - but eventually, it will need to work using arbitrary websites. |
@Noots123 thanks for the suggestion ! |
Mind2Web is a ground breaking news for web navigation agents : https://osu-nlp-group.github.io/Mind2Web/ |
This issue has automatically been marked as stale because it has not had any activity in the last 50 days. You can unstale it by commenting or removing the label. Otherwise, this issue will be closed in 10 days. |
I would love to get some momentum on this again. Recently I played around with HyperWriteAI and their autonomous browser atm is the best I have played with. Here's a small demo HyperWriteAI is closed source and ChromeGPT is a bit slow so I think AutoGPT can make a splash here I mentioned this to @Pwuts and he put it on his radar, he mentioned having a selenium wrapper that could do something similar to ChromeGPT's implementation: I don't see why AutoGPT can't have as good browser navigation as HyperWriteAI, and it would be a huge win for the OS community. The whole reason why I've been going down this rabbit hole is to experiment with generating E2E tests given a "task". I've been able to prototype with ChromeGPT but would prefer a solution inside of the AutoGPT repo. Plus I feel like one of the best things about autonomous agents is being able to browse the web effectively and is something people want which you can tell by the hype HyperwriteAI got when it released (it was number 4 on Product Hunt that day). General public went nuts over it understandably. Seeing your browser perform a task like a human in front of your eyes is powerful stuff lol Any ways hopefully this sparks up some convo and momentum in the browser navigation area and if there's any ways I can help push it forward =) |
This issue has automatically been marked as stale because it has not had any activity in the last 50 days. You can unstale it by commenting or removing the label. Otherwise, this issue will be closed in 10 days. |
bump, unfortunately I haven't had time to dig into this |
Beautiful show ! That's my forte @BaseInfinity |
@ballonJourn while I haven't been able to make progress in this repo, I have been able to make progress in others that support AutoGPT. Here's my latest prototype, PlaywrightGPT: I imagine a future where tests can self repair themselves and even generate code diffs on code change in CI. |
This issue has automatically been marked as stale because it has not had any activity in the last 50 days. You can unstale it by commenting or removing the label. Otherwise, this issue will be closed in 10 days. |
This issue was closed automatically because it has been stale for 10 days with no activity. |
Duplicates
Summary 💡
Auto-GPT should be able to navigate website, enter text and submit forms.
FYI @NotSkynet
Examples 🌈
No response
Motivation 🔦
No response
The text was updated successfully, but these errors were encountered: