代码执行代理

一个高级的代码执行代理,能够在安全的隔离沙箱中规划、编写、执行和迭代代码,具备全面的文件管理和开发工作流能力。

  • by somyatest1234-del
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 somyatest1234-del/MCP-test_1

使用说明

E2B代码执行代理

一个先进的Mastra模板,提供了一个编码代理,能够在安全、隔离的E2B沙箱中规划、编写、执行和迭代代码,并具有全面的文件管理和开发工作流功能。

概述

此模板演示了如何构建一个可以在真实开发环境中工作的AI编码助手。该代理可以在安全、隔离的E2B环境中创建沙盒、管理文件和目录、以多种语言执行代码以及监控开发工作流程。

特性

  • 安全代码执行:在独立的E2B沙盒中运行Python、JavaScript和TypeScript代码
  • 完整的文件管理:使用批处理操作创建、读取、写入、删除文件和目录
  • 多语言支持:在Python、JavaScript和TypeScript环境中执行代码
  • 实时开发监控:观察目录更改并监控开发工作流程
  • 命令执行:运行shell命令、安装包和管理依赖关系
  • 存储器系统:具有语义回忆和工作记忆的持续对话记忆
  • 开发工作流程:具有构建自动化的专业开发模式

先决条件

  • Node.js 20或更高版本
  • E2B API密钥(在 e2b.dev)
  • OpenAI API密钥

设置

  1. 克隆和安装依赖关系:

    git clone https://github.com/mastra-ai/template-coding-agent.git
    cd template-coding-agent
    pnpm install
    
  2. 设置环境变量:

    cp .env.example .env
    # Edit .env and add your API keys
    
    E2B_API_KEY="your-e2b-api-key-here"
    OPENAI_API_KEY="your-openai-api-key-here"
    
  3. 启动开发服务器:

    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