-
Notifications
You must be signed in to change notification settings - Fork 1
Code Runtime zh
pawaca edited this page Aug 30, 2026
·
1 revision
未实现。有多种 Cloudflare 产品可作为实现路径。
上游参考:Code Runtime
代码运行时是一个可选的能力接缝,执行模型编写的程序并捕获输出和返回值。独立于 agent loop 主干。
-
CodeRuntime(
ctx.codeRuntime)— 抽象服务,提供run(request)方法、语言描述符('typescript'或'python')和隔离标签('worker-thread'、'process'或'container')。 -
程序以 async 函数体运行,支持顶层
await和return。宿主函数作为全局命名空间对象暴露(如tools.search())。 - 故障分类:exception、timeout、abort、worker-exit(OOM)、invalid-output(非 JSON)、output-limit。
- 绑定安全:命名空间名视为不可信输入,防止原型链污染,所有参数/返回值必须是无损 JSON。
未实现 没有安装 CodeRuntime 服务。dsh-code-runtime 包不在 Edge 的依赖中。模型无法在 bash 工具之外执行代码片段。
三种潜在实现路径,各有不同的隔离保证和 plan 要求:
| 方案 | 语言 | 隔离级别 | Plan | 可行性 |
|---|---|---|---|---|
| Workers isolate | 仅 JS/TS | V8 isolate(与 Workers 相同) | 免费 | 高——Edge 已使用 WorkerShellBackend 通过 Loader binding 向隔离 Worker 分发工作。同样的模式可以执行 JS/TS 代码片段,宿主函数绑定跨边界序列化。 |
| Dynamic Worker dispatch | 仅 JS/TS | 独立 Worker isolate | 付费 | 中——Cloudflare Service Bindings 允许向临时 Worker 分发。比进程内执行隔离更强。需要运行时将代码组装为 Worker 脚本。 |
| Containers | 任意(Python、Node、Go 等) | 完整 Linux 容器 | 付费(beta) | 中——Cloudflare Containers 运行完整 Linux 环境。可托管任意语言运行时。延迟较高(容器冷启动)但隔离最强。匹配上游的 'container' 隔离标签。 |
可复用的现有模式:Edge 的 WorkerShellBackend 已经通过 Loader binding 向隔离 Worker 分发 just-bash 命令。同一个 LOADER binding 可以适配为接受代码片段而非 shell 命令,在免费 plan 上提供 JS/TS 代码运行时,无需额外基础设施。
| 组件 | 分类 | 备注 |
|---|---|---|
| CodeRuntime 服务 | 缺失 | 未安装,上游包不在依赖中 |
| Workers isolate 执行 | 潜在方案 | 免费 plan,仅 JS/TS,现有 Loader 模式 |
| Container 执行 | 潜在方案 | 付费 plan,任意语言,冷启动延迟 |
**评估 Workers-isolate JS/TS 代码运行时。**现有的
WorkerShellBackend+ Loader binding 模式可以适配为执行 JS/TS 代码片段并绑定宿主函数。这将在免费 plan 上提供代码运行时,无需 Containers。关键问题:上游CodeRuntime接口能否用 Worker 后端满足?宿主函数绑定如何跨 Worker 边界序列化?每次执行的内存和 CPU 限制是多少?
**评估 Container 多语言代码运行时。**对于 Python 等语言,Cloudflare Containers 提供完整 Linux 环境。关键问题:容器冷启动延迟多少?容器能否在 session 内跨代码运行复用?Container 与 DO 生命周期如何交互(容器是否会比 DO 激活存活更久)?
- Home
- Architecture
- Core & Scope
- Session & Persistence
- Model & Context
-
Execution & Tools
- Tools
- Bash
- Subprocess 🚫
- PTY Session 🚫
- Background Jobs 🚫
- Filesystem
- LSP Navigation 🚫
- Code Runtime 🚫
-
Web Access
⚠️ -
Skills
⚠️ - Workflow 🚫
- Subagent 🚫
-
Policy & Interaction
- Goal
- Approval 🚫
- Permission Presets 🚫
-
Sandbox
⚠️ - Plan Mode 🚫
- User Interaction 🚫
- Commands 🚫
- Schedule 🚫
- Message Feedback 🚫
- Platform & Access
- Development
- 首页
- 架构
- 核心与作用域
- 会话与持久化
- 模型与上下文
- 执行与工具
- 策略与交互
- 平台与接入
- 开发