A picker showed directory names, so the settings page could only ever list `standard` / `core-web` / `cordis` and hope the reader knew what they meant. A preset may now publish display text in an optional `preset.yml` beside its composition, and the section renders cards — name, description, and the one in use — instead of rows. The file carries display text ONLY. `id` is the directory name and `trust` comes from the root a preset was discovered under, so neither is writable there: otherwise a locally authored preset could name itself into the shipped set. It is a separate file because a composition is a top-level list of plugin rows — YAML cannot carry sibling keys beside it, and a fake metadata row would hand the Loader something to load. Every read failure degrades to no metadata; absent, malformed, wrongly typed, and blank all mean the same thing and the picker falls back to the id. Presentation is not capability: a preset whose name is broken still mounts. The editor gained name and description fields above the YAML, and clearing both removes the file rather than storing a blank name.
preset/ — per-session agent composition
English | 中文
An agent preset is a directory holding one agent.cordis.yml. Mounting it under an agent's scope context gives that session its own tools and prompt sections while every other live session keeps its own, so one process can run several differently composed agents at once.
| Package | Role | ctx key |
|---|---|---|
agent-presets/ |
Preset vocabulary, filesystem discovery over trusted and user-authored roots, and the guarded per-agent mount | ctx.agentPresets |
persona/ |
The agent persona as a composable row, so a preset can change identity and not only tools | — |
The deployment ships standard (the full coding agent), core-web (a two-tool benchmark surface), and cordis (the standard agent plus the self-referential toolset and a composition-authoring skill, so a person can ask an agent to author another agent).
The composition split this group assumes: registries and cross-session facilities are process singletons and stay in the host composition, while a preset carries what one agent contributes to them. A preset that names a row publishing a process-global service is rejected at mount rather than allowed to collide with the next session.
Design: the per-session agent-preset note.