关于 make-e2b-code-execution
用于将代码转化为可持久使用的本地或托管工具的 Skill,托管执行采用 E2B。涵盖代码文件保存、Make 场景配置与执行,并通过 Make API 壳安全访问 SaaS 数据。
主要功能
- 01将持久代码保存到指定 Code 文件夹
- 02在本地或 E2B 沙箱运行代码
- 03配置可复用的 Make E2B 壳
- 04传递执行输入与超时设置
- 05通过 Make API 壳访问 SaaS 数据
适用场景
- 01运行快速的本地代码
- 02将代码用作可复用的托管工具
- 03让托管代码使用 SaaS 数据且不嵌入凭据
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ integromat/ make-skills --skill make-e2b-code-execution安装后在 Claude Code 中输入/make-e2b-code-execution确认已加载。
附带文件references/e2b-code-shell-contract.mdreferences/execution-modes.md
详细介绍
Make E2B 代码执行
当用户希望将代码变为可长期使用的工具时,使用此技能。
已知 E2B 模块 ID:E2B 沙箱模块为 "module": "e2b:RunE2BSandbox",其 "version": 0。
架构如下:
Hermes writes code -> Code folder -> local execution or Make E2B Code Shell -> E2B runtime
如果该代码需要 SaaS 数据,必须调用 make-api-shell-connection-workflow 中的 Make API shell 场景。不要在生成的代码中放入 OAuth 密钥、Make API 令牌、E2B API 密钥、刷新令牌、服务提供商密码或直接的服务提供商 SDK 身份验证信息。
存储规则
将所有需要长期保存的代码工件存储在已配置的 Hermes Code 文件夹下:
- 本地知识存储:
knowledge/hermes/Code/... - Google Drive 知识存储:
/Hermes/Code/...
使用运行时辅助工具,例如:
import make_api_shell as make
make.write_code_artifact(
"tools/calc.py",
"print(17 * 23)\\n",
language="python",
confirm=True,
)
除非用户明确要求创建临时本地暂存文件,否则不要使用 shell 重定向、open(...) 或 Path.write_text(...) 直接写入需要长期保存的代码文件。
执行模式
普通代码执行
用于快速运行、非托管的代码:
- 在
Code/下编写代码工件。 - 使用本地
code_execution工具运行代码。 - 仅通过已配置的 Knowledge 辅助工具编写简短的运行说明或输出工件。
托管 E2B Code Shell
用于将代码构建为可重复使用的托管工具:
- 在
Code/下编写代码工件。 - 创建或复用符合 E2B Code Shell 合约的 Make 场景。
- 使用
codePath、language、entrypoint、input、mode和timeoutMs运行 shell。 - 将 E2B shell 输出视为工具结果。
Make 场景是控制平面 shell。E2B 仅用作运行时。Agent 永远不会收到 E2B 凭据。
在已验证的 e2b Make 应用上构建 shell(已通过实时验证)
当没有可用的基础设施运行器 URL 时,在 Make 已验证的应用 e2b(“e2b.dev”,beta,主版本 0)上,将 E2B Code Shell 构建为应用操作 shell;使用模块 e2b:RunE2BSandbox:
- 模块映射器字段:
execLanguage(python/javascript)、inputFormat(string/base64)、dependencies(数组)、timeoutSeconds(数字, 必填)、code(文本,必填)。将标准 shell 接口中的输入映射为{{2.qs.<field>}}。 - 连接来自针对
e2b/RunE2BSandbox的凭据请求。绑定两次:作为传统的__IMTCONN__(shell 验证器要求此项),以及作为模块声明的参数account—— manifest-2/SDK 模块会忽略__IMTCONN__,否则将无法使用凭据运行。在辅助工具环境中,向create_app_action_shell_scenario传入connection_parameter="account"。 - 在首次运行前,将场景接口修改为通用 shell 合约,然后激活该场景。
- 模块的输出字段为
logs,其结构为{"stdout": ["..."], "stderr": []}— 将 ReturnData 映射为{"data": "{{<moduleId>.logs}}"}(stdout/result/output均不存在,会静默返回 null)。在辅助工具环境中使用return_field="logs"。 - 在 Make 界面中编辑场景会重新编号模块 ID并重写模块参数(移除
__IMTCONN__)。每次通过界面编辑后,都要重新读取蓝图、以两种方式重新绑定连接,并将 ReturnData 引用修正为新的模块 ID — 旧引用会导致其他运行成功时仍返回data: null。 - 模块的 E2B 错误特征:
401: authorization header is missing表示模块未发送密钥(未绑定连接);401: authorization header is malformed表示存储的 apiKey 不以e2b_开头 — 常见原因:带有"Bearer "前缀、包含引号、误将sk_e2b_...Access Token 粘贴为 API Key,或界面保存操作未能持久化且未显示错误(通过POST /connections/{id}/set-data修复)。e2b 应用会原样发送X-API-Key: <apiKey>,因此请存储不带修饰的e2b_...密钥。
嵌套式 SaaS 访问
对于“inception”工具,生成的代码可以调用 Make API shell 场景:
Hosted code -> Make Gmail API shell -> Gmail API
托管代码只能接收场景 ID、路径、请求负载和非机密输入数据。它绝不能接收原始 Make 或提供商凭据。