{"id":45631054,"url":"https://github.com/PathOnAIOrg/LiteWebAgent","last_synced_at":"2026-03-09T05:00:48.490Z","repository":{"id":253472925,"uuid":"829625325","full_name":"PathOnAIOrg/LiteWebAgent","owner":"PathOnAIOrg","description":"[NAACL2025] LiteWebAgent: The Open-Source Suite for VLM-Based Web-Agent Applications","archived":true,"fork":false,"pushed_at":"2025-07-11T00:44:45.000Z","size":87281,"stargazers_count":143,"open_issues_count":0,"forks_count":24,"subscribers_count":11,"default_branch":"main","last_synced_at":"2026-01-21T16:38:14.137Z","etag":null,"topics":["agent","agent-based-framework","agentic-agi","agentic-framework","agentic-workflow","ai-agent","ai-agents","autonomous-agent","autonomous-agents","fastapi","gpt","llm","llm-agent","llm-agents","llm-framework","web-agent","web-agents"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PathOnAIOrg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-07-16T20:11:18.000Z","updated_at":"2026-01-10T04:39:16.000Z","dependencies_parsed_at":"2024-09-18T05:30:03.378Z","dependency_job_id":"2f07bb80-e9ea-4c86-a3b9-c2cab567258c","html_url":"https://github.com/PathOnAIOrg/LiteWebAgent","commit_stats":null,"previous_names":["pathonai/litewebagent","pathonai-org/litewebagent","pathonaiorg/litewebagent"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/PathOnAIOrg/LiteWebAgent","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PathOnAIOrg%2FLiteWebAgent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PathOnAIOrg%2FLiteWebAgent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PathOnAIOrg%2FLiteWebAgent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PathOnAIOrg%2FLiteWebAgent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PathOnAIOrg","download_url":"https://codeload.github.com/PathOnAIOrg/LiteWebAgent/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PathOnAIOrg%2FLiteWebAgent/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30283703,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-09T02:57:19.223Z","status":"ssl_error","status_checked_at":"2026-03-09T02:56:26.373Z","response_time":61,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent","agent-based-framework","agentic-agi","agentic-framework","agentic-workflow","ai-agent","ai-agents","autonomous-agent","autonomous-agents","fastapi","gpt","llm","llm-agent","llm-agents","llm-framework","web-agent","web-agents"],"created_at":"2026-02-24T00:00:38.736Z","updated_at":"2026-03-09T05:00:48.477Z","avatar_url":"https://github.com/PathOnAIOrg.png","language":"Python","funding_links":[],"categories":["4. Web Browsing Agents"],"sub_categories":["4.1 Open Source Web Browsing Agents"],"readme":"# LiteWebAgent\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.15500270.svg)](https://doi.org/10.5281/zenodo.15500270)\n\n**Disclaimer: Please note that LiteWebAgent is not affiliated with any for-profit company. This is a collaborative project from PathOnAI.org, an open-source AI research community, where Danqing Zhang (danqing.zhang.personal@gmail.com) is the main contributor and lead author of the NAACL paper. If anyone claims LiteWebAgent is affiliated with any for-profit company, please contact Danqing Zhang (danqing.zhang.personal@gmail.com) for verification.**\n\n## Follow-Up Work: VisualTreeSearch\n\n[VisualTreeSearch](https://www.pathonai.org/projects/visualtreesearch) is a production-ready system for visualizing and understanding web agent test-time scaling. It builds upon LiteWebAgent to provide an intuitive framework for researchers and users to understand tree search execution in web agents.\n\n### Resources\n- 🌐 **Project Page**: [PathOnAI.org/VisualTreeSearch](https://www.pathonai.org/projects/visualtreesearch)\n- 🎮 **Live Demo**: [visual-tree-search.pathonai.org](https://visual-tree-search.pathonai.org/)\n- 📄 **Paper**: [Read on arXiv](https://arxiv.org/abs/2503.02950)\n- 🎥 **Video Demo**: [Watch on YouTube](https://www.youtube.com/watch?v=lZUDbv5ABkg)\n\n\n[![Watch the video](https://img.youtube.com/vi/lZUDbv5ABkg/hqdefault.jpg)](https://www.youtube.com/embed/lZUDbv5ABkg)\n\n\n## Join the community!\n\u003cp align=\"left\"\u003e\n    \u003ca href=\"https://discord.gg/UTxjyNwTeP\"\u003e\n        \u003cimg src=\"https://dcbadge.limes.pink/api/server/UTxjyNwTeP\" height=\"28\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/PathOnAI?tab=followers\"\u003e\n        \u003cimg alt=\"followers\" title=\"Follow me on Github\" src=\"https://custom-icon-badges.demolab.com/github/followers/PathOnAIOrg?color=236ad3\u0026labelColor=1155ba\u0026style=for-the-badge\u0026logo=person-add\u0026label=Follow\u0026logoColor=white\"/\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/PathOnAI?tab=repositories\u0026sort=stargazers\"\u003e\n        \u003cimg alt=\"total stars\" title=\"Total stars on GitHub\" src=\"https://custom-icon-badges.demolab.com/github/stars/PathOnAIOrg?color=55960c\u0026style=for-the-badge\u0026labelColor=488207\u0026logo=star\"/\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n## 📰 News\n* [2025-03-06] The 'LiteWebAgent: The Open-Source Suite for VLM-Based Web-Agent Applications' paper is now available on arXiv: https://arxiv.org/abs/2503.02950\n* [2025-02-28] \"LiteWebAgent: The Open-Source Suite for VLM-Based Web-Agent Applications\" was accepted by 2025 Annual Conference of the North American Chapter of the Association for Computational Linguistics -- System Demonstration Track (NAACL 2025).\n* [2025-01-09] We reused LiteWebAgent infrastructure to build [LiteWebAgent Tree Search](https://github.com/PathOnAI/LiteWebAgentTreeSearch), which is set for release on 02/15.\n* [2025-01-01] We built a standalone evaluation suite for [X-WebArena](https://webarena.dev/) evaluation and integrated it with LiteWebAgent.\n* [2024-12-12] Released an async version of LiteWebAgent for improved compatibility with FastAPI AI backends.\n* [2024-12-11] Deployed LiteWebAgent’s frontend and backend on Vercel.\n* [2024-12-03] [zzfoo](https://github.com/zzfoo) integrated [AWM (Agent Workflow Memory)](https://github.com/zorazrw/agent-workflow-memory) into the LiteWebAgent framework.\n* [2024-11-25] We set up a Chrome extension prototype using LiteWebAgent as an AI backend server to control the Chrome browser via Chrome DevTools Protocol.\n* [2024-11-01] We refactored LiteWebAgent's tree search into a new repository called [LLMWebAgentTreeSearch](https://github.com/PathOnAI/LLMWebAgentTreeSearch).\n* [2024-10-01] Completed a major refactoring of LiteWebAgent to make it flexible for importing the package, enabling the addition of web browsing capabilities to any AI agent.\n* [2024-09-20] We reimplemented the paper Tree Search for Language Model Agents in the LiteWebAgent framework. Now, the search agent is capable of exploring different trajectories for accomplishing web browsing tasks and returning the most promising one. This is useful for finding the optimal path to complete complex web browsing tasks in an offline manner.\n* [2024-08-22] The initial version of LiteWebAgent was released, providing a robust framework for using natural language to control a web agent.\n\n## 1. QuickStart\nFrom PyPI: https://pypi.org/project/litewebagent/\n```\npip install litewebagent \n```\nThen, a required step is to setup playwright by running\n```\nplaywright install chromium\n```\nTest playwright \u0026 chromium installation by running this script\n```bash\npython test_installation.py \n```\nThen please create a .env file, and update your API keys:\n```bash\ncp .env.example .env\n```\nYou are ready to go! Try FunctionCallingAgent on google.com\n```\npython examples/google_test.py\n```\n\n## 2. Development mode\n### (1) Installation\nSet up locally\n\nFirst set up virtual environment, and allow your code to be able to see 'litewebagent'\n```bash\npython3.11 -m venv venv\n. venv/bin/activate\npip3.11 install -e .\n```\nThen please create a .env file, and update your API keys:\n\n```bash\ncp .env.example .env\n```\n\nTest playwright \u0026 chromium installation by running this script\n```bash\npython3.11 test_installation.py \n```\n\n### (2) Try different agents\n* use prompting-based web agent to finish some task and save the workflow\n```bash\n## easy case\npython3.11 -m prompting_main --agent_type PromptAgent --starting_url https://www.google.com --goal 'search dining table' --plan 'search dining table' --log_folder log\n## more complicated case\npython3.11 -m prompting_main --agent_type PromptAgent --starting_url https://www.amazon.com/ --goal 'add a bag of dog food to the cart.' --plan 'add a bag of dog food to the cart.' --log_folder log\n```\n* we also provide function-calling-based web agent\n```bash\n## easy case\npython3.11 -m function_calling_main --agent_type FunctionCallingAgent --starting_url https://www.google.com --goal 'search dining table' --plan 'search dining table' --log_folder log\npython3.11 -m function_calling_main --agent_type HighLevelPlanningAgent --starting_url https://www.google.com --goal 'search dining table' --plan 'search dining table' --log_folder log\npython3.11 -m function_calling_main --agent_type ContextAwarePlanningAgent --starting_url https://www.google.com --goal 'search dining table' --plan 'search dining table' --log_folder log\n## more complicated case\npython3.11 -m function_calling_main --agent_type FunctionCallingAgent --starting_url https://www.amazon.com/ --goal 'add a bag of dog food to the cart.' --plan 'add a bag of dog food to the cart.' --log_folder log\n```\nhttps://www.loom.com/share/1018bcc4e21c4a7eb517b60c2931ee3c\nhttps://www.loom.com/share/aa48256478714d098faac740239c9013\nhttps://www.loom.com/share/89f5fa69b8cb49c8b6a60368ddcba103\nhttps://www.loom.com/share/8c59dc1a6f264641b6a448fb6b7b4a5c\n\n\n### (3) test different input features\nWe use axtree by default. Alternatively, you can provide a comma-separated string listing the desired input feature types.\n```bash\npython3.11 -m function_calling_main --agent_type FunctionCallingAgent --starting_url https://www.airbnb.com --goal 'set destination as San Francisco, then search the results' --plan '(1) enter the \"San Francisco\" as destination, (2) and click search' --log_folder log\npython3.11 -m function_calling_main --agent_type FunctionCallingAgent --starting_url https://www.airbnb.com --goal 'set destination as San Francisco, then search the results' --plan '(1) enter the \"San Francisco\" as destination, (2) and click search' --features interactive_elements --log_folder log\npython3.11 -m function_calling_main --agent_type FunctionCallingAgent --starting_url https://www.airbnb.com --goal 'set destination as San Francisco, then search the results' --plan '(1) enter the \"San Francisco\" as destination, (2) and click search' --features axtree,interactive_elements --log_folder log\n```\n\n### (4) auto login\nFirst, tell Git to ignore future changes to state.json:\n```\ngit update-index --skip-worktree state.json\n```\n\nThen run the load_state.py script and log into the websites to enable auto-login:\n```\npython3.11 load_state.py save\n```\n### (5) memory\nWe integrated [AWM (Agent Workflow Memory)](https://github.com/zorazrw/agent-workflow-memory) into the LiteWebAgent framework. You can follow these three steps to include induced workflows as memory for the web agent, we use 'add a bag of dog food to the cart' on amazon website as an example:\n\nStep 1: Induce workflows from mind2web datasets\n```\npython3.11 memory/mind2web_workflows_induction.py --websites amazon\n```\nPlease note that you can induce workflows for multiple websites by passing a comma-separated list of website names to the `--websites` parameter:\n```\npython3.11 memory/mind2web_workflows_induction.py --websites amazon,aa\n```\n\nStep 2: Embed and store workflows in DB for retrieval\n```\npython3.11 memory/update_vector_store.py\n```\n\nStep 3: Run function calling agent with memory\n```\npython3.11 -m function_calling_main --agent_type FunctionCallingAgent --starting_url https://www.amazon.com/ --goal 'add a bag of dog food to the cart.' --workflow_memory_website amazon\n```\n\n### (6) Use LiteWebAgent AI backend\n\nStart the Python backend server:\n```bash\npython3.11 -m api.server --port 5001\n```\n\n## 3. Paper reimplementation\n| Paper                                                                    | Agent                                                                                                                                                  |\n|--------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------|\n| [SoM (Set-of-Mark) Agent](https://github.com/web-arena-x/visualwebarena)            | [PromptAgent](https://github.com/PathOnAI/LiteWebAgent/blob/main/litewebagent/agents/PromptAgents/PromptAgent.py)                                      |\n| [Mind2Web](https://osu-nlp-group.github.io/Mind2Web/)                    | [ContextAwarePlanningAgent](https://github.com/PathOnAI/LiteWebAgent/blob/main/litewebagent/agents/FunctionCallingAgents/ContextAwarePlanningAgent.py) |\n| [Tree Search for Language Model Agents](https://jykoh.com/search-agents) | [LLMWebAgentTreeSearch](https://github.com/PathOnAI/LLMWebAgentTreeSearch)                       |\n| [Agent Workflow Memory](https://github.com/zorazrw/agent-workflow-memory) | [memory module](https://github.com/PathOnAI/LiteWebAgent/blob/main/litewebagent/memory/workflow_memory.py)                       |\n\n## 4. Chrome Extension\nCheck [how to set up a Chrome extension using LiteWebAgent as an AI backend server](https://github.com/PathOnAI/LiteWebAgent/tree/main/chrome_extension)\n\nhttps://www.loom.com/share/d2b03e39c13044d8b25fcf1644e88867\n\n## 🚀 5. Contributions\n[![LiteWebiAgent contributors](https://contrib.rocks/image?repo=PathOnAIOrg/LiteWebAgent)](https://github.com/PathOnAIOrg/LiteWebAgent/graphs/contributors)\n\n## 6. Citing LiteWebAgent\ncite the repo\n```\n@misc{zhang2024litewebagent,\n  author       = {Danqing Zhang and Balaji Rama and Shiying He and Jingyi Ni},\n  title        = {LiteWebAgent: The Open-Source Suite for VLM-Based Web-Agent Applications},\n  year         = 2024,\n  publisher    = {Zenodo},\n  doi          = {10.5281/zenodo.15500270},\n  url          = {https://doi.org/10.5281/zenodo.15500270}\n}\n```\ncite the NAACL paper\n```\n@inproceedings{zhang2025litewebagent,\n  title={LiteWebAgent: The Open-Source Suite for VLM-Based Web-Agent Applications},\n  author={Danqing Zhang, Balaji Rama, Junyu Cao, Fu Zhao, Kunyu Chen, Jingyi Ni, Shiying He, Arnold Chen},\n  booktitle={2025 Annual Conference of the North American Chapter of the Association for Computational Linguistics -- System Demonstration Track},\n  year={2025}\n}\n```\n\n## Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=PathOnAIOrg/LiteWebAgent\u0026type=Date)](https://star-history.com/#PathOnAIOrg/LiteWebAgent\u0026Date)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPathOnAIOrg%2FLiteWebAgent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FPathOnAIOrg%2FLiteWebAgent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPathOnAIOrg%2FLiteWebAgent/lists"}