Merge model selection pending state from master
This commit is contained in:
commit
8cfb9d4a67
321 files changed
+4127
-3994
No files matched your search
@@ -1116,8 +1116,8 @@
|
||||
en: 93c4403f94ecdc14
|
||||
zh: 2b2eb0c400881d71
|
||||
/session-persistence-event-catalog/resolved-persistence-types/sandboxmode:
|
||||
en: 13071a796a3bfcd2
|
||||
zh: 93e5fbb1cdf78a79
|
||||
en: c9fa5343ea99733b
|
||||
zh: d6de41351c57a73f
|
||||
/session-persistence-event-catalog/resolved-persistence-types/schedulechange:
|
||||
en: 16be53be76c16720
|
||||
zh: 38fd164dde86ccac
|
||||
|
||||
@@ -4307,7 +4307,7 @@ One of:
|
||||
|
||||
SHA-256: `fab2bb09bc5e3b9db0685e8f5500b029af1a2b33e70bc703c1d5d0f596fbc1fd`
|
||||
|
||||
Sources: [`packages/sandbox/sandbox/src/index.ts:29`](../packages/sandbox/sandbox/src/index.ts)
|
||||
Sources: [`packages/sandbox/sandbox/src/index.ts:30`](../packages/sandbox/sandbox/src/index.ts)
|
||||
|
||||
One of:
|
||||
|
||||
|
||||
@@ -4309,7 +4309,7 @@ SHA-256: `530da6c0267813bb4511af72883cc518834e624e3b3220a7062955fd57a788a6`
|
||||
|
||||
SHA-256: `fab2bb09bc5e3b9db0685e8f5500b029af1a2b33e70bc703c1d5d0f596fbc1fd`
|
||||
|
||||
来源:[`packages/sandbox/sandbox/src/index.ts:29`](../packages/sandbox/sandbox/src/index.ts)
|
||||
来源:[`packages/sandbox/sandbox/src/index.ts:30`](../packages/sandbox/sandbox/src/index.ts)
|
||||
|
||||
以下类型之一:
|
||||
|
||||
|
||||
Generated
+1
-1
@@ -93879,7 +93879,7 @@
|
||||
"packages/sandbox/sandbox/src/index.ts#SandboxMode"
|
||||
],
|
||||
"sources": [
|
||||
"packages/sandbox/sandbox/src/index.ts:29"
|
||||
"packages/sandbox/sandbox/src/index.ts:30"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
+50
-50
@@ -54,8 +54,8 @@
|
||||
en: e713a4a11a15d13c
|
||||
zh: e713a4a11a15d13c
|
||||
/tool-schema-catalog/deepseek-ai-dsh-tool-ask-user/ask-user-question:
|
||||
en: 3d5e09e59e7d5274
|
||||
zh: 624c14da73524315
|
||||
en: f42b7f17ad59577a
|
||||
zh: 7e1eee22ff35d4b1
|
||||
/tool-schema-catalog/deepseek-ai-dsh-tools:
|
||||
en: 76fbbf0fe38aef10
|
||||
zh: 76fbbf0fe38aef10
|
||||
@@ -66,26 +66,26 @@
|
||||
en: b500b530845e26a9
|
||||
zh: b500b530845e26a9
|
||||
/tool-schema-catalog/deepseek-ai-dsh-plan-mode/exit-plan-mode:
|
||||
en: a4bf2ed3f9f55ff1
|
||||
zh: ce7b136d3ad3946a
|
||||
en: b410483c2bd0c1a1
|
||||
zh: a07ceea6abf1dda3
|
||||
/tool-schema-catalog/deepseek-ai-dsh-tool-bash:
|
||||
en: 408ff0a5189bd7ec
|
||||
zh: 408ff0a5189bd7ec
|
||||
/tool-schema-catalog/deepseek-ai-dsh-tool-bash/bash:
|
||||
en: 70add265cf4cfda5
|
||||
zh: 47c2e23d50557d10
|
||||
en: 67ee2b8d4997bd1b
|
||||
zh: 82d1fb17b619c364
|
||||
/tool-schema-catalog/deepseek-ai-dsh-tool-present:
|
||||
en: f656575e6df094f6
|
||||
zh: f656575e6df094f6
|
||||
/tool-schema-catalog/deepseek-ai-dsh-tool-present/present:
|
||||
en: 4af0d859e1d39dc5
|
||||
zh: 780e75b1b42a6410
|
||||
en: 24ef5efe4c0edf50
|
||||
zh: a2914d345bd8eefa
|
||||
/tool-schema-catalog/deepseek-ai-dsh-tool-pwsh:
|
||||
en: b222fc05f3f8ee4a
|
||||
zh: b222fc05f3f8ee4a
|
||||
/tool-schema-catalog/deepseek-ai-dsh-tool-pwsh/pwsh:
|
||||
en: 775abe9511776e1d
|
||||
zh: 76ae33dab0dd399a
|
||||
en: 9d7055b9fb8ba9de
|
||||
zh: 0647025c36e80237
|
||||
/tool-schema-catalog/deepseek-ai-dsh-tool-cordis:
|
||||
en: 76c7c62f9029b6f5
|
||||
zh: 76c7c62f9029b6f5
|
||||
@@ -123,8 +123,8 @@
|
||||
en: 94bfc5b03c63baef
|
||||
zh: 339338a0e74696c3
|
||||
/tool-schema-catalog/deepseek-ai-dsh-tool-fs/read-image:
|
||||
en: 4e82f36d958c9c1c
|
||||
zh: 1f87182c327bec10
|
||||
en: f6f7a1140066ce04
|
||||
zh: d528e01a0939795a
|
||||
/tool-schema-catalog/deepseek-ai-dsh-tool-fs/write:
|
||||
en: f80700c5d57e8d87
|
||||
zh: fb7cccbba0d8d486
|
||||
@@ -132,11 +132,11 @@
|
||||
en: 703fea005ce84c50
|
||||
zh: 703fea005ce84c50
|
||||
/tool-schema-catalog/deepseek-ai-dsh-tool-fs-search/glob:
|
||||
en: 418d627507ddd693
|
||||
zh: 85f14b433c93efbe
|
||||
en: 3ba734ba7852cdd5
|
||||
zh: c6ce31ff2c195520
|
||||
/tool-schema-catalog/deepseek-ai-dsh-tool-fs-search/grep:
|
||||
en: 224288aaf3fbd214
|
||||
zh: 9e39dadfaa3768e7
|
||||
en: 6e1f7da62cc9a35b
|
||||
zh: ee7f3081887f8067
|
||||
/tool-schema-catalog/deepseek-ai-dsh-tool-terminal:
|
||||
en: 77501c1b592b6a88
|
||||
zh: 77501c1b592b6a88
|
||||
@@ -162,29 +162,29 @@
|
||||
en: 74fff3741e7c13de
|
||||
zh: 74fff3741e7c13de
|
||||
/tool-schema-catalog/deepseek-ai-dsh-tool-goal/create-goal:
|
||||
en: b22408124a0a6f34
|
||||
zh: 7b3bf9ceb5d7f1dc
|
||||
en: 9ae877cdf8a641a3
|
||||
zh: f83c3c09e80e4190
|
||||
/tool-schema-catalog/deepseek-ai-dsh-tool-goal/get-goal:
|
||||
en: 73ab2b24d4de682d
|
||||
zh: 82c42a427774c67d
|
||||
en: 0b517f13dfde11fe
|
||||
zh: b7ee7482e8ecde56
|
||||
/tool-schema-catalog/deepseek-ai-dsh-tool-goal/update-goal:
|
||||
en: a5ef842aa3d1109e
|
||||
zh: 8f0a9135944e6f1d
|
||||
en: e6b92fac5aad585c
|
||||
zh: 6b3cdd87b059a98f
|
||||
/tool-schema-catalog/deepseek-ai-dsh-schedule:
|
||||
en: 573da0cf49b1eed6
|
||||
zh: 573da0cf49b1eed6
|
||||
/tool-schema-catalog/deepseek-ai-dsh-schedule/schedule-create:
|
||||
en: 687b784279240ed2
|
||||
zh: a23fa1b08c15642b
|
||||
en: 0a10b5db8919d316
|
||||
zh: 175d680a29f59b63
|
||||
/tool-schema-catalog/deepseek-ai-dsh-schedule/schedule-delete:
|
||||
en: 3b5a084ce0d87d13
|
||||
zh: c1356d4b062f0e63
|
||||
en: cff096695f06e298
|
||||
zh: 3d0063a1e529377f
|
||||
/tool-schema-catalog/deepseek-ai-dsh-schedule/schedule-list:
|
||||
en: 4422ae2e2a4ca897
|
||||
zh: 56431645118d6ca0
|
||||
en: d8543c8503d0947e
|
||||
zh: 205e6c813ad2b37c
|
||||
/tool-schema-catalog/deepseek-ai-dsh-schedule/schedule-update:
|
||||
en: a86e8751a34e9f06
|
||||
zh: 92a32fd4fc3657b4
|
||||
en: 3d5e2517b510238b
|
||||
zh: d6e5c4c4465c9645
|
||||
/tool-schema-catalog/deepseek-ai-dsh-tool-lsp:
|
||||
en: 32982123b1f0e5bc
|
||||
zh: 32982123b1f0e5bc
|
||||
@@ -201,8 +201,8 @@
|
||||
en: 927a5ac0974b7642
|
||||
zh: 927a5ac0974b7642
|
||||
/tool-schema-catalog/deepseek-ai-dsh-tool-skill/skill:
|
||||
en: cd716dc11308817d
|
||||
zh: 08b4ed76101642a2
|
||||
en: 9b159d5831855afb
|
||||
zh: 275ee82af0e0f59a
|
||||
/tool-schema-catalog/deepseek-ai-dsh-tool-session-query:
|
||||
en: eac1dff4b6d9e195
|
||||
zh: eac1dff4b6d9e195
|
||||
@@ -228,32 +228,32 @@
|
||||
en: c89084b31ffccbce
|
||||
zh: d7b3b7000f2d2be9
|
||||
/tool-schema-catalog/deepseek-ai-dsh-tool-subagent/subagent:
|
||||
en: df17e5091f9cdfc9
|
||||
zh: 3b31fe9df04242f2
|
||||
en: 55cbd29d70bcf3d7
|
||||
zh: 886a1b57446bd5e1
|
||||
/tool-schema-catalog/deepseek-ai-dsh-tool-subagent-control:
|
||||
en: ab82e130c3413f04
|
||||
zh: ab82e130c3413f04
|
||||
/tool-schema-catalog/deepseek-ai-dsh-tool-subagent-control/interrupt-agent:
|
||||
en: 3eb5ac28342e354f
|
||||
zh: 91ca5628d8e333f0
|
||||
en: 0cec3f2520050839
|
||||
zh: 06735f086cea84f1
|
||||
/tool-schema-catalog/deepseek-ai-dsh-tool-subagent-control/list-agents:
|
||||
en: e688153e9ba4a684
|
||||
zh: 56c36cb0140c9202
|
||||
en: ae22e8543d123c39
|
||||
zh: 4943a5c5980fc2d3
|
||||
/tool-schema-catalog/deepseek-ai-dsh-tool-subagent-control/send-message:
|
||||
en: b4d8ffa51c3c9cce
|
||||
zh: 32d5281b2dec0d81
|
||||
en: 2ebdc450faef6446
|
||||
zh: 7e3cff35fedc6a32
|
||||
/tool-schema-catalog/deepseek-ai-dsh-tool-jobs:
|
||||
en: 9be673b1604d0114
|
||||
zh: 9be673b1604d0114
|
||||
/tool-schema-catalog/deepseek-ai-dsh-tool-jobs/job-kill:
|
||||
en: 39e53ddd7ea31c2d
|
||||
zh: 16640c2952c263b6
|
||||
en: 14294cc1988ae768
|
||||
zh: 80a9152bdc02723f
|
||||
/tool-schema-catalog/deepseek-ai-dsh-tool-jobs/job-list:
|
||||
en: 0c37fb1fed979d72
|
||||
zh: 5ea9d07f5a4a8a6c
|
||||
/tool-schema-catalog/deepseek-ai-dsh-tool-jobs/job-output:
|
||||
en: 2a1d3887688abd05
|
||||
zh: c1cafbabccc2e021
|
||||
en: f927cca09b283e21
|
||||
zh: 2acd9b36737f17c2
|
||||
/tool-schema-catalog/deepseek-ai-dsh-experimental-tool-agent-team:
|
||||
en: 6b1106f417b50db6
|
||||
zh: 6b1106f417b50db6
|
||||
@@ -288,14 +288,14 @@
|
||||
en: dea62d26fb18ff68
|
||||
zh: dea62d26fb18ff68
|
||||
/tool-schema-catalog/deepseek-ai-dsh-tool-todo/todo-write:
|
||||
en: 3e63adceedda7304
|
||||
zh: bc20a7b69ce2cddd
|
||||
en: 8c64fe5f2e58a890
|
||||
zh: e3c780fc842aeb43
|
||||
/tool-schema-catalog/deepseek-ai-dsh-tool-workflow:
|
||||
en: bb38a9d29f46563c
|
||||
zh: bb38a9d29f46563c
|
||||
/tool-schema-catalog/deepseek-ai-dsh-tool-workflow/workflow:
|
||||
en: 4ca5c5f9ebc188e5
|
||||
zh: 98bbc45e441019af
|
||||
en: fdd667cfe21481e8
|
||||
zh: 88864d3b958398a4
|
||||
/tool-schema-catalog/deepseek-ai-dsh-tool-workspace-dependencies:
|
||||
en: 96bffc40b80df4b8
|
||||
zh: 96bffc40b80df4b8
|
||||
@@ -309,5 +309,5 @@
|
||||
en: 8673f203aea9bdf2
|
||||
zh: 4e17783ffdf34c83
|
||||
/tool-schema-catalog/deepseek-ai-dsh-tool-web/web-search:
|
||||
en: 096d6a19c83af773
|
||||
zh: fa5213caf9401216
|
||||
en: cc1ad38bf0006710
|
||||
zh: 324eacb827a09e93
|
||||
+59
-62
@@ -449,7 +449,7 @@ Source: [`packages/experimental/browser-use-stagehand-native/src/index.ts`](../p
|
||||
|
||||
### `ask_user_question`
|
||||
|
||||
Ask the user a concise question when you need confirmation, a choice, or missing information before proceeding. Send one or more questions, each with a stable id that will be echoed in the answer.
|
||||
Ask the user a concise question when you need confirmation, a choice, or missing information before proceeding.
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -571,7 +571,7 @@ Owned by the tool registry as a reserved transport outside filterable capability
|
||||
|
||||
### `exit_plan_mode`
|
||||
|
||||
Use only in plan mode. Present your plan for the user's review and, on approval, leave plan mode. Send the COMPLETE plan as markdown, starting with a # heading that names it. The user may approve (carry out the plan from your next step) or keep planning — their feedback comes back in the tool result; revise and present again.
|
||||
Use only in plan mode. Present your plan for the user's review and, on approval, leave plan mode. The user may approve (carry out the plan from your next step) or keep planning — their feedback comes back in the tool result; revise and present again.
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -598,7 +598,7 @@ exit_plan_mode stays in the model-facing schema while planning is inactive so tr
|
||||
|
||||
### `bash`
|
||||
|
||||
Execute a bash command (`bash -c`) and return its stdout/stderr. Each call runs in a fresh shell: no state (cwd, variables, functions) persists between calls — pass `workdir` instead of using `cd`. Non-zero exits are reported as `[exit code: N]`. Current harness environment facts are exposed through managed `$DSH_*` variables; inspect them when needed. Commands may run under a file sandbox; a blocked file operation is reported as `[sandbox: file access denied under <mode> mode]` — a policy denial, not a bug in the command; do not retry another way. Long output is truncated to its tail; the full output is saved to a file whose path is reported when available. Set `run_in_background: true` for long-running commands: the call returns a job id immediately; read its output with `job_output` and stop it with `job_kill`. A foreground command that reaches its timeout is not killed: it moves to the background the same way, returning its job id and the output so far.
|
||||
Execute a bash command (`bash -c`) and return its stdout/stderr. Each call runs in a fresh shell; pass `workdir` instead of using `cd`. Managed `$DSH_*` variables expose current harness environment facts. Long output is truncated to its tail; the full output is saved to a file whose path is reported when available. Commands may run under a file sandbox; a blocked file operation is reported as `[sandbox: file access denied under <mode> mode]`, a policy denial: do not retry another way.
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -642,7 +642,7 @@ The bash tool is the model-facing consumer of the bash executor seam. With a job
|
||||
|
||||
### `present`
|
||||
|
||||
Declare selected existing files accessible through the Session filesystem as final deliverables. Use present when the user needs a separate file deliverable, especially Office documents, spreadsheets, and slide decks. Prefer showing results in your final response when that is sufficient; creating or editing a file does not by itself require present. Usually select the 1-2 most important deliverables; include more when needed, but at most 4 files in a single present call. The files must already exist. The user opens the current source files; their contents are not copied or preserved.
|
||||
Declare existing files as final deliverables for the user. Use it when the user needs a separate file, especially Office documents, spreadsheets, and slide decks; prefer your final response when that suffices. The user opens the current files; their contents are not copied.
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -650,6 +650,7 @@ Declare selected existing files accessible through the Session filesystem as fin
|
||||
"properties": {
|
||||
"files": {
|
||||
"type": "array",
|
||||
"description": "Usually the 1-2 most important deliverables; at most 4 per call.",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
@@ -685,7 +686,7 @@ Deliveries belong to the calling Session; Web ui-deliverables supplies source-fi
|
||||
|
||||
### `pwsh`
|
||||
|
||||
Execute a PowerShell command (`pwsh -Command`) and return its stdout/stderr. Each call runs in a fresh pwsh process: no state (cwd, variables, functions) persists between calls — pass `workdir` instead of using `cd`. Paths use native Windows form (`C:\...`); read environment variables with `$env:NAME`. Non-zero exits are reported as `[exit code: N]`. Current harness environment facts are exposed through managed `$env:DSH_*` variables; inspect them when needed. Commands may run under a file sandbox; a blocked file operation is reported as `[sandbox: file access denied under <mode> mode]` — a policy denial, not a bug in the command; do not retry another way. Long output is truncated to its tail; the full output is saved to a file whose path is reported when available. On Windows a force-killed command settles as `[exit code: 1]` without a signal marker — treat it as an interruption, not a command failure. Set `run_in_background: true` for long-running commands: the call returns a job id immediately; read its output with `job_output` and stop it with `job_kill`. A foreground command that reaches its timeout is not killed: it moves to the background the same way, returning its job id and the output so far.
|
||||
Execute a PowerShell command (`pwsh -Command`) and return its stdout/stderr. Each call runs in a fresh pwsh process; pass `workdir` instead of using `cd`. Paths use native Windows form (`C:\...`); read environment variables with `$env:NAME`. Managed `$env:DSH_*` variables expose current harness environment facts. Long output is truncated to its tail; the full output is saved to a file whose path is reported when available. On Windows a force-killed command settles as `[exit code: 1]` without a signal marker — treat it as an interruption, not a command failure. Commands may run under a file sandbox; a blocked file operation is reported as `[sandbox: file access denied under <mode> mode]`, a policy denial: do not retry another way.
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -958,7 +959,7 @@ Edit an existing UTF-8 text file by replacing literal text.
|
||||
},
|
||||
"old_string": {
|
||||
"type": "string",
|
||||
"description": "Literal text to replace. Must match exactly."
|
||||
"description": "Literal text to replace."
|
||||
},
|
||||
"new_string": {
|
||||
"type": "string",
|
||||
@@ -1010,7 +1011,7 @@ Source: [`packages/fs/tool-fs/src/index.ts`](../packages/fs/tool-fs/src/index.ts
|
||||
|
||||
### `read_image`
|
||||
|
||||
Read a PNG/JPEG/WebP/GIF file and return the image itself. A path without a file extension is accepted; the format is detected from the file content, so normalized attachment paths can be passed directly without copying or renaming. Harness validates and downscales large supported images before the next model request, so use this tool directly instead of installing image libraries or creating thumbnails merely to inspect an image. Independent files may be read concurrently in small batches. Requires the current model to accept image input.
|
||||
Read a PNG/JPEG/WebP/GIF file and return the image itself. Large images are downscaled automatically; do not install image libraries or create thumbnails to inspect an image.
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -1063,7 +1064,7 @@ The read-before-write/edit policy is added by `@deepseek-ai/dsh-fs-observation-p
|
||||
|
||||
### `glob`
|
||||
|
||||
Find files whose paths match a glob pattern. Returns matching file paths — never directories — including hidden and ignored files (VCS metadata directories are excluded). Up to 100 paths come back in modification-time order; a larger result instead returns 100 paths sampled across top-level entries, says so, and reports where the complete sorted list was saved. This tool does not enumerate directory entries.
|
||||
Find files, not directories, whose paths match a glob pattern, including hidden and ignored files. Returns up to 100 paths in modification-time order; a larger result is sampled across top-level entries and reports where the complete list was saved.
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -1088,7 +1089,7 @@ Source: [`packages/fs/tool-fs-search/src/index.ts`](../packages/fs/tool-fs-searc
|
||||
|
||||
### `grep`
|
||||
|
||||
Search file contents with a ripgrep regular expression. Returns matching lines with line numbers, grouped by file. Returns the first 250 matches inline; a capped result reports where the complete match list was saved. Use read on a matched file for surrounding context.
|
||||
Search file contents with a ripgrep regular expression. Returns matching lines with line numbers, grouped by file. Returns up to 250 matches; a larger result reports where the complete match list was saved.
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -1288,7 +1289,7 @@ The six terminal tools are opt-in and complement one-shot shell/filesystem tools
|
||||
|
||||
### `create_goal`
|
||||
|
||||
Create one persisted same-session completion goal when the current direct human request is a long-running objective that should continue across autonomous goal rounds. You may infer that intent without requiring the user to say "create a goal". Do not use this for trivial single-turn work. Execution rejects non-human and subagent authority.
|
||||
Create a persisted goal that keeps this session working across automatic continuation rounds. Use it when the direct human request is a long-running objective, even if the user did not say "goal"; not for single-turn work.
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -1313,7 +1314,7 @@ Source: [`packages/goal/tool-goal/src/index.ts`](../packages/goal/tool-goal/src/
|
||||
|
||||
### `get_goal`
|
||||
|
||||
Read the current same-session goal, including its exact id/revision, objective, phase, completed continuation rounds, round limit, blocker reason when present, and whether another continuation is armed. Call this before updating a goal.
|
||||
Read the current session goal, including the id and revision that update_goal requires.
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -1326,7 +1327,7 @@ Source: [`packages/goal/tool-goal/src/index.ts`](../packages/goal/tool-goal/src/
|
||||
|
||||
### `update_goal`
|
||||
|
||||
Update the exact current goal revision. edit, pause, and resume require a direct top-level human request. During an automatic continuation of the current goal, complete and blocked are also allowed. blocked is rejected before the configured minimum round count; the model remains responsible for judging that the same condition persisted across those rounds and must explain it in blocked_reason.
|
||||
Update the current goal.
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -1342,7 +1343,7 @@ Update the exact current goal revision. edit, pause, and resume require a direct
|
||||
},
|
||||
"action": {
|
||||
"type": "string",
|
||||
"description": "edit | pause | resume | complete | blocked",
|
||||
"description": "edit, pause, and resume require a direct top-level human request. complete and blocked are also allowed during an automatic continuation of this goal; blocked is rejected before the configured minimum round count.",
|
||||
"enum": [
|
||||
"edit",
|
||||
"pause",
|
||||
@@ -1361,7 +1362,7 @@ Update the exact current goal revision. edit, pause, and resume require a direct
|
||||
},
|
||||
"blocked_reason": {
|
||||
"type": "string",
|
||||
"description": "Concrete blocking condition; required only with action blocked."
|
||||
"description": "Required only with action blocked: the concrete condition that persisted across rounds and blocks progress."
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
@@ -1382,7 +1383,7 @@ create, edit, pause, and resume require direct-human root authority; complete an
|
||||
|
||||
### `schedule_create`
|
||||
|
||||
Create one reminder in the current session. Supply a non-empty prompt, a title, and exactly one selector: a positive safe-integer after_seconds delay, at as a strict offset date-time or local date/time object, safe-integer every_seconds of at least 60, daily as {time: "23:00:00", time_zone: "Asia/Shanghai"}, weekly as {time: "09:00:00", time_zone: "Asia/Shanghai", weekdays: [1, 3]} with Monday 1 through Sunday 7, or cron as {expression: "*/15 9-17 * * 1-5", time_zone: "Asia/Shanghai"} with the five fields minute hour day-of-month month day-of-week. Every creation requires a title of at most 120 characters, non-empty after trimming; it names the task on its card, its detail heading, and in the task lists. Daily, weekly, and cron reminders retain that local time and zone; missing wall-clock times skip the date and repeated times use only the earlier instant. A cron day-of-month and day-of-week pair matches when either field matches once both are restricted. Fixed-rate targets stay creation-aligned until an interval edit establishes a new anchor. All four recurring kinds batch one latest occurrence per overdue rule. The Host restores this session when a reminder is due. After downtime, each recurring reminder delivers its latest missed occurrence once. Delivery can repeat after a crash.
|
||||
Create a reminder in the current session that delivers prompt when it becomes due. Supply exactly one timing parameter: after_seconds, at, every_seconds, daily, weekly, or cron. Local times that do not exist in the zone are skipped; repeated local times fire once, at the earlier instant. After downtime, a recurring reminder delivers only its latest missed occurrence. Delivery can repeat after a crash.
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -1394,19 +1395,19 @@ Create one reminder in the current session. Supply a non-empty prompt, a title,
|
||||
},
|
||||
"title": {
|
||||
"type": "string",
|
||||
"description": "Required task name of at most 120 characters, non-empty after trimming; it becomes the task card title, the detail heading, and the name in the task lists."
|
||||
"description": "Task name of at most 120 characters, shown on the task card and in task lists."
|
||||
},
|
||||
"after_seconds": {
|
||||
"type": "number",
|
||||
"description": "Positive safe-integer delay in seconds."
|
||||
"description": "Delay in whole seconds."
|
||||
},
|
||||
"every_seconds": {
|
||||
"type": "number",
|
||||
"description": "Fixed-rate safe-integer interval in seconds, at least 60."
|
||||
"description": "Fixed-rate interval in whole seconds, at least 60, aligned to the creation time; changing it with schedule_update re-aligns it to the save time."
|
||||
},
|
||||
"daily": {
|
||||
"type": "object",
|
||||
"description": "Daily local wall-clock time in an explicit IANA zone; skips nonexistent times and uses the earlier repeated time once.",
|
||||
"description": "Every day at a local time.",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"time": {
|
||||
@@ -1425,7 +1426,7 @@ Create one reminder in the current session. Supply a non-empty prompt, a title,
|
||||
},
|
||||
"weekly": {
|
||||
"type": "object",
|
||||
"description": "Weekly local wall-clock time on explicit ISO weekdays in an explicit IANA zone; skips nonexistent times and uses the earlier repeated time once per date.",
|
||||
"description": "On the given weekdays at a local time.",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"time": {
|
||||
@@ -1438,7 +1439,7 @@ Create one reminder in the current session. Supply a non-empty prompt, a title,
|
||||
},
|
||||
"weekdays": {
|
||||
"type": "array",
|
||||
"description": "Non-empty ISO weekdays, Monday 1 through Sunday 7, without repetitions.",
|
||||
"description": "ISO weekdays, Monday 1 through Sunday 7, without repetitions.",
|
||||
"items": {
|
||||
"type": "integer"
|
||||
}
|
||||
@@ -1452,12 +1453,12 @@ Create one reminder in the current session. Supply a non-empty prompt, a title,
|
||||
},
|
||||
"cron": {
|
||||
"type": "object",
|
||||
"description": "Five-field Vixie cron expression evaluated in an explicit IANA zone; skips nonexistent local times and uses the earlier repeated time once per date.",
|
||||
"description": "Five-field Vixie cron expression in a time zone.",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"expression": {
|
||||
"type": "string",
|
||||
"description": "minute hour day-of-month month day-of-week, for example \"*/15 9-17 * * 1-5\"."
|
||||
"description": "minute hour day-of-month month day-of-week, for example \"*/15 9-17 * * 1-5\". When both day fields are restricted, a date matches if either one matches."
|
||||
},
|
||||
"time_zone": {
|
||||
"type": "string",
|
||||
@@ -1495,7 +1496,7 @@ Create one reminder in the current session. Supply a non-empty prompt, a title,
|
||||
]
|
||||
}
|
||||
],
|
||||
"description": "Absolute target as strict offset RFC 3339 or local date/time with an explicit IANA zone."
|
||||
"description": "Absolute target: an RFC 3339 date-time with offset, or a local date, time, and IANA time_zone."
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
@@ -1509,7 +1510,7 @@ Source: [`packages/schedule/schedule/src/tools.ts`](../packages/schedule/schedul
|
||||
|
||||
### `schedule_delete`
|
||||
|
||||
Delete one retained reminder in the current session by its exact id, whether active or inactive. Unknown or already-deleted ids return deleted false. Deletion does not retract a queued message.
|
||||
Delete a reminder in the current session, active or inactive. Deletion does not retract a reminder message that is already queued.
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -1517,7 +1518,7 @@ Delete one retained reminder in the current session by its exact id, whether act
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string",
|
||||
"description": "Exact schedule id."
|
||||
"description": "Schedule id returned by schedule_list."
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
@@ -1530,7 +1531,7 @@ Source: [`packages/schedule/schedule/src/tools.ts`](../packages/schedule/schedul
|
||||
|
||||
### `schedule_list`
|
||||
|
||||
List every active reminder in the current session, including its exact id, title, UTC target, scheduled or overdue state, and host delivery mode. The returned order is not significant.
|
||||
List the active reminders in the current session.
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -1543,7 +1544,7 @@ Source: [`packages/schedule/schedule/src/tools.ts`](../packages/schedule/schedul
|
||||
|
||||
### `schedule_update`
|
||||
|
||||
Change one reminder in the current session in place, keeping its id and its saved delivery records: address it by the exact id schedule_list returned, then supply a new title or prompt, or exactly one new selector from at, every_seconds, daily, weekly, or cron in the same forms schedule_create accepts. An omitted field keeps its stored value. After is not updatable: create a new reminder for a relative delay. The Host compares the record it finds for that id with the stored one, so a concurrent edit returns schedule_conflict instead of overwriting it; an inactive or unknown reminder returns updated false. Editing an every_seconds interval anchors the new fixed rate at the accepted save time; a name or instruction change alone keeps the committed target.
|
||||
Change a reminder in place, keeping its id. Supply a new title, prompt, or at most one timing parameter; omitted fields keep their stored values. To change a relative delay, create a new reminder.
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -1551,23 +1552,23 @@ Change one reminder in the current session in place, keeping its id and its save
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string",
|
||||
"description": "Exact schedule id that schedule_list returned for one reminder."
|
||||
"description": "Schedule id returned by schedule_list."
|
||||
},
|
||||
"title": {
|
||||
"type": "string",
|
||||
"description": "New task name of at most 120 characters, non-empty after trimming; omitted keeps the stored name."
|
||||
"description": "New task name of at most 120 characters."
|
||||
},
|
||||
"prompt": {
|
||||
"type": "string",
|
||||
"description": "New reminder content, non-empty after trimming; omitted keeps the stored instruction."
|
||||
"description": "New reminder content."
|
||||
},
|
||||
"every_seconds": {
|
||||
"type": "number",
|
||||
"description": "Fixed-rate safe-integer interval in seconds, at least 60."
|
||||
"description": "Fixed-rate interval in whole seconds, at least 60, aligned to the creation time; changing it with schedule_update re-aligns it to the save time."
|
||||
},
|
||||
"daily": {
|
||||
"type": "object",
|
||||
"description": "Daily local wall-clock time in an explicit IANA zone; skips nonexistent times and uses the earlier repeated time once.",
|
||||
"description": "Every day at a local time.",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"time": {
|
||||
@@ -1586,7 +1587,7 @@ Change one reminder in the current session in place, keeping its id and its save
|
||||
},
|
||||
"weekly": {
|
||||
"type": "object",
|
||||
"description": "Weekly local wall-clock time on explicit ISO weekdays in an explicit IANA zone; skips nonexistent times and uses the earlier repeated time once per date.",
|
||||
"description": "On the given weekdays at a local time.",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"time": {
|
||||
@@ -1599,7 +1600,7 @@ Change one reminder in the current session in place, keeping its id and its save
|
||||
},
|
||||
"weekdays": {
|
||||
"type": "array",
|
||||
"description": "Non-empty ISO weekdays, Monday 1 through Sunday 7, without repetitions.",
|
||||
"description": "ISO weekdays, Monday 1 through Sunday 7, without repetitions.",
|
||||
"items": {
|
||||
"type": "integer"
|
||||
}
|
||||
@@ -1613,12 +1614,12 @@ Change one reminder in the current session in place, keeping its id and its save
|
||||
},
|
||||
"cron": {
|
||||
"type": "object",
|
||||
"description": "Five-field Vixie cron expression evaluated in an explicit IANA zone; skips nonexistent local times and uses the earlier repeated time once per date.",
|
||||
"description": "Five-field Vixie cron expression in a time zone.",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"expression": {
|
||||
"type": "string",
|
||||
"description": "minute hour day-of-month month day-of-week, for example \"*/15 9-17 * * 1-5\"."
|
||||
"description": "minute hour day-of-month month day-of-week, for example \"*/15 9-17 * * 1-5\". When both day fields are restricted, a date matches if either one matches."
|
||||
},
|
||||
"time_zone": {
|
||||
"type": "string",
|
||||
@@ -1656,7 +1657,7 @@ Change one reminder in the current session in place, keeping its id and its save
|
||||
]
|
||||
}
|
||||
],
|
||||
"description": "Absolute target as strict offset RFC 3339 or local date/time with an explicit IANA zone."
|
||||
"description": "Absolute target: an RFC 3339 date-time with offset, or a local date, time, and IANA time_zone."
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
@@ -1754,7 +1755,7 @@ A fixed foreground workflow starts one fresh structured child per round; the mod
|
||||
|
||||
### `skill`
|
||||
|
||||
Load the full instructions for an available skill. Call this with the exact skill name from the session skill catalog before acting on a task that names or clearly matches that skill.
|
||||
Load the full instructions for a skill. Call it before acting on a task that names or clearly matches a skill in the session skill catalog.
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -2036,7 +2037,7 @@ Source: [`packages/subagent/tool-subagent/src/list-models.ts`](../packages/subag
|
||||
|
||||
### `subagent`
|
||||
|
||||
Delegate a self-contained task to a subagent (a separate agent that works in its own context) to offload focused, independent work — research, a scoped implementation, an analysis — so it does not consume this conversation's context. The subagent returns its result, not its intermediate steps. Give it a complete, standalone prompt: it does not see this conversation. This call waits for the result by default. Set `run_in_background: true` to return a job id; collect with `job_output` and stop with `job_kill`.
|
||||
Delegate a self-contained task to a subagent (a separate agent that works in its own context) to offload focused, independent work — research, a scoped implementation, an analysis — so it does not consume this conversation's context. The subagent returns its result, not its intermediate steps. This call waits for the result by default.
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -2052,7 +2053,7 @@ Delegate a self-contained task to a subagent (a separate agent that works in its
|
||||
},
|
||||
"run_in_background": {
|
||||
"type": "boolean",
|
||||
"description": "Whether to run as a background job and return its id. Defaults to false; collect with job_output or stop with job_kill."
|
||||
"description": "Run as a background job and return its id (collect with job_output, stop with job_kill). Defaults to false."
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
@@ -2072,7 +2073,7 @@ The registered delegation name is the load-time `toolName` config (default `suba
|
||||
|
||||
### `interrupt_agent`
|
||||
|
||||
Request cancellation of a background agent's current turn by its agent id. The target may be your direct child or a deeper agent created under you. Only the current turn stops: messages already queued for the agent stay parked until a later send_message, agents it started keep running, and the agent itself stays available for follow-ups. This call returns as soon as the stop request is accepted, so the target may keep running briefly; interrupting an agent that already finished is an accepted no-op.
|
||||
Ask a subagent to stop its current work. This call returns without waiting for it to stop. You can continue a direct child's conversation later with send_message. Subagents it started will keep running.
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -2080,7 +2081,7 @@ Request cancellation of a background agent's current turn by its agent id. The t
|
||||
"properties": {
|
||||
"agent_id": {
|
||||
"type": "string",
|
||||
"description": "The agent id of the running agent to interrupt."
|
||||
"description": "The id of an agent created under you: your direct child or a deeper descendant."
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
@@ -2093,7 +2094,7 @@ Source: [`packages/subagent/tool-subagent-control/src/index.ts`](../packages/sub
|
||||
|
||||
### `list_agents`
|
||||
|
||||
List your continuable background subagents by durable id and label. Use it to recall which ones you started, not to poll for completion — you are told when one finishes. Status comes from the live registry: running means the agent is working right now; inactive means no turn is executing, whether the child is loaded or must be resumed. inactive does not describe task completion, success, failure, or waiting for other agents. A `send_message` steers a running child at its nearest step boundary or starts or resumes a turn for an inactive child, and a direct child remains a `send_message` candidate in every status. The snapshot is not a delivery promise — `send_message` performs the authoritative check and may still fail. Children that could not be read are reported as diagnostics only in `descendants` scope. Scope `descendants` walks the whole tree below you in stable pre-order, annotating each entry with its durable direct-parent session id and depth. You may use `send_message` only for depth-1 entries; deeper entries are candidates for `interrupt_agent` only.
|
||||
List subagents you started, with their ids, labels, and status. running means it is working; inactive means it is not currently working. You will be notified when a subagent finishes; there is no need to keep checking its status. Use send_message to continue the conversation.
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -2101,7 +2102,7 @@ List your continuable background subagents by durable id and label. Use it to re
|
||||
"properties": {
|
||||
"scope": {
|
||||
"type": "string",
|
||||
"description": "children (default) lists direct children only; descendants walks the complete tree below you.",
|
||||
"description": "children (default) lists direct children, which accept send_message in any status. descendants lists the whole tree below you with each entry's parent session id and depth; entries deeper than 1 accept only interrupt_agent.",
|
||||
"enum": [
|
||||
"children",
|
||||
"descendants"
|
||||
@@ -2115,7 +2116,7 @@ Source: [`packages/subagent/tool-subagent-control/src/list-agents.ts`](../packag
|
||||
|
||||
### `send_message`
|
||||
|
||||
Send a message to a direct continuable child by its agent id. If you are a resident continuable child, you may also target your direct parent. If the target is still working, the message steers its nearest step; if it is inactive, the message starts or resumes a turn. This call returns no answer from the agent — only confirmation that the message was delivered. A failure means the message was NOT delivered.
|
||||
Send a message to an agent. A working agent receives it at its next step; an idle agent starts a new turn with it. Returns delivery confirmation, not the agent's answer.
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -2147,7 +2148,7 @@ The globally named control tools over continuable background subagents: provider
|
||||
|
||||
### `job_kill`
|
||||
|
||||
Request cancellation of a running background job by job id. Returns immediately; the job settles as killed once its work actually stops.
|
||||
Request cancellation of a running background job.
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -2185,7 +2186,7 @@ Source: [`packages/jobs/tool-jobs/src/index.ts`](../packages/jobs/tool-jobs/src/
|
||||
|
||||
### `job_output`
|
||||
|
||||
Read a background job. Stream jobs return only output since the previous read; final-output jobs return their result after settlement. Every response ends with `[status: ...]`. Reads are non-blocking unless `wait: true`, which waits up to the configured cap.
|
||||
Read a background job: output since the previous read for stream jobs, or the result of a finished final-output job.
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -2197,11 +2198,11 @@ Read a background job. Stream jobs return only output since the previous read; f
|
||||
},
|
||||
"wait": {
|
||||
"type": "boolean",
|
||||
"description": "Block until the job reaches a terminal status or the timeout expires. A timed-out wait returns [status: running] and leaves the job alive."
|
||||
"description": "Block until the job finishes or the timeout expires; a timed-out wait leaves the job running. Defaults to false."
|
||||
},
|
||||
"timeout_ms": {
|
||||
"type": "number",
|
||||
"description": "Max wait in milliseconds (only meaningful with wait: true). Defaults to the configured wait timeout; capped by the configured maximum."
|
||||
"description": "Max wait in milliseconds with wait: true. Defaults to and is capped by configuration."
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
@@ -2510,7 +2511,7 @@ All nine tools are scoped to implicit Team Leads and durable teammates. The ship
|
||||
|
||||
### `todo_write`
|
||||
|
||||
Record and update a structured task list for the current work. Send the ENTIRE list every call — it REPLACES the previous list (there are no partial updates, no per-item edits). Use it to plan multi-step work and show progress: add one todo per concrete step before you start. Mark every todo being actively worked on `in_progress` — several at once when work genuinely runs in parallel (e.g. concurrent subagents or background commands), one for sequential work; while work remains, at least one task should be `in_progress`. Mark a todo `completed` the moment it is done (do not batch completions), and allow no `in_progress` item only once all work is complete. Skip the list for trivial single-step tasks. Statuses: `pending` (not started), `in_progress` (being worked on now), `completed` (finished).
|
||||
Record and update a task list to plan multi-step work and show progress; skip it for trivial single-step tasks. Add one todo per concrete step before you start. While work remains, keep the todos being worked on `in_progress`, several only when work runs in parallel. Mark each todo `completed` as soon as it is done.
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -2562,17 +2563,13 @@ todo_write is session-owned state; UIs render the latest todo/write event as a c
|
||||
|
||||
Run a JavaScript workflow script that orchestrates subagents at scale. Use this for work that fans out across many independent pieces — an audit over many files, a migration, multi-angle research, adversarial verification of findings — where you write the orchestration as a script instead of delegating turn by turn.
|
||||
|
||||
The workflow's identity rides the `meta` parameter as JSON: required `name` (short kebab-case) and `description` strings, optional `whenToUse` string and `phases` array (`{title, detail?, provider?, model?}`). The `script` parameter is the plain JavaScript body ONLY (NOT TypeScript, and NO `export const meta` statement — meta is a parameter, not code), running with top-level await; end with `return <value>` — the value must be JSON-serializable and is this tool's result.
|
||||
|
||||
Script-body hooks:
|
||||
- `agent(prompt, opts?): Promise<any>` — run one subagent to completion. Without `opts.schema` it resolves to the child's final text; with `opts.schema` (an object-rooted JSON Schema using ONLY type/properties/required/additionalProperties/items/enum/const/oneOf — no pattern/format/numeric bounds) it resolves to the validated object. Resolves `null` when the child fails (filter with `.filter(Boolean)`). Other opts: `label` (display), `phase` (progress group), and independent `provider`/`model` LLM target overrides (either may be provided alone). Anything else (`effort`/`isolation`/`agentType`) is rejected loudly.
|
||||
- `pipeline(items, ...stages): Promise<any[]>` — run each item through the stages independently with NO barrier between stages (prefer this for multi-stage work). Each stage receives `(prev, item, index)`. An ordinary stage throw drops that ITEM to `null` and skips its remaining stages.
|
||||
- `agent(prompt, opts?): Promise<any>` — run one subagent to completion. Without `opts.schema` it resolves to the child's final text; with `opts.schema` (an object-rooted JSON Schema using ONLY type/properties/required/additionalProperties/items/enum/const/oneOf) it resolves to the validated object. Resolves `null` when the child fails (filter with `.filter(Boolean)`). Other opts: `label` (display), `phase` (progress group), and independent `provider`/`model` LLM target overrides.
|
||||
- `pipeline(items, ...stages): Promise<any[]>` — run each item through the stages independently with NO barrier between stages (prefer this for multi-stage work). Each stage receives `(prev, item, index)`. A stage throw drops that ITEM to `null` and skips its remaining stages.
|
||||
- `parallel(thunks): Promise<any[]>` — run zero-argument functions concurrently and await ALL of them (a barrier; use only when a stage genuinely needs every prior result together). A throwing thunk resolves to `null`.
|
||||
- `phase(title)` — start a progress phase; `log(message)` — narrate progress; `args` — the tool call's `args` input, verbatim.
|
||||
|
||||
Misused hooks (bad arguments, unknown options, unsupported schemas, tripped caps) throw errors that ALWAYS kill the script — they never dissolve into a per-item `null`.
|
||||
|
||||
Constraints: concurrency and total-agent caps apply; no filesystem, network, timers, or Node.js APIs are provided — the agents do the work, the script only coordinates them. The run executes in the foreground by default: this call returns when the whole script finishes. Set `run_in_background: true` for a long run: the call returns a job id immediately, the run keeps orchestrating in the background, and its return value arrives with the job's completion notice (check on it with `job_output`, stop it with `job_kill`).
|
||||
Misused hooks (bad arguments, unknown options, unsupported schemas, tripped caps) end the whole script instead of producing `null`. The script has no filesystem, network, timer, or Node.js APIs; the agents do the work.
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -2580,11 +2577,11 @@ Constraints: concurrency and total-agent caps apply; no filesystem, network, tim
|
||||
"properties": {
|
||||
"script": {
|
||||
"type": "string",
|
||||
"description": "The plain-JS workflow script body (top-level await allowed; NO `export const meta` statement; end with `return <json-value>`)."
|
||||
"description": "The plain JavaScript body, not TypeScript and without an `export const meta` statement; top-level await is allowed. End with `return <value>`; the JSON-serializable value is this tool's result."
|
||||
},
|
||||
"meta": {
|
||||
"type": "object",
|
||||
"description": "The workflow identity block (plain JSON — never code).",
|
||||
"description": "The workflow identity as plain JSON, not code.",
|
||||
"additionalProperties": true,
|
||||
"properties": {
|
||||
"name": {
|
||||
@@ -2697,7 +2694,7 @@ Source: [`packages/web/tool-web/src/index.ts`](../packages/web/tool-web/src/inde
|
||||
|
||||
### `web_search`
|
||||
|
||||
Search the web for current information. Provide 1–4 queries in the required queries array. Returns an optional summary answer and a list of source URLs.
|
||||
Search the web for current information. Returns an optional summary answer and a list of source URLs.
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -2705,7 +2702,7 @@ Search the web for current information. Provide 1–4 queries in the required qu
|
||||
"properties": {
|
||||
"queries": {
|
||||
"type": "array",
|
||||
"description": "Required search queries; accepts 1–4 items and merges their results.",
|
||||
"description": "1–4 search queries; their results are merged.",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
|
||||
+59
-62
@@ -453,7 +453,7 @@
|
||||
|
||||
### `ask_user_question`
|
||||
|
||||
继续操作前,如果需要确认、选择或缺失的信息,请向用户提出简明问题。发送一个或多个问题,每个问题都带一个稳定 id,该 id 会在答案中原样返回。
|
||||
继续操作前,如果需要确认、选择或缺失的信息,请向用户提出简明问题。
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -575,7 +575,7 @@ ask_user_question 会暂停工具调用,直到当前 UI 提供方返回人类
|
||||
|
||||
### `exit_plan_mode`
|
||||
|
||||
仅在规划模式下使用。提交计划供用户评审,并在获批后退出规划模式。发送**完整的** Markdown 计划,以一个为计划命名的 # 标题开头。用户可以批准(从你的下一步骤起执行计划),也可以要求继续规划;其反馈会通过工具结果返回,请修改后再次提交。
|
||||
仅在规划模式下使用。提交计划供用户评审,并在获批后退出规划模式。用户可以批准(从你的下一步骤起执行计划),也可以要求继续规划;其反馈会通过工具结果返回,请修改后再次提交。
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -602,7 +602,7 @@ ask_user_question 会暂停工具调用,直到当前 UI 提供方返回人类
|
||||
|
||||
### `bash`
|
||||
|
||||
执行 bash 命令(`bash -c`)并返回 stdout/stderr。每次调用都在新 shell 中运行:调用之间不保留任何状态(cwd、变量、函数),请传入 `workdir`,不要使用 `cd`。非零退出会报告为 `[exit code: N]`。当前 harness 环境信息通过托管的 `$DSH_*` 变量公开,需要时请检查这些变量。命令可能在文件沙箱中运行;被阻止的文件操作报告为 `[sandbox: file access denied under <mode> mode]`,这是策略拒绝,而不是命令缺陷,请勿换一种方式重试。较长的输出会截断,只保留尾部;如可用,完整输出会保存到文件并报告其路径。对于长时间运行的命令,请设置 `run_in_background: true`:调用会立即返回 job id;使用 `job_output` 读取输出,使用 `job_kill` 停止任务。到达超时的前台命令不会被杀:它以同样的方式转入后台,返回其 job id 与已捕获的输出。
|
||||
执行 bash 命令(`bash -c`)并返回 stdout/stderr。每次调用都在新 shell 中运行;请传入 `workdir`,不要使用 `cd`。托管的 `$DSH_*` 变量公开当前 harness 环境信息。较长的输出会截断,只保留尾部;如可用,完整输出会保存到文件并报告其路径。命令可能在文件沙箱中运行;被阻止的文件操作报告为 `[sandbox: file access denied under <mode> mode]`,这是策略拒绝:请勿换一种方式重试。
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -646,7 +646,7 @@ bash 工具是 bash 执行器 seam 面向模型的消费方。组合中有 job
|
||||
|
||||
### `present`
|
||||
|
||||
选择 Session 文件系统可访问的已有文件,声明为最终交付物。当用户需要独立的文件交付物时使用 present,尤其是 Office 文档、电子表格和演示文稿。如果最终回复已经足够展示结果,优先在回复中展示;创建或编辑文件本身不要求调用 present。通常选择最重要的 1 至 2 项交付物,任务需要时可以更多,但一次 present 调用最多 4 个文件。文件必须已存在。用户打开当前源文件;不复制或保存其内容。
|
||||
将已有文件声明为交付给用户的最终交付物。当用户需要独立文件时使用,尤其是 Office 文档、电子表格和演示文稿;如果最终回复已经足够,优先使用最终回复。用户打开的是当前文件;不复制其内容。
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -654,6 +654,7 @@ bash 工具是 bash 执行器 seam 面向模型的消费方。组合中有 job
|
||||
"properties": {
|
||||
"files": {
|
||||
"type": "array",
|
||||
"description": "Usually the 1-2 most important deliverables; at most 4 per call.",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
@@ -689,7 +690,7 @@ bash 工具是 bash 执行器 seam 面向模型的消费方。组合中有 job
|
||||
|
||||
### `pwsh`
|
||||
|
||||
执行 PowerShell 命令(`pwsh -Command`)并返回 stdout/stderr。每次调用都在新的 pwsh 进程中运行:调用之间不保留任何状态(cwd、变量、函数),请传入 `workdir`,不要使用 `cd`。路径采用 Windows 原生形式(`C:\...`);使用 `$env:NAME` 读取环境变量。非零退出会报告为 `[exit code: N]`。当前 harness 环境信息通过托管的 `$env:DSH_*` 变量公开,需要时请检查这些变量。命令可能在文件沙箱中运行;被阻止的文件操作报告为 `[sandbox: file access denied under <mode> mode]`,这是策略拒绝,而不是命令缺陷,请勿换一种方式重试。较长的输出会截断,只保留尾部;如可用,完整输出会保存到文件并报告其路径。在 Windows 上,被强制终止的命令会以 `[exit code: 1]` 结算且不带信号标记,请将其视为中断,而不是命令失败。对于长时间运行的命令,请设置 `run_in_background: true`:调用会立即返回 job id;使用 `job_output` 读取输出,使用 `job_kill` 停止任务。到达超时的前台命令不会被杀:它以同样的方式转入后台,返回其 job id 与已捕获的输出。
|
||||
执行 PowerShell 命令(`pwsh -Command`)并返回 stdout/stderr。每次调用都在新的 pwsh 进程中运行;请传入 `workdir`,不要使用 `cd`。路径采用 Windows 原生形式(`C:\...`);使用 `$env:NAME` 读取环境变量。托管的 `$env:DSH_*` 变量公开当前 harness 环境信息。较长的输出会截断,只保留尾部;如可用,完整输出会保存到文件并报告其路径。在 Windows 上,被强制终止的命令会以 `[exit code: 1]` 结算且不带信号标记,请将其视为中断,而不是命令失败。命令可能在文件沙箱中运行;被阻止的文件操作报告为 `[sandbox: file access denied under <mode> mode]`,这是策略拒绝:请勿换一种方式重试。
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -964,7 +965,7 @@ pwsh 工具是 Windows 组合中 bash 执行器 seam 的 PowerShell 方言消费
|
||||
},
|
||||
"old_string": {
|
||||
"type": "string",
|
||||
"description": "Literal text to replace. Must match exactly."
|
||||
"description": "Literal text to replace."
|
||||
},
|
||||
"new_string": {
|
||||
"type": "string",
|
||||
@@ -1016,7 +1017,7 @@ pwsh 工具是 Windows 组合中 bash 执行器 seam 的 PowerShell 方言消费
|
||||
|
||||
### `read_image`
|
||||
|
||||
读取 PNG/JPEG/WebP/GIF 文件并返回图像本身。无扩展名的路径同样被接受;格式按文件内容检测,因此规范化附件路径可以直接传入,无需复制或重命名。Harness 会在下一次模型请求前校验并缩小受支持的大图,因此仅为查看图片时应直接使用此工具,无需安装图片库或创建缩略图。可以用小批次并发读取彼此独立的文件。要求当前模型接受图像输入。
|
||||
读取 PNG/JPEG/WebP/GIF 文件并返回图像本身。大图会自动缩小;不要为了查看图片而安装图片库或创建缩略图。
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -1069,7 +1070,7 @@ pwsh 工具是 Windows 组合中 bash 执行器 seam 的 PowerShell 方言消费
|
||||
|
||||
### `glob`
|
||||
|
||||
查找路径匹配 glob 模式的文件。只返回匹配的文件路径,绝不返回目录;包括隐藏文件和被忽略的文件,但排除 VCS 元数据目录。最多按修改时间顺序返回 100 条路径;如果结果更多,则改为返回从顶层条目中抽样的 100 条路径,说明已抽样,并报告完整排序列表的保存位置。该工具不枚举目录条目。
|
||||
查找路径匹配 glob 模式的文件(不含目录),包括隐藏文件和被忽略的文件。最多按修改时间顺序返回 100 条路径;更大的结果会从顶层条目中抽样,并报告完整列表的保存位置。
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -1094,7 +1095,7 @@ pwsh 工具是 Windows 组合中 bash 执行器 seam 的 PowerShell 方言消费
|
||||
|
||||
### `grep`
|
||||
|
||||
使用 ripgrep 正则表达式搜索文件内容。返回带行号的匹配行,并按文件分组。前 250 条匹配会直接返回;结果达到上限时会报告完整匹配列表的保存位置。如需周边上下文,请对匹配的文件使用 read。
|
||||
使用 ripgrep 正则表达式搜索文件内容。返回带行号的匹配行,并按文件分组。最多返回 250 条匹配;更大的结果会报告完整匹配列表的保存位置。
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -1294,7 +1295,7 @@ glob 和 grep 是无条件可用的发现工具,通过 ctx.subprocess spawn
|
||||
|
||||
### `create_goal`
|
||||
|
||||
当当前直接人类请求是需要跨自主 Goal Round 持续推进的长期目标时,创建一个持久化的同会话完成目标。即使用户没有明确说「创建目标」,你也可以推断其意图。不要用于简单的单轮工作。执行时会拒绝非人类权限和 subagent 权限。
|
||||
创建一个持久化目标,使当前会话跨自动延续 Round 持续工作。当直接人类请求是长期目标时使用,即使用户没有说「目标」;不要用于单轮工作。
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -1319,7 +1320,7 @@ glob 和 grep 是无条件可用的发现工具,通过 ctx.subprocess spawn
|
||||
|
||||
### `get_goal`
|
||||
|
||||
读取当前的同会话目标,包括确切的 id/revision、目标、阶段、已完成的延续 Round 数、Round 上限、存在时的阻塞原因,以及是否已准备下一次延续。更新目标前请先调用此工具。
|
||||
读取当前会话目标,包括 update_goal 所需的 id 和 revision。
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -1332,7 +1333,7 @@ glob 和 grep 是无条件可用的发现工具,通过 ctx.subprocess spawn
|
||||
|
||||
### `update_goal`
|
||||
|
||||
更新确切的当前目标 revision。edit、pause 和 resume 要求直接的顶层人类请求。在自动延续当前目标期间,也允许 complete 和 blocked。在达到配置的最小 Round 数之前会拒绝 blocked;模型仍须判断相同条件是否在这些 Round 中持续存在,并在 blocked_reason 中予以说明。
|
||||
更新当前目标。
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -1348,7 +1349,7 @@ glob 和 grep 是无条件可用的发现工具,通过 ctx.subprocess spawn
|
||||
},
|
||||
"action": {
|
||||
"type": "string",
|
||||
"description": "edit | pause | resume | complete | blocked",
|
||||
"description": "edit, pause, and resume require a direct top-level human request. complete and blocked are also allowed during an automatic continuation of this goal; blocked is rejected before the configured minimum round count.",
|
||||
"enum": [
|
||||
"edit",
|
||||
"pause",
|
||||
@@ -1367,7 +1368,7 @@ glob 和 grep 是无条件可用的发现工具,通过 ctx.subprocess spawn
|
||||
},
|
||||
"blocked_reason": {
|
||||
"type": "string",
|
||||
"description": "Concrete blocking condition; required only with action blocked."
|
||||
"description": "Required only with action blocked: the concrete condition that persisted across rounds and blocks progress."
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
@@ -1388,7 +1389,7 @@ create、edit、pause 和 resume 要求直接来自人类的根权限;complete
|
||||
|
||||
### `schedule_create`
|
||||
|
||||
在当前会话中创建一条提醒。请提供非空 prompt、标题,以及恰好一个 selector:正的安全整数 after_seconds 延时;作为严格带偏移日期时间或本地日期/时间对象的 at;不小于 60 的安全整数 every_seconds;形如 {time: "23:00:00", time_zone: "Asia/Shanghai"} 的 daily;形如 {time: "09:00:00", time_zone: "Asia/Shanghai", weekdays: [1, 3]} 的 weekly,其中周一为 1、周日为 7;或形如 {expression: "*/15 9-17 * * 1-5", time_zone: "Asia/Shanghai"} 的 cron,其五个字段为 minute hour day-of-month month day-of-week。每次创建都必须提供标题,最多 120 个字符且去除首尾空白后非空;该标题用于任务卡片、详情标题和任务列表。每日、每周与 cron 提醒保留指定的本地时间与时区;不存在的钟表时间会跳过该日期,重复时刻只取较早实例。cron 的 day-of-month 与 day-of-week 都受限时,匹配任一字段即算匹配。固定速率提醒在间隔编辑确立新起点前始终与创建时刻对齐。四类重复提醒都会将每条逾期规则的最新一个发生时点合并为一批投递。宿主会在提醒到期时恢复此会话。停机后,每条重复提醒只投递最新错过的一次。崩溃后可能重复投递。
|
||||
在当前会话中创建一条提醒,到期时投递 prompt。请恰好提供一个时间参数:after_seconds、at、every_seconds、daily、weekly 或 cron。时区中不存在的本地时间会被跳过;重复出现的本地时间只在较早的时刻触发一次。停机后,重复提醒只投递最近错过的一次。崩溃后可能重复投递。
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -1400,19 +1401,19 @@ create、edit、pause 和 resume 要求直接来自人类的根权限;complete
|
||||
},
|
||||
"title": {
|
||||
"type": "string",
|
||||
"description": "Required task name of at most 120 characters, non-empty after trimming; it becomes the task card title, the detail heading, and the name in the task lists."
|
||||
"description": "Task name of at most 120 characters, shown on the task card and in task lists."
|
||||
},
|
||||
"after_seconds": {
|
||||
"type": "number",
|
||||
"description": "Positive safe-integer delay in seconds."
|
||||
"description": "Delay in whole seconds."
|
||||
},
|
||||
"every_seconds": {
|
||||
"type": "number",
|
||||
"description": "Fixed-rate safe-integer interval in seconds, at least 60."
|
||||
"description": "Fixed-rate interval in whole seconds, at least 60, aligned to the creation time; changing it with schedule_update re-aligns it to the save time."
|
||||
},
|
||||
"daily": {
|
||||
"type": "object",
|
||||
"description": "Daily local wall-clock time in an explicit IANA zone; skips nonexistent times and uses the earlier repeated time once.",
|
||||
"description": "Every day at a local time.",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"time": {
|
||||
@@ -1431,7 +1432,7 @@ create、edit、pause 和 resume 要求直接来自人类的根权限;complete
|
||||
},
|
||||
"weekly": {
|
||||
"type": "object",
|
||||
"description": "Weekly local wall-clock time on explicit ISO weekdays in an explicit IANA zone; skips nonexistent times and uses the earlier repeated time once per date.",
|
||||
"description": "On the given weekdays at a local time.",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"time": {
|
||||
@@ -1444,7 +1445,7 @@ create、edit、pause 和 resume 要求直接来自人类的根权限;complete
|
||||
},
|
||||
"weekdays": {
|
||||
"type": "array",
|
||||
"description": "Non-empty ISO weekdays, Monday 1 through Sunday 7, without repetitions.",
|
||||
"description": "ISO weekdays, Monday 1 through Sunday 7, without repetitions.",
|
||||
"items": {
|
||||
"type": "integer"
|
||||
}
|
||||
@@ -1458,12 +1459,12 @@ create、edit、pause 和 resume 要求直接来自人类的根权限;complete
|
||||
},
|
||||
"cron": {
|
||||
"type": "object",
|
||||
"description": "Five-field Vixie cron expression evaluated in an explicit IANA zone; skips nonexistent local times and uses the earlier repeated time once per date.",
|
||||
"description": "Five-field Vixie cron expression in a time zone.",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"expression": {
|
||||
"type": "string",
|
||||
"description": "minute hour day-of-month month day-of-week, for example \"*/15 9-17 * * 1-5\"."
|
||||
"description": "minute hour day-of-month month day-of-week, for example \"*/15 9-17 * * 1-5\". When both day fields are restricted, a date matches if either one matches."
|
||||
},
|
||||
"time_zone": {
|
||||
"type": "string",
|
||||
@@ -1501,7 +1502,7 @@ create、edit、pause 和 resume 要求直接来自人类的根权限;complete
|
||||
]
|
||||
}
|
||||
],
|
||||
"description": "Absolute target as strict offset RFC 3339 or local date/time with an explicit IANA zone."
|
||||
"description": "Absolute target: an RFC 3339 date-time with offset, or a local date, time, and IANA time_zone."
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
@@ -1515,7 +1516,7 @@ create、edit、pause 和 resume 要求直接来自人类的根权限;complete
|
||||
|
||||
### `schedule_delete`
|
||||
|
||||
使用确切 id 删除当前会话中保留的一条提醒,活动或未运行的提醒均可删除。未知或已经删除的 id 会返回 deleted false。删除不会撤回已经入队的消息。
|
||||
删除当前会话中的一条提醒,活动或已结束的均可。删除不会撤回已经入队的提醒消息。
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -1523,7 +1524,7 @@ create、edit、pause 和 resume 要求直接来自人类的根权限;complete
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string",
|
||||
"description": "Exact schedule id."
|
||||
"description": "Schedule id returned by schedule_list."
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
@@ -1536,7 +1537,7 @@ create、edit、pause 和 resume 要求直接来自人类的根权限;complete
|
||||
|
||||
### `schedule_list`
|
||||
|
||||
列出当前会话中的所有活动提醒,包括确切 id、标题、UTC 目标、scheduled 或 overdue 状态,以及 host 交付模式。返回顺序无关紧要。
|
||||
列出当前会话中的活动提醒。
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -1553,7 +1554,7 @@ create、edit、pause 和 resume 要求直接来自人类的根权限;complete
|
||||
|
||||
### `schedule_update`
|
||||
|
||||
在当前会话中原地修改一条提醒,保留其 id 与已保存的投递记录:用 `schedule_list` 返回的精确 id 定位,然后给出新的 title 或 prompt,或从 at、every_seconds、daily、weekly、cron 中给出恰好一个新选择器(形式与 `schedule_create` 相同)。未提供的字段保持原值。`after` 不支持更新;需要相对延迟时请新建一条提醒。宿主会把它为该 id 读到的记录与已存储记录比对,因此并发编辑返回 `schedule_conflict`,而不是覆盖已存储的修改;已结束或不存在的提醒返回 `updated: false`。修改 `every_seconds` 间隔会把新的固定速率锚定在接受保存的时刻;只改名称或指令则保留已提交的目标。
|
||||
原地修改一条提醒并保留其 id。提供新的 title、prompt,或至多一个时间参数;未提供的字段保持原值。需要相对延迟时请新建一条提醒。
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -1561,23 +1562,23 @@ create、edit、pause 和 resume 要求直接来自人类的根权限;complete
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string",
|
||||
"description": "Exact schedule id that schedule_list returned for one reminder."
|
||||
"description": "Schedule id returned by schedule_list."
|
||||
},
|
||||
"title": {
|
||||
"type": "string",
|
||||
"description": "New task name of at most 120 characters, non-empty after trimming; omitted keeps the stored name."
|
||||
"description": "New task name of at most 120 characters."
|
||||
},
|
||||
"prompt": {
|
||||
"type": "string",
|
||||
"description": "New reminder content, non-empty after trimming; omitted keeps the stored instruction."
|
||||
"description": "New reminder content."
|
||||
},
|
||||
"every_seconds": {
|
||||
"type": "number",
|
||||
"description": "Fixed-rate safe-integer interval in seconds, at least 60."
|
||||
"description": "Fixed-rate interval in whole seconds, at least 60, aligned to the creation time; changing it with schedule_update re-aligns it to the save time."
|
||||
},
|
||||
"daily": {
|
||||
"type": "object",
|
||||
"description": "Daily local wall-clock time in an explicit IANA zone; skips nonexistent times and uses the earlier repeated time once.",
|
||||
"description": "Every day at a local time.",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"time": {
|
||||
@@ -1596,7 +1597,7 @@ create、edit、pause 和 resume 要求直接来自人类的根权限;complete
|
||||
},
|
||||
"weekly": {
|
||||
"type": "object",
|
||||
"description": "Weekly local wall-clock time on explicit ISO weekdays in an explicit IANA zone; skips nonexistent times and uses the earlier repeated time once per date.",
|
||||
"description": "On the given weekdays at a local time.",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"time": {
|
||||
@@ -1609,7 +1610,7 @@ create、edit、pause 和 resume 要求直接来自人类的根权限;complete
|
||||
},
|
||||
"weekdays": {
|
||||
"type": "array",
|
||||
"description": "Non-empty ISO weekdays, Monday 1 through Sunday 7, without repetitions.",
|
||||
"description": "ISO weekdays, Monday 1 through Sunday 7, without repetitions.",
|
||||
"items": {
|
||||
"type": "integer"
|
||||
}
|
||||
@@ -1623,12 +1624,12 @@ create、edit、pause 和 resume 要求直接来自人类的根权限;complete
|
||||
},
|
||||
"cron": {
|
||||
"type": "object",
|
||||
"description": "Five-field Vixie cron expression evaluated in an explicit IANA zone; skips nonexistent local times and uses the earlier repeated time once per date.",
|
||||
"description": "Five-field Vixie cron expression in a time zone.",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"expression": {
|
||||
"type": "string",
|
||||
"description": "minute hour day-of-month month day-of-week, for example \"*/15 9-17 * * 1-5\"."
|
||||
"description": "minute hour day-of-month month day-of-week, for example \"*/15 9-17 * * 1-5\". When both day fields are restricted, a date matches if either one matches."
|
||||
},
|
||||
"time_zone": {
|
||||
"type": "string",
|
||||
@@ -1666,7 +1667,7 @@ create、edit、pause 和 resume 要求直接来自人类的根权限;complete
|
||||
]
|
||||
}
|
||||
],
|
||||
"description": "Absolute target as strict offset RFC 3339 or local date/time with an explicit IANA zone."
|
||||
"description": "Absolute target: an RFC 3339 date-time with offset, or a local date, time, and IANA time_zone."
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
@@ -1764,7 +1765,7 @@ lsp 工具将提供方选择和语言服务器子进程置于 ctx.lsp 之后,
|
||||
|
||||
### `skill`
|
||||
|
||||
加载可用 skill(技能)的完整说明。在执行点名某项 skill 或与其明确匹配的任务前,请使用会话 skill 目录中的确切名称调用此工具。
|
||||
加载某项 skill(技能)的完整说明。在执行点名某项 skill 或与会话 skill 目录中某项 skill 明确匹配的任务前,请调用此工具。
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -2046,7 +2047,7 @@ lsp 工具将提供方选择和语言服务器子进程置于 ctx.lsp 之后,
|
||||
|
||||
### `subagent`
|
||||
|
||||
将一项自包含任务委派给 subagent(在自身上下文中工作的独立 agent),用它卸载聚焦且独立的工作,例如研究、限定范围的实现或分析,以免消耗当前对话的上下文。subagent 会返回结果,但不会返回中间步骤。请提供完整、独立的提示词,因为它看不到当前对话。此调用默认等待结果。设置 `run_in_background: true` 可返回 job id;使用 `job_output` 收集结果,使用 `job_kill` 停止任务。
|
||||
将一项自包含任务委派给 subagent(在自身上下文中工作的独立 agent),用它卸载聚焦且独立的工作,例如研究、限定范围的实现或分析,以免消耗当前对话的上下文。subagent 会返回结果,但不会返回中间步骤。此调用默认等待结果。
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -2062,7 +2063,7 @@ lsp 工具将提供方选择和语言服务器子进程置于 ctx.lsp 之后,
|
||||
},
|
||||
"run_in_background": {
|
||||
"type": "boolean",
|
||||
"description": "Whether to run as a background job and return its id. Defaults to false; collect with job_output or stop with job_kill."
|
||||
"description": "Run as a background job and return its id (collect with job_output, stop with job_kill). Defaults to false."
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
@@ -2082,7 +2083,7 @@ lsp 工具将提供方选择和语言服务器子进程置于 ctx.lsp 之后,
|
||||
|
||||
### `interrupt_agent`
|
||||
|
||||
根据 agent id 请求取消后台 agent 的当前轮次。目标可以是你的直接子级,也可以是在你下方创建的更深层 agent。只有当前轮次会停止:已经排队发给该 agent 的消息会一直搁置到后续的 send_message;它启动的 agent 会继续运行;该 agent 本身仍可接受后续操作。停止请求被接受后,此调用立即返回,因此目标可能还会短暂运行;中断一个已经完成的 agent 是可接受的空操作。
|
||||
请 subagent 停止当前工作。此调用不等待其停止即返回。之后可以用 send_message 继续与直接子级的对话。它启动的 subagent 会继续运行。
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -2090,7 +2091,7 @@ lsp 工具将提供方选择和语言服务器子进程置于 ctx.lsp 之后,
|
||||
"properties": {
|
||||
"agent_id": {
|
||||
"type": "string",
|
||||
"description": "The agent id of the running agent to interrupt."
|
||||
"description": "The id of an agent created under you: your direct child or a deeper descendant."
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
@@ -2103,7 +2104,7 @@ lsp 工具将提供方选择和语言服务器子进程置于 ctx.lsp 之后,
|
||||
|
||||
### `list_agents`
|
||||
|
||||
按持久 id 和标签列出你的可继续后台 subagent。用它回忆你启动过哪些 subagent,而不是轮询完成情况——subagent 完成时你会被告知。状态来自实时注册表:running 表示 agent 此刻正在工作;inactive 表示没有轮次在执行,包括已加载和需要恢复的 child。inactive 不表示任务完成、成功、失败或等待其他 agent。`send_message` 会在运行中 child 的最近 step 边界 steer 消息,或为 inactive child 启动或恢复轮次,且无论处于哪种状态,直接子级都仍可作为 `send_message` 的目标。该快照并非投递承诺;`send_message` 会执行权威检查,仍可能失败。无法读取的子级仅在 `descendants` 作用域中作为诊断信息报告。`descendants` 作用域会按稳定的前序顺序遍历你下方的整棵树,并为每个条目标注其持久的直接父会话 id 和深度。只有深度为 1 的条目可以使用 `send_message`;更深的条目只能作为 `interrupt_agent` 的候选目标。
|
||||
列出你启动的 subagent 及其 id、标签和状态。running 表示正在工作;inactive 表示当前未在工作。subagent 完成时你会收到通知,无需反复查看状态。使用 send_message 继续对话。
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -2111,7 +2112,7 @@ lsp 工具将提供方选择和语言服务器子进程置于 ctx.lsp 之后,
|
||||
"properties": {
|
||||
"scope": {
|
||||
"type": "string",
|
||||
"description": "children (default) lists direct children only; descendants walks the complete tree below you.",
|
||||
"description": "children (default) lists direct children, which accept send_message in any status. descendants lists the whole tree below you with each entry's parent session id and depth; entries deeper than 1 accept only interrupt_agent.",
|
||||
"enum": [
|
||||
"children",
|
||||
"descendants"
|
||||
@@ -2125,7 +2126,7 @@ lsp 工具将提供方选择和语言服务器子进程置于 ctx.lsp 之后,
|
||||
|
||||
### `send_message`
|
||||
|
||||
根据 agent id 向直接可继续 child 发送消息。如果你是驻留的可继续 child,也可以把自己的直接 parent 作为目标。如果目标仍在工作,消息会 steer 其最近的 step;如果目标处于 inactive,消息会启动或恢复一个轮次。此调用不会返回该 agent 的答案,只会确认消息已投递。调用失败表示消息**未**投递。
|
||||
向某个 agent 发送消息。工作中的 agent 会在下一个 step 收到消息;空闲的 agent 会以该消息开始新一轮。返回投递确认,而不是该 agent 的答案。
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -2157,7 +2158,7 @@ lsp 工具将提供方选择和语言服务器子进程置于 ctx.lsp 之后,
|
||||
|
||||
### `job_kill`
|
||||
|
||||
根据 job id 请求取消正在运行的后台任务。此调用立即返回;任务的工作真正停止后,会以 killed 状态结算。
|
||||
请求取消正在运行的后台任务。
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -2195,7 +2196,7 @@ lsp 工具将提供方选择和语言服务器子进程置于 ctx.lsp 之后,
|
||||
|
||||
### `job_output`
|
||||
|
||||
读取后台任务。流式任务只返回自上次读取以来的输出;最终输出任务会在结算后返回结果。每个响应都以 `[status: ...]` 结尾。读取默认不阻塞;设置 `wait: true` 后,最长等待到配置的上限。
|
||||
读取后台任务:流式任务返回自上次读取以来的输出,已完成的最终输出任务返回其结果。
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -2207,11 +2208,11 @@ lsp 工具将提供方选择和语言服务器子进程置于 ctx.lsp 之后,
|
||||
},
|
||||
"wait": {
|
||||
"type": "boolean",
|
||||
"description": "Block until the job reaches a terminal status or the timeout expires. A timed-out wait returns [status: running] and leaves the job alive."
|
||||
"description": "Block until the job finishes or the timeout expires; a timed-out wait leaves the job running. Defaults to false."
|
||||
},
|
||||
"timeout_ms": {
|
||||
"type": "number",
|
||||
"description": "Max wait in milliseconds (only meaningful with wait: true). Defaults to the configured wait timeout; capped by the configured maximum."
|
||||
"description": "Max wait in milliseconds with wait: true. Defaults to and is capped by configuration."
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
@@ -2521,7 +2522,7 @@ lsp 工具将提供方选择和语言服务器子进程置于 ctx.lsp 之后,
|
||||
|
||||
### `todo_write`
|
||||
|
||||
记录并更新当前工作的结构化任务列表。每次调用都要发送**完整列表**,它会**替换**之前的列表,不支持局部更新或逐项编辑。请用它规划多步骤工作并展示进度:开始前为每个具体步骤添加一项 todo。将当前正在处理的每项 todo 标记为 `in_progress`;确实并行运行时(例如并发 subagent 或后台命令)可同时标记多项,顺序工作则标记 1 项。只要工作尚未完成,就应至少有一项任务为 `in_progress`。某项 todo 完成后立即标记为 `completed`,不要批量标记完成;只有全部工作完成后,才可以没有 `in_progress` 项。简单的单步骤任务无需使用列表。状态:`pending`(未开始)、`in_progress`(正在处理)、`completed`(已完成)。
|
||||
记录并更新任务列表,用于规划多步骤工作并展示进度;简单的单步骤任务无需使用。开始前为每个具体步骤添加一项 todo。只要工作尚未完成,就将正在处理的 todo 标记为 `in_progress`,仅在工作并行运行时同时标记多项。某项 todo 完成后立即标记为 `completed`。
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -2573,18 +2574,14 @@ todo_write 是会话所有的状态;UI 将最新的 todo/write 事件渲染为
|
||||
|
||||
运行用于大规模编排 subagent 的 JavaScript 工作流脚本。当工作会分散到许多相互独立的部分时,请使用此工具,例如审查大量文件、执行迁移、开展多角度研究或对发现进行对抗式验证;此时应将编排写成脚本,而不是逐轮委派。
|
||||
|
||||
工作流的身份通过 `meta` 参数以 JSON 形式传入:必填的 `name`(简短 kebab-case)和 `description` 字符串,以及可选的 `whenToUse` 字符串和 `phases` 数组(`{title, detail?, provider?, model?}`)。`script` 参数只能是纯 JavaScript **函数体**,不能是 TypeScript,也不能包含 `export const meta` 语句;meta 是参数而非代码。脚本支持顶层 await;请以 `return <value>` 结尾,该值必须可以 JSON 序列化,并作为此工具的结果。
|
||||
|
||||
脚本函数体提供以下钩子:
|
||||
|
||||
- `agent(prompt, opts?): Promise<any>`:运行一个 subagent 直至完成。不提供 `opts.schema` 时,解析为子级最终文本;提供 `opts.schema` 时,它必须是以对象为根、且**只能**使用 type/properties/required/additionalProperties/items/enum/const/oneOf 的 JSON Schema,不支持 pattern/format/数值边界,此时解析为通过校验的对象。子级失败时解析为 `null`,可使用 `.filter(Boolean)` 过滤。其他选项包括 `label`(显示名称)、`phase`(进度组),以及相互独立的 `provider`/`model` LLM(大语言模型)目标覆盖项,两者可单独提供。其他任何选项(`effort`/`isolation`/`agentType`)都会明确报错。
|
||||
- `pipeline(items, ...stages): Promise<any[]>`:让每个条目分别经过各阶段,阶段之间**没有**屏障;多阶段工作优先使用它。每个阶段接收 `(prev, item, index)`。普通的阶段异常会将该**条目**变为 `null`,并跳过它的剩余阶段。
|
||||
- `agent(prompt, opts?): Promise<any>`:运行一个 subagent 直至完成。不提供 `opts.schema` 时,解析为子级最终文本;提供 `opts.schema` 时,它必须是以对象为根、且**只能**使用 type/properties/required/additionalProperties/items/enum/const/oneOf 的 JSON Schema,此时解析为通过校验的对象。子级失败时解析为 `null`,可使用 `.filter(Boolean)` 过滤。其他选项包括 `label`(显示名称)、`phase`(进度组),以及相互独立的 `provider`/`model` LLM(大语言模型)目标覆盖项。
|
||||
- `pipeline(items, ...stages): Promise<any[]>`:让每个条目分别经过各阶段,阶段之间**没有**屏障;多阶段工作优先使用它。每个阶段接收 `(prev, item, index)`。阶段异常会将该**条目**变为 `null`,并跳过它的剩余阶段。
|
||||
- `parallel(thunks): Promise<any[]>`:并发运行零参数函数并等待**全部**完成。它会形成屏障,仅当某个阶段确实需要汇总全部先前结果时使用。抛出异常的 thunk 解析为 `null`。
|
||||
- `phase(title)`:开始一个进度阶段;`log(message)`:说明进度;`args`:工具调用的 `args` 输入,原样提供。
|
||||
|
||||
如果误用钩子(参数错误、未知选项、不受支持的 schema、触发上限),抛出的错误**总会**终止脚本,绝不会退化为单个条目的 `null`。
|
||||
|
||||
约束:并发上限和 agent 总数上限均会生效;不提供文件系统、网络、定时器或 Node.js API。具体工作由 agent 完成,脚本只负责编排。该运行默认在前台执行:整个脚本完成后,调用才会返回。长时间运行请设置 `run_in_background: true`:调用会立刻返回任务 id,运行在后台继续编排,其返回值随任务的完成播报送达(用 `job_output` 查看进展,用 `job_kill` 停止)。
|
||||
如果误用钩子(参数错误、未知选项、不受支持的 schema、触发上限),整个脚本会终止,而不会产生 `null`。脚本没有文件系统、网络、定时器或 Node.js API;具体工作由 agent 完成。
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -2592,11 +2589,11 @@ todo_write 是会话所有的状态;UI 将最新的 todo/write 事件渲染为
|
||||
"properties": {
|
||||
"script": {
|
||||
"type": "string",
|
||||
"description": "The plain-JS workflow script body (top-level await allowed; NO `export const meta` statement; end with `return <json-value>`)."
|
||||
"description": "The plain JavaScript body, not TypeScript and without an `export const meta` statement; top-level await is allowed. End with `return <value>`; the JSON-serializable value is this tool's result."
|
||||
},
|
||||
"meta": {
|
||||
"type": "object",
|
||||
"description": "The workflow identity block (plain JSON — never code).",
|
||||
"description": "The workflow identity as plain JSON, not code.",
|
||||
"additionalProperties": true,
|
||||
"properties": {
|
||||
"name": {
|
||||
@@ -2709,7 +2706,7 @@ todo_write 是会话所有的状态;UI 将最新的 todo/write 事件渲染为
|
||||
|
||||
### `web_search`
|
||||
|
||||
在 Web 上搜索最新信息。在必填的 `queries` 数组中提供 1–4 个查询。返回可选的摘要答案和来源 URL 列表。
|
||||
在 Web 上搜索最新信息。返回可选的摘要答案和来源 URL 列表。
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -2717,7 +2714,7 @@ todo_write 是会话所有的状态;UI 将最新的 todo/write 事件渲染为
|
||||
"properties": {
|
||||
"queries": {
|
||||
"type": "array",
|
||||
"description": "Required search queries; accepts 1–4 items and merges their results.",
|
||||
"description": "1–4 search queries; their results are merged.",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user