-
Notifications
You must be signed in to change notification settings - Fork 1
Subprocess zh
未实现 — Edge 目前用 just-bash 执行命令。原生子进程可通过 Cloudflare Containers 实现。
上游参考:子进程
子进程子系统(ctx.subprocess)管理子进程执行,支持显式 I/O 处置、资源限制和树级终止。由两部分组成:
-
Service Definition(
dsh-subprocess)— 能力接缝:spawn()、spawnTerminal()、可执行文件解析、受管的DSH_*环境命名空间。 -
Service Provider(
dsh-subprocess-local)— 使用node:child_process的 Node.js 实现。
关键设计:接缝不施加默认值——每个 I/O 处置(pipe/inherit/collect)、限制和目录都是显式的。终止是树级的:SIGTERM → 宽限期 → SIGKILL 跨整个进程树。waitForExit() 在返回前观察所有子孙进程。
未实现 dsh-subprocess 和 dsh-subprocess-local 均未安装。Edge 无法 spawn 原生进程。
命令执行由 just-bash 处理——一个在 Durable Object 内运行的纯 JavaScript shell。它提供了常用命令的内置实现(grep、sed、awk、find、sort、diff 等 20+ 个),操作 Computer VFS。系统提示词明确告知模型:"The shell is just-bash, not Linux: native binaries and background processes are unavailable."
这覆盖了最常见的 agent 用例(文件操作和文本处理),但无法运行编译的二进制文件、语言运行时(python、node)、包管理器(npm、pip)或构建工具(make、cargo)。
| 产品 | 能力 | 所需计划 |
|---|---|---|
| Cloudflare Containers | 附加到 Workers 的完整 Linux 容器。可 spawn 原生进程、安装包、运行任何二进制。实现真正子进程后端的主要途径。 | Workers Paid 或 Enterprise |
| Cloudflare Computer | Edge 已用于 VFS。提供 WorkerShellBackend 隔离执行模式。不是完整子进程——仅限 just-bash shell。 |
Free(已包含) |
集成路径:Cloudflare Containers(2025 年发布)可以在 Worker 旁运行完整 Linux 环境。一个实现上游 SubprocessService 接口的 ContainerSubprocessProvider 可以将 spawn() 调用委托给容器的进程命名空间。容器生命周期由 DO 管理——首次子进程请求时启动,session 内复用,session disposal 时终止。
免费计划用户继续使用 just-bash。子进程能力是付费升级——配置了 Container binding 后,模型可以使用真正的 python、node、git 等。
| 组件 | 分类 | 状态 |
|---|---|---|
SubprocessService(ctx.subprocess) |
缺失 | 未安装 |
| just-bash shell | 替换 | 覆盖基本命令执行 |
| Container 子进程后端 | 未来 | Cloudflare Containers(付费) |
关键观察:子进程在 Edge 上并非不可能——它受限于 Cloudflare Containers,后者在 2025 年已投入生产。架构清晰:安装上游
dsh-subprocess接缝,提供 Container 支持的实现,并根据 Container binding 是否可用来控制开关。免费用户保持 just-bash;付费用户获得真正的 Linux 进程。
**评估 Cloudflare Containers 作为子进程后端。**关键问题:(1) 能否从 DO spawn Container 并暴露其进程命名空间?(2) 冷启动延迟多少?(3) 上游
SubprocessService接口(spawn、spawnTerminal、terminate、waitForExit)能否由 Container API 满足?(4) 如何处理免费/付费分层——基于 binding 存在性的 stub provider vs 真实 provider?
- 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
- 首页
- 架构
- 核心与作用域
- 会话与持久化
- 模型与上下文
- 执行与工具
- 策略与交互
- 平台与接入
- 开发