AgentScope 支持使用 agentscope.service.WebBrowser 模块进行 Web 浏览器控制。 它允许代理与网页进行交互,并执行点击、输入和滚动等网页操作。

注意当前的 Web 浏览器模块仍处于测试阶段,在未来的一段时间内将会频繁更新和优化。

预备

WebBrowser 模块基于 Playwright 实现,需要安装最新版本的 AgentScope 和 playwright 环境:

# 从源码安装最新版本的 AgentScope
git clone https://github.com/modelscope/agentscope.git
cd agentscope
pip install -e .

# 安装 playwright
pip install playwright
playwright install

Guidance

通过以下方式初始化一个 WebBrowser 模块实例:

from agentscope.service import WebBrowser

browser = WebBrowser()

The WebBrowser module facilitates browser control and state retrieval. The name of the control functions are all prefixed by “action_”, e.g. action_visit_url, and action_click. To see the full list of functions, calling the get_action_functions method.

WebBrowser 模块提供了浏览器控制和状态检索的功能。 其中控制函数的名称都以 “action_” 为前缀,例如 action_visit_urlaction_click。可以通过调用 get_action_functions 方法查看完整的函数列表。

# 查看所有支持的操作
print(browser.get_action_functions())

# 访问新的网页
browser.action_visit_url("https://www.bing.com")

为了获取当前浏览器的状态,可以调用以 "page_" 为前缀的函数,例如 page_urlpage_titlepage_html

# 当前网页的url
print(browser.page_url)

# 当前网页的标题
print(browser.page_title)

# 以 MarkDown 的格式获取当前的页面信息(通过markdownify进行解析)
print(browser.page_markdown)

# 当前网页的 html 源码(可能会太长)
print(browser.page_html)

此外,为了帮助视觉模型更好地理解网页,我们提供了 set_interactive_marks 函数,该函数会把当前网页上所有的可交互元素标记出来,并用序号标签进行标注(从0开始)。 调用 set_interactive_marks 函数标记网页后,我们就可以在网页上执行更多的操作,例如点击指定序号的按钮、在指定序号的文本框中进行输入等。

# 为网页上的交互元素添加序号标签
browser.set_interactive_marks()

# 删除交互标记
# browser.remove_interactive_marks()

与智能体结合

上述的所有函数为交互式的 Web 浏览器控制提供了基本操作接口。开发者可以使用这些接口来构建自己的 Web 浏览代理。

在 AgentScope 中,Web 浏览器也是一种工具函数,因此可以使用 agentscope.service.ServiceToolkit 来处理 WebBrowser 模块提供的函数,并构建自己的智能体。 我们在示例中提供了一个Web 浏览器智能体的样例。 可以参考该样例了解更多细节。

[回到顶部]