agentDir) ve oturum geçmişine sahip birden çok yalıtılmış agent çalıştırın; ayrıca birden çok kanal hesabını (ör. iki WhatsApp) kullanın. Gelen mesajlar binding’ler üzerinden doğru agent’a yönlendirilir.
Buradaki agent, persona başına tam kapsamdır: çalışma alanı dosyaları, kimlik doğrulama profilleri, model kayıt defteri ve oturum deposu. agentDir, agent başına bu yapılandırmayı ~/.openclaw/agents/<agentId>/ konumunda tutan disk üzerindeki durum dizinidir. Bir binding, bir kanal hesabını (ör. bir Slack çalışma alanı veya bir WhatsApp numarası) bu agent’lardan biriyle eşler.
”Tek agent” nedir?
Bir agent, kendine ait aşağıdakileri olan tam kapsamlı bir beyindir:- Çalışma alanı (dosyalar, AGENTS.md/SOUL.md/USER.md, yerel notlar, persona kuralları).
- Kimlik doğrulama profilleri, model kayıt defteri ve agent başına yapılandırma için durum dizini (
agentDir). ~/.openclaw/agents/<agentId>/sessionsaltında oturum deposu (sohbet geçmişi + yönlendirme durumu).
sessions_history burada da daha güvenli oturumlar arası hatırlama yoludur: ham transkript dökümü değil, sınırlı ve arındırılmış bir görünüm döndürür. Asistan hatırlaması; düşünme etiketlerini, <relevant-memories> iskeletini, düz metin araç çağrısı XML payload’larını (<tool_call>...</tool_call>, <function_call>...</function_call>, <tool_calls>...</tool_calls>, <function_calls>...</function_calls> ve kesilmiş araç çağrısı blokları dahil), düşürülmüş araç çağrısı iskeletini, sızmış ASCII/tam genişlikli model kontrol token’larını ve hatalı biçimlendirilmiş MiniMax araç çağrısı XML’ini redaksiyon/kesme öncesinde çıkarır.~/.openclaw/skills gibi paylaşılan köklerden yüklenir, ardından yapılandırıldığında etkin agent skill izin listesine göre filtrelenir. Paylaşılan bir temel için agents.defaults.skills, agent başına değiştirme için agents.list[].skills kullanın. Bkz. Skills: agent başına ve paylaşılan ve Skills: agent skill izin listeleri.
Gateway tek agent (varsayılan) veya yan yana birçok agent barındırabilir.
Çalışma alanı notu: her agent’ın çalışma alanı, katı bir sandbox değil, varsayılan cwd’dir. Göreli yollar çalışma alanı içinde çözümlenir, ancak sandboxing etkin değilse mutlak yollar ana makinedeki diğer konumlara ulaşabilir. Bkz. Sandboxing.
Yollar (hızlı harita)
- Yapılandırma:
~/.openclaw/openclaw.json(veyaOPENCLAW_CONFIG_PATH) - Durum dizini:
~/.openclaw(veyaOPENCLAW_STATE_DIR) - Çalışma alanı:
~/.openclaw/workspace(veya~/.openclaw/workspace-<agentId>) - Agent dizini:
~/.openclaw/agents/<agentId>/agent(veyaagents.list[].agentDir) - Oturumlar:
~/.openclaw/agents/<agentId>/sessions
Tek agent modu (varsayılan)
Hiçbir şey yapmazsanız OpenClaw tek bir agent çalıştırır:agentIdvarsayılan olarakmainolur.- Oturumlar
agent:main:<mainKey>olarak anahtarlanır. - Çalışma alanı varsayılan olarak
~/.openclaw/workspaceolur (veyaOPENCLAW_PROFILEayarlandığında~/.openclaw/workspace-<profile>). - Durum varsayılan olarak
~/.openclaw/agents/main/agentolur.
Agent yardımcısı
Yeni bir yalıtılmış agent eklemek için agent sihirbazını kullanın:bindings ekleyin (veya bunu sihirbazın yapmasına izin verin).
Şununla doğrulayın:
Hızlı başlangıç
Her agent çalışma alanını oluşturun
Sihirbazı kullanın veya çalışma alanlarını elle oluşturun:Her agent;
SOUL.md, AGENTS.md ve isteğe bağlı USER.md içeren kendi çalışma alanını, ayrıca ~/.openclaw/agents/<agentId> altında ayrılmış bir agentDir ve oturum deposunu alır.Kanal hesapları oluşturun
Tercih ettiğiniz kanallarda agent başına bir hesap oluşturun:Kanal kılavuzlarına bakın: Discord, Telegram, WhatsApp.
- Discord: agent başına bir bot, Message Content Intent’i etkinleştirin, her token’ı kopyalayın.
- Telegram: BotFather üzerinden agent başına bir bot, her token’ı kopyalayın.
- WhatsApp: hesap başına her telefon numarasını bağlayın.
Agent'ları, hesapları ve binding'leri ekleyin
Agent’ları
agents.list altına, kanal hesaplarını channels.<channel>.accounts altına ekleyin ve bunları bindings ile bağlayın (aşağıdaki örnekler).Birden çok agent = birden çok kişi, birden çok kişilik
Birden çok agent ile heragentId, tamamen yalıtılmış bir persona haline gelir:
- Farklı telefon numaraları/hesaplar (kanal başına
accountId). - Farklı kişilikler (
AGENTS.mdveSOUL.mdgibi agent başına çalışma alanı dosyaları). - Ayrı kimlik doğrulama + oturumlar (açıkça etkinleştirilmedikçe çapraz konuşma yok).
Agent’lar arası QMD bellek araması
Bir agent’ın başka bir agent’ın QMD oturum transkriptlerinde arama yapması gerekiyorsaagents.list[].memorySearch.qmd.extraCollections altına ek koleksiyonlar ekleyin. agents.defaults.memorySearch.qmd.extraCollections değerini yalnızca her agent aynı paylaşılan transkript koleksiyonlarını devralmalıysa kullanın.
Tek WhatsApp numarası, birden çok kişi (DM ayrımı)
Tek WhatsApp hesabında kalırken farklı WhatsApp DM’lerini farklı agent’lara yönlendirebilirsiniz.peer.kind: "direct" ile gönderen E.164 üzerinde (+15551234567 gibi) eşleştirin. Yanıtlar yine aynı WhatsApp numarasından gelir (agent başına gönderen kimliği yoktur).
Doğrudan sohbetler agent’ın ana oturum anahtarına indirgenir, bu yüzden gerçek yalıtım kişi başına bir agent gerektirir.
- DM erişim denetimi agent başına değil, WhatsApp hesabı başına geneldir (eşleme/izin listesi).
- Paylaşılan gruplar için grubu bir agent’a bağlayın veya Yayın grupları kullanın.
Yönlendirme kuralları (mesajlar bir agent’ı nasıl seçer)
Binding’ler deterministiktir ve en spesifik olan kazanır:Eşitlik bozma ve AND semantiği
Eşitlik bozma ve AND semantiği
- Aynı kademede birden çok binding eşleşirse yapılandırma sırasındaki ilk binding kazanır.
- Bir binding birden çok match alanı ayarlarsa (örneğin
peer+guildId), belirtilen tüm alanlar zorunludur (ANDsemantiği).
Hesap kapsamı ayrıntısı
Hesap kapsamı ayrıntısı
accountIdatlayan bir binding yalnızca varsayılan hesapla eşleşir. Tüm hesaplarla eşleşmez.- Tüm hesaplar genelinde kanal çapında fallback için
accountId: "*"kullanın. - Tek bir hesabı eşleştirmek için
accountId: "<name>"kullanın. - Daha sonra aynı agent için aynı binding’i açık bir hesap kimliğiyle eklerseniz OpenClaw mevcut yalnızca kanal binding’ini çoğaltmak yerine hesap kapsamlı olacak şekilde yükseltir.
Birden çok hesap / telefon numarası
Birden çok hesabı destekleyen kanallar (ör. WhatsApp), her oturum açmayı tanımlamak içinaccountId kullanır. Her accountId farklı bir agent’a yönlendirilebilir, böylece tek bir sunucu oturumları karıştırmadan birden çok telefon numarası barındırabilir.
accountId atlandığında kanal çapında varsayılan bir hesap istiyorsanız channels.<channel>.defaultAccount değerini ayarlayın (isteğe bağlı). Ayarlanmadığında OpenClaw, varsa default değerine, aksi halde ilk yapılandırılmış hesap kimliğine (sıralı) fallback yapar.
Bu deseni destekleyen yaygın kanallar şunlardır:
whatsapp,telegram,discord,slack,signal,imessageirc,line,googlechat,mattermost,matrix,nextcloud-talkzalo,zalouser,nostr,feishu
Kavramlar
agentId: tek bir “beyin” (çalışma alanı, agent başına kimlik doğrulama, agent başına oturum deposu).accountId: tek bir kanal hesabı örneği (ör. WhatsApp hesabı"personal"ve"biz").binding: gelen mesajları(channel, accountId, peer)ve isteğe bağlı olarak guild/team kimlikleriyle biragentIddeğerine yönlendirir.- Doğrudan sohbetler
agent:<agentId>:<mainKey>değerine indirgenir (agent başına “main”;session.mainKey).
Platform örnekleri
Agent başına Discord botları
Agent başına Discord botları
Her Discord bot hesabı benzersiz bir
accountId ile eşleşir. Her hesabı bir agent’a bağlayın ve izin listelerini bot başına tutun.- Her botu sunucuya davet edin ve Message Content Intent ayarını etkinleştirin.
- Tokenlar
channels.discord.accounts.<id>.tokeniçinde bulunur (varsayılan hesapDISCORD_BOT_TOKENkullanabilir).
Telegram bots per agent
Telegram bots per agent
- BotFather ile her ajan için bir bot oluşturun ve her tokenı kopyalayın.
- Tokenlar
channels.telegram.accounts.<id>.botTokeniçinde bulunur (varsayılan hesapTELEGRAM_BOT_TOKENkullanabilir). - Aynı Telegram grubunda birden fazla bot için her botu davet edin ve yanıtlaması gereken bottan bahsedin.
- Her grup botu için BotFather Privacy Mode ayarını devre dışı bırakın, ardından Telegram ayarı uygulayabilsin diye botu yeniden ekleyin.
- Gruplara
channels.telegram.groupsile izin verin veyagroupPolicy: "open"değerini yalnızca güvenilir grup dağıtımları için kullanın. - Gönderen kullanıcı kimliklerini
groupAllowFromiçine koyun. Grup ve süper grup kimliklerigroupAllowFromiçinde değil,channels.telegram.groupsiçinde yer alır. - Her botun kendi ajanına yönlenmesi için
accountIdile bağlayın.
WhatsApp numbers per agent
WhatsApp numbers per agent
Gateway başlatmadan önce her hesabı bağlayın:
~/.openclaw/openclaw.json (JSON5):Yaygın kalıplar
- WhatsApp daily + Telegram deep work
- Same channel, one peer to Opus
- Family agent bound to a WhatsApp group
Kanala göre ayırın: WhatsApp’ı hızlı bir günlük ajana, Telegram’ı ise bir Opus ajanına yönlendirin.Notlar:
- Bu örnekler
accountId: "*"kullanır; böylece daha sonra hesap ekleseniz bile bağlamalar çalışmaya devam eder. - Geri kalanını sohbet ajanında tutarken tek bir DM/grubu Opus’a yönlendirmek için o eş için bir
match.peerbağlaması ekleyin; eş eşleşmeleri her zaman kanal geneli kurallara üstün gelir.
Ajan başına sandbox ve araç yapılandırması
Her ajanın kendi sandbox’ı ve araç kısıtlamaları olabilir:setupCommand, sandbox.docker altında bulunur ve konteyner oluşturulduğunda bir kez çalışır. Çözümlenen kapsam "shared" olduğunda ajan başına sandbox.docker.* geçersiz kılmaları yok sayılır.- Güvenlik yalıtımı: güvenilmeyen ajanlar için araçları kısıtlayın.
- Kaynak denetimi: belirli ajanları sandbox’a alırken diğerlerini ana makinede tutun.
- Esnek ilkeler: ajan başına farklı izinler.
tools.elevated geneldir ve gönderene dayalıdır; ajan başına yapılandırılamaz. Ajan başına sınırlar gerekiyorsa exec kullanımını reddetmek için agents.list[].tools kullanın. Grup hedefleme için agents.list[].groupChat.mentionPatterns kullanın; böylece @bahsetmeler amaçlanan ajanla düzgün eşleşir.İlgili
- ACP ajanları — harici kodlama harness’ları çalıştırma
- Kanal yönlendirme — iletilerin ajanlara nasıl yönlendirildiği
- Presence — ajan varlığı ve kullanılabilirliği
- Oturum — oturum yalıtımı ve yönlendirme
- Alt ajanlar — arka plan ajan çalıştırmaları başlatma