Oturum Araçları
Amaç: Ajanların oturumları listeleyebilmesi, geçmişi alabilmesi ve başka bir oturuma mesaj gönderebilmesi için küçük ve yanlış kullanımı zor bir araç seti.Araç Adları
sessions_listsessions_historysessions_sendsessions_spawn
Anahtar Modeli
- Ana doğrudan sohbet kovası her zaman tam olarak
"main"anahtarıdır (geçerli ajanın ana anahtarına çözümlenir). - Grup sohbetleri
agent:<agentId>:<channel>:group:<id>veyaagent:<agentId>:<channel>:channel:<id>kullanır (tam anahtarı geçin). - Cron işleri
cron:<job.id>kullanır. - Hook’lar açıkça ayarlanmadıkça
hook:<uuid>kullanır. - Node oturumları açıkça ayarlanmadıkça
node-<nodeId>kullanır.
global ve unknown ayrılmış değerlerdir ve asla listelenmez. session.scope = "global" olduğunda, çağıranların global’yı hiç görmemesi için tüm araçlarda main’e takma ad verilir.
sessions_list
Oturumları satır dizisi olarak listeler. Parametreler:kinds?: string[]filtresi:"main" | "group" | "cron" | "hook" | "node" | "other"’den herhangi birilimit?: numberazami satır sayısı (varsayılan: sunucu varsayılanı, örn. 200’e sıkıştırılır)activeMinutes?: numberyalnızca son N dakika içinde güncellenen oturumlarmessageLimit?: number0 = mesaj yok (varsayılan 0); >0 = son N mesajı dahil et
messageLimit > 0, oturum başınachat.historygetirir ve son N mesajı dahil eder.- Araç sonuçları liste çıktısından filtrelenir; araç mesajları için
sessions_historykullanın. - sandboxed bir ajan oturumunda çalışırken, oturum araçları varsayılan olarak yalnızca-spawned görünürlüğüne sahiptir (aşağıya bakın).
key: oturum anahtarı (string)kind:main | group | cron | hook | node | otherchannel:whatsapp | telegram | discord | signal | imessage | webchat | internal | unknowndisplayName(varsa grup görüntü etiketi)updatedAt(ms)sessionIdmodel,contextTokens,totalTokensthinkingLevel,verboseLevel,systemSent,abortedLastRunsendPolicy(ayarlıysa oturum geçersiz kılması)lastChannel,lastTodeliveryContext(mümkün olduğunda normalize edilmiş{ channel, to, accountId })transcriptPath(depo dizini + sessionId’den türetilen en iyi çaba yolu)messages?(yalnızcamessageLimit > 0olduğunda)
sessions_history
Tek bir oturum için dökümü getirir. Parametreler:sessionKey(zorunlu;sessions_list’dan oturum anahtarını veyasessionId’u kabul eder)limit?: numberazami mesaj sayısı (sunucu sınırlar)includeTools?: boolean(varsayılan false)
includeTools=false,role: "toolResult"mesajlarını filtreler.- Mesajlar dizisini ham döküm biçiminde döndürür.
- Bir
sessionIdverildiğinde, OpenClaw bunu karşılık gelen oturum anahtarına çözümler (eksik kimlikler hatası).
sessions_send
Başka bir oturuma mesaj gönderir. Parametreler:sessionKey(zorunlu;sessions_list’den oturum anahtarını veyasessionId’yi kabul eder)message(zorunlu)timeoutSeconds?: number(varsayılan >0; 0 = ateşle-ve-unut)
timeoutSeconds = 0: kuyruğa alır ve{ runId, status: "accepted" }döndürür.timeoutSeconds > 0: tamamlanma için N saniyeye kadar bekler, ardından{ runId, status: "ok", reply }döndürür.- Bekleme zaman aşımına uğrarsa:
{ runId, status: "timeout", error }. Çalışma devam eder; daha sonrasessions_history’yı çağırın. - Çalışma başarısız olursa:
{ runId, status: "error", error }. - Duyuru teslimi, birincil çalışma tamamlandıktan sonra çalışır ve en iyi çaba esaslıdır;
status: "ok", duyurunun teslim edildiğini garanti etmez. - Bekleme, gateway
agent.wait(sunucu tarafı) üzerinden yapılır; böylece yeniden bağlanmalar beklemeyi düşürmez. - Ajanlar arası mesaj bağlamı, birincil çalıştırma için enjekte edilir.
- Oturumlar arası mesajlar, yönlendirilen ajan talimatlarını harici kullanıcı girdisinden ayırt edebilmek için
message.provenance.kind = "inter_session"olarak kalıcı hale getirilir. - Döngü sona erdiğinde OpenClaw ajan‑ajan duyuru adımını çalıştırır (yalnızca hedef ajan):
- Round 2+ alternates between requester and target agents.
- Ping‑pong’u durdurmak için tam olarak
REPLY_SKIPyanıtlayın. - Azami tur sayısı
session.agentToAgent.maxPingPongTurns’dir (0–5, varsayılan 5).
- Birincil çalışma tamamlandıktan sonra OpenClaw bir yanıt-geri döngüsü çalıştırır:
- Sessiz kalmak için tam olarak
ANNOUNCE_SKIPyanıtlayın. - Diğer herhangi bir yanıt hedef kanala gönderilir.
- Duyuru adımı, özgün istek + 1. tur yanıtı + en son ping‑pong yanıtını içerir.
- Sessiz kalmak için tam olarak
Kanal Alanı
- Gruplar için,
channeloturum kaydında kaydedilen kanaldır. - Doğrudan sohbetler için,
channel,lastChannel’ten eşlenir. - Cron/hook/node için,
channelinternal’dir. - Eksikse,
channelunknown’dir.
Güvenlik / Gönderim Politikası
Kanal/sohbet türüne göre politika tabanlı engelleme (oturum kimliğine göre değil).sendPolicy: "allow" | "deny"(ayarlanmamış = yapılandırmayı devral)sessions.patchveya yalnızca sahibine ait/send on|off|inherit(bağımsız mesaj) ile ayarlanabilir.
chat.send/agent(gateway)- otomatik yanıt teslim mantığı
sessions_spawn
Spawn a sub-agent run in an isolated session and announce the result back to the requester chat channel. Parametreler:task(zorunlu)label?(isteğe bağlı; günlükler/UI için kullanılır)agentId?(isteğe bağlı; izin veriliyorsa başka bir ajan kimliği altında başlat)model?(isteğe bağlı; alt‑ajan modelini geçersiz kılar; geçersiz değerler hatadır)runTimeoutSeconds?(varsayılan 0; ayarlandığında, N saniye sonra alt‑ajan çalışmasını iptal eder)cleanup?(delete|keep, varsayılankeep)
agents.list[].subagents.allowAgents:agentIdaracılığıyla izin verilen ajan kimlikleri listesi (["*"]herhangi birine izin vermek için). Varsayılan: yalnızca istekte bulunan ajan.
sessions_spawniçin hangi ajan kimliklerine izin verildiğini keşfetmek üzereagents_listkullanın.
deliver: falseile yeni biragent:<agentId>:subagent:<uuid>oturumu başlatır.- Alt‑ajanlar varsayılan olarak oturum araçları hariç tam araç setine sahiptir (
tools.subagents.toolsile yapılandırılabilir). - Alt‑ajanların
sessions_spawnçağırmasına izin verilmez (alt‑ajan → alt‑ajan başlatma yok). - Her zaman engellemesizdir:
{ status: "accepted", runId, childSessionKey }’yi hemen döndürür. - Tamamlandıktan sonra OpenClaw bir alt‑ajan duyuru adımı çalıştırır ve sonucu istekte bulunan sohbet kanalına gönderir.
- Duyuru adımı sırasında sessiz kalmak için tam olarak
ANNOUNCE_SKIPyanıtlayın. - Duyuru yanıtları
Status/Result/Notesolarak normalize edilir;Statusçalışma zamanı sonucundan gelir (model metninden değil). - Alt‑ajan oturumları
agents.defaults.subagents.archiveAfterMinutessonra otomatik olarak arşivlenir (varsayılan: 60). - Duyuru yanıtları bir istatistik satırı içerir (çalışma süresi, token’lar, sessionKey/sessionId, döküm yolu ve isteğe bağlı maliyet).
Sandbox Oturum Görünürlüğü
Sandboxed oturumlar oturum araçlarını kullanabilir; ancak varsayılan olarak yalnızcasessions_spawn aracılığıyla başlattıkları oturumları görürler.
Yapılandırma: