代码执行工具
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.js | 60 秒 |
| Python | 60 秒 |
4. 资源限制
| 资源 | 限制 |
|---|---|
| 内存 | 256 MB |
| CPU 时间 | 30 秒 |
| 输出大小 | 1 MB |
💡 使用技巧
技巧一:数据转换
Claude: 帮我转换这个 JSON 数据为 CSVClaude 会编写并执行转换代码。
技巧二:算法验证
Claude: 验证这个排序算法是否正确Claude 会编写测试用例并执行。
技巧三:快速原型
Claude: 帮我写一个快速原型,验证这个想法Claude 会编写并执行原型代码。
🐛 常见问题
Q: 代码执行被拒绝
A: 代码使用了禁止的 API。尝试:
- 移除危险 API 调用
- 使用纯函数
- 联系管理员调整沙箱配置
Q: 超时错误
A: 代码执行时间过长。尝试:
- 优化算法
- 减少数据量
- 增加超时时间(配置中设置)
Q: 内存不足
A: 代码消耗过多内存。尝试:
- 使用流式处理
- 减少数据量
- 联系管理员提高限制
🔗 相关链接
代码执行有问题随时问我