使用说明
E2B代码执行代理
一个先进的Mastra模板,提供了一个编码代理,能够在安全、隔离的E2B沙箱中规划、编写、执行和迭代代码,并具有全面的文件管理和开发工作流功能。
概述
此模板演示了如何构建一个可以在真实开发环境中工作的AI编码助手。该代理可以在安全、隔离的E2B环境中创建沙盒、管理文件和目录、以多种语言执行代码以及监控开发工作流程。
特性
- 安全代码执行:在独立的E2B沙盒中运行Python、JavaScript和TypeScript代码
- 完整的文件管理:使用批处理操作创建、读取、写入、删除文件和目录
- 多语言支持:在Python、JavaScript和TypeScript环境中执行代码
- 实时开发监控:观察目录更改并监控开发工作流程
- 命令执行:运行shell命令、安装包和管理依赖关系
- 存储器系统:具有语义回忆和工作记忆的持续对话记忆
- 开发工作流程:具有构建自动化的专业开发模式
先决条件
- Node.js 20或更高版本
- E2B API密钥(在 e2b.dev)
- OpenAI API密钥
设置
-
克隆和安装依赖关系:
git clone https://github.com/mastra-ai/template-coding-agent.git cd template-coding-agent pnpm install -
设置环境变量:
cp .env.example .env # Edit .env and add your API keysE2B_API_KEY="your-e2b-api-key-here" OPENAI_API_KEY="your-openai-api-key-here" -
启动开发服务器:
pnpm run dev
建筑
核心组件
编码代理 (src/mastra/agents/coding-agent.ts)
具有综合开发能力的主要代理商:
- 沙盒管理:创建和管理隔离的执行环境
- 代码执行:运行具有实时输出捕获功能的代码
- 文件操作:完成文件和目录的CRUD操作
- 发展监测:监视变化并监控工作流程
- 内存集成:维护对话背景和项目历史
E2B工具 (src/mastra/tools/e2b.ts)
沙盒交互的完整工具包:
沙盒管理:
createSandbox-初始化新的隔离环境- 具有超时处理功能的连接管理
代码执行:
runCode-执行Python、JavaScript、TypeScript代码- 实时输出捕获和错误处理
- 环境变量和超时配置
文件操作:
writeFile-创建单个文件writeFiles-批量创建多个文件用于项目设置readFile-读取文件内容以进行分析和验证listFiles-探索目录结构deleteFile-清理文件和目录createDirectory-设置项目结构
文件信息和监控:
getFileInfo-获取详细的文件元数据checkFileExists-验证条件逻辑的文件是否存在getFileSize-监控文件大小并跟踪更改watchDirectory-实时监控文件系统更改
开发工作流程:
runCommand-执行shell命令、构建脚本、包管理
存储器系统
该代理包括一个配置的内存系统:
- 线程管理:自动生成对话标题
- 语义回忆:搜索以前的交互
- 工作记忆:在交互中保持上下文
- 矢量存储器:语义搜索功能
LibSQLVector
配置
环境变量
E2B_API_KEY=your_e2b_api_key_here
OPENAI_API_KEY=your_openai_api_key_here
定制
您可以通过修改中的说明来自定义代理行为 src/mastra/agents/coding-agent.ts:
export const codingAgent = new Agent({
name: 'Coding Agent',
instructions: `
// Customize agent instructions here
// Focus on specific languages, frameworks, or development patterns
`,
model: openai('gpt-4.1'),
// ... other configuration
});
常见问题
“未设置E2B_API_KEY”
- 确保您已设置环境变量
- 请检查您的API密钥是否有效并且有足够的信用
- 验证您的E2B帐户是否配置正确
“沙盒创建失败”
- 检查您的E2B API密钥和帐户状态
- 确保您没有超过沙盒限制
- 验证与E2B服务的网络连接
“代码执行超时”
- 增加长时间运行操作的超时值
- 将复杂的操作分解为更小的步骤
- 监控资源使用情况并优化代码
“文件操作错误”
- 验证文件路径和权限
- 检查沙盒文件系统限制
- 在文件操作之前确保目录存在
“代理因工具调用原因而停止”
- 增加
maxSteps在代理配置中
发展
项目结构
src/mastra/
agents/
coding-agent.ts # Main coding agent with development capabilities
tools/
e2b.ts # Complete E2B sandbox interaction toolkit
index.ts # Mastra configuration with storage and logging