Sessietools
Doel: een kleine, moeilijk verkeerd te gebruiken toolset zodat agents sessies kunnen weergeven, geschiedenis kunnen ophalen en naar een andere sessie kunnen verzenden.Toolnamen
sessions_listsessions_historysessions_sendsessions_spawn
Sleutelmodel
- De hoofd direct-chat bucket is altijd de letterlijke sleutel
"main"(opgelost naar de hoofdsleutel van de huidige agent). - Groepschats gebruiken
agent:<agentId>:<channel>:group:<id>ofagent:<agentId>:<channel>:channel:<id>(geef de volledige sleutel door). - Cron-jobs gebruiken
cron:<job.id>. - Hooks gebruiken
hook:<uuid>, tenzij expliciet ingesteld. - Node-sessies gebruiken
node-<nodeId>, tenzij expliciet ingesteld.
global en unknown zijn gereserveerde waarden en worden nooit weergegeven. Als session.scope = "global", aliassen we dit naar main voor alle tools zodat aanroepers nooit global zien.
sessions_list
Geef sessies weer als een array van rijen. Parameters:kinds?: string[]filter: een van"main" | "group" | "cron" | "hook" | "node" | "other"limit?: numbermaximaal aantal rijen (standaard: serverstandaard, begrensd tot bijv. 200)activeMinutes?: numberalleen sessies die binnen N minuten zijn bijgewerktmessageLimit?: number0 = geen berichten (standaard 0); >0 = laatste N berichten opnemen
messageLimit > 0haaltchat.historyper sessie op en neemt de laatste N berichten op.- Toolresultaten worden uit de lijstuitvoer gefilterd; gebruik
sessions_historyvoor toolberichten. - Bij uitvoering in een gesandboxde agentsessie staan sessietools standaard op alleen-gespawnede zichtbaarheid (zie hieronder).
key: sessiesleutel (string)kind:main | group | cron | hook | node | otherchannel:whatsapp | telegram | discord | signal | imessage | webchat | internal | unknowndisplayName(groepsweergavelabel indien beschikbaar)updatedAt(ms)sessionIdmodel,contextTokens,totalTokensthinkingLevel,verboseLevel,systemSent,abortedLastRunsendPolicy(sessie-override indien ingesteld)lastChannel,lastTodeliveryContext(genormaliseerde{ channel, to, accountId }indien beschikbaar)transcriptPath(best-effort pad afgeleid van store-dir + sessionId)messages?(alleen wanneermessageLimit > 0)
sessions_history
Haal het transcript op voor één sessie. Parameters:sessionKey(vereist; accepteert sessiesleutel ofsessionIduitsessions_list)limit?: numbermaximaal aantal berichten (server begrenst)includeTools?: boolean(standaard false)
includeTools=falsefiltertrole: "toolResult"-berichten.- Retourneert een berichtenarray in het ruwe transcriptformaat.
- Bij een opgegeven
sessionIdlost OpenClaw dit op naar de bijbehorende sessiesleutel (fout bij ontbrekende id’s).
sessions_send
Verstuur een bericht naar een andere sessie. Parameters:sessionKey(vereist; accepteert sessiesleutel ofsessionIduitsessions_list)message(vereist)timeoutSeconds?: number(standaard >0; 0 = fire-and-forget)
timeoutSeconds = 0: in de wachtrij plaatsen en{ runId, status: "accepted" }retourneren.timeoutSeconds > 0: maximaal N seconden wachten op voltooiing en daarna{ runId, status: "ok", reply }retourneren.- Als wachten verloopt:
{ runId, status: "timeout", error }. De run gaat door; roepsessions_historylater aan. - Als de run faalt:
{ runId, status: "error", error }. - Aankondigingsruns na aflevering worden uitgevoerd nadat de primaire run is voltooid en zijn best-effort;
status: "ok"garandeert niet dat de aankondiging is afgeleverd. - Wacht via gateway
agent.wait(server-side) zodat reconnects het wachten niet onderbreken. - Agent-naar-agent berichtcontext wordt geïnjecteerd voor de primaire run.
- Inter-sessieberichten worden opgeslagen met
message.provenance.kind = "inter_session"zodat transcriptlezers gerouteerde agentinstructies kunnen onderscheiden van externe gebruikersinvoer. - Zodra de loop eindigt, voert OpenClaw de agent-naar-agent aankondigingsstap uit (alleen doelagent):
- Ronde 2+ wisselt af tussen de aanvragende en doelagent.
- Antwoord exact
REPLY_SKIPom de ping‑pong te stoppen. - Maximaal aantal beurten is
session.agentToAgent.maxPingPongTurns(0–5, standaard 5).
- Nadat de primaire run is voltooid, start OpenClaw een reply-back loop:
- Antwoord exact
ANNOUNCE_SKIPom stil te blijven. - Elk ander antwoord wordt naar het doelkanaal verzonden.
- De aankondigingsstap bevat het oorspronkelijke verzoek + antwoord van ronde 1 + het laatste ping‑pong-antwoord.
- Antwoord exact
Kanaal veld
- Voor groepen is
channelhet kanaal dat op de sessie-entry is vastgelegd. - Voor directe chats mapt
channelvanaflastChannel. - Voor cron/hook/node is
channelinternal. - Indien ontbrekend, is
channelunknown.
Beveiliging / Verzendbeleid
Beleidsgebaseerde blokkering per kanaal/chat-type (niet per sessie-id).sendPolicy: "allow" | "deny"(niet ingesteld = configuratie erven)- Instelbaar via
sessions.patchof eigenaar-only/send on|off|inherit(op zichzelf staand bericht).
chat.send/agent(Gateway)- auto-reply afleverlogica
sessions_spawn
Start een sub-agent run in een geïsoleerde sessie en kondig het resultaat aan in het chatkanaal van de aanvrager. Parameters:task(vereist)label?(optioneel; gebruikt voor logs/UI)agentId?(optioneel; spawn onder een andere agent-id indien toegestaan)model?(optioneel; overschrijft het sub-agentmodel; ongeldige waarden geven een fout)runTimeoutSeconds?(standaard 0; indien ingesteld wordt de sub-agent run na N seconden afgebroken)cleanup?(delete|keep, standaardkeep)
agents.list[].subagents.allowAgents: lijst met agent-id’s die zijn toegestaan viaagentId(["*"]om alles toe te staan). Standaard: alleen de aanvragende agent.
- Gebruik
agents_listom te ontdekken welke agent-id’s zijn toegestaan voorsessions_spawn.
- Start een nieuwe
agent:<agentId>:subagent:<uuid>-sessie metdeliver: false. - Sub-agents gebruiken standaard de volledige toolset minus sessietools (configureerbaar via
tools.subagents.tools). - Sub-agents mogen
sessions_spawnniet aanroepen (geen sub-agent → sub-agent spawning). - Altijd niet-blokkerend: retourneert
{ status: "accepted", runId, childSessionKey }onmiddellijk. - Na voltooiing voert OpenClaw een sub-agent aankondigingsstap uit en plaatst het resultaat in het chatkanaal van de aanvrager.
- Antwoord exact
ANNOUNCE_SKIPtijdens de aankondigingsstap om stil te blijven. - Aankondigingsantwoorden worden genormaliseerd naar
Status/Result/Notes;Statuskomt uit de runtime-uitkomst (niet uit de modeltekst). - Sub-agent sessies worden automatisch gearchiveerd na
agents.defaults.subagents.archiveAfterMinutes(standaard: 60). - Aankondigingsantwoorden bevatten een statistiekregel (runtime, tokens, sessionKey/sessionId, transcriptpad en optionele kosten).
Sandbox-sessiezichtbaarheid
Gesandboxde sessies kunnen sessietools gebruiken, maar zien standaard alleen sessies die zij hebben gespawned viasessions_spawn.
Config: