Status: indirilebilir plugin (bot token’ı + WebSocket olayları). Kanallar, gruplar ve DM’ler desteklenir. Mattermost, kendi sunucunuzda barındırılabilen bir ekip mesajlaşma platformudur; ürün ayrıntıları ve indirmeler için resmi siteye mattermost.com adresinden bakın.Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Kurulum
Kanalı yapılandırmadan önce Mattermost’u kurun:- npm kayıt defteri
- Yerel checkout
Hızlı kurulum
Plugin'in kullanılabilir olduğundan emin olun
Mevcut paketlenmiş OpenClaw sürümleri bunu zaten paketler. Daha eski/özel kurulumlar, yukarıdaki komutlarla bunu elle ekleyebilir.
Yerel slash komutları
Yerel slash komutları isteğe bağlıdır. Etkinleştirildiğinde OpenClaw, Mattermost API üzerindenoc_* slash komutlarını kaydeder ve Gateway HTTP sunucusunda callback POST’larını alır.
Davranış notları
Davranış notları
native: "auto"Mattermost için varsayılan olarak devre dışıdır. Etkinleştirmek içinnative: trueayarlayın.callbackUrlatlanırsa OpenClaw, Gateway host/port +callbackPathüzerinden bir tane türetir.- Çok hesaplı kurulumlarda
commandsüst düzeyde veyachannels.mattermost.accounts.<id>.commandsaltında ayarlanabilir (hesap değerleri üst düzey alanları geçersiz kılar). - Komut callback’leri, OpenClaw
oc_*komutlarını kaydettiğinde Mattermost tarafından döndürülen komut başına token’larla doğrulanır. - OpenClaw, her callback’i kabul etmeden önce mevcut Mattermost komut kaydını yeniler; böylece silinmiş veya yeniden oluşturulmuş slash komutlarından kalan eski token’lar Gateway yeniden başlatılmadan kabul edilmeyi durdurur.
- Mattermost API komutun hâlâ güncel olduğunu doğrulayamazsa callback doğrulaması kapalı başarısız olur; başarısız doğrulamalar kısa süreliğine önbelleğe alınır, eşzamanlı aramalar birleştirilir ve tekrar baskısını sınırlamak için yeni arama başlangıçları komut başına hız sınırlamasına tabi tutulur.
- Kayıt başarısız olduğunda, başlatma kısmi olduğunda veya callback token’ı çözümlenen komutun kayıtlı token’ıyla eşleşmediğinde slash callback’leri kapalı başarısız olur (bir komut için geçerli olan token, farklı bir komut için üst akış doğrulamasına ulaşamaz).
Erişilebilirlik gereksinimi
Erişilebilirlik gereksinimi
Callback uç noktası Mattermost sunucusundan erişilebilir olmalıdır.
- Mattermost, OpenClaw ile aynı host/ağ ad alanında çalışmıyorsa
callbackUrldeğerinilocalhostolarak ayarlamayın. - Bu URL
/api/channels/mattermost/commandyolunu OpenClaw’a reverse proxy yapmıyorsacallbackUrldeğerini Mattermost temel URL’niz olarak ayarlamayın. - Hızlı bir kontrol
curl https://<gateway-host>/api/channels/mattermost/commandkomutudur; GET,404değil, OpenClaw’dan405 Method Not Alloweddöndürmelidir.
Mattermost çıkış izin listesi
Mattermost çıkış izin listesi
Callback’iniz özel/tailnet/dahili adresleri hedefliyorsa Mattermost
ServiceSettings.AllowedUntrustedInternalConnections değerini callback host’unu/domain’ini içerecek şekilde ayarlayın.Tam URL’ler değil, host/domain girdileri kullanın.- Doğru:
gateway.tailnet-name.ts.net - Yanlış:
https://gateway.tailnet-name.ts.net
Ortam değişkenleri (varsayılan hesap)
Env vars tercih ediyorsanız bunları Gateway host’unda ayarlayın:MATTERMOST_BOT_TOKEN=...MATTERMOST_URL=https://chat.example.com
Env vars yalnızca varsayılan hesaba (
default) uygulanır. Diğer hesaplar yapılandırma değerlerini kullanmalıdır.MATTERMOST_URL, çalışma alanı .env dosyasından ayarlanamaz; bkz. Çalışma alanı .env dosyaları.Sohbet modları
Mattermost DM’lere otomatik olarak yanıt verir. Kanal davranışıchatmode tarafından denetlenir:
- oncall (varsayılan)
- onmessage
- onchar
Kanallarda yalnızca @bahsedildiğinde yanıt ver.
oncharaçık @bahsetmelere yine yanıt verir.channels.mattermost.requireMentioneski yapılandırmalar için dikkate alınır, ancakchatmodetercih edilir.
Thread’ler ve oturumlar
Kanal ve grup yanıtlarının ana kanalda mı kalacağını yoksa tetikleyen gönderinin altında bir thread mi başlatacağını denetlemek içinchannels.mattermost.replyToMode kullanın.
off(varsayılan): yalnızca gelen gönderi zaten bir thread içindeyse thread içinde yanıt ver.first: üst düzey kanal/grup gönderileri için, o gönderinin altında bir thread başlat ve konuşmayı thread kapsamlı bir oturuma yönlendir.all: Mattermost için bugünfirstile aynı davranış.- Doğrudan mesajlar bu ayarı yok sayar ve thread’siz kalır.
- Thread kapsamlı oturumlar, thread kökü olarak tetikleyen gönderi kimliğini kullanır.
firstveallşu anda eşdeğerdir; çünkü Mattermost bir thread köküne sahip olduğunda, devam parçaları ve medya aynı thread içinde devam eder.
Erişim denetimi (DM’ler)
- Varsayılan:
channels.mattermost.dmPolicy = "pairing"(bilinmeyen gönderenler bir eşleştirme kodu alır). - Şununla onaylayın:
openclaw pairing list mattermostopenclaw pairing approve mattermost <CODE>
- Genel DM’ler:
channels.mattermost.dmPolicy="open"artıchannels.mattermost.allowFrom=["*"]. channels.mattermost.allowFrom,accessGroup:<name>girdilerini kabul eder. Bkz. Erişim grupları.
Kanallar (gruplar)
- Varsayılan:
channels.mattermost.groupPolicy = "allowlist"(bahsetme kapılı). - Gönderenleri
channels.mattermost.groupAllowFromile izin listesine alın (kullanıcı ID’leri önerilir). channels.mattermost.groupAllowFrom,accessGroup:<name>girdilerini kabul eder. Bkz. Erişim grupları.- Kanal başına bahsetme geçersiz kılmaları
channels.mattermost.groups.<channelId>.requireMentionaltında veya varsayılan içinchannels.mattermost.groups["*"].requireMentionaltında bulunur. @usernameeşleştirmesi değişkendir ve yalnızcachannels.mattermost.dangerouslyAllowNameMatching: trueolduğunda etkinleştirilir.- Açık kanallar:
channels.mattermost.groupPolicy="open"(bahsetme kapılı). - Çalışma zamanı notu:
channels.mattermosttamamen eksikse çalışma zamanı, grup kontrolleri içingroupPolicy="allowlist"değerine geri döner (channels.defaults.groupPolicyayarlanmış olsa bile).
Giden teslimat için hedefler
Bu hedef biçimleriniopenclaw message send veya cron/webhook’larla kullanın:
- Bir kanal için
channel:<id> - Bir DM için
user:<id> - Bir DM için
@username(Mattermost API üzerinden çözümlenir)
DM kanalı yeniden denemesi
OpenClaw bir Mattermost DM hedefine gönderirken önce doğrudan kanalı çözmesi gerektiğinde, geçici doğrudan kanal oluşturma hatalarını varsayılan olarak yeniden dener. Bu davranışı Mattermost plugin’i için genel olarak ayarlamak üzerechannels.mattermost.dmChannelRetry kullanın veya tek bir hesap için channels.mattermost.accounts.<id>.dmChannelRetry kullanın.
- Bu yalnızca DM kanalı oluşturmaya (
/api/v4/channels/direct) uygulanır, her Mattermost API çağrısına değil. - Yeniden denemeler; hız limitleri, 5xx yanıtları ve ağ ya da zaman aşımı hataları gibi geçici hatalara uygulanır.
429dışındaki 4xx istemci hataları kalıcı kabul edilir ve yeniden denenmez.
Önizleme akışı
Mattermost; düşünmeyi, araç etkinliğini ve kısmi yanıt metnini tek bir taslak önizleme gönderisine akıtır; nihai yanıt göndermek için güvenli olduğunda bu gönderi yerinde sonlandırılır. Önizleme, kanalı parça başına mesajlarla doldurmak yerine aynı gönderi kimliği üzerinde güncellenir. Medya/hata final’leri bekleyen önizleme düzenlemelerini iptal eder ve atılacak bir önizleme gönderisini göndermek yerine normal teslimatı kullanır.channels.mattermost.streaming ile etkinleştirin:
Akış modları
Akış modları
partialolağan seçimdir: yanıt büyüdükçe düzenlenen ve ardından eksiksiz yanıtla sonlandırılan tek bir önizleme gönderisi.block, önizleme gönderisi içinde ekleme tarzı taslak parçaları kullanır.progress, oluşturma sırasında bir durum önizlemesi gösterir ve yalnızca tamamlandığında nihai yanıtı gönderir.offönizleme akışını devre dışı bırakır.
Akış davranışı notları
Akış davranışı notları
- Akış yerinde sonlandırılamazsa (örneğin gönderi akışın ortasında silindiyse), OpenClaw yanıtın asla kaybolmaması için yeni bir nihai gönderi göndermeye geri döner.
- Yalnızca akıl yürütme içeren payload’lar,
> Reasoning:blok alıntısı olarak gelen metin dahil olmak üzere kanal gönderilerinden bastırılır. Düşünmeyi diğer yüzeylerde görmek için/reasoning onayarlayın; Mattermost nihai gönderisi yalnızca yanıtı tutar. - Kanal eşleme matrisi için bkz. Akış.
Tepkiler (mesaj aracı)
channel=mattermostilemessage action=reactkullanın.messageId, Mattermost gönderi kimliğidir.emoji,thumbsupveya:+1:gibi adları kabul eder (iki nokta üst üste isteğe bağlıdır).- Bir tepkiyi kaldırmak için
remove=true(boolean) ayarlayın. - Tepki ekleme/kaldırma olayları, yönlendirilen agent oturumuna sistem olayları olarak iletilir.
channels.mattermost.actions.reactions: tepki eylemlerini etkinleştir/devre dışı bırak (varsayılan true).- Hesap başına geçersiz kılma:
channels.mattermost.accounts.<id>.actions.reactions.
Etkileşimli düğmeler (mesaj aracı)
Tıklanabilir düğmeler içeren mesajlar gönderin. Bir kullanıcı düğmeye tıkladığında agent seçimi alır ve yanıt verebilir. Kanal yeteneklerineinlineButtons ekleyerek düğmeleri etkinleştirin:
buttons parametresiyle message action=send kullanın. Düğmeler 2B dizidir (düğme satırları):
Görüntü etiketi.
Tıklamada geri gönderilen değer (eylem kimliği olarak kullanılır).
Düğme stili.
Düğmeler onayla değiştirilir
Tüm düğmeler bir onay satırıyla değiştirilir (ör. ”✓ Yes selected by @user”).
Uygulama notları
Uygulama notları
- Düğme geri çağrıları HMAC-SHA256 doğrulaması kullanır (otomatik, yapılandırma gerekmez).
- Mattermost, API yanıtlarından geri çağrı verilerini çıkarır (güvenlik özelliği), bu yüzden tıklamada tüm düğmeler kaldırılır - kısmi kaldırma mümkün değildir.
- Tire veya alt çizgi içeren eylem kimlikleri otomatik olarak temizlenir (Mattermost yönlendirme sınırlaması).
Yapılandırma ve erişilebilirlik
Yapılandırma ve erişilebilirlik
channels.mattermost.capabilities: yetenek dizelerinin dizisi. Ajan sistem isteminde düğmeler aracı açıklamasını etkinleştirmek için"inlineButtons"ekleyin.channels.mattermost.interactions.callbackBaseUrl: düğme geri çağrıları için isteğe bağlı harici taban URL (örneğinhttps://gateway.example.com). Mattermost, bağlama ana makinesindeki Gateway’e doğrudan ulaşamadığında bunu kullanın.- Çok hesaplı kurulumlarda, aynı alanı
channels.mattermost.accounts.<id>.interactions.callbackBaseUrlaltında da ayarlayabilirsiniz. interactions.callbackBaseUrlatlanırsa, OpenClaw geri çağrı URL’sinigateway.customBindHost+gateway.portüzerinden türetir, ardındanhttp://localhost:<port>adresine geri döner.- Erişilebilirlik kuralı: düğme geri çağrı URL’sine Mattermost sunucusundan erişilebilmelidir.
localhostyalnızca Mattermost ve OpenClaw aynı ana makinede/ağ ad alanında çalıştığında çalışır. - Geri çağrı hedefiniz özel/tailnet/dahili ise, ana makinesini/alan adını Mattermost
ServiceSettings.AllowedUntrustedInternalConnectionslistesine ekleyin.
Doğrudan API entegrasyonu (harici betikler)
Harici betikler ve Webhook’lar, ajanınmessage aracından geçmek yerine Mattermost REST API üzerinden doğrudan düğme gönderebilir. Mümkün olduğunda Plugin’den buildButtonAttachments() kullanın; ham JSON gönderiyorsanız şu kuralları izleyin:
Yük yapısı:
Gizli anahtarı bot belirtecinden türetin
HMAC-SHA256(key="openclaw-mattermost-interactions", data=botToken)Sıralı anahtarlarla serileştirin
Sıralı anahtarlarla ve boşluksuz serileştirin (Gateway, kompakt çıktı üreten sıralı anahtarlarla
JSON.stringify kullanır).Yaygın HMAC sorunları
Yaygın HMAC sorunları
- Python’ın
json.dumpsişlevi varsayılan olarak boşluk ekler ({"key": "val"}). JavaScript’in kompakt çıktısıyla ({"key":"val"}) eşleşmek içinseparators=(",", ":")kullanın. - Her zaman tüm bağlam alanlarını imzalayın (
_tokenhariç). Gateway_tokenalanını çıkarır, sonra kalan her şeyi imzalar. Bir alt kümeyi imzalamak sessiz doğrulama hatasına neden olur. sort_keys=Truekullanın - Gateway imzalamadan önce anahtarları sıralar ve Mattermost yükü saklarken bağlam alanlarını yeniden sıralayabilir.- Gizli anahtarı rastgele baytlardan değil, bot belirtecinden türetin (deterministik). Gizli anahtar, düğmeleri oluşturan süreç ile doğrulayan Gateway arasında aynı olmalıdır.
Dizin bağdaştırıcısı
Mattermost Plugin’i, Mattermost API üzerinden kanal ve kullanıcı adlarını çözen bir dizin bağdaştırıcısı içerir. Bu,openclaw message send ve cron/webhook teslimatlarında #channel-name ve @username hedeflerini etkinleştirir.
Yapılandırma gerekmez - bağdaştırıcı hesap yapılandırmasındaki bot belirtecini kullanır.
Çok hesap
Mattermost,channels.mattermost.accounts altında birden çok hesabı destekler:
Sorun giderme
Kanallarda yanıt yok
Kanallarda yanıt yok
Botun kanalda olduğundan emin olun ve ondan bahsedin (oncall), bir tetikleyici öneki kullanın (onchar) veya
chatmode: "onmessage" ayarlayın.Kimlik doğrulama veya çok hesap hataları
Kimlik doğrulama veya çok hesap hataları
- Bot belirtecini, taban URL’yi ve hesabın etkin olup olmadığını kontrol edin.
- Çok hesap sorunları: ortam değişkenleri yalnızca
defaulthesabına uygulanır.
Yerel eğik çizgi komutları başarısız oluyor
Yerel eğik çizgi komutları başarısız oluyor
Unauthorized: invalid command token.: OpenClaw geri çağrı belirtecini kabul etmedi. Tipik nedenler:- eğik çizgi komutu kaydı başlangıçta başarısız oldu veya yalnızca kısmen tamamlandı
- geri çağrı yanlış Gateway/hesaba gidiyor
- Mattermost hâlâ önceki bir geri çağrı hedefini işaret eden eski komutlara sahip
- Gateway, eğik çizgi komutlarını yeniden etkinleştirmeden yeniden başlatıldı
- Yerel eğik çizgi komutları çalışmayı durdurursa, günlüklerde
mattermost: failed to register slash commandsveyamattermost: native slash commands enabled but no commands could be registeredarayın. callbackUrlatlanırsa ve günlükler geri çağrınınhttp://127.0.0.1:18789/...olarak çözümlendiği konusunda uyarırsa, bu URL muhtemelen yalnızca Mattermost, OpenClaw ile aynı ana makinede/ağ ad alanında çalıştığında erişilebilirdir. Bunun yerine açıkça harici olarak erişilebilir bircommands.callbackUrlayarlayın.
Düğme sorunları
Düğme sorunları
- Düğmeler beyaz kutular olarak görünür: ajan hatalı biçimlendirilmiş düğme verileri gönderiyor olabilir. Her düğmede hem
texthem decallback_dataalanlarının bulunduğunu kontrol edin. - Düğmeler oluşturulur ama tıklamalar hiçbir şey yapmaz: Mattermost sunucu yapılandırmasındaki
AllowedUntrustedInternalConnectionsdeğerinin127.0.0.1 localhostiçerdiğini ve ServiceSettings içindeEnablePostActionIntegrationdeğerinintrueolduğunu doğrulayın. - Düğmeler tıklamada 404 döndürür: düğme
iddeğeri muhtemelen tire veya alt çizgi içeriyor. Mattermost’un eylem yönlendiricisi alfanümerik olmayan kimliklerde bozulur. Yalnızca[a-zA-Z0-9]kullanın. - Gateway günlükleri
invalid _token: HMAC uyumsuzluğu. Tüm bağlam alanlarını (bir alt küme değil) imzaladığınızı, sıralı anahtarlar kullandığınızı ve kompakt JSON (boşluksuz) kullandığınızı kontrol edin. Yukarıdaki HMAC bölümüne bakın. - Gateway günlükleri
missing _token in context:_tokenalanı düğmenin bağlamında yok. Entegrasyon yükü oluşturulurken dahil edildiğinden emin olun. - Onay, düğme adı yerine ham kimlik gösteriyor:
context.action_id, düğmeniniddeğeriyle eşleşmiyor. Her ikisini de aynı temizlenmiş değere ayarlayın. - Ajan düğmeleri bilmiyor: Mattermost kanal yapılandırmasına
capabilities: ["inlineButtons"]ekleyin.
İlgili
- Kanal Yönlendirme - iletiler için oturum yönlendirmesi
- Kanallara Genel Bakış - desteklenen tüm kanallar
- Gruplar - grup sohbeti davranışı ve bahsetme geçidi
- Eşleştirme - DM kimlik doğrulaması ve eşleştirme akışı
- Güvenlik - erişim modeli ve sağlamlaştırma