Skip to content

代码执行工具

taskflow_code 提供安全的代码执行能力


📋 可用工具

工具名功能安全性
taskflow_code_execute执行代码片段✅ High
taskflow_code_validate验证代码语法✅ Medium

🔧 工具详解

execute

执行代码片段。

参数:

json
{
  "code": "string",        // 代码内容(必填)
  "language": "nodejs",    // 语言:nodejs | python(可选)
  "timeout": 60000,        // 超时时间(毫秒,可选)
  "env": {}                // 环境变量(可选)
}

示例:

Claude: 帮我写一个 JavaScript 函数,计算斐波那契数列

调用:

json
{
  "name": "taskflow_code_execute",
  "arguments": {
    "code": "function fibonacci(n) { if (n <= 1) return n; return fibonacci(n-1) + fibonacci(n-2); } console.log(fibonacci(10));",
    "language": "nodejs"
  }
}

返回:

json
{
  "success": true,
  "output": "55\n",
  "language": "nodejs",
  "duration": 12
}

validate

验证代码语法。

参数:

json
{
  "code": "string",        // 代码内容(必填)
  "language": "nodejs"     // 语言(可选)
}

示例:

Claude: 验证这段代码的语法

调用:

json
{
  "name": "taskflow_code_validate",
  "arguments": {
    "code": "function hello() { return 'world'; }",
    "language": "nodejs"
  }
}

返回:

json
{
  "success": true,
  "valid": true,
  "errors": []
}

🔒 安全机制

1. 沙箱隔离

代码在隔离环境中运行:

typescript
// Node.js 沙箱
const vm = require('vm');
const sandbox = {
  console: console,
  setTimeout: setTimeout,
  // 禁止访问危险 API
};
vm.runInNewContext(code, sandbox);

2. 禁止的危险 API

以下 API 被禁止:

javascript
// ❌ 文件系统
require('fs')
require('fs/promises')

// ❌ 网络
require('http')
require('https')
require('net')

// ❌ 进程
require('child_process')
require('os')
require('path')

// ❌ 其他危险
process.exit()
process.kill()
eval()

3. 超时控制

语言默认超时
Node.js60 秒
Python60 秒

4. 资源限制

资源限制
内存256 MB
CPU 时间30 秒
输出大小1 MB

💡 使用技巧

技巧一:数据转换

Claude: 帮我转换这个 JSON 数据为 CSV

Claude 会编写并执行转换代码。

技巧二:算法验证

Claude: 验证这个排序算法是否正确

Claude 会编写测试用例并执行。

技巧三:快速原型

Claude: 帮我写一个快速原型,验证这个想法

Claude 会编写并执行原型代码。


🐛 常见问题

Q: 代码执行被拒绝

A: 代码使用了禁止的 API。尝试:

  1. 移除危险 API 调用
  2. 使用纯函数
  3. 联系管理员调整沙箱配置

Q: 超时错误

A: 代码执行时间过长。尝试:

  1. 优化算法
  2. 减少数据量
  3. 增加超时时间(配置中设置)

Q: 内存不足

A: 代码消耗过多内存。尝试:

  1. 使用流式处理
  2. 减少数据量
  3. 联系管理员提高限制

🔗 相关链接


代码执行有问题随时问我

Released under the MIT License.