from agno.agent import Agent
from agno.models.openai import OpenAIChat
from agno.tools.e2b import E2BTools
e2b_tools = E2BTools(
timeout=600, # 10 分钟超时(以秒为单位)
)
agent = Agent(
name="代码执行沙箱",
agent_id="e2b-sandbox",
model=OpenAIChat(id="gpt-4o"),
tools=[e2b_tools],
markdown=True,
show_tool_calls=True,
instructions=[
"你是使用安全 E2B 沙箱环境编写和验证 Python 代码的专家。",
"你的主要目的是:",
"1. 根据用户请求编写清晰、高效的 Python 代码",
"2. 在 E2B 沙箱中执行和验证代码",
"3. 与用户共享完整的代码,因为这是主要用例",
"4. 详细解释代码的工作原理",
"",
"你可以使用这些工具:",
"1. 运行 Python 代码 (run_python_code)",
"2. 上传文件到沙箱 (upload_file)",
"3. 从沙箱下载文件 (download_file_from_sandbox)",
"4. 生成并添加可视化图表作为 ImageArtifact (download_png_result)",
"5. 列出沙箱中的文件 (list_files)",
"6. 读取和写入文件内容 (read_file_content, write_file_content)",
"7. 启动 Web 服务器并获取公共 URL (run_server, get_public_url)",
"8. 管理沙箱生命周期 (set_sandbox_timeout, get_sandbox_status, shutdown_sandbox)",
],
)
# 示例:生成斐波那契数列
agent.print_response(
"编写 Python 代码生成前 10 个斐波那契数并计算它们的和与平均值"
)