importos
importasyncio
importagentscope
fromagentscope.agentimportReActAgent, UserAgent
fromagentscope.modelimportDashScopeChatModel
fromagentscope.formatterimportDashScopeChatFormatter
fromagentscope.mcpimportStdIOStatefulClient
fromagentscope.toolimportToolkit
fromdotenvimportload_dotenv
# 加载环境变量
load_dotenv()
asyncdefbrowser_use_demo():
"""
1. 连接 browser-use MCP
2. 注册浏览器自动化工具
3. 创建智能体
"""
# 初始化 AgentScope
agentscope.init()
# 创建工具包
toolkit = Toolkit()
# 创建 Browser-use MCP 客户端
# 环境变量配置
browser_env = {
"OPENAI_API_KEY": os.environ.get("OPENAI_API_KEY"),
"BROWSER_USE_HEADLESS": os.environ.get("BROWSER_USE_HEADLESS","true"),
"BROWSER_USE_DISABLE_SECURITY": os.environ.get("BROWSER_USE_DISABLE_SECURITY","false"),
}
# 以 StdIO 创建 Browser-use MCP 客户端
browser_use_client = StdIOStatefulClient(
name="browser_use_mcp",
command="browser-use",
args=["--mcp"],
env=browser_env
)
try:
# 连接到 browser-use MCP
awaitbrowser_use_client.connect()
# 注册 browser-use MCP 工具
awaittoolkit.register_mcp_client(browser_use_client)
# 创建支持浏览器操作的智能体
agent = ReActAgent(
name="BrowserBot",
sys_prompt="""你是一个网页自动化助手,能够执行各种浏览器操作。""",
model=DashScopeChatModel(
api_key=os.environ.get("DASHSCOPE_API_KEY"),
model_name="qwen-max",
enable_thinking=False,
stream=True,
),
formatter=DashScopeChatFormatter(),
toolkit=toolkit,
parallel_tool_calls=True,
)
# 创建用户智能体
user = UserAgent(name="User")
print("\n🤖 Browser-use 智能体已准备就绪!")
print("💡 你可以要求我执行各种网页自动化任务,例如:")
print(" - 访问http://xxx")
print(" - 点击xxx按钮")
print(" - 填写表单,在xxx输入xxx")
print(" - 输入 'exit' 退出程序\n")
# 交互循环
msg =None
whileTrue:
msg =awaituser(msg)
ifmsg.get_text_content().lower() =="exit":
break
msg =awaitagent(msg)
exceptExceptionase:
print(e)
finally:
# 清理资源
try:
awaitbrowser_use_client.close()
exceptExceptionase:
print(e)
if__name__ =="__main__":
asyncio.run(browser_use_demo())