forward_last_turns
Send another agent's newest turns to a third agent as mail komrad composes itself, so what that agent concluded reaches the recipient without passing through your own context.
Agentwritesnot idempotentMCP tool
Name the source as fromAgentId and the recipient as toAgentId, both by id. It forwards the source's last turn by default, or its newest turns when turns is set, with the prompts between them, each cut from the head to fit maxBytes so the conclusion survives, exactly as get_last_turns would return them. The body opens with a header naming the source, its branch, the turns forwarded and when they were read, then your note when you give one, then the turns; the recipient is told to read them as quoted material. The response says what was sent and how big it was, and never carries the text, since keeping it out of your context is the point. It carries a warning when the recipient is dormant, since nothing runs behind it and the mail waits until it is resumed. The mail is sent from you, so every rule of send_mail holds: it counts toward what you and the recipient may exchange, it is refused when the recipient is archived or its mailbox is full, and a child may only forward to its parent and its parent's other children, judged on you rather than on the source. Reading the source is recorded as a deliberate read of another agent's work, the way get_transcript is. Mail holds at most 10000 characters, and a forward that would run past that is refused as invalid_argument rather than cut, naming how long it came to; pass a smaller maxBytes or fewer turns and call again. Refused as failed_precondition when the source has no turns synced yet. Each call sends another piece of mail, so do not retry a call that may have succeeded. Use this when the recipient needs the text and you do not; use get_last_turns when you do.
Calling it#
curl -X POST http://127.0.0.1:8787/agent.v1.AgentService/ForwardLastTurns \
-H 'Content-Type: application/json' \
-d '{
"fromAgentId": "<fromAgentId>",
"toAgentId": "<toAgentId>"
}'komrad rpc forward-last-turns \
--from-agent-id <string> \
--to-agent-id <string>{
"name": "forward_last_turns",
"arguments": {
"fromAgentId": "<fromAgentId>",
"toAgentId": "<toAgentId>"
}
}Offered by the komrad MCP server to implementer, reviewer, orchestrator agents.
Request#
ForwardLastTurnsRequest#
| Field | Type | Description |
|---|---|---|
fromAgentId | string | Whose newest turns to forward. required |
toAgentId | string | Who to send them to, addressed by id since two workflows may hold agents of one name. required |
turns | int32 | How many of the source's newest turns to forward, with the prompts between them, or unset for the last one alone. between 1 and 20 |
note | string | What to tell the recipient about the forward in the caller's own words, which it reads before the turns. at most 10000 characters |
maxBytes | int32 | The most of each turn's text to forward, cut from the head so the end survives, or unset for the default. |
Response#
ForwardLastTurnsResponse#
| Field | Type | Description |
|---|---|---|
mailId | string | The id of the mail as recorded, which an answer can reply to. |
toAgentId | string | The agent it is waiting for. |
createdAt | string | When it was sent, in RFC 3339. |
turns | int32 | How many of the source's turns went, prompts included. |
characters | int32 | How many characters the whole body came to. |
warning | string | Why the recipient will not read this soon, set when nothing runs behind it. |