A goal round reporting complete or blocked used to conclude the turn at the tool result, so the model never spoke after the call and sessions ended on a bare update_goal card. The terminal update now defers one plugin-sourced <goal_complete>/<goal_blocked> instruction onto its result asking for a grounded closing message without further tool calls; the turn then ends through the ordinary no-tool-calls stop. Direct-human mutations stay uninstructed. Wording chosen by A/B sampling on deepseek-v4-pro; one extra request per goal lifecycle. New keyless ACP snapshot goal-wrapup drives the shipped app through create -> round one -> autonomous complete and pins the injection, the same-turn closing message, and the completed turn end.
43 lines
2.3 KiB
JSON
43 lines
2.3 KiB
JSON
[
|
|
{
|
|
"kind": "chunks",
|
|
"chunks": [
|
|
{ "type": "block-start", "index": 0, "blockType": "tool-call" },
|
|
{ "type": "tool-call-delta", "index": 0, "id": "call_goal_create", "name": "create_goal", "argumentsDelta": "{\"objective\":\"Finish the ACP goal wrap-up snapshot proof\",\"max_goal_rounds\":2}" },
|
|
{ "type": "block-end", "index": 0, "block": { "type": "tool-call", "id": "call_goal_create", "name": "create_goal", "arguments": "{\"objective\":\"Finish the ACP goal wrap-up snapshot proof\",\"max_goal_rounds\":2}" } },
|
|
{ "type": "usage", "usage": { "inputTokens": 20, "outputTokens": 8 } },
|
|
{ "type": "finish", "reason": { "kind": "tool-calls" } }
|
|
]
|
|
},
|
|
{
|
|
"kind": "chunks",
|
|
"chunks": [
|
|
{ "type": "block-start", "index": 0, "blockType": "text" },
|
|
{ "type": "text-delta", "index": 0, "text": "GOAL READY" },
|
|
{ "type": "block-end", "index": 0, "block": { "type": "text", "text": "GOAL READY" } },
|
|
{ "type": "usage", "usage": { "inputTokens": 28, "outputTokens": 2 } },
|
|
{ "type": "finish", "reason": { "kind": "stop" } }
|
|
]
|
|
},
|
|
{
|
|
"kind": "chunks",
|
|
"chunks": [
|
|
{ "type": "block-start", "index": 0, "blockType": "tool-call" },
|
|
{ "type": "tool-call-delta", "index": 0, "id": "call_goal_complete", "name": "update_goal", "argumentsDelta": "{\"goal_id\":\"{{fromRequest:goal-[0-9a-f-]+}}\",\"revision\":1,\"action\":\"complete\"}" },
|
|
{ "type": "block-end", "index": 0, "block": { "type": "tool-call", "id": "call_goal_complete", "name": "update_goal", "arguments": "{\"goal_id\":\"{{fromRequest:goal-[0-9a-f-]+}}\",\"revision\":1,\"action\":\"complete\"}" } },
|
|
{ "type": "usage", "usage": { "inputTokens": 40, "outputTokens": 9 } },
|
|
{ "type": "finish", "reason": { "kind": "tool-calls" } }
|
|
]
|
|
},
|
|
{
|
|
"kind": "chunks",
|
|
"chunks": [
|
|
{ "type": "block-start", "index": 0, "blockType": "text" },
|
|
{ "type": "text-delta", "index": 0, "text": "GOAL WRAP-UP: the snapshot objective is achieved and this closing message reaches the user." },
|
|
{ "type": "block-end", "index": 0, "block": { "type": "text", "text": "GOAL WRAP-UP: the snapshot objective is achieved and this closing message reaches the user." } },
|
|
{ "type": "usage", "usage": { "inputTokens": 52, "outputTokens": 14 } },
|
|
{ "type": "finish", "reason": { "kind": "stop" } }
|
|
]
|
|
}
|
|
]
|