Linxiushen/dsh-workflow-isolate ↗★ 2
dsh-workflow-isolate
QuickJS/WASM-isolated WorkflowEngine for running model-written DeepSeek Harness orchestration with bounded resource controls. 适合需隔离执行模型编排且控制资源的用户,需指定 Node 与 DSH 版本。
インストール
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Linxiushen/dsh-workflow-isolateドキュメント
README 全文を読む ↗Configuration
The bundle ships with a conservative deployment profile:
- id: workflow-worker-thread
disabled: true
- insert:
- id: workflow-isolate
name: dsh-workflow-isolate
config:
provider: spawn
memoryLimitBytes: 67108864
maxInterruptTicks: 250000
maxAgentRequestBytes: 1048576
maxWallTimeMs: 600000
maxConcurrentAgents: 0
maxTotalAgents: 1000
maxItemsPerCall: 4096
disposeGraceMs: 3000
maxConcurrentAgents: 0 asks the engine to derive a bounded value from available CPU parallelism. A profile's own cordis.patch.yml is applied after bundle layers and can replace this row's config. Cordis row configs replace rather than deep-merge, so restate every value you need when overriding it.
Resource limits are deployment policy, not script options. Lower them for exposed or multi-user deployments, and remember that child-agent cost is primarily controlled by maxConcurrentAgents and maxTotalAgents, not QuickJS memory.
Millisecond timer settings are capped at Node.js's maximum single-delay value (2,147,483,647) so oversized values cannot be clamped to an immediate timeout.
All engine defaults are listed below. The bundle patch relies on static defaults for values it does not restate.
| Key | Default | Purpose |
|---|---|---|
provider | spawn | Host-side subagent provider |
memoryLimitBytes | 64 MiB | QuickJS guest heap ceiling |
maxStackBytes | 1 MiB | QuickJS interpreter stack ceiling |
maxInterruptTicks | 250,000 | QuickJS interrupt-fuel budget per run |
maxScriptBytes | 256 KiB | UTF-8 workflow body ceiling |
maxResultBytes | 1 MiB | UTF-8 serialized final-result ceiling |
maxAgentRequestBytes | 1 MiB | UTF-8 JSON ceiling for one prompt and its agent options |
maxWallTimeMs | 600,000 | Host-observed run deadline, including child waits |
workerMemoryLimitMb | 128 MiB | V8 old-generation ceiling for the worker bridge |
maxConcurrentAgents | 0 | Auto-resolves to min(16, max(1, availableParallelism() - 2)) |
maxTotalAgents | 1,000 | Accepted agent() calls per run |
maxItemsPerCall | 4,096 | Items per parallel() or pipeline() call |
disposeGraceMs | 3,000 | Cleanup grace before forced worker termination |