[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-ServiceNow--AgentLab":3,"tool-ServiceNow--AgentLab":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",151314,2,"2026-04-11T23:32:58",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":72,"owner_avatar_url":73,"owner_bio":74,"owner_company":75,"owner_location":75,"owner_email":75,"owner_twitter":75,"owner_website":76,"owner_url":77,"languages":78,"stars":99,"forks":100,"last_commit_at":101,"license":102,"difficulty_score":32,"env_os":103,"env_gpu":104,"env_ram":105,"env_deps":106,"category_tags":114,"github_topics":116,"view_count":32,"oss_zip_url":75,"oss_zip_packed_at":75,"status":17,"created_at":126,"updated_at":127,"faqs":128,"releases":159},6849,"ServiceNow\u002FAgentLab","AgentLab","AgentLab: An open-source framework for developing, testing, and benchmarking web agents on diverse tasks, designed for scalability and reproducibility.","AgentLab 是一个专为网页智能体（Web Agents）研发打造的开源框架，旨在简化智能体的开发、测试与基准评估流程。在人工智能自动操作网页的任务中，研究人员常面临实验难以复现、大规模并行测试复杂以及不同基准标准不统一等挑战。AgentLab 通过提供一套可扩展的架构，有效解决了这些痛点，确保实验结果既高效又可重复验证。\n\n这款工具特别适合 AI 研究人员和开发者使用，尤其是那些致力于提升智能体在 WebArena、WorkArena 等多样化任务中表现的专业团队。虽然它功能强大，但需注意其定位是科研加速工具，而非面向普通消费者的成品软件。\n\nAgentLab 的技术亮点在于其强大的工程化能力：支持利用 Ray 进行大规模并行实验，显著缩短测试周期；提供统一的 LLM API，无缝对接 OpenAI、Azure、OpenRouter 及本地部署模型；此外，它还深度集成了 BrowserGym 生态系统，内置多种主流评测基准，并提供可视化的助手界面与排行榜功能，帮助团队快速分析结果并迭代优化智能体策略。","\n\u003Cdiv align=\"center\">\n    \n\n\n[![pypi](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Fagentlab.svg)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fagentlab\u002F)\n[![PyPI - License](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fl\u002Fagentlab?style=flat-square)]([https:\u002F\u002Fopensource.org\u002Flicenses\u002FMIT](http:\u002F\u002Fwww.apache.org\u002Flicenses\u002FLICENSE-2.0))\n[![PyPI - Downloads](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fdm\u002Fagentlab?style=flat-square)](https:\u002F\u002Fpypistats.org\u002Fpackages\u002Fagentlab)\n[![GitHub star chart](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002FServiceNow\u002FAgentLab?style=flat-square)](https:\u002F\u002Fstar-history.com\u002F#ServiceNow\u002FAgentLab)\n[![Code Format](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Factions\u002Fworkflows\u002Fcode_format.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Factions\u002Fworkflows\u002Fcode_format.yml)\n[![Tests](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Factions\u002Fworkflows\u002Funit_tests.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Factions\u002Fworkflows\u002Funit_tests.yml)\n\n\n\n[🛠️ Setup](#%EF%B8%8F-setup-agentlab) &nbsp;|&nbsp; \n[🤖 Assistant](#-ui-assistant) &nbsp;|&nbsp; \n[🚀 Launch Experiments](#-launch-experiments) &nbsp;|&nbsp;\n[🔍 Analyse Results](#-analyse-results) &nbsp;|&nbsp;\n\u003Cbr>\n[🏆 Leaderboard](#-leaderboard) &nbsp;|&nbsp; \n[🤖 Build Your Agent](#-implement-a-new-agent) &nbsp;|&nbsp;\n[↻ Reproducibility](#-reproducibility) &nbsp;|&nbsp;\n[💪 BrowserGym](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FBrowserGym)\n\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FServiceNow_AgentLab_readme_d9175066ab69.png\" alt=\"agentlab-diagram\" width=\"700\"\u002F>\n\n\n[Demo solving tasks:](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FBrowserGym\u002Fassets\u002F26232819\u002Fe0bfc788-cc8e-44f1-b8c3-0d1114108b85)\n\n\n\u003C\u002Fdiv>\n\n> [!WARNING]\n> AgentLab is meant to provide an open, easy-to-use and extensible framework to accelerate the field of web agent research.\n> It is not meant to be a consumer product. Use with caution!\n\nAgentLab is a framework for developing and evaluating agents on a variety of\n[benchmarks](#-supported-benchmarks) supported by\n[BrowserGym](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FBrowserGym). It is presented in more details in our [BrowserGym ecosystem paper](https:\u002F\u002Farxiv.org\u002Fabs\u002F2412.05467)\n\nAgentLab Features:\n* Easy large scale parallel [agent experiments](#-launch-experiments) using [ray](https:\u002F\u002Fwww.ray.io\u002F)\n* Building blocks for making agents over BrowserGym\n* Unified LLM API for OpenRouter, OpenAI, Azure, or self-hosted using TGI.\n* Preferred way for running benchmarks like WebArena\n* Various [reproducibility features](#reproducibility-features)\n* Unified [LeaderBoard](https:\u002F\u002Fhuggingface.co\u002Fspaces\u002FServiceNow\u002Fbrowsergym-leaderboard)\n\n## 🎯 Supported Benchmarks\n\n| Benchmark | Setup  \u003Cbr> Link | # Task \u003Cbr> Template| Seed  \u003Cbr> Diversity | Max  \u003Cbr> Step | Multi-tab | Hosted Method | BrowserGym \u003Cbr> Leaderboard |\n|-----------|------------|---------|----------------|-----------|-----------|---------------|----------------------|\n| [WebArena](https:\u002F\u002Fwebarena.dev\u002F) | [setup](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FBrowserGym\u002Fblob\u002Fmain\u002Fbrowsergym\u002Fwebarena\u002FREADME.md) | 812 | None | 30 | yes | self hosted (docker) | soon |\n| [WebArena-Verified](https:\u002F\u002Fgithub.com\u002FServiceNow\u002Fwebarena-verified) | [setup](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FBrowserGym\u002Fblob\u002Fmain\u002Fbrowsergym\u002Fwebarena_verified\u002FREADME.md) | 812 | None | 30 | yes | self hosted | soon |\n| [WorkArena](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FWorkArena) L1 | [setup](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FWorkArena?tab=readme-ov-file#getting-started) | 33 | High | 30 | no | demo instance | soon |\n| [WorkArena](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FWorkArena) L2 | [setup](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FWorkArena?tab=readme-ov-file#getting-started) | 341 | High | 50 | no | demo instance | soon |\n| [WorkArena](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FWorkArena) L3 | [setup](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FWorkArena?tab=readme-ov-file#getting-started) | 341 | High | 50 | no | demo instance | soon |\n| [WebLinx](https:\u002F\u002Fmcgill-nlp.github.io\u002Fweblinx\u002F) | - | 31586 | None | 1 | no | self hosted (dataset) | soon |\n| [VisualWebArena](https:\u002F\u002Fgithub.com\u002Fweb-arena-x\u002Fvisualwebarena) | [setup](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FBrowserGym\u002Fblob\u002Fmain\u002Fbrowsergym\u002Fvisualwebarena\u002FREADME.md) | 910 | None | 30 | yes | self hosted (docker) | soon |\n| [AssistantBench](https:\u002F\u002Fassistantbench.github.io\u002F) | [setup](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FBrowserGym\u002Fblob\u002Fmain\u002Fbrowsergym\u002Fassistantbench\u002FREADME.md) | 214 | None | 30 | yes | live web | soon |\n| [GAIA](https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Fgaia-benchmark\u002Fleaderboard) (soon) | - | - | None | - | - | live web | soon |\n| [Mind2Web-live](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FiMeanAI\u002FMind2Web-Live) (soon) | - | - | None | - | - | live web | soon |\n| [MiniWoB](https:\u002F\u002Fminiwob.farama.org\u002Findex.html) | [setup](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FBrowserGym\u002Fblob\u002Fmain\u002Fbrowsergym\u002Fminiwob\u002FREADME.md) | 125 | Medium | 10 | no | self hosted (static files) | soon |\n| [OSWorld](https:\u002F\u002Fos-world.github.io\u002F) | [setup](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fblob\u002Fmain\u002Fsrc\u002Fagentlab\u002Fbenchmarks\u002Fosworld.md) | 369 | None | - | - | self hosted  | soon |\n| [TimeWarp](https:\u002F\u002Ftimewarp-web.github.io\u002F) | [setup](https:\u002F\u002Fgithub.com\u002Fsparklabutah\u002Ftimewarp) | 1386 | None | 30 | yes | self hosted | soon |\n\n\n## 🛠️ Setup AgentLab\n\nAgentLab requires python 3.11 or 3.12.\n\n```bash\npip install agentlab\n```\n\nIf not done already, install Playwright:\n```bash\nplaywright install\n```\n\nMake sure to prepare the required benchmark according to the instructions provided in the [setup\ncolumn](#-supported-benchmarks).\n\n```bash\nexport AGENTLAB_EXP_ROOT=\u003Croot directory of experiment results>  # defaults to $HOME\u002Fagentlab_results\nexport OPENAI_API_KEY=\u003Cyour openai api key> # if openai models are used\n```\n\n\u003Cdetails>\n\u003Csummary>Setup OpenRouter API\u003C\u002Fsummary>\n\n```bash\nexport OPENROUTER_API_KEY=\u003Cyour openrouter api key> # if openrouter models are used\n```\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>Setup Azure API\u003C\u002Fsummary>\n\n```bash\nexport AZURE_OPENAI_API_KEY=\u003Cyour azure api key> # if using azure models\nexport AZURE_OPENAI_ENDPOINT=\u003Cyour endpoint> # if using azure models\n```\n\u003C\u002Fdetails>\n\n## 🤖 UI-Assistant \n\nUse an assistant to work for you (at your own cost and risk).\n\n```bash\nagentlab-assistant --start_url https:\u002F\u002Fwww.google.com\n```\n\nTry your own agent: \n\n```bash\nagentlab-assistant --agent_config=\"module.path.to.your.AgentArgs\"\n```\n\n## 🚀 Launch experiments\n\n```python\n# Import your agent configuration extending bgym.AgentArgs class\n# Make sure this object is imported from a module accessible in PYTHONPATH to properly unpickle\nfrom agentlab.agents.generic_agent import AGENT_4o_MINI \n\nfrom agentlab.experiments.study import make_study\n\nstudy = make_study(\n    benchmark=\"miniwob\",  # or \"webarena\", \"workarena_l1\" ...\n    agent_args=[AGENT_4o_MINI],\n    comment=\"My first study\",\n)\n\nstudy.run(n_jobs=5)\n```\n\nRelaunching incomplete or errored tasks\n\n```python\nfrom agentlab.experiments.study import Study\nstudy = Study.load(\"\u002Fpath\u002Fto\u002Fyour\u002Fstudy\u002Fdir\")\nstudy.find_incomplete(include_errors=True)\nstudy.run()\n```\n\nSee [main.py](main.py) to launch experiments with a variety of options. This is like a lazy CLI that\nis actually more convenient. Just comment and uncomment the lines you need or modify at will (but\ndon't push to the repo).\n\n\n### Job Timeouts\n\nThe complexity of the wild web, Playwright, and asyncio can sometimes cause jobs to hang. This\ndisables workers until the study is terminated and relaunched. If you are running jobs sequentially\nor with a small number of workers, this could halt your entire study until you manually kill and\nrelaunch it. In the Ray parallel backend, we've implemented a system to automatically terminate jobs\nexceeding a specified timeout. This feature is particularly useful when task hanging limits your\nexperiments. \n\n### Debugging\n\nFor debugging, run experiments with `n_jobs=1` and use VSCode's debug mode. This allows you to pause\nexecution at breakpoints.\n\n### About Parallel Jobs\n\nRunning one agent on one task corresponds to a single job. Conducting ablation studies or random\nsearches across hundreds of tasks with multiple seeds can generate more than 10,000 jobs. Efficient\nparallel execution is therefore critical. Agents typically wait for responses from the LLM server or\nupdates from the web server. As a result, you can run 10–50 jobs in parallel on a single computer,\ndepending on available RAM.\n\n⚠️ **Note for (Visual)WebArena**: These benchmarks have task dependencies designed to minimize\n\"corrupting\" the instance between tasks. For example, an agent on task 323 could alter the instance\nstate, making task 201 impossible. To address this, the Ray backend accounts for task dependencies,\nenabling some degree of parallelism. On WebArena, you can disable dependencies to increase\nparallelism, but this might reduce performance by 1–2%.\n\n⚠️ **Instance Reset for (Visual)WebArena**: Before evaluating an agent, the instance is\nautomatically reset, a process that takes about 5 minutes. When evaluating multiple agents, the\n`make_study` function returns a `SequentialStudies` object to ensure proper sequential evaluation of\neach agent. AgentLab currently does not support evaluations across multiple instances, but you could\neither create a quick script to handle this or submit a PR to AgentLab. For a smoother parallel\nexperience, consider using benchmarks like WorkArena instead.\n\n## 🔍 Analyse Results\n\n### Loading Results\n\nThe class [`ExpResult`](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FBrowserGym\u002Fblob\u002Fda26a5849d99d9a3169d7b1fde79f909c55c9ba7\u002Fbrowsergym\u002Fexperiments\u002Fsrc\u002Fbrowsergym\u002Fexperiments\u002Floop.py#L595) provides a lazy loader for all the information of a specific experiment. You can use [`yield_all_exp_results`](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FBrowserGym\u002Fblob\u002Fda26a5849d99d9a3169d7b1fde79f909c55c9ba7\u002Fbrowsergym\u002Fexperiments\u002Fsrc\u002Fbrowsergym\u002Fexperiments\u002Floop.py#L872) to recursively find all results in a directory. Finally [`load_result_df`](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fblob\u002Fbe1998c5fad5bda47ba50497ec3899aae03e85ec\u002Fsrc\u002Fagentlab\u002Fanalyze\u002Finspect_results.py#L119C5-L119C19) gathers all the summary information in a single dataframe. See [`inspect_results.ipynb`](src\u002Fagentlab\u002Fanalyze\u002Finspect_results.ipynb) for example usage.\n\n```python\nfrom agentlab.analyze import inspect_results\n\n# load the summary of all experiments of the study in a dataframe\nresult_df = inspect_results.load_result_df(\"path\u002Fto\u002Fyour\u002Fstudy\")\n\n# load the detailed results of the 1st experiment\nexp_result = bgym.ExpResult(result_df[\"exp_dir\"][0])\nstep_0_screenshot = exp_result.screenshots[0]\nstep_0_action = exp_result.steps_info[0].action\n```\n\n\n### AgentXray\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F06c4dac0-b78f-45b7-9405-003da4af6b37\n\nIn a terminal, execute:\n```bash\nagentlab-xray\n```\n\nYou can load previous or ongoing experiments in the directory `AGENTLAB_EXP_ROOT` and visualize\nthe results in a gradio interface.\n\nIn the following order, select:\n* The experiment you want to visualize\n* The agent if there is more than one\n* The task\n* And the seed\n\nOnce this is selected, you can see the trace of your agent on the given task. Click on the profiling\nimage to select a step and observe the action taken by the agent.\n\n\n**⚠️ Note**: Gradio is still developing, and unexpected behavior has been frequently noticed. Version 5.5 seems to work properly so far. If you're not sure that the proper information is displaying, refresh the page and select your experiment again.\n\n\n## 🏆 Leaderboard\n\nOfficial unified [leaderboard](https:\u002F\u002Fhuggingface.co\u002Fspaces\u002FServiceNow\u002Fbrowsergym-leaderboard) across all benchmarks. \n\nExperiments are on their way for more reference points using GenericAgent. We are also working on code to automatically push a study to the leaderboard.\n\n## 🤖 Implement a new Agent\n\nGet inspiration from the `MostBasicAgent` in\n[agentlab\u002Fagents\u002Fmost_basic_agent\u002Fmost_basic_agent.py](src\u002Fagentlab\u002Fagents\u002Fmost_basic_agent\u002Fmost_basic_agent.py).\nFor a better integration with the tools, make sure to implement most functions in the\n[AgentArgs](src\u002Fagentlab\u002Fagents\u002Fagent_args.py#L5) API and the extended `bgym.AbstractAgentArgs`.\n\nIf you think your agent should be included directly in AgenLab, let us know and it can be added in\nagentlab\u002Fagents\u002F with the name of your agent.  \n\n## ↻ Reproducibility\nSeveral factors can influence reproducibility of results in the context of evaluating agents on\ndynamic benchmarks.\n\n### Factors affecting reproducibility\n* **Software version**: Different versions of Playwright or any package in the software stack could\n  influence the behavior of the benchmark or the agent.\n* **API-based LLMs silently changing**: Even for a fixed version, an LLM may be updated e.g. to\n  incorporate the latest web knowledge.\n* **Live websites**:\n  * WorkArena: The demo instance is mostly fixed in time to a specific version but ServiceNow\n    sometimes pushes minor modifications.\n  * AssistantBench and GAIA: These rely on the agent navigating the open web. The experience may\n    change depending on which country or region, some websites might be in different languages by\n    default.\n* **Stochastic Agents**: Setting the temperature of the LLM to 0 can reduce most stochasticity.\n* **Non-deterministic tasks**: For a fixed seed, the changes should be minimal\n\n### Reproducibility Features\n* `Study` contains a dict of information about reproducibility, including benchmark version, package\n  version and commit hash\n* The `Study` class allows automatic upload of your results to\n  [`reproducibility_journal.csv`](reproducibility_journal.csv). This makes it easier to populate a\n  large amount of reference points. For this feature, you need to `git clone` the repository and install via `pip install -e .`.\n* **Reproduced results in the leaderboard**. For agents that are reprocudibile, we encourage users\n  to try to reproduce the results and upload them to the leaderboard. There is a special column\n  containing information about all reproduced results of an agent on a benchmark.\n* **ReproducibilityAgent**: [You can run this agent](src\u002Fagentlab\u002Fagents\u002Fgeneric_agent\u002Freproducibility_agent.py) on an existing study and it will try to re-run\n  the same actions on the same task seeds. A visual diff of the two prompts will be displayed in the\n  AgentInfo HTML tab of AgentXray. You will be able to inspect on some tasks what kind of changes\n  between the two executions. **Note**: this is a beta feature and will need some adaptation for your\n  own agent.\n\n## Variables\nHere's a list of relevant env. variables that are used by AgentLab:\n- `OPENAI_API_KEY` which is used by default for OpenAI LLMs.\n- `AZURE_OPENAI_API_KEY`, used by default for AzureOpenAI LLMs.\n- `AZURE_OPENAI_ENDPOINT` to specify your Azure endpoint.\n- `OPENAI_API_VERSION` for the Azure API.\n- `OPENROUTER_API_KEY` for the Openrouter API\n- `AGENTLAB_EXP_ROOT`, desired path for your experiments to be stored, defaults to `~\u002Fagentlab-results`.\n- `AGENTXRAY_SHARE_GRADIO`, which prompts AgentXRay to open a public tunnel on launch.\n- `RAY_PUBLIC_DASHBOARD` (true \u002F false), used to specify whether the ray dashboard should be made publicly accessible (`0.0.0.0`) or not (`127.0.0.1`).\n- `RAY_DASHBOARD_PORT` (int), used to specify the port on which the ray dashboard should be accessible.\n\n## Misc\n\nif you want to download HF models more quickly\n```\npip install hf-transfer\npip install torch\nexport HF_HUB_ENABLE_HF_TRANSFER=1\n```\n\n\n## 📝 Citing This Work\n\nPlease use the two following bibtex entries if you wish to cite AgentLab:\n\n```tex\n@article{\n    chezelles2025browsergym,\n    title={The BrowserGym Ecosystem for Web Agent Research},\n    author={Thibault Le Sellier de Chezelles and Maxime Gasse and Alexandre Lacoste and Massimo Caccia and Alexandre Drouin and L{\\'e}o Boisvert and Megh Thakkar and Tom Marty and Rim Assouel and Sahar Omidi Shayegan and Lawrence Keunho Jang and Xing Han L{\\`u} and Ori Yoran and Dehan Kong and Frank F. Xu and Siva Reddy and Graham Neubig and Quentin Cappart and Russ Salakhutdinov and Nicolas Chapados},\n    journal={Transactions on Machine Learning Research},\n    issn={2835-8856},\n    year={2025},\n    url={https:\u002F\u002Fopenreview.net\u002Fforum?id=5298fKGmv3},\n    note={Expert Certification}\n}\n\n@inproceedings{workarena2024,\n    title = {{W}ork{A}rena: How Capable are Web Agents at Solving Common Knowledge Work Tasks?},\n    author = {Drouin, Alexandre and Gasse, Maxime and Caccia, Massimo and Laradji, Issam H. and Del Verme, Manuel and Marty, Tom and Vazquez, David and Chapados, Nicolas and Lacoste, Alexandre},\n    booktitle = {Proceedings of the 41st International Conference on Machine Learning},\n    pages = {11642--11662},\n    year = {2024},\n    editor = {Salakhutdinov, Ruslan and Kolter, Zico and Heller, Katherine and Weller, Adrian and Oliver, Nuria and Scarlett, Jonathan and Berkenkamp, Felix},\n    volume = {235},\n    series = {Proceedings of Machine Learning Research},\n    month = {21--27 Jul},\n    publisher = {PMLR},\n    url = {https:\u002F\u002Fproceedings.mlr.press\u002Fv235\u002Fdrouin24a.html},\n}\n```\n\nHere is an example of how they can be used:\n\n```tex\nWe use the AgentLab framework to run and manage our experiments \\cite{workarena2024,chezelles2025browsergym}.\n```\n## Traces\nTraces from “The BrowserGym Ecosystem for Web Agent Research” paper are available in [Huggingface](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fagentlabtraces\u002Fagentlabtraces\u002Ftree\u002Fmain).\n","\u003Cdiv align=\"center\">\n    \n\n\n[![pypi](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Fagentlab.svg)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fagentlab\u002F)\n[![PyPI - License](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fl\u002Fagentlab?style=flat-square)]([https:\u002F\u002Fopensource.org\u002Flicenses\u002FMIT](http:\u002F\u002Fwww.apache.org\u002Flicenses\u002FLICENSE-2.0))\n[![PyPI - Downloads](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fdm\u002Fagentlab?style=flat-square)](https:\u002F\u002Fpypistats.org\u002Fpackages\u002Fagentlab)\n[![GitHub star chart](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002FServiceNow\u002FAgentLab?style=flat-square)](https:\u002F\u002Fstar-history.com\u002F#ServiceNow\u002FAgentLab)\n[![Code Format](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Factions\u002Fworkflows\u002Fcode_format.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Factions\u002Fworkflows\u002Fcode_format.yml)\n[![Tests](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Factions\u002Fworkflows\u002Funit_tests.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Factions\u002Fworkflows\u002Funit_tests.yml)\n\n\n\n[🛠️ 设置](#%EF%B8%8F-setup-agentlab) &nbsp;|&nbsp; \n[🤖 助手](#-ui-assistant) &nbsp;|&nbsp; \n[🚀 启动实验](#-launch-experiments) &nbsp;|&nbsp;\n[🔍 分析结果](#-analyse-results) &nbsp;|&nbsp;\n\u003Cbr>\n[🏆 排行榜](#-leaderboard) &nbsp;|&nbsp; \n[🤖 构建你的智能体](#-implement-a-new-agent) &nbsp;|&nbsp;\n[↻ 可重复性](#-reproducibility) &nbsp;|&nbsp;\n[💪 BrowserGym](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FBrowserGym)\n\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FServiceNow_AgentLab_readme_d9175066ab69.png\" alt=\"agentlab-diagram\" width=\"700\"\u002F>\n\n\n[演示解决任务：](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FBrowserGym\u002Fassets\u002F26232819\u002Fe0bfc788-cc8e-44f1-b8c3-0d1114108b85):\n\n\n\u003C\u002Fdiv>\n\n> [!WARNING]\n> AgentLab旨在提供一个开放、易用且可扩展的框架，以加速网络智能体研究领域的发展。\n> 它并非面向消费者的成品，请谨慎使用！\n\nAgentLab是一个用于在各种由[BrowserGym](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FBrowserGym)支持的\n[基准测试](#-supported-benchmarks)上开发和评估智能体的框架。更多详细信息请参阅我们的\n[BrowserGym生态系统论文](https:\u002F\u002Farxiv.org\u002Fabs\u002F2412.05467)。\n\nAgentLab的特点：\n* 使用[ray](https:\u002F\u002Fwww.ray.io\u002F)轻松进行大规模并行[智能体实验](#-launch-experiments)\n* 为基于BrowserGym构建智能体提供的基础组件\n* 统一的LLM API，适用于OpenRouter、OpenAI、Azure或使用TGI自托管的模型\n* 运行WebArena等基准测试的首选方式\n* 多种[可重复性功能](#reproducibility-features)\n* 统一的[排行榜](https:\u002F\u002Fhuggingface.co\u002Fspaces\u002FServiceNow\u002Fbrowsergym-leaderboard)\n\n## 🎯 支持的基准测试\n\n| 基准测试 | 设置 \u003Cbr> 链接 | # 任务 \u003Cbr> 模板| 种子  \u003Cbr> 多样性 | 最大  \u003Cbr> 步数 | 多标签页 | 托管方式 | BrowserGym \u003Cbr> 排行榜 |\n|-----------|------------|---------|----------------|-----------|-----------|---------------|----------------------|\n| [WebArena](https:\u002F\u002Fwebarena.dev\u002F) | [设置](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FBrowserGym\u002Fblob\u002Fmain\u002Fbrowsergym\u002Fwebarena\u002FREADME.md) | 812 | 无 | 30 | 是 | 自托管（docker） | 即将推出 |\n| [WebArena-Verified](https:\u002F\u002Fgithub.com\u002FServiceNow\u002Fwebarena-verified) | [设置](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FBrowserGym\u002Fblob\u002Fmain\u002Fbrowsergym\u002Fwebarena_verified\u002FREADME.md) | 812 | 无 | 30 | 是 | 自托管 | 即将推出 |\n| [WorkArena](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FWorkArena) L1 | [设置](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FWorkArena?tab=readme-ov-file#getting-started) | 33 | 高 | 30 | 否 | 演示实例 | 即将推出 |\n| [WorkArena](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FWorkArena) L2 | [设置](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FWorkArena?tab=readme-ov-file#getting-started) | 341 | 高 | 50 | 否 | 演示实例 | 即将推出 |\n| [WorkArena](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FWorkArena) L3 | [设置](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FWorkArena?tab=readme-ov-file#getting-started) | 341 | 高 | 50 | 否 | 演示实例 | 即将推出 |\n| [WebLinx](https:\u002F\u002Fmcgill-nlp.github.io\u002Fweblinx\u002F) | - | 31586 | 无 | 1 | 否 | 自托管（数据集） | 即将推出 |\n| [VisualWebArena](https:\u002F\u002Fgithub.com\u002Fweb-arena-x\u002Fvisualwebarena) | [设置](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FBrowserGym\u002Fblob\u002Fmain\u002Fbrowsergym\u002Fvisualwebarena\u002FREADME.md) | 910 | 无 | 30 | 是 | 自托管（docker） | 即将推出 |\n| [AssistantBench](https:\u002F\u002Fassistantbench.github.io\u002F) | [设置](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FBrowserGym\u002Fblob\u002Fmain\u002Fbrowsergym\u002Fassistantbench\u002FREADME.md) | 214 | 无 | 30 | 是 | 实时网页 | 即将推出 |\n| [GAIA](https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Fgaia-benchmark\u002Fleaderboard)（即将推出） | - | - | 无 | - | - | 实时网页 | 即将推出 |\n| [Mind2Web-live](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FiMeanAI\u002FMind2Web-Live)（即将推出） | - | - | 无 | - | - | 实时网页 | 即将推出 |\n| [MiniWoB](https:\u002F\u002Fminiwob.farama.org\u002Findex.html) | [设置](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FBrowserGym\u002Fblob\u002Fmain\u002Fbrowsergym\u002Fminiwob\u002FREADME.md) | 125 | 中等 | 10 | 否 | 自托管（静态文件） | 即将推出 |\n| [OSWorld](https:\u002F\u002Fos-world.github.io\u002F) | [设置](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fblob\u002Fmain\u002Fsrc\u002Fagentlab\u002Fbenchmarks\u002Fosworld.md) | 369 | 无 | - | - | 自托管 | 即将推出 |\n| [TimeWarp](https:\u002F\u002Ftimewarp-web.github.io\u002F) | [设置](https:\u002F\u002Fgithub.com\u002Fsparklabutah\u002Ftimewarp) | 1386 | 无 | 30 | 是 | 自托管 | 即将推出 |\n\n\n## 🛠️ 设置AgentLab\n\nAgentLab需要Python 3.11或3.12。\n\n```bash\npip install agentlab\n```\n\n如果尚未完成，请安装Playwright：\n```bash\nplaywright install\n```\n\n请务必按照[设置列](#-supported-benchmarks)中提供的说明准备所需的基准测试。\n\n```bash\nexport AGENTLAB_EXP_ROOT=\u003C实验结果根目录>  # 默认为$HOME\u002Fagentlab_results\nexport OPENAI_API_KEY=\u003C你的OpenAI API密钥> # 如果使用OpenAI模型\n```\n\n\u003Cdetails>\n\u003Csummary>设置OpenRouter API\u003C\u002Fsummary>\n\n```bash\nexport OPENROUTER_API_KEY=\u003C你的OpenRouter API密钥> # 如果使用OpenRouter模型\n```\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>设置Azure API\u003C\u002Fsummary>\n\n```bash\nexport AZURE_OPENAI_API_KEY=\u003C你的Azure API密钥> # 如果使用Azure模型\nexport AZURE_OPENAI_ENDPOINT=\u003C你的端点> # 如果使用Azure模型\n```\n\u003C\u002Fdetails>\n\n## 🤖 UI-助手 \n\n使用助手为你工作（需自行承担费用和风险）。\n\n```bash\nagentlab-assistant --start_url https:\u002F\u002Fwww.google.com\n```\n\n尝试你自己的智能体：\n\n```bash\nagentlab-assistant --agent_config=\"module.path.to.your.AgentArgs\"\n```\n\n## 🚀 启动实验\n\n```python\n# 导入你的智能体配置，该配置扩展了bgym.AgentArgs类\n\n# 确保从 PYTHONPATH 中可访问的模块导入此对象，以便正确反序列化\nfrom agentlab.agents.generic_agent import AGENT_4o_MINI \n\nfrom agentlab.experiments.study import make_study\n\nstudy = make_study(\n    benchmark=\"miniwob\",  # 或 \"webarena\", \"workarena_l1\" ...\n    agent_args=[AGENT_4o_MINI],\n    comment=\"我的第一个研究\",\n)\n\nstudy.run(n_jobs=5)\n```\n\n重新启动未完成或出错的任务\n\n```python\nfrom agentlab.experiments.study import Study\nstudy = Study.load(\"\u002Fpath\u002Fto\u002Fyour\u002Fstudy\u002Fdir\")\nstudy.find_incomplete(include_errors=True)\nstudy.run()\n```\n\n请参阅 [main.py](main.py) 以使用各种选项启动实验。这就像一个懒惰的命令行界面，实际上更加方便。只需根据需要注释或取消注释所需行，或随意修改（但不要推送到仓库）。\n\n\n### 作业超时\n\n野生网络、Playwright 和 asyncio 的复杂性有时会导致作业挂起。这会使工作进程失效，直到研究被终止并重新启动。如果您按顺序运行作业或使用少量工作进程，这可能会使整个研究停滞，直到您手动终止并重新启动它。在 Ray 并行后端中，我们实现了一个系统，可以自动终止超过指定超时时间的作业。当任务挂起限制您的实验时，此功能尤为有用。\n\n### 调试\n\n为了调试，请以 `n_jobs=1` 运行实验，并使用 VSCode 的调试模式。这样可以在断点处暂停执行。\n\n### 关于并行作业\n\n一个代理处理一个任务对应于一个作业。进行消融研究或在数百个任务上进行多种子随机搜索，可能会生成超过 10,000 个作业。因此，高效的并行执行至关重要。代理通常会等待 LLM 服务器的响应或 Web 服务器的更新。因此，在一台计算机上，您可以并行运行 10–50 个作业，具体数量取决于可用的 RAM。\n\n⚠️ **(Visual)WebArena 注意事项**：这些基准测试具有任务依赖关系，旨在尽量减少任务之间对实例的“污染”。例如，处理第 323 个任务的代理可能会改变实例状态，从而使第 201 个任务无法完成。为了解决这个问题，Ray 后端会考虑任务依赖关系，从而实现一定程度的并行性。在 WebArena 上，您可以禁用依赖关系以提高并行度，但这可能会降低 1–2% 的性能。\n\n⚠️ **(Visual)WebArena 实例重置**：在评估代理之前，实例会自动重置，这一过程大约需要 5 分钟。当评估多个代理时，`make_study` 函数会返回一个 `SequentialStudies` 对象，以确保每个代理都能按顺序正确评估。AgentLab 目前不支持跨多个实例的评估，但您可以编写一个快速脚本来处理这种情况，或者向 AgentLab 提交拉取请求。为了获得更流畅的并行体验，建议使用 WorkArena 等基准测试。\n\n## 🔍 分析结果\n\n### 加载结果\n\n类 [`ExpResult`](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FBrowserGym\u002Fblob\u002Fda26a5849d99d9a3169d7b1fde79f909c55c9ba7\u002Fbrowsergym\u002Fexperiments\u002Fsrc\u002Fbrowsergym\u002Fexperiments\u002Floop.py#L595) 提供了特定实验所有信息的惰性加载器。您可以使用 [`yield_all_exp_results`](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FBrowserGym\u002Fblob\u002Fda26a5849d99d9a3169d7b1fde79f909c55c9ba7\u002Fbrowsergym\u002Fexperiments\u002Fsrc\u002Fbrowsergym\u002Fexperiments\u002Floop.py#L872) 递归地查找目录中的所有结果。最后，[`load_result_df`](https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fblob\u002Fbe1998c5fad5bda47ba50497ec3899aae03e85ec\u002Fsrc\u002Fagentlab\u002Fanalyze\u002Finspect_results.py#L119C5-L119C19) 会将所有汇总信息收集到一个数据框中。有关示例用法，请参阅 [`inspect_results.ipynb`](src\u002Fagentlab\u002Fanalyze\u002Finspect_results.ipynb)。\n\n```python\nfrom agentlab.analyze import inspect_results\n\n# 将研究中所有实验的汇总信息加载到数据框中\nresult_df = inspect_results.load_result_df(\"path\u002Fto\u002Fyour\u002Fstudy\")\n\n# 加载第一个实验的详细结果\nexp_result = bgym.ExpResult(result_df[\"exp_dir\"][0])\n第 0 步的截图 = exp_result.screenshots[0]\n第 0 步的动作 = exp_result.steps_info[0].action\n```\n\n\n### AgentXray\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F06c4dac0-b78f-45b7-9405-003da4af6b37\n\n在终端中执行：\n```bash\nagentlab-xray\n```\n\n您可以加载 `AGENTLAB_EXP_ROOT` 目录中以前或正在进行的实验，并在 Gradio 界面中可视化结果。\n\n按照以下顺序选择：\n* 您想要可视化的实验\n* 如果有多个代理，请选择代理\n* 任务\n* 种子\n\n选择完成后，您可以看到代理在给定任务上的操作轨迹。单击剖析图像以选择某个步骤，并观察代理采取的动作。\n\n\n**⚠️ 注意**：Gradio 仍在开发中，经常会出现意外行为。目前看来，版本 5.5 运行正常。如果您不确定显示的信息是否正确，请刷新页面并再次选择您的实验。\n\n\n## 🏆 排行榜\n\n所有基准测试的官方统一 [排行榜](https:\u002F\u002Fhuggingface.co\u002Fspaces\u002FServiceNow\u002Fbrowsergym-leaderboard)。\n\n正在开展更多使用 GenericAgent 的参考实验。我们也在开发代码，以便自动将研究推送到排行榜。\n\n## 🤖 实现新代理\n\n可以从 [agentlab\u002Fagents\u002Fmost_basic_agent\u002Fmost_basic_agent.py](src\u002Fagentlab\u002Fagents\u002Fmost_basic_agent\u002Fmost_basic_agent.py) 中的 `MostBasicAgent` 获取灵感。为了更好地与工具集成，务必在 [AgentArgs](src\u002Fagentlab\u002Fagents\u002Fagent_args.py#L5) API 和扩展的 `bgym.AbstractAgentArgs` 中实现大多数功能。\n\n如果您认为您的代理应直接纳入 AgenLab，请告知我们，我们可以将其添加到 agentlab\u002Fagents\u002F 目录中，并以您的代理名称命名。  \n\n## ↻ 可重复性\n在动态基准测试中评估代理时，有几个因素会影响结果的可重复性。\n\n### 影响可重复性的因素\n* **软件版本**：Playwright 或软件栈中任何包的不同版本都可能影响基准测试或代理的行为。\n* **基于 API 的 LLM 默默变化**：即使版本固定，LLM 也可能被更新，例如为了融入最新的网络知识。\n* **实时网站**：\n  * WorkArena：演示实例大多固定在特定版本，但 ServiceNow 有时会推送一些小的修改。\n  * AssistantBench 和 GAIA：这些基准测试依赖于代理在开放网络中导航。体验可能会因国家或地区而异，某些网站默认语言可能不同。\n* **随机性代理**：将 LLM 的温度设置为 0 可以减少大部分随机性。\n* **非确定性任务**：对于固定的种子，变化应该很小\n\n### 可复现性功能\n* `Study` 包含一个关于可复现性的信息字典，包括基准测试版本、软件包版本和提交哈希值。\n* `Study` 类允许自动将您的结果上传到 [`reproducibility_journal.csv`](reproducibility_journal.csv)。这使得填充大量参考点变得更加容易。要使用此功能，您需要先 `git clone` 该仓库，并通过 `pip install -e .` 进行安装。\n* **排行榜中的已复现结果**。对于可复现的智能体，我们鼓励用户尝试复现其结果，并将其上传到排行榜。排行榜中有一个特殊列，用于记录某个智能体在特定基准测试上的所有已复现结果。\n* **ReproducibilityAgent**：[您可以运行此智能体](src\u002Fagentlab\u002Fagents\u002Fgeneric_agent\u002Freproducibility_agent.py) 来处理现有的研究，它会尝试在相同的任务种子上重新执行相同的操作。两次提示的可视化差异将在 AgentXray 的 AgentInfo HTML 选项卡中显示。您可以在某些任务上检查两次执行之间的具体变化。**注意**：此功能目前处于测试阶段，可能需要根据您自己的智能体进行一些调整。\n\n## 变量\n以下是 AgentLab 使用的相关环境变量列表：\n- `OPENAI_API_KEY`：默认用于 OpenAI 的大语言模型。\n- `AZURE_OPENAI_API_KEY`：默认用于 AzureOpenAI 的大语言模型。\n- `AZURE_OPENAI_ENDPOINT`：用于指定您的 Azure 终端地址。\n- `OPENAI_API_VERSION`：用于 Azure API 的版本号。\n- `OPENROUTER_API_KEY`：用于 Openrouter API。\n- `AGENTLAB_EXP_ROOT`：您希望存储实验结果的路径，默认为 `~\u002Fagentlab-results`。\n- `AGENTXRAY_SHARE_GRADIO`：启用后，AgentXRay 启动时会打开一个公共隧道。\n- `RAY_PUBLIC_DASHBOARD`（true \u002F false）：用于指定 Ray 仪表板是否应对外公开（`0.0.0.0`）或仅限本地访问（`127.0.0.1`）。\n- `RAY_DASHBOARD_PORT`（整数）：用于指定 Ray 仪表板的访问端口。\n\n## 其他\n如果您希望更快地下载 Hugging Face 模型：\n```\npip install hf-transfer\npip install torch\nexport HF_HUB_ENABLE_HF_TRANSFER=1\n```\n\n## 📝 引用本工作\n\n如果您希望引用 AgentLab，请使用以下两个 BibTeX 条目：\n\n```tex\n@article{\n    chezelles2025browsergym,\n    title={The BrowserGym Ecosystem for Web Agent Research},\n    author={Thibault Le Sellier de Chezelles and Maxime Gasse and Alexandre Lacoste and Massimo Caccia and Alexandre Drouin and L{\\'e}o Boisvert and Megh Thakkar and Tom Marty and Rim Assouel and Sahar Omidi Shayegan and Lawrence Keunho Jang and Xing Han L{\\`u} and Ori Yoran and Dehan Kong and Frank F. Xu and Siva Reddy and Graham Neubig and Quentin Cappart and Russ Salakhutdinov and Nicolas Chapados},\n    journal={Transactions on Machine Learning Research},\n    issn={2835-8856},\n    year={2025},\n    url={https:\u002F\u002Fopenreview.net\u002Fforum?id=5298fKGmv3},\n    note={Expert Certification}\n}\n\n@inproceedings{workarena2024,\n    title = {{W}ork{A}rena: How Capable are Web Agents at Solving Common Knowledge Work Tasks?},\n    author = {Drouin, Alexandre and Gasse, Maxime and Caccia, Massimo and Laradji, Issam H. and Del Verme, Manuel and Marty, Tom and Vazquez, David and Chapados, Nicolas and Lacoste, Alexandre},\n    booktitle = {Proceedings of the 41st International Conference on Machine Learning},\n    pages = {11642--11662},\n    year = {2024},\n    editor = {Salakhutdinov, Ruslan and Kolter, Zico and Heller, Katherine and Weller, Adrian and Oliver, Nuria and Scarlett, Jonathan and Berkenkamp, Felix},\n    volume = {235},\n    series = {Proceedings of Machine Learning Research},\n    month = {21--27 Jul},\n    publisher = {PMLR},\n    url = {https:\u002F\u002Fproceedings.mlr.press\u002Fv235\u002Fdrouin24a.html},\n}\n```\n\n以下是它们的使用示例：\n\n```tex\n我们使用 AgentLab 框架来运行和管理我们的实验 \\cite{workarena2024,chezelles2025browsergym}。\n```\n\n## 跟踪记录\n《Web 代理研究的 BrowserGym 生态系统》论文中的跟踪记录可在 [Huggingface](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fagentlabtraces\u002Fagentlabtraces\u002Ftree\u002Fmain) 上获取。","# AgentLab 快速上手指南\n\nAgentLab 是一个用于开发和评估 Web 智能体（Web Agents）的开源框架，基于 BrowserGym 生态系统构建。它支持大规模并行实验、统一的 LLM API 接入以及多种主流基准测试（如 WebArena, WorkArena 等）。\n\n> **注意**：AgentLab 旨在加速科研而非作为消费级产品使用，请在受控环境中运行。\n\n## 环境准备\n\n在开始之前，请确保您的系统满足以下要求：\n\n*   **操作系统**：Linux, macOS 或 Windows (推荐 Linux)\n*   **Python 版本**：3.11 或 3.12\n*   **前置依赖**：\n    *   `pip` 包管理工具\n    *   `Playwright` (用于浏览器自动化)\n\n## 安装步骤\n\n### 1. 安装 AgentLab\n使用 pip 安装核心库：\n\n```bash\npip install agentlab\n```\n\n### 2. 安装 Playwright 浏览器驱动\n安装完成后，必须执行以下命令下载所需的浏览器内核：\n\n```bash\nplaywright install\n```\n\n### 3. 配置环境变量\n设置实验结果存储路径及所需的 LLM API 密钥。\n\n```bash\n# 设置实验结果根目录 (默认为 $HOME\u002Fagentlab_results)\nexport AGENTLAB_EXP_ROOT=\u003C你的实验结果存放目录>\n\n# 配置 OpenAI API Key (如果使用 OpenAI 模型)\nexport OPENAI_API_KEY=\u003C你的 openai api key>\n\n# 可选：配置 OpenRouter API Key\n# export OPENROUTER_API_KEY=\u003C你的 openrouter api key>\n\n# 可选：配置 Azure OpenAI\n# export AZURE_OPENAI_API_KEY=\u003C你的 azure api key>\n# export AZURE_OPENAI_ENDPOINT=\u003C你的 endpoint>\n```\n\n> **提示**：国内用户若访问 PyPI 或 HuggingFace 较慢，可配置相应的镜像源或代理加速。\n\n### 4. 准备基准测试环境\n根据你要使用的基准测试（Benchmark），参考 [Supported Benchmarks](#-supported-benchmarks) 表格中的 Setup 链接进行额外配置。\n例如，运行 `WebArena` 通常需要自行部署 Docker 环境；而 `WorkArena` 可使用官方提供的 Demo 实例。\n\n## 基本使用\n\n### 模式一：启动 UI 助手 (交互式体验)\n直接启动一个图形化助手界面，让智能体在指定网页上执行任务。\n\n```bash\n# 启动默认助手，打开 Google\nagentlab-assistant --start_url https:\u002F\u002Fwww.google.com\n\n# 启动自定义配置的智能体\nagentlab-assistant --agent_config=\"module.path.to.your.AgentArgs\"\n```\n\n### 模式二：运行实验 (代码方式)\n创建一个 Python 脚本（例如 `run_study.py`），定义研究任务并运行。\n\n```python\nfrom agentlab.agents.generic_agent import AGENT_4o_MINI \nfrom agentlab.experiments.study import make_study\n\n# 创建研究任务\nstudy = make_study(\n    benchmark=\"miniwob\",  # 可替换为 \"webarena\", \"workarena_l1\" 等\n    agent_args=[AGENT_4o_MINI],\n    comment=\"My first study\",\n)\n\n# 运行实验，n_jobs 控制并行任务数\nstudy.run(n_jobs=5)\n```\n\n**断点续跑**：如果实验中断或出现错误，可加载已有研究目录继续运行：\n\n```python\nfrom agentlab.experiments.study import Study\n\nstudy = Study.load(\"\u002Fpath\u002Fto\u002Fyour\u002Fstudy\u002Fdir\")\nstudy.find_incomplete(include_errors=True)\nstudy.run()\n```\n\n### 模式三：分析结果\n实验完成后，可以使用内置工具查看结果。\n\n**命令行可视化分析 (AgentXray)**：\n启动 Gradio 界面查看详细的执行轨迹、截图和动作日志。\n\n```bash\nagentlab-xray\n```\n*操作流程*：在界面中依次选择 **Experiment** -> **Agent** -> **Task** -> **Seed**，即可看到智能体的完整执行过程。点击截图可定位到具体步骤。\n\n**代码加载数据**：\n也可以通过 Python 直接将结果加载为 DataFrame 进行分析：\n\n```python\nfrom agentlab.analyze import inspect_results\n\n# 加载所有实验的摘要数据\nresult_df = inspect_results.load_result_df(\"path\u002Fto\u002Fyour\u002Fstudy\")\n\n# 加载单个实验的详细对象\nimport browsergym.experiments as bgym\nexp_result = bgym.ExpResult(result_df[\"exp_dir\"][0])\n\n# 访问具体数据，例如第一步的截图和动作\nstep_0_screenshot = exp_result.screenshots[0]\nstep_0_action = exp_result.steps_info[0].action\n```","某 AI 实验室的研究团队正致力于优化基于大模型的网页自动化代理（Web Agent），需要在 WebArena 和 WorkArena 等多个基准测试上验证新算法的泛化能力与稳定性。\n\n### 没有 AgentLab 时\n- **环境搭建繁琐**：每次切换 benchmark（如从 WebArena 切到 WorkArena）都需要手动配置独立的 Docker 环境和数据集，耗时且容易出错。\n- **实验难以并行**：缺乏统一的调度框架，无法利用 Ray 进行大规模并行测试，跑完 800+ 个任务往往需要数天时间。\n- **结果不可复现**：由于随机种子管理混乱和日志记录不规范，不同成员跑出的数据对不上，论文实验结果难以被团队内部复现。\n- **模型适配成本高**：每更换一个后端 LLM（如从 OpenAI 切换到自部署的 TGI 模型），都需要重写大量的 API 对接代码。\n\n### 使用 AgentLab 后\n- **一键基准切换**：通过内置的 BrowserGym 支持，仅需修改配置文件即可在 WebArena、WorkArena 等主流榜单间无缝切换，环境自动就绪。\n- **高效并行执行**：原生集成 Ray 框架，将数百个任务的测试时间从数天压缩至数小时，大幅加速迭代周期。\n- **确保科研复现性**：内置严格的种子控制和自动化日志系统，确保每一次实验轨迹可追溯、结果可精确复现，满足顶会发表要求。\n- **统一模型接口**：提供标准化的 LLM API 层，支持 OpenRouter、Azure 及本地模型即插即用，让研究者专注于算法逻辑而非工程适配。\n\nAgentLab 将研究人员从繁琐的工程基建中解放出来，使其能专注于核心算法创新，并以工业级的标准快速产出可复现的高水平科研成果。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FServiceNow_AgentLab_2db2e43f.png","ServiceNow","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FServiceNow_3578d394.png","Works for you™",null,"https:\u002F\u002Fwww.servicenow.com","https:\u002F\u002Fgithub.com\u002FServiceNow",[79,83,87,91,95],{"name":80,"color":81,"percentage":82},"Python","#3572A5",76.5,{"name":84,"color":85,"percentage":86},"Jupyter Notebook","#DA5B0B",20.5,{"name":88,"color":89,"percentage":90},"HTML","#e34c26",2.6,{"name":92,"color":93,"percentage":94},"Makefile","#427819",0.2,{"name":96,"color":97,"percentage":98},"Shell","#89e051",0.1,558,112,"2026-04-10T01:38:26","NOASSERTION","未说明 (支持 Playwright 的平台通常包括 Linux, macOS, Windows)","未说明 (框架主要依赖 LLM API，本地推理需求取决于所选模型后端)","未说明 (并行运行 10-50 个任务时建议具备充足内存)",{"notes":107,"python":108,"dependencies":109},"1. 必须安装并配置 Playwright 浏览器驱动 (playwright install)。\n2. 支持多种 LLM 后端 (OpenAI, Azure, OpenRouter, TGI)，需配置相应的 API Key 环境变量。\n3. 部分基准测试 (如 WebArena, VisualWebArena) 需要自行通过 Docker 部署环境。\n4. 框架专为大规模并行实验设计，利用 Ray 进行任务调度。\n5. 结果分析工具 AgentXray 基于 Gradio 构建。","3.11, 3.12",[110,111,112,113],"agentlab","playwright","ray","gradio",[16,14,13,115,35],"其他",[117,118,119,120,121,122,123,124,125],"agents","benchmark","evaluation-framework","llm","llm-agents","prompting","web-agents","agent","lab","2026-03-27T02:49:30.150509","2026-04-12T16:30:05.065594",[129,134,139,144,149,154],{"id":130,"question_zh":131,"answer_zh":132,"source_url":133},30894,"如何在 Mac M1\u002FM2 芯片上正确配置环境以避免架构冲突？","Mac 用户需确保终端运行在正确的架构下（arm64）。\n1. 检查架构：运行 `arch` 命令，必须返回 `arm64`。如果在 iTerm2 中显示错误，需在配置文件 (Profiles->General->Command) 中设置为 `arch -arm64 \u002Fbin\u002Fzsh`。\n2. 安装 Mamba：确保 Homebrew 是 arm64 版本（运行 `brew config` 检查），然后执行 `brew install micromamba`。\n3. 创建 Python 环境：运行 `mamba create -n raa -c conda-forge python=3.12`。\n4. 验证：运行 `python -c \"import platform; print(platform.processor())\"`，确保输出为 `arm64` 而非 `i386`。","https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fissues\u002F209",{"id":135,"question_zh":136,"answer_zh":137,"source_url":138},30895,"使用自定义 Agent 参数时，Pickle 加载失败怎么办？","当使用未在 BrowserGym 中定义的自定义参数构建 Agent 时，Pickle 加载可能会失败。解决方法是确保你的 AgentArgs 类可以通过绝对导入从 PYTHONPATH 中的目录访问。具体来说，自定义 Agent 模块应通过 `pip install -e .` 安装，以便在反序列化时能找到该类。此外，建议将 `run_gradio` 调用暴露为 API，以便用户知道如何使用自定义参数类启动应用。","https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fissues\u002F96",{"id":140,"question_zh":141,"answer_zh":142,"source_url":143},30896,"如何配置基于 Azure Active Directory (AAD) 的身份认证？","默认配置使用 OpenAI API Key，不支持直接的 AAD 认证（需要 AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, AZURE_TENANT_ID 等变量）。目前官方尚未内置支持，临时解决方案是修改源码 `src\u002Fagentlab\u002Fllm\u002Fchat_api.py` 中 `ChatModel` 类的 `__call__` 函数以适配 AAD 认证逻辑。仅设置环境变量通常不足以解决问题，因为程序仍会尝试寻找 `OPENAI_API_KEY`。","https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fissues\u002F184",{"id":145,"question_zh":146,"answer_zh":147,"source_url":148},30897,"为什么 AGENT_4o 的运行性能低于论文报告的结果？","性能差异可能由超时设置或默认视口分辨率变化引起。部分失败轨迹可能是因为浏览器超时（默认 30 秒）导致执行提前停止。建议捕获相关异常而不是让 Agent 崩溃。关于视觉模型，维护者指出默认视口可能已被 PR 更改，且视觉部分对性能提升有限。如果复现困难，可能需要重新运行实验以确认环境配置是否与论文一致。","https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fissues\u002F15",{"id":150,"question_zh":151,"answer_zh":152,"source_url":153},30898,"实例化 ChatModelArgs 时出现 'Can't instantiate abstract class' 错误如何解决？","该错误表明 `ChatModelArgs` 是一个抽象类，不能直接实例化。你需要实例化其具体的子类（例如针对特定 LLM 实现的类），或者确保你使用的配置指向了一个已实现所有抽象方法（如 `close_server`, `make_chat_model`, `prepare_server`）的具体类。检查你的 `agent_config` 是否正确指向了具体的实现类而非基类。","https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fissues\u002F9",{"id":155,"question_zh":156,"answer_zh":157,"source_url":158},30899,"如何正确使用默认的 Ray 并行后端 (parallel_backend=\"ray\")？","Ray 现在是默认的并行后端，通常在本地运行时不需要额外的复杂配置。维护者表示在 GitHub 工作流中测试正常，新用户鲜少报告问题。如果遇到环境问题，尝试重建虚拟环境。对于大多数用户，只要安装了 ray 依赖，默认设置即可正常工作，无需手动启动 localhost 服务器，除非有特殊的分布式需求。","https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fissues\u002F139",[160,165,170,175,180,184,188,192,196,200,204,208,212,216,221,226],{"id":161,"version":162,"summary_zh":163,"released_at":164},222681,"v0.4.2","## 变更内容\n* WebArena-已由 @NicolasAG 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F319 中验证\n* 由 @patricebechard 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F325 中为 GenericAgent 添加的 LiteLLMChatModel\n* 由 @amanjaiswal73892 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F326 中向 README 添加追踪信息部分\n\n## 新贡献者\n* @NicolasAG 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F319 中完成了首次贡献\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fcompare\u002Fv0.4.1...v0.4.2","2026-01-20T20:27:43",{"id":166,"version":167,"summary_zh":168,"released_at":169},222682,"v0.4.1","## 变更内容\n* 由 @optimass 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F218 中将此 `post_hoc_get_action` 移至私有代码库。\n* 由 @jardinetsouffleton 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F216 中更新 o1、o3 mini 的复现脚本。\n* 由 @jardinetsouffleton 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F220 中为聊天 API 添加 VLLMChatModel 支持。\n* 由 @jardinetsouffleton 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F223 中添加缺失的代理导入。\n* 由 @TLSDC 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F219 中为聊天模型添加 log_prob 选项。\n* 由 @TLSDC 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F224 中修复 OpenAI API 中 logprobs 的拼写错误。\n* 由 @TLSDC 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F228 中将 _agents_on_benchmark 切换为 Study 方法，以提高灵活性。\n* 由 @TLSDC 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F229 中修复 Hugging Face 聊天模型中的拼写错误。\n* 由 @jardinetsouffleton 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F222 中将 claude-3.7 添加到复现日志中。\n* 由 @TLSDC 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F232 中修复过时的测试。\n* 由 @recursix 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F235 中创建一个简单的纯视觉代理。\n* 由 @ollmer 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F214 中进行 Gaia 基准测试，使用磁带代理和多工具环境。\n* 由 @recursix 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F210 中实现通用 AgentLab 环境。\n* 由 @TLSDC 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F240 中为截图添加鼠标点击坐标标记。\n* 由 @amanjaiswal73892 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F238 中支持 Aj\u002Fllama4。\n* 由 @TLSDC 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F242 中修复 agent_xray.py 中的坐标标记问题。\n* 由 @recursix 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F253 中推出 Allac\u002Fnext 代理。\n* 由 @recursix 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F256 中增强 xray 功能。\n* 由 @gabrielhuang 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F254 中修复计数 token 的问题。\n* 由 @recursix 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F259 中改进 xray。\n* 由 @amanjaiswal73892 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F260 中更新 OAI 聊天完成和响应 API 的成本跟踪功能。\n* 由 @recursix 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F258 中开展新的实验。\n* 由 @TLSDC 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F237 中添加一个简单的调试代理，用于手动测试动作。\n* 由 @TLSDC 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F244 中更新 test_study.py。\n* 由 @recursix 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F262 中进行深度调试。\n* 由 @amanjaiswal73892 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F257 中实现多动作支持并进行重构。\n* 由 @ollmer 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F255 中进行 OSWorld 基准测试。\n* 由 @amanjaiswal73892 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F263 中将 relaunch 标志更新为 False，并调整 OSWORLD_OAI 的 model_args。\n* 由 @amanjaiswal73892 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F243 中重命名 LangChain 的 BaseMessage。\n* 由 @recursix 在 h 中添加新的大语言模型。","2025-12-05T20:50:28",{"id":171,"version":172,"summary_zh":173,"released_at":174},222683,"v0.4.0","## 变更内容\n* 杂项：由 @eltociear 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F181 中更新了 __init__.py 文件\n* 并行研究评估：由 @recursix 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F180 中完成\n* 重构 HuggingFace 模型初始化，以包含基础模型名称……：由 @jardinetsouffleton 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F190 中完成\n* 限制 Python 版本为 3.11 及以上：由 @ThibaultLSDC 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F194 中实现\n* 使用 ProcessPoolExecutor 实现研究的并行处理……：由 @recursix 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F195 中完成\n* 更新 README.md，修复拼写错误：由 @ollmer 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F196 中完成\n* 小幅 API 变更——将 exp_root 传递给 study.run()：由 @optimass 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F200 中完成\n* 添加 `study.shuffle_exps()` 功能：由 @optimass 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F202 中实现\n* 尝试修复测试：由 @ThibaultLSDC 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F206 中进行\n* 为 Claude Sonnet 3.5 和视觉模型添加新的代理配置：由 @jardinetsouffleton 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F213 中完成\n\n## 新贡献者\n* @eltociear 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F181 中完成了首次贡献\n* @optimass 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F200 中完成了首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fcompare\u002Fv0.3.2...v0.4.0","2025-02-11T15:10:28",{"id":176,"version":177,"summary_zh":178,"released_at":179},222684,"v0.3.2","## 变更内容\n* 在 Ray 仪表板中显示实验名称，由 @ThibaultLSDC 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F123 中实现\n* 修复在 ui_assistant 模式下目标未被使用的问题，由 @ThibaultLSDC 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F124 中修复\n* 修复在添加无详细信息的图片时讨论对象的问题，由 @ThibaultLSDC 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F128 中修复\n* 为截图\u002Fsom 添加描述性提示，由 @ThibaultLSDC 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F129 中添加\n* 多次评估的研究，由 @recursix 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F126 中完成\n* 更新 README.md，由 @recursix 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F158 中完成\n* 更新 README.md，由 @recursix 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F159 中完成\n* 通过示例增强 README，说明如何加载实验结果，由 @recursix 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F160 中完成\n* 警告通知 + BrowserGym 链接，由 @gasse 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F164 中添加\n* Workarena L2 上的 405b 结果，由 @ThibaultLSDC 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F163 中提供\n* Ab 结果，由 @ThibaultLSDC 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F161 中提供\n* 为自托管的 HF 模型添加修复，由 @jardinetsouffleton 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F167 中实现\n* WebArena\u002FVisualWebArena 的结果，由 @ThibaultLSDC 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F168 中提供\n* 为 tracker 装饰器添加后缀，由 @ThibaultLSDC 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F169 中添加\n* 多输出聊天和重试功能，由 @ThibaultLSDC 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F171 中实现\n* 适用于 Webarena 的代理，由 @recursix 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F172 中开发\n* 修复 PyPI 工作流依赖项，由 @ThibaultLSDC 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F174 中完成\n* 修复：更新 GenericAgentArgs 类中的 demo_mode 赋值，由 @recursix 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F175 中完成\n* 为 HF 模型适配多个样本，由 @jardinetsouffleton 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F173 中实现\n* 自动化 Read the Docs，由 @ThibaultLSDC 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F177 中完成\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fcompare\u002Fv0.3.1...v0.3.2","2024-12-09T20:07:25",{"id":181,"version":182,"summary_zh":75,"released_at":183},222685,"v0.3.2.dev11","2024-12-09T16:07:15",{"id":185,"version":186,"summary_zh":75,"released_at":187},222686,"v0.3.2.dev10","2024-12-09T15:50:34",{"id":189,"version":190,"summary_zh":75,"released_at":191},222687,"v0.3.2.dev9","2024-12-09T15:47:57",{"id":193,"version":194,"summary_zh":75,"released_at":195},222688,"v0.3.2.dev7","2024-12-05T17:01:21",{"id":197,"version":198,"summary_zh":75,"released_at":199},222689,"v0.3.2.dev6","2024-12-05T16:54:08",{"id":201,"version":202,"summary_zh":75,"released_at":203},222690,"v0.3.2.dev5","2024-12-05T16:41:07",{"id":205,"version":206,"summary_zh":75,"released_at":207},222691,"v0.3.2.dev4","2024-12-05T16:36:48",{"id":209,"version":210,"summary_zh":75,"released_at":211},222692,"v0.3.2.dev3","2024-12-05T16:30:21",{"id":213,"version":214,"summary_zh":75,"released_at":215},222693,"0.3.2.dev2","2024-12-05T16:23:39",{"id":217,"version":218,"summary_zh":219,"released_at":220},222694,"0.3.2.dev1","## 变更内容\n* 在 Ray 仪表板中显示实验名称，由 @ThibaultLSDC 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F123 中实现\n* 修复在 ui_assistant 模式下目标未被使用的问题，由 @ThibaultLSDC 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F124 中修复\n* 修复在添加图片且无详细信息时的讨论对象问题，由 @ThibaultLSDC 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F128 中修复\n* 为截图\u002FSOM 添加描述性提示，由 @ThibaultLSDC 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F129 中添加\n* 多次评估的研究，由 @recursix 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F126 中完成\n* 更新 README.md，由 @recursix 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F158 中完成\n* 更新 README.md，由 @recursix 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F159 中完成\n* 通过示例增强 README，说明如何加载实验结果，由 @recursix 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F160 中完成\n* 添加警告通知及指向 BrowserGym 的链接，由 @gasse 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F164 中完成\n* Workarena L2 上的 405b 结果，由 @ThibaultLSDC 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F163 中提供\n* Ab 结果，由 @ThibaultLSDC 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F161 中提供\n* 添加对自托管 HF 模型的修复，由 @jardinetsouffleton 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F167 中实现\n* WebArena\u002FVisualWebArena 的结果，由 @ThibaultLSDC 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F168 中提供\n* 为 tracker 装饰器添加后缀，由 @ThibaultLSDC 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F169 中实现\n* 多输出聊天及重试功能，由 @ThibaultLSDC 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F171 中实现\n* 针对 Webarena 代理，由 @recursix 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F172 中完成\n* 修复 PyPI 工作流依赖项，由 @ThibaultLSDC 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F174 中完成\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fcompare\u002Fv0.3.1...0.3.2.dev1","2024-12-05T13:50:45",{"id":222,"version":223,"summary_zh":224,"released_at":225},222695,"v0.3.1","## 变更内容\n* @recursix 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F131 中更新了 README.md\n* @ollmer 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F113 中进行了 Workarena 基准测试的 Tapeagent 实现\n* @gasse 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F141 中将 dev 分支合并到 main 分支\n* @gasse 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F144 中修复了 Apache 许可证问题\n* @gasse 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F147 中优化了用户界面（基于最新提交）\n* @ThibaultLSDC 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F148 和 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F149 中两次更新了 README.md\n* @ThibaultLSDC 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F151 中在 README.md 中添加了 Playwright 的安装说明\n* @recursix 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F150 中再次优化了用户界面\n* @ThibaultLSDC 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F153 中提升了版本号\n* @recursix 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F154 中进一步优化了用户界面\n* @recursix 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F155 中再次优化了用户界面\n* @recursix 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F152 中删除了旧代码\n* @ThibaultLSDC 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F146 中将 darglint 添加为工作流测试\n* @recursix 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F156 中再次更新了 README.md\n\n## 新贡献者\n* @ollmer 在 https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fpull\u002F113 中完成了首次贡献\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FServiceNow\u002FAgentLab\u002Fcompare\u002Fv0.3.0...v0.3.1","2024-11-26T15:56:53",{"id":227,"version":228,"summary_zh":229,"released_at":230},222696,"v0.3.0","首次发布到 PyPI 🎉","2024-11-14T16:14:08"]