Files
sci-gui-agent-benchmark/mm_agents
lizhanyuan 07e66490dd feat: 增强科研软件的 a11y tree 支持
- 扩展 heuristic_retrieve.py 白名单以覆盖科研软件 GUI 框架:
  - 新增 prefix 规则: sunawt (Java Swing), qt5q/qt6q (Qt), ovito, pymol,
    contentspanel, wx (wxWidgets), afx (MFC), thunderrt (VB6)
  - 新增 endswith 规则: edit, widget, box, dialog, view, frame, menuitem,
    menubar, toolbar, tabitem, treeitem, window
  - 新增 Qt 控件和 Win32 控件的精确匹配
- 在 agent.py 中添加原始 a11y tree 的调试日志
- 修复 run.py 中 agent 初始化缺少 platform='windows' 的问题
- 添加 NO_PROXY 绕过本地/VM IP (兼容 Clash 全局代理)
- lib_run_single.py 中应用启动等待时间增加到 15 秒
- 新增 test_each_domain_a11y_tree.json (每个域一个任务用于 a11y 验证)
2026-02-26 15:04:28 +08:00
..
2025-08-17 12:08:40 +08:00
2025-09-24 19:43:28 +08:00
2025-08-21 19:03:35 +00:00
2025-11-07 21:50:01 +08:00
2026-01-05 16:14:53 +08:00
2025-10-06 22:16:31 +08:00
2024-03-18 00:22:57 +08:00
2025-10-13 10:39:33 +08:00
2026-01-09 08:47:20 +08:00
2025-07-22 16:33:03 +08:00
2025-11-07 21:50:01 +08:00
2025-09-16 18:10:29 +08:00
2024-05-09 02:04:58 +08:00
2025-12-15 11:45:57 +00:00
2026-01-09 08:47:20 +08:00
2025-07-31 08:52:27 +08:00
2025-07-31 08:52:27 +08:00

Agent

Prompt-based Agents

Supported Models

We currently support the following models as the foundational models for the agents:

  • GPT-3.5 (gpt-3.5-turbo-16k, ...)
  • GPT-4 (gpt-4-0125-preview, gpt-4-1106-preview, ...)
  • GPT-4V (gpt-4-vision-preview, ...)
  • Gemini-Pro
  • Gemini-Pro-Vision
  • Claude-3, 2 (claude-3-haiku-2024030, claude-3-sonnet-2024022, ...)
  • ...

And those from the open-source community:

  • Mixtral 8x7B
  • QWEN, QWEN-VL
  • CogAgent
  • Llama3
  • ...

In the future, we will integrate and support more foundational models to enhance digital agents, so stay tuned.

How to use

from mm_agents.agent import PromptAgent

agent = PromptAgent(
    model="gpt-4-vision-preview",
    observation_type="screenshot",
)
agent.reset()
# say we have an instruction and observation
instruction = "Please help me to find the nearest restaurant."
obs = {"screenshot": open("path/to/observation.jpg", 'rb').read()}
response, actions = agent.predict(
    instruction,
    obs
)

Observation Space and Action Space

We currently support the following observation spaces:

  • a11y_tree: the accessibility tree of the current screen
  • screenshot: a screenshot of the current screen
  • screenshot_a11y_tree: a screenshot of the current screen with the accessibility tree overlay
  • som: the set-of-mark trick on the current screen, with table metadata included.

And the following action spaces:

  • pyautogui: valid Python code with pyautogui code valid
  • computer_13: a set of enumerated actions designed by us

To feed an observation into the agent, you have to maintain the obs variable as a dict with the corresponding information:

# continue from the previous code snippet
obs = {
    "screenshot": open("path/to/observation.jpg", 'rb').read(),
    "a11y_tree": ""  # [a11y_tree data]
}
response, actions = agent.predict(
    instruction,
    obs
)

Efficient Agents, Q* Agents, and more

Stay tuned for more updates.