pi-herdsman 0.1.4 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +33 -29
- package/SKILL.md +81 -70
- package/dist/agent-definitions/{worker.md → generalist.md} +3 -3
- package/dist/agent-definitions/implementer.md +3 -3
- package/dist/agent-definitions/researcher.md +1 -1
- package/dist/agent-definitions/reviewer.md +2 -2
- package/dist/agent-definitions/scout.md +2 -2
- package/dist/index.js +139 -104
- package/docs/README.md +11 -11
- package/docs/agent-api.md +18 -18
- package/docs/concepts/{workers.md → agents.md} +36 -33
- package/docs/concepts/delegation.md +32 -32
- package/docs/concepts/lifecycle.md +26 -26
- package/docs/concepts/supervision.md +15 -11
- package/docs/development/documentation.md +4 -4
- package/docs/development/smoke-testing.md +52 -52
- package/docs/getting-started.md +20 -20
- package/docs/guides/agent-definitions.md +24 -19
- package/docs/guides/customizing-agents.md +14 -12
- package/docs/guides/handoffs.md +47 -17
- package/docs/guides/recovery.md +24 -24
- package/docs/reference/agent-definition-schema.md +40 -37
- package/docs/reference/{worker-states.md → agent-states.md} +17 -17
- package/docs/reference/{worker.md → agent.md} +81 -56
- package/docs/reference/ask-owner.md +23 -23
- package/docs/reference/commands.md +28 -23
- package/docs/reference/configuration.md +16 -13
- package/docs/reference/errors.md +6 -6
- package/docs/reference/status-widget.md +22 -22
- package/docs/reference/supervision.md +54 -19
- package/package.json +6 -4
|
@@ -56,7 +56,7 @@ Do not turn it into a structured API reference.
|
|
|
56
56
|
|
|
57
57
|
Reading order and first-use orientation for model and agent-facing coordination.
|
|
58
58
|
|
|
59
|
-
Link to the exact `
|
|
59
|
+
Link to the exact `agent`, `ask_owner`, lifecycle, delegation, handoff, state,
|
|
60
60
|
and error owners instead of restating their full contracts.
|
|
61
61
|
|
|
62
62
|
### Concepts
|
|
@@ -94,7 +94,7 @@ It does not own product API schemas or runtime behavior.
|
|
|
94
94
|
|
|
95
95
|
Pi Herdsman has one deliberate instruction duplication.
|
|
96
96
|
|
|
97
|
-
The runtime controller and managed
|
|
97
|
+
The runtime controller and managed agent instructions are the authoritative,
|
|
98
98
|
self-contained operational contract. Root `SKILL.md` intentionally mirrors
|
|
99
99
|
those mandatory operational instructions so loading the skill can reinforce
|
|
100
100
|
them in a long model context.
|
|
@@ -148,8 +148,8 @@ When implementation and existing prose disagree:
|
|
|
148
148
|
2. current accepted runtime evidence can clarify integration behavior;
|
|
149
149
|
3. stale prose should be deleted, not preserved as an alternative contract.
|
|
150
150
|
|
|
151
|
-
Particularly verify the runtime implementation for `
|
|
152
|
-
`/
|
|
151
|
+
Particularly verify the runtime implementation for `agent`, `ask_owner`,
|
|
152
|
+
`/agents`, `/chief`, `staff`, states, definition schema/composition, text-file snapshots,
|
|
153
153
|
state projection, error categories, and presentation behavior;
|
|
154
154
|
|
|
155
155
|
- `package.json` for supported Pi versions and package resources.
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
These are maintainer acceptance checks for behavior that benefits from a real
|
|
6
6
|
Pi/herdr boundary.
|
|
7
7
|
|
|
8
|
-
Use disposable
|
|
8
|
+
Use disposable agents and exact-ID cleanup. Do not disturb unrelated user
|
|
9
9
|
workspaces or agents.
|
|
10
10
|
|
|
11
11
|
## Preconditions
|
|
@@ -31,21 +31,21 @@ Run the repository validation gate first.
|
|
|
31
31
|
## Current mailbox contract
|
|
32
32
|
|
|
33
33
|
For a current managed run, inspect the persisted state, request, ask, and
|
|
34
|
-
result records and verify they use protocol version `
|
|
35
|
-
field. Control prompts use the `
|
|
34
|
+
result records and verify they use protocol version `4` and contain no lifetime
|
|
35
|
+
field. Control prompts use the `__PI_HERDSMAN_AGENT_V4__:` marker prefix.
|
|
36
36
|
|
|
37
37
|
## One-shot definition and session continuation
|
|
38
38
|
|
|
39
39
|
Delegate a small deterministic read-only task to the `scout` definition. Record
|
|
40
|
-
the returned
|
|
40
|
+
the returned agent, request, session, and pane identities.
|
|
41
41
|
|
|
42
42
|
Verify:
|
|
43
43
|
|
|
44
|
-
- one managed
|
|
44
|
+
- one managed agent starts;
|
|
45
45
|
- the task is acknowledged;
|
|
46
|
-
- the
|
|
46
|
+
- the agent completes with exactly one result reaching the owner;
|
|
47
47
|
- the terminal result identifies the exact session;
|
|
48
|
-
- cleanup removes the
|
|
48
|
+
- cleanup removes the agent, pane, mailbox, and runtime;
|
|
49
49
|
- the exact Pi session remains available.
|
|
50
50
|
|
|
51
51
|
Use the exact returned session ID or path for a follow-up assignment:
|
|
@@ -61,17 +61,17 @@ Use the exact returned session ID or path for a follow-up assignment:
|
|
|
61
61
|
Verify:
|
|
62
62
|
|
|
63
63
|
- the same Pi session and session file are used;
|
|
64
|
-
- a new
|
|
64
|
+
- a new agent generation, run ID, request ID, and pane are created;
|
|
65
65
|
- the saved conversation context is available;
|
|
66
66
|
- the current effective definition configuration is used;
|
|
67
67
|
- exactly one result reaches the owner;
|
|
68
|
-
- cleanup removes the second
|
|
68
|
+
- cleanup removes the second agent, pane, mailbox, and runtime.
|
|
69
69
|
|
|
70
70
|
While the continuation assignment is active, submit another
|
|
71
71
|
`delegate.session` request for the same exact session. Verify it fails with
|
|
72
|
-
`
|
|
73
|
-
assignment unchanged. After both assignments finish, `
|
|
74
|
-
no completed idle
|
|
72
|
+
`agent_busy`, creates no duplicate agent or pane, and leaves the active
|
|
73
|
+
assignment unchanged. After both assignments finish, `agent list` must show
|
|
74
|
+
no completed idle agent.
|
|
75
75
|
|
|
76
76
|
## Historical session delegation
|
|
77
77
|
|
|
@@ -81,7 +81,7 @@ Verify:
|
|
|
81
81
|
|
|
82
82
|
- saved definition and cwd are respected;
|
|
83
83
|
- session delegation uses the saved cwd;
|
|
84
|
-
- current effective agent override values are used for the new
|
|
84
|
+
- current effective agent override values are used for the new agent
|
|
85
85
|
generation;
|
|
86
86
|
- the exact session continues.
|
|
87
87
|
|
|
@@ -91,23 +91,23 @@ Delegate to a definition with `fork` pointing to an exact saved session.
|
|
|
91
91
|
|
|
92
92
|
Verify:
|
|
93
93
|
|
|
94
|
-
- a new
|
|
94
|
+
- a new agent/session is created;
|
|
95
95
|
- the fork source is explicit;
|
|
96
96
|
- the current controller session is not implicitly used.
|
|
97
97
|
|
|
98
98
|
## Inferred delegation
|
|
99
99
|
|
|
100
|
-
Use a bundled delegating
|
|
101
|
-
contain `
|
|
100
|
+
Use a bundled delegating agent definition whose source `tools` list does not explicitly
|
|
101
|
+
contain `agent`, such as the current `implementer`.
|
|
102
102
|
|
|
103
103
|
Ask it to delegate one bounded scout task.
|
|
104
104
|
|
|
105
105
|
Verify:
|
|
106
106
|
|
|
107
|
-
- the real Pi
|
|
108
|
-
-
|
|
109
|
-
- delegating
|
|
110
|
-
- all one-shot
|
|
107
|
+
- the real Pi agent can call `agent`;
|
|
108
|
+
- agent result reaches the delegating agent;
|
|
109
|
+
- delegating agent integrates it once;
|
|
110
|
+
- all one-shot agents clean up.
|
|
111
111
|
|
|
112
112
|
This proves effective-definition inference reaches Pi launch policy rather than
|
|
113
113
|
only metadata.
|
|
@@ -118,7 +118,7 @@ Create a temporary global definition with a whole-line body reference:
|
|
|
118
118
|
|
|
119
119
|
```markdown
|
|
120
120
|
---
|
|
121
|
-
name:
|
|
121
|
+
name: generalist
|
|
122
122
|
bodyMode: append
|
|
123
123
|
---
|
|
124
124
|
|
|
@@ -127,50 +127,50 @@ bodyMode: append
|
|
|
127
127
|
|
|
128
128
|
Use a distinctive instruction in the referenced file.
|
|
129
129
|
|
|
130
|
-
Verify the
|
|
130
|
+
Verify the agent obeys that instruction through the expanded private prompt.
|
|
131
131
|
|
|
132
132
|
Afterward remove the temporary definition and referenced file, confirm discovery
|
|
133
133
|
no longer lists the temporary definition, and verify no repository file changed.
|
|
134
134
|
|
|
135
135
|
## `ask_owner` round trip
|
|
136
136
|
|
|
137
|
-
Give
|
|
137
|
+
Give an agent a task whose correct continuation requires an owner choice.
|
|
138
138
|
|
|
139
139
|
Verify:
|
|
140
140
|
|
|
141
|
-
1.
|
|
141
|
+
1. agent calls `ask_owner` alone;
|
|
142
142
|
2. owner receives one question;
|
|
143
|
-
3.
|
|
144
|
-
4. owner replies with exact `
|
|
143
|
+
3. agent becomes `blocked`;
|
|
144
|
+
4. owner replies with exact `agent reply`;
|
|
145
145
|
5. reply continues the same assignment;
|
|
146
|
-
6.
|
|
147
|
-
7. no
|
|
146
|
+
6. agent produces exactly one final result;
|
|
147
|
+
7. no agent/mailbox leak remains.
|
|
148
148
|
|
|
149
|
-
## Delegating-
|
|
149
|
+
## Delegating-agent natural waiting
|
|
150
150
|
|
|
151
|
-
Ask a delegating
|
|
151
|
+
Ask a delegating agent to delegate required reconnaissance when no useful independent
|
|
152
152
|
local work remains.
|
|
153
153
|
|
|
154
|
-
Inspect the actual transcript and verify the delegating
|
|
154
|
+
Inspect the actual transcript and verify the delegating agent:
|
|
155
155
|
|
|
156
156
|
- ends its turn normally after the assignment;
|
|
157
|
-
- does not poll `
|
|
157
|
+
- does not poll `agent list`;
|
|
158
158
|
- does not sleep or use a separate wait mechanism;
|
|
159
|
-
- wakes when the
|
|
160
|
-
- integrates the result into one final delegating
|
|
159
|
+
- wakes when the agent result is delivered;
|
|
160
|
+
- integrates the result into one final delegating agent outcome.
|
|
161
161
|
|
|
162
162
|
## Useful concurrency
|
|
163
163
|
|
|
164
|
-
Give a delegating
|
|
164
|
+
Give a delegating agent one delegated task A and independent local task B.
|
|
165
165
|
|
|
166
166
|
Verify it can work on B while A is active, then ends its turn when no useful
|
|
167
167
|
independent work remains and integrates A after result delivery.
|
|
168
168
|
|
|
169
|
-
## Lead `/
|
|
169
|
+
## Lead `/agents` commands
|
|
170
170
|
|
|
171
171
|
In a lead session with UI:
|
|
172
172
|
|
|
173
|
-
### `/
|
|
173
|
+
### `/agents definitions`
|
|
174
174
|
|
|
175
175
|
Verify the native Definitions selector shows:
|
|
176
176
|
|
|
@@ -183,7 +183,7 @@ Verify the native Definitions selector shows:
|
|
|
183
183
|
- `Use default` for model and thinking;
|
|
184
184
|
- narrow panes remain width-safe.
|
|
185
185
|
|
|
186
|
-
Structured `
|
|
186
|
+
Structured `agent list` should still retain exact deterministic metadata.
|
|
187
187
|
|
|
188
188
|
Select a disposable bundled, project, or global definition and change its
|
|
189
189
|
model, thinking, and enabled state. Confirm that project discovery requires a
|
|
@@ -192,16 +192,16 @@ write global overrides only, not project files.
|
|
|
192
192
|
|
|
193
193
|
Verify unrelated frontmatter and body remain unchanged, `Use default` removes
|
|
194
194
|
only the selected field, fresh definition delegations and session continuations
|
|
195
|
-
use the current effective value, and running
|
|
195
|
+
use the current effective value, and running agents are not mutated.
|
|
196
196
|
|
|
197
|
-
### `/
|
|
197
|
+
### `/agents placement`
|
|
198
198
|
|
|
199
199
|
Open the native selector, change to the alternate value, verify, then restore
|
|
200
200
|
the original value.
|
|
201
201
|
|
|
202
|
-
### `/
|
|
202
|
+
### `/agents stop`
|
|
203
203
|
|
|
204
|
-
With disposable owned
|
|
204
|
+
With disposable owned agents, verify the owned tree closes while an unrelated
|
|
205
205
|
herdr agent remains untouched.
|
|
206
206
|
|
|
207
207
|
## Failure diagnostics
|
|
@@ -213,13 +213,13 @@ Verify startup failure:
|
|
|
213
213
|
- settles within the bounded budget;
|
|
214
214
|
- reports the stage and best available diagnostic;
|
|
215
215
|
- performs exact ownership-safe rollback;
|
|
216
|
-
- does not leave a false successful
|
|
216
|
+
- does not leave a false successful agent.
|
|
217
217
|
|
|
218
218
|
## Cleanup checklist
|
|
219
219
|
|
|
220
220
|
After every smoke:
|
|
221
221
|
|
|
222
|
-
- `
|
|
222
|
+
- `agent list` has no unintended managed agents;
|
|
223
223
|
- temporary global definitions are removed;
|
|
224
224
|
- temporary prompt/body files are removed;
|
|
225
225
|
- disposable herdr resources are closed by exact ID;
|
|
@@ -233,23 +233,23 @@ substitutes for these checks.
|
|
|
233
233
|
|
|
234
234
|
| Scenario | Result |
|
|
235
235
|
| ------------------------------------------------------------------------------------------------------------------------------------ | ------- |
|
|
236
|
-
| Normal lead has `
|
|
236
|
+
| Normal lead has `agent` and `chief`, not `staff` | NOT RUN |
|
|
237
237
|
| Active Chief has exactly `staff`, not lead controller tools | NOT RUN |
|
|
238
238
|
| Persisted Chief resume collision becomes suspended | NOT RUN |
|
|
239
239
|
| Ordinary losing `/chief` collision remains a lead with its tools and offers Focus/Cancel | NOT RUN |
|
|
240
|
-
| Delegating
|
|
240
|
+
| Delegating agent and agent retain their current role tools | NOT RUN |
|
|
241
241
|
| Activate one Chief with `/chief` | NOT RUN |
|
|
242
|
-
| Activation refuses a lead with owned or unresolved
|
|
242
|
+
| Activation refuses a lead with owned or unresolved agent work | NOT RUN |
|
|
243
243
|
| Two exact simultaneous Chief claims have one winner | NOT RUN |
|
|
244
244
|
| Stale exact lease recovery | NOT RUN |
|
|
245
245
|
| Malformed role, lead state, lease, or descriptor fails closed; coordination publication invalidates stale state and disables actions | NOT RUN |
|
|
246
246
|
| Discover leads across multiple workspaces | NOT RUN |
|
|
247
|
-
| Exclude managed
|
|
248
|
-
|
|
|
247
|
+
| Exclude managed agents and the active Chief from leads | NOT RUN |
|
|
248
|
+
| Agent exclusion uses the production validated snapshot and stale/ambiguous generations fail closed | NOT RUN |
|
|
249
249
|
| Herdr `agent_status ?? status` lifecycle normalization is reflected | NOT RUN |
|
|
250
|
-
| Nested
|
|
251
|
-
| A blocked
|
|
252
|
-
| Duplicate live agents, coordination records, or
|
|
250
|
+
| Nested agent aggregation attaches only to the proven lead | NOT RUN |
|
|
251
|
+
| A blocked agent does not mark its lead `needs you` | NOT RUN |
|
|
252
|
+
| Duplicate live agents, coordination records, or agent evidence fail closed | NOT RUN |
|
|
253
253
|
| Target disappearance or replacement between list and action is rejected | NOT RUN |
|
|
254
254
|
| Inspect a lead and compare bounded peek evidence | NOT RUN |
|
|
255
255
|
| Focus a lead after exact revalidation | NOT RUN |
|
package/docs/getting-started.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
[Documentation index](README.md) · [Agent coordination API](agent-api.md) · [Pi Herdsman](concepts/supervision.md)
|
|
4
4
|
|
|
5
5
|
This is the shortest human-facing path from installation to useful Pi Herdsman
|
|
6
|
-
orchestration. You do not need to type structured `
|
|
6
|
+
orchestration. You do not need to type structured `agent` requests for this
|
|
7
7
|
path.
|
|
8
8
|
|
|
9
9
|
## 1. Check requirements
|
|
@@ -29,14 +29,14 @@ pi install npm:pi-herdsman
|
|
|
29
29
|
```
|
|
30
30
|
|
|
31
31
|
Pi reads the package manifest and loads the extension plus the optional
|
|
32
|
-
`
|
|
32
|
+
`agents` skill.
|
|
33
33
|
|
|
34
34
|
## 2. Start the lead Pi session inside herdr
|
|
35
35
|
|
|
36
36
|
The lead Pi session must run inside herdr. A lead Pi session started outside herdr
|
|
37
|
-
cannot safely manage herdr
|
|
37
|
+
cannot safely manage herdr agents.
|
|
38
38
|
|
|
39
|
-
The extension distinguishes a lead Pi session, valid managed
|
|
39
|
+
The extension distinguishes a lead Pi session, valid managed agents, and
|
|
40
40
|
unmanaged or invalid environments. Only supported managed environments receive
|
|
41
41
|
Pi Herdsman controls and status UI.
|
|
42
42
|
|
|
@@ -45,18 +45,18 @@ Pi Herdsman controls and status UI.
|
|
|
45
45
|
Ask the lead Pi agent in ordinary language, for example:
|
|
46
46
|
|
|
47
47
|
```text
|
|
48
|
-
Use an implementer
|
|
48
|
+
Use an implementer agent to implement the approved change.
|
|
49
49
|
```
|
|
50
50
|
|
|
51
51
|
Pi Herdsman starts the work asynchronously. Once the assignment is accepted, the
|
|
52
52
|
lead Pi session remains the session you interact with instead of waiting for the
|
|
53
|
-
|
|
53
|
+
agent to finish.
|
|
54
54
|
|
|
55
|
-
While
|
|
55
|
+
While agents work, you can continue discussing or planning with the
|
|
56
56
|
lead Pi session, delegate other independent work, inspect active work, or focus a
|
|
57
|
-
managed
|
|
57
|
+
managed agent pane.
|
|
58
58
|
|
|
59
|
-
You do not need to poll for completion. Results and
|
|
59
|
+
You do not need to poll for completion. Results and agent questions are
|
|
60
60
|
delivered back to the owning controller when they need attention.
|
|
61
61
|
The exact semantics are owned by [Lifecycle](concepts/lifecycle.md).
|
|
62
62
|
|
|
@@ -64,12 +64,12 @@ Pi Herdsman is opinionated about coordination, not workflow. Use the agent roles
|
|
|
64
64
|
tools, extensions, and process that fit your project; the lead agent handles the
|
|
65
65
|
structured coordination API internally.
|
|
66
66
|
|
|
67
|
-
## 4. Open the
|
|
67
|
+
## 4. Open the agents menu
|
|
68
68
|
|
|
69
69
|
In the lead Pi TUI, run:
|
|
70
70
|
|
|
71
71
|
```text
|
|
72
|
-
/
|
|
72
|
+
/agents
|
|
73
73
|
```
|
|
74
74
|
|
|
75
75
|
The native menu contains:
|
|
@@ -88,7 +88,7 @@ trusted project setting `piHerdsman.projectAgents` is `true`; effective preceden
|
|
|
88
88
|
is bundled < project < global. `Layout` controls whether newly started agents
|
|
89
89
|
use tabs or splits. `Stop all…` is destructive emergency control.
|
|
90
90
|
|
|
91
|
-
See [`/
|
|
91
|
+
See [`/agents` commands](reference/commands.md) for exact behavior.
|
|
92
92
|
|
|
93
93
|
## 5. Configure definitions and layout
|
|
94
94
|
|
|
@@ -100,7 +100,7 @@ expand the resolved definition instructions with Pi's native `Ctrl+O`
|
|
|
100
100
|
behavior. These edits always write global overrides, never project files.
|
|
101
101
|
|
|
102
102
|
Use `Layout` to choose the current `tab` or `split` placement for newly started
|
|
103
|
-
|
|
103
|
+
agents.
|
|
104
104
|
|
|
105
105
|
For complete configuration ownership, see:
|
|
106
106
|
|
|
@@ -112,12 +112,12 @@ For complete configuration ownership, see:
|
|
|
112
112
|
## 6. Watch and focus work
|
|
113
113
|
|
|
114
114
|
The status widget shows active managed work and transient `starting` activity.
|
|
115
|
-
|
|
116
|
-
Pi Herdsman cleans up the
|
|
115
|
+
Agents exist for one assignment only. After a terminal result is delivered,
|
|
116
|
+
Pi Herdsman cleans up the agent; the exact Pi session remains available for
|
|
117
117
|
continuation. The `Running` menu shows the complete authoritative inventory of
|
|
118
118
|
live or unresolved lifecycle work.
|
|
119
119
|
|
|
120
|
-
Managed
|
|
120
|
+
Managed agent panes show their validated breadcrumb identity. Their own active
|
|
121
121
|
Pi tool names can appear as compact bracketed metadata on that breadcrumb.
|
|
122
122
|
|
|
123
123
|
See [Status widget](reference/status-widget.md) for exact state, refresh, and
|
|
@@ -125,14 +125,14 @@ rendering behavior.
|
|
|
125
125
|
|
|
126
126
|
To continue a completed assignment with its existing conversational context,
|
|
127
127
|
use the exact `session_id` returned with its result in a new `delegate.session`
|
|
128
|
-
request. This starts a new
|
|
128
|
+
request. This starts a new agent generation with the saved session and current
|
|
129
129
|
effective definition configuration.
|
|
130
130
|
|
|
131
131
|
## 7. Recover only when needed
|
|
132
132
|
|
|
133
133
|
Normal coordination and targeted cleanup belong to the agent API. Use
|
|
134
134
|
`Stop all…` only when you deliberately want lead-level emergency cleanup of the
|
|
135
|
-
proven owned
|
|
135
|
+
proven owned agent tree.
|
|
136
136
|
|
|
137
137
|
For failure diagnosis and conservative cleanup, see [Recovery](guides/recovery.md).
|
|
138
138
|
|
|
@@ -145,7 +145,7 @@ eligible lead can become the chief with:
|
|
|
145
145
|
/chief
|
|
146
146
|
```
|
|
147
147
|
|
|
148
|
-
This is optional and does not change
|
|
148
|
+
This is optional and does not change agent ownership. In a UI session, use
|
|
149
149
|
`/chief leave` to leave after reviewing its confirmation, which reports
|
|
150
150
|
known outstanding supervised lead asks and leaves them pending. Cancellation
|
|
151
151
|
does nothing; an unavailable count is reported as unknown. Without a UI, leave
|
|
@@ -162,7 +162,7 @@ workspace-local Pi work.
|
|
|
162
162
|
## Next steps
|
|
163
163
|
|
|
164
164
|
- Keep delegating naturally through the lead Pi session.
|
|
165
|
-
- Use [`/
|
|
165
|
+
- Use [`/agents` commands](reference/commands.md) when you need human control.
|
|
166
166
|
- Configure [agent definitions](guides/agent-definitions.md).
|
|
167
167
|
- Read [Agent coordination API](agent-api.md) only when you need the model and
|
|
168
168
|
agent-facing contracts.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[Documentation index](../README.md)
|
|
4
4
|
|
|
5
|
-
Agent definitions describe
|
|
5
|
+
Agent definitions describe an agent's capabilities, not a required
|
|
6
6
|
workflow. They are Markdown files containing strict frontmatter plus an optional
|
|
7
7
|
prompt body.
|
|
8
8
|
|
|
@@ -69,15 +69,15 @@ enabled: false
|
|
|
69
69
|
---
|
|
70
70
|
```
|
|
71
71
|
|
|
72
|
-
The lead effective roster and `/
|
|
73
|
-
show their disabled status so the source can be re-enabled. A delegating
|
|
74
|
-
does not receive disabled
|
|
75
|
-
a disabled
|
|
76
|
-
fresh
|
|
77
|
-
dropping that
|
|
72
|
+
The lead effective roster and `/agents definitions` output keep disabled rows and
|
|
73
|
+
show their disabled status so the source can be re-enabled. A delegating agent
|
|
74
|
+
does not receive disabled definitions in its definition list. A delegating agent
|
|
75
|
+
referencing a disabled definition can remain discoverable, but is rejected during
|
|
76
|
+
assignment or fresh agent startup with an explicit disabled-definition reason
|
|
77
|
+
rather than silently dropping that definition.
|
|
78
78
|
|
|
79
79
|
Definition and session delegations reject disabled definitions with an
|
|
80
|
-
actionable error. An already active
|
|
80
|
+
actionable error. An already active agent may finish and remains controllable
|
|
81
81
|
according to its current available actions; disabling a definition does not
|
|
82
82
|
mutate that assignment.
|
|
83
83
|
|
|
@@ -85,11 +85,11 @@ mutate that assignment.
|
|
|
85
85
|
|
|
86
86
|
### `implementer`
|
|
87
87
|
|
|
88
|
-
Focused source-edit
|
|
88
|
+
Focused source-edit agent for an explicitly approved implementation.
|
|
89
89
|
|
|
90
90
|
### `researcher`
|
|
91
91
|
|
|
92
|
-
Focused current/external research
|
|
92
|
+
Focused current/external research agent. Read-only local policy. It also
|
|
93
93
|
allows the default web tool names exposed by `pi-web-access`:
|
|
94
94
|
`web_search`, `fetch_content`, `get_search_content`, and `source_check`.
|
|
95
95
|
Web access is optional. Install it with:
|
|
@@ -114,9 +114,9 @@ Independent read-only reviewer.
|
|
|
114
114
|
|
|
115
115
|
Fast read-only codebase reconnaissance.
|
|
116
116
|
|
|
117
|
-
### `
|
|
117
|
+
### `generalist`
|
|
118
118
|
|
|
119
|
-
General-purpose scoped execution
|
|
119
|
+
General-purpose scoped execution agent.
|
|
120
120
|
|
|
121
121
|
The bundled definitions are portable defaults, not required workflow stages.
|
|
122
122
|
Project definitions are for repository-specific policy; global definitions are
|
|
@@ -151,23 +151,23 @@ does not need extension-provided capabilities.
|
|
|
151
151
|
The `name` is authoritative; the filename itself is not the public definition
|
|
152
152
|
name.
|
|
153
153
|
|
|
154
|
-
## Allow direct
|
|
154
|
+
## Allow direct agents
|
|
155
155
|
|
|
156
156
|
```markdown
|
|
157
157
|
---
|
|
158
158
|
name: coordinator
|
|
159
159
|
tools: ["read", "bash"]
|
|
160
|
-
|
|
160
|
+
agents: ["scout", "researcher"]
|
|
161
161
|
---
|
|
162
162
|
|
|
163
|
-
Coordinate the assigned analysis and integrate direct
|
|
163
|
+
Coordinate the assigned analysis and integrate direct agent results.
|
|
164
164
|
```
|
|
165
165
|
|
|
166
|
-
The effective roster is validated atomically. Every `
|
|
166
|
+
The effective roster is validated atomically. Every `agents` name must exist.
|
|
167
167
|
Bundled role descriptions and bodies describe role behavior only; orchestration
|
|
168
168
|
guidance comes from the active controller contract.
|
|
169
169
|
|
|
170
|
-
With a non-empty explicit `tools` allowlist, `
|
|
170
|
+
With a non-empty explicit `tools` allowlist, `agent` is inferred unless
|
|
171
171
|
explicitly denied. See [Delegation](../concepts/delegation.md).
|
|
172
172
|
|
|
173
173
|
## Add body files
|
|
@@ -190,10 +190,15 @@ Supported forms:
|
|
|
190
190
|
@./relative.md
|
|
191
191
|
@../relative.md
|
|
192
192
|
@/absolute/path.md
|
|
193
|
+
@~/home-relative.md
|
|
193
194
|
```
|
|
194
195
|
|
|
195
196
|
References are resolved from the Markdown file that declares them.
|
|
196
197
|
|
|
198
|
+
The bundled definitions are `generalist`, `implementer`, `researcher`,
|
|
199
|
+
`reviewer`, and `scout`. The session-start agent-definition roster and the
|
|
200
|
+
`agent list` result use the same metadata projection.
|
|
201
|
+
|
|
197
202
|
For exact expansion, deduplication, and caller-file precedence, see
|
|
198
203
|
[Handoffs and files](handoffs.md).
|
|
199
204
|
|
|
@@ -202,7 +207,7 @@ For exact expansion, deduplication, and caller-file precedence, see
|
|
|
202
207
|
A lead Pi session can use:
|
|
203
208
|
|
|
204
209
|
```text
|
|
205
|
-
/
|
|
210
|
+
/agents definitions
|
|
206
211
|
```
|
|
207
212
|
|
|
208
213
|
or the model can use:
|
|
@@ -230,5 +235,5 @@ See [Customizing bundled agents](customizing-agents.md).
|
|
|
230
235
|
## See also
|
|
231
236
|
|
|
232
237
|
- [Agent-definition schema](../reference/agent-definition-schema.md)
|
|
233
|
-
- [`/
|
|
238
|
+
- [`/agents` commands](../reference/commands.md)
|
|
234
239
|
- [Configuration](../reference/configuration.md)
|
|
@@ -40,11 +40,9 @@ enabled: false
|
|
|
40
40
|
```
|
|
41
41
|
|
|
42
42
|
The disabled row remains visible to the lead Pi session, while owner-visible
|
|
43
|
-
definition lists omit it. A delegating
|
|
44
|
-
discoverable, but is rejected during assignment or fresh
|
|
45
|
-
explicit disabled-
|
|
46
|
-
|
|
47
|
-
There is no compatibility layer or second definition registry.
|
|
43
|
+
definition lists omit it. A delegating agent referencing a disabled agent can remain
|
|
44
|
+
discoverable, but is rejected during assignment or fresh agent startup with an
|
|
45
|
+
explicit disabled-agent reason.
|
|
48
46
|
|
|
49
47
|
## Body composition
|
|
50
48
|
|
|
@@ -98,7 +96,7 @@ prompt.
|
|
|
98
96
|
`systemPromptMode: append` appends the effective body to Pi's normal system
|
|
99
97
|
prompt.
|
|
100
98
|
|
|
101
|
-
Managed
|
|
99
|
+
Managed agents additionally receive shared herdr agent guidance at launch,
|
|
102
100
|
including the `ask_owner` contract. This shared guidance is infrastructure and
|
|
103
101
|
is not copied into every bundled role body.
|
|
104
102
|
|
|
@@ -116,10 +114,14 @@ bodyMode: append
|
|
|
116
114
|
The path is resolved relative to the declaring project or global file before
|
|
117
115
|
body composition, so each layer preserves its own declaring-file provenance.
|
|
118
116
|
|
|
119
|
-
References expand when each new
|
|
117
|
+
References expand when each new agent generation is constructed. A session
|
|
120
118
|
continuation keeps the saved Pi history but uses the current effective
|
|
121
119
|
definition configuration for its new generation.
|
|
122
120
|
|
|
121
|
+
The Definitions details view re-resolves the selected name when opened, so
|
|
122
|
+
metadata and body references reflect current overlays even if configuration
|
|
123
|
+
changes while the menu is open.
|
|
124
|
+
|
|
123
125
|
See [Handoffs and files](handoffs.md).
|
|
124
126
|
|
|
125
127
|
## Local tools, skills, and extensions
|
|
@@ -157,10 +159,10 @@ setting.
|
|
|
157
159
|
|
|
158
160
|
An explicit `tools` list controls selection even when `noTools` or
|
|
159
161
|
`noBuiltinTools` also selects restrictive defaults, while `excludeTools` wins
|
|
160
|
-
over the list. Managed
|
|
162
|
+
over the list. Managed agents retain `ask_owner` as mandatory infrastructure
|
|
161
163
|
and remove it from explicit exclusions; this exception does not apply to
|
|
162
164
|
unmanaged Pi launches. Same-named tools cannot be permissioned by source, and
|
|
163
|
-
collision winner ordering is not promised. Launcher-injected
|
|
165
|
+
collision winner ordering is not promised. Launcher-injected agent and
|
|
164
166
|
Herdr-state extensions are separate from definition extensions and remain
|
|
165
167
|
available when `noExtensions` disables ordinary discovery.
|
|
166
168
|
|
|
@@ -192,7 +194,7 @@ references, herdr does not resolve them relative to the definition file.
|
|
|
192
194
|
Lead Pi sessions with UI can use:
|
|
193
195
|
|
|
194
196
|
```text
|
|
195
|
-
/
|
|
197
|
+
/agents definitions
|
|
196
198
|
```
|
|
197
199
|
|
|
198
200
|
The native Definitions menu lists bundled, project, and global participation.
|
|
@@ -229,10 +231,10 @@ declares it.
|
|
|
229
231
|
|
|
230
232
|
Changes affect future definition delegations and session continuations, whose
|
|
231
233
|
runtime configuration comes from the current effective definition. They do not
|
|
232
|
-
mutate an already-running
|
|
234
|
+
mutate an already-running agent or the lead Pi session.
|
|
233
235
|
|
|
234
236
|
## See also
|
|
235
237
|
|
|
236
238
|
- [Agent-definition schema](../reference/agent-definition-schema.md)
|
|
237
|
-
- [`/
|
|
239
|
+
- [`/agents` commands](../reference/commands.md)
|
|
238
240
|
- [Agent definitions](agent-definitions.md)
|