OpenClaw, kanala özgü çıktıyı işlemeden önce giden Markdown içeriğini paylaşılan bir ara temsile (IR) dönüştürerek biçimlendirir. IR, kaynak metni olduğu gibi korurken stil/bağlantı aralıklarını taşır; böylece parçalara ayırma ve işleme kanallar arasında tutarlı kalabilir.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.
Hedefler
- Tutarlılık: tek ayrıştırma adımı, birden çok işleyici.
- Güvenli parçalara ayırma: metni işlemeden önce bölerek satır içi biçimlendirmenin parçalar arasında asla bozulmamasını sağlama.
- Kanala uyum: aynı IR’yi Markdown yeniden ayrıştırılmadan Slack mrkdwn, Telegram HTML ve Signal stil aralıklarına eşleme.
İş hattı
- Markdown ayrıştır -> IR
- IR, düz metin artı stil aralıkları (kalın/italik/üstü çizili/kod/spoiler) ve bağlantı aralıklarından oluşur.
- Ofsetler UTF-16 kod birimleridir, böylece Signal stil aralıkları API’siyle hizalanır.
- Tablolar yalnızca bir kanal tablo dönüştürmeyi seçtiğinde ayrıştırılır.
- IR’yi parçalara ayır (önce biçim)
- Parçalara ayırma, işlemeden önce IR metni üzerinde gerçekleşir.
- Satır içi biçimlendirme parçalar arasında bölünmez; aralıklar parça başına dilimlenir.
- Kanal başına işle
- Slack: mrkdwn belirteçleri (kalın/italik/üstü çizili/kod), bağlantılar
<url|label>olarak. - Telegram: HTML etiketleri (
<b>,<i>,<s>,<code>,<pre><code>,<a href>). - Signal: düz metin +
text-stylearalıkları; etiket farklıysa bağlantılarlabel (url)olur.
- Slack: mrkdwn belirteçleri (kalın/italik/üstü çizili/kod), bağlantılar
IR örneği
Girdi Markdown:Nerede kullanılır
- Slack, Telegram ve Signal giden bağdaştırıcıları IR’den işler.
- Diğer kanallar (WhatsApp, iMessage, Microsoft Teams, Discord) hâlâ düz metin veya kendi biçimlendirme kurallarını kullanır; etkinleştirildiğinde Markdown tablo dönüştürme, parçalara ayırmadan önce uygulanır.
Tablo işleme
Markdown tabloları sohbet istemcileri arasında tutarlı şekilde desteklenmez. Kanal başına (ve hesap başına) dönüştürmeyi kontrol etmek içinmarkdown.tables kullanın.
code: tabloları kod blokları olarak işler (çoğu kanal için varsayılan).bullets: her satırı madde işaretlerine dönüştürür (Matrix, Signal ve WhatsApp için varsayılan).off: tablo ayrıştırmayı ve dönüştürmeyi devre dışı bırakır; ham tablo metni olduğu gibi geçer.
Parçalara ayırma kuralları
- Parça sınırları kanal bağdaştırıcılarından/yapılandırmadan gelir ve IR metnine uygulanır.
- Kod çitleri, kanalların bunları doğru işlemesi için sonunda satır sonu olan tek bir blok olarak korunur.
- Liste önekleri ve blok alıntı önekleri IR metninin parçasıdır, bu yüzden parçalara ayırma önek ortasında bölmez.
- Satır içi stiller (kalın/italik/üstü çizili/satır içi kod/spoiler) parçalar arasında asla bölünmez; işleyici her parçanın içinde stilleri yeniden açar.
Bağlantı ilkesi
- Slack:
[label](url)-><url|label>; çıplak URL’ler çıplak kalır. Çift bağlantı oluşturmayı önlemek için ayrıştırma sırasında otomatik bağlantı devre dışıdır. - Telegram:
[label](url)-><a href="url">label</a>(HTML ayrıştırma modu). - Signal: etiket URL ile eşleşmediği sürece
[label](url)->label (url).
Spoilerlar
Spoiler işaretleri (||spoiler||) yalnızca Signal için ayrıştırılır; burada SPOILER stil aralıklarına eşlenir. Diğer kanallar bunları düz metin olarak ele alır.
Kanal biçimlendiricisi ekleme veya güncelleme
- Bir kez ayrıştır: kanala uygun seçeneklerle (otomatik bağlantı, başlık stili, blok alıntı öneki) paylaşılan
markdownToIR(...)yardımcısını kullanın. - İşle:
renderMarkdownWithMarkers(...)ve bir stil işareti haritası (veya Signal stil aralıkları) ile bir işleyici uygulayın. - Parçalara ayır: işlemeden önce
chunkMarkdownIR(...)çağırın; her parçayı işleyin. - Bağdaştırıcıyı bağla: yeni parçalayıcıyı ve işleyiciyi kullanmak için kanal giden bağdaştırıcısını güncelleyin.
- Test et: kanal parçalara ayırma kullanıyorsa biçim testleri ve bir giden teslimat testi ekleyin veya güncelleyin.
Sık karşılaşılan tuzaklar
- Slack açılı ayraç belirteçleri (
<@U123>,<#C123>,<https://...>) korunmalıdır; ham HTML’yi güvenli şekilde kaçışlayın. - Telegram HTML, bozuk işaretlemeyi önlemek için etiket dışındaki metnin kaçışlanmasını gerektirir.
- Signal stil aralıkları UTF-16 ofsetlerine bağlıdır; kod noktası ofsetleri kullanmayın.
- Çitli kod blokları için sondaki satır sonlarını koruyun, böylece kapanış işaretleri kendi satırlarına yerleşir.
İlgili
Streaming ve parçalara ayırma
Giden streaming davranışı, parça sınırları ve kanala özgü teslimat.
Sistem istemi
Enjekte edilen çalışma alanı dosyaları dahil, modelin konuşmadan önce gördükleri.