文章

15-王牌超能力-代码解释器与无头浏览器

15|王牌超能力:代码解释器与无头浏览器

概述

为Agent装载三大王牌超能力:文件操作、代码解释器(Code Interpreter)和无头浏览器(Headless Browser),让Agent从”聊天机器人”升级为”数字白领”。

核心概念

1. 三大王牌超能力

能力说明核心价值
文件操作读取、写入、局部编辑(Diff)精准修改大文件,不复写全文
代码解释器自主编写Python代码并执行处理复杂数学、数据清洗、图表生成
无头浏览器自主打开网页、点击、截图无API时抓取数据、视觉分析

2. 安全风控:绝不能裸奔!

毁灭性风险

  • 幻觉生成rm -rf *,系统瞬间灰飞烟灭
  • Prompt Injection攻击,下载恶意脚本,沦为”肉鸡”

解决方案:沙盒(Sandbox)隔离技术

3. AIO-Sandbox架构

开源方案:AIO-Sandbox,利用Docker容器隔离出独立环境

沙盒特性

  • Agent可在沙盒里肆意妄为写代码、装依赖、甚至搞崩溃系统
  • 重启Docker容器即可恢复如初
  • 通过MCP协议将沙盒工具暴露给外层Agent

沙盒工具库(33+工具):

  • sandbox_browser_screenshot:屏幕截图
  • browser_click / browser_scroll:点击和滚动
  • browser_get_clickable_elements:获取可交互元素
  • sandbox_execute_code:执行Python/JS代码
  • sandbox_execute_bash:执行Shell命令
  • sandbox_file_operations:文件读写

4. 代码实战:阿里股票早报

任务:撰写基于真实数据的阿里巴巴港股早盘报告

Agent能力调度

  1. 写Python代码调用Yahoo Finance获取K线数据
  2. 唤醒无头浏览器百度搜索最新舆情
  3. 结合量化分析与舆情计算输出

完整代码https://github.com/kid0317/crewai_mas_demo/blob/main/m2l10/m2l10_sandbox.py

quant_analyst = Agent(
    role="全能金融数据与舆情分析师",
    goal="使用代码抓取真实金融数据并进行量化分析,结合浏览器检索舆情,输出投资早报",
    backstory="精通Python和金融量化分析,需要数据时优先写代码抓取,需要舆情时熟练操作浏览器",
    mcp_servers=[MCPServerHTTP(url="http://localhost:8022")],  # 挂载沙盒
    llm=aliyun_llm,
)

关键要点

  1. Bash is All You Need:Claude Code底层只有4个工具(read/write/edit/bash),但bash能完成任何任务
  2. 沙盒是必选项:绝不允许在宿主机上直接赋权Agent运行代码
  3. 工具优先级:代码调用API > 专业搜索工具 > 浏览器硬爬
  4. 预置依赖:Docker镜像中预装pandas/requests/bs4等,避免反复pip install
  5. 强模型要求:复杂代码逻辑和浏览器交互对模型智商要求极高,小参数模型会疯狂撞墙

实践示例

沙盒MCP挂载

from crewai.mcp import MCPServerHTTP
from crewai.mcp.filters import create_static_tool_filter

# 白名单过滤,只暴露需要的工具
SANDBOX_TOOL_FILTER = create_static_tool_filter(
    allowed_tool_names=[
        "sandbox_execute_bash",
        "sandbox_execute_code",
        "sandbox_file_operations",
        "sandbox_browser_screenshot",
        "browser_click",
        "browser_scroll",
    ]
)

sandbox_mcp = MCPServerHTTP(
    url="http://localhost:8022/mcp",
    tool_filter=SANDBOX_TOOL_FILTER,
)

复杂任务定义

task = Task(
    description="""
    作为阿里巴巴港股个人工作助理,完成早盘报告:
    1)使用沙盒的浏览器和代码执行能力,获取阿里港股最新行情和30日K线数据
    2)用Python在沙盒中进行量化分析(涨跌幅、K线形态、支撑位)
    3)通过浏览器检索阿里最新新闻资讯(百度搜索)
    4)整合分析与舆情,撰写可直接发送的分析报告
    """,
    expected_output="符合AlibabaMorningReport Pydantic模型的JSON数据",
    agent=quant_analyst,
)

常见问题/坑点

反模式后果解决方案
主机裸奔rm -rf *或恶意脚本直接摧毁系统必须用Docker沙盒隔离
stdout污染代码夹杂Log或忘记print,Agent拿到乱码清理输出,确保关键信息print到stdout
生吞HTML直接把Raw HTML丢给模型,Token爆炸用bs4解析提取关键信息
忽视异步渲染SPA页面立即抓取,只能拿到loading空壳等待页面加载完成再抓取
小模型硬上规划复杂逻辑失败,疯狂报错使用足够强的模型(Claude 3.5+/GPT-4+)

关联知识

参考资源

学习时间

  • 课程时长:36:40
  • 笔记整理:2026-04-10

状态

  • 课程学习
  • 沙盒环境搭建
  • 代码解释器实践
  • 无头浏览器抓取

下次复习日期

2026-04-17