# 在智能体中集成浏览器
创建沙箱工具后，您需要将沙箱工具集成到智能体代码中，以便智能体可以调用隔离环境来完成代码运行等复杂任务。
#### 前提条件
- 已创建沙箱工具，具体请参见[创建浏览器](https://support.huaweicloud.com/highcode-agentarts/agentarts_10_167.html)。
- 已安装Python，且版本不低于3.10。
- 已安装agentarts-sdk包。
- 配置访问端点：通过AGENTARTS_BROWSER_DATA_ENDPOINT设置环境变量 ，访问端点获取请参考[终端节点](https://support.huaweicloud.com/api-agentarts/agentarts_07_0001.html)，获取到终端节点后，在配置使用时，请配置为http://{域名}。
 
#### 在智能体中集成浏览器
1. 登录[AgentArts智能体平台](https://console.huaweicloud.com/agentarts/#/home/overview)。
2. 在左侧导航栏选择"托管与运行 \> 浏览器"，进入浏览器界面。

3. 通过SDK调用浏览器工具。 
   在工具列表单击操作列的"调用代码"，通过SDK调用工具实现浏览器自动化的能力。SDK提供browser_session函数，可快速启动浏览器的会话，并支持自动停止会话。
   "调用代码"仅为代码示例，请根据实际情况替换代码示例中的"type"、"action"。
   API_KEY认证代码示例如下，获取API_KEY请参考[如何获取浏览器的API_KEY](https://support.huaweicloud.com/highcode-agentarts/agentarts_10_225.html)。
   ```
   from agentarts.sdk.tools import browser_session
   api_key = "your_actual_api_key"  # your api key
   with browser_session("cn-southwest-2", "your_browser_name", "your_session_name", api_key=api_key) as browser_client:
       response = browser_client.invoke(
           type="navigate",
           api_key=api_key,
           action={
               "url": "https://example.com"
           }
       )
   ```
   IAM认证代码示例如下，获取AK/SK请参考[如何获取华为云AK/SK](https://support.huaweicloud.com/highcode-agentarts/agentarts_10_047.html#agentarts_10_047__section13365141032517)。
   ```
   from agentarts.sdk.tools import browser_session
   # Please configure the HUAWEICLOUD_SDK_AK/HUAWEICLOUD_SDK_SK in your environment variables in advance.
   with browser_session("cn-southwest-2", "your_browser_name", "your_session_name", auth_type="IAM") as browser_client:
       response = browser_client.invoke(
           type="navigate",
           action={
               "url": "https://example.com"
           }
       )
   ```
   了解沙箱工具支持的操作，请参考[浏览器支持的快捷操作](https://support.huaweicloud.com/highcode-agentarts/agentarts_10_175.html)。
   
   

4. 将浏览器能力封装成工具。 
   将浏览器自动化能力封装成工具，此处使用langgraph的tool装饰器作为演示。
   ```
   import json
   from agentarts.sdk.tools import browser_session
   from langchain_core.tools import tool
   @tool
   def navigate_tool(url: str) -> str | None:
       """Navigate to a URL in the browser"""
       api_key = "your_actual_api_key"  # your api key
       with browser_session("your_region", "your_browser_name", "your_session_name", api_key=api_key) as browser_client:
           response = browser_client.invoke(
               type="navigate",
               api_key=api_key,
               action={
                   "url": url
               }
           )
       return json.dumps(response)
   ```
   
   
5. 将工具集成到智能体中。 
   将封装好的工具集成到智能体中，此处以langgraph框架开发智能体为例。
   ```
   from langchain_openai import ChatOpenAI
   import os
   llm = ChatOpenAI(
       model="deepseek-v4-flash",
       api_key=os.environ.get("MODEL_API_KEY", ""),
       base_url=os.environ.get("BASE_URL", ""),
       max_tokens=1000,
       temperature=0.7,
   )
   # 创建工具列表
   tools = [navigate_tool]
   # 工具绑定Agent
   llm = llm.bind_tools(tools)
   ```
   
   
 
