Models coordinate subagents through send_message, interrupt_agent, list_agents,
and Team task owners, but every one of those addressed a member by a
36-character Session id. Each new child now has a name, unique among its
creator's children, recorded as a field of the subagent/catalog entry the
creator already appends (payload version 3).
The Session id stays the only execution identity for routing, authorization,
persistence, task ownership, and navigation. A name is a model-facing
reference: 1-32 lower-case letters, digits, or hyphens starting with a letter,
never `lead`, so a UUID never parses as one. Omission selects the first free
`agent-N`; an explicit duplicate or invalid name fails before startup. The
creator reserves the name synchronously at admission and releases it when the
catalog entry commits or startup fails, so no second write, rollback protocol,
or optional naming service exists.
The root is `lead`, and a descendant's full name is its path from the root
without a `lead/` prefix, such as `reviewer/checker`. Sibling-unique segments
make full names tree-unique without a root registry, and cold resume rebuilds
a member's path from the catalogs along its creation chain. A member below an
unnamed historical creator keeps its Session id as its name. resolveName()
reads only the catalogs along the path and grants no authority.
Tools, runtime-authored text, and the Web client consume names: delegation
takes an optional name and returns { kind, subagentId, name }; send_message and
interrupt_agent take `agent`; list_agents rows carry name, status, and
description; Team task results report the owner's name while storage keeps
ownerId; identity runtime context, message framing, and settlement notices use
full names. Recorded sessions, CLI and Web expectations, the Python runtime
snapshots, bilingual docs, an upgrade guide, and an Agent Note follow.
description, kind
| description | kind |
|---|---|
| The workflow group map: model-authored orchestration scripts that fan out subagents, for users and maintainers navigating the group. | package-group |
packages/workflow
English | 中文
Summary
The workflow group lets an agent run orchestration scripts that delegate work to subagents and return a final value. The workflow tool supports scripted fan-out. Scripts use the shared PTC Node process runtime under the calling Session's file policy. Workflow hooks and child lifecycle remain owned by the workflow engine.
Table of Contents
Packages
| Package | Role | ctx key |
|---|---|---|
workflow |
Runs a model-written orchestration script that fans out subagents | ctx.workflowEngine |
workflow-ptc |
Runs workflow scripts through the shared sandboxed PTC Node process runtime | registers on ctx.workflowEngine |
tool-workflow |
Gives the model the workflow tool for scripted multi-agent orchestration |
registers on ctx.tools |
Related documentation
- Workflow subsystem — the seam's types, start request, and
workflow/*events. - Generated tool catalog — the
workflowtool schema the model receives. - Generated tool catalog — the
ralphtool schema the model receives. - Generated configuration catalog — every accepted engine config field.
- historical Dynamic workflows Agent Note — the seam design and its decisions.
- Harness-level goal-based execution reference — the fixed fresh-agent loop design and deferred work.
Dev Note
Working context for maintainers — click to expand
None.