AgentSkillsCN

x07-concurrency

在 X07 中采用标准并发模式(defasync + task.* + chan.bytes.*),并结合沙箱约束条件。

SKILL.md
--- frontmatter
name: x07-concurrency
description: Canonical concurrency patterns in X07 (defasync + task.* + chan.bytes.*), including sandbox constraints.
metadata:
  short-description: Async patterns
  version: 0.1.0
  kind: docs

x07-concurrency

In OS worlds (run-os*), use subprocess spawning for multi-core parallelism. In run-os-sandboxed, process spawning must be enabled by policy (start from x07 policy init --template worker-parallel when needed). Thread-backed blocking operations are gated by policy.threads (for example, threads.max_blocking = 0 disables blocking operations).

Canonical patterns

  • Use task.scope_v1 for structured concurrency (no orphan tasks; slots/select are scope-owned).
  • Use defasync + task.* + chan.bytes.* inside scopes to build deterministic async topologies.
  • Keep await / task.join.bytes in solve expressions or inside defasync (they are not allowed inside defn).
  • Keep OS effects (fs/net/process/time) isolated behind adapters and policies.
  • Keep scheduling decisions explicit and data-driven (inputs → outputs), so behavior is reproducible.

For the built-in reference guide, use x07 guide and search for defasync / task. / chan.bytes..