chore(i18n): refresh tr translations
This commit is contained in:
parent
3ea60a2325
commit
a747717da3
File diff suppressed because it is too large
Load Diff
@ -1,136 +1,140 @@
|
||||
---
|
||||
read_when:
|
||||
- Bellek yükseltmenin otomatik olarak çalışmasını istiyorsunuz
|
||||
- Her rüya görme evresinin ne yaptığını anlamak istiyorsunuz
|
||||
- Sağlamlaştırmayı `MEMORY.md` dosyasını kirletmeden ayarlamak istiyorsunuz
|
||||
summary: Hafif, derin ve REM evreleri ile arka plan bellek sağlamlaştırması ve bir Rüya Günlüğü
|
||||
title: Rüya görme (deneysel)
|
||||
- Her bir rüya görme evresinin ne yaptığını anlamak istiyorsunuz
|
||||
- Pekiştirmeyi `MEMORY.md` dosyasını kirletmeden ayarlamak istiyorsunuz
|
||||
summary: Hafif, derin ve REM evreleri ile rüya günlüğü içeren arka plan bellek pekiştirmesi
|
||||
title: Dreaming (deneysel)
|
||||
x-i18n:
|
||||
generated_at: "2026-04-09T01:27:50Z"
|
||||
generated_at: "2026-04-15T08:53:15Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 26476eddb8260e1554098a6adbb069cf7f5e284cf2e09479c6d9d8f8b93280ef
|
||||
source_hash: 5882a5068f2eabe54ca9893184e5385330a432b921870c38626399ce11c31e25
|
||||
source_path: concepts/dreaming.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Rüya görme (deneysel)
|
||||
# Dreaming (deneysel)
|
||||
|
||||
Rüya görme, `memory-core` içindeki arka plan bellek sağlamlaştırma sistemidir.
|
||||
OpenClaw'un güçlü kısa süreli sinyalleri kalıcı belleğe taşımasına yardımcı olurken
|
||||
sürecin açıklanabilir ve incelenebilir kalmasını sağlar.
|
||||
Dreaming, `memory-core` içindeki arka plan bellek pekiştirme sistemidir.
|
||||
OpenClaw’un güçlü kısa süreli sinyalleri kalıcı belleğe taşımasına yardımcı olurken
|
||||
süreci açıklanabilir ve incelenebilir halde tutar.
|
||||
|
||||
Rüya görme **isteğe bağlıdır** ve varsayılan olarak devre dışıdır.
|
||||
Dreaming **isteğe bağlıdır** ve varsayılan olarak devre dışıdır.
|
||||
|
||||
## Rüya görmenin yazdıkları
|
||||
## Dreaming’in yazdıkları
|
||||
|
||||
Rüya görme iki tür çıktı tutar:
|
||||
Dreaming iki tür çıktı tutar:
|
||||
|
||||
- `memory/.dreams/` içinde **makine durumu** (geri çağırma deposu, evre sinyalleri, içe aktarma denetim noktaları, kilitler).
|
||||
- `DREAMS.md` içinde (veya mevcut `dreams.md` içinde) **insan tarafından okunabilir çıktı** ve `memory/dreaming/<phase>/YYYY-MM-DD.md` altında isteğe bağlı evre raporu dosyaları.
|
||||
- `memory/.dreams/` içinde **makine durumu** (geri çağırma deposu, evre sinyalleri, alım denetim noktaları, kilitler).
|
||||
- `DREAMS.md` (veya mevcut `dreams.md`) içinde **insan tarafından okunabilir çıktı** ve isteğe bağlı olarak `memory/dreaming/<phase>/YYYY-MM-DD.md` altındaki evre raporu dosyaları.
|
||||
|
||||
Uzun vadeli yükseltme hâlâ yalnızca `MEMORY.md` dosyasına yazar.
|
||||
Uzun vadeli yükseltme yine yalnızca `MEMORY.md` dosyasına yazar.
|
||||
|
||||
## Evre modeli
|
||||
|
||||
Rüya görme, birlikte çalışan üç evre kullanır:
|
||||
Dreaming üç işbirlikçi evre kullanır:
|
||||
|
||||
| Evre | Amaç | Kalıcı yazım |
|
||||
| ----- | ----------------------------------------- | ----------------- |
|
||||
| Hafif | Yakın tarihli kısa süreli materyali sıralamak ve hazırlamak | Hayır |
|
||||
| Derin | Kalıcı adayları puanlamak ve yükseltmek | Evet (`MEMORY.md`) |
|
||||
| REM | Temalar ve tekrar eden fikirler üzerine düşünmek | Hayır |
|
||||
| Evre | Amaç | Kalıcı yazma |
|
||||
| ----- | ---- | ------------ |
|
||||
| Light | Son kısa süreli materyali sıralamak ve hazırlamak | Hayır |
|
||||
| Deep | Kalıcı adayları puanlamak ve yükseltmek | Evet (`MEMORY.md`) |
|
||||
| REM | Temalar ve yinelenen fikirler üzerine düşünmek | Hayır |
|
||||
|
||||
Bu evreler, kullanıcı tarafından ayrı ayrı yapılandırılan
|
||||
"modlar" değil, iç uygulama ayrıntılarıdır.
|
||||
Bu evreler, kullanıcı tarafından ayrı ayrı yapılandırılan "modlar" değil,
|
||||
dahili uygulama ayrıntılarıdır.
|
||||
|
||||
### Hafif evre
|
||||
### Light evresi
|
||||
|
||||
Hafif evre, yakın tarihli günlük bellek sinyallerini ve geri çağırma izlerini içe aktarır, bunları tekilleştirir
|
||||
ve aday satırları hazırlar.
|
||||
Light evresi son günlük bellek sinyallerini ve geri çağırma izlerini alır,
|
||||
yinelenenleri ayıklar ve aday satırları hazırlar.
|
||||
|
||||
- Kısa süreli geri çağırma durumundan, yakın tarihli günlük bellek dosyalarından ve mevcut olduğunda sansürlenmiş oturum transkriptlerinden okur.
|
||||
- Uygun olduğunda kısa süreli geri çağırma durumundan, son günlük bellek dosyalarından ve sansürlenmiş oturum dökümlerinden okur.
|
||||
- Depolama satır içi çıktı içerdiğinde yönetilen bir `## Light Sleep` bloğu yazar.
|
||||
- Daha sonraki derin sıralama için pekiştirme sinyalleri kaydeder.
|
||||
- Asla `MEMORY.md` dosyasına yazmaz.
|
||||
- Daha sonraki deep sıralaması için pekiştirme sinyalleri kaydeder.
|
||||
- `MEMORY.md` dosyasına asla yazmaz.
|
||||
|
||||
### Derin evre
|
||||
### Deep evresi
|
||||
|
||||
Derin evre, neyin uzun vadeli bellek olacağına karar verir.
|
||||
Deep evresi, neyin uzun vadeli belleğe dönüşeceğine karar verir.
|
||||
|
||||
- Adayları ağırlıklı puanlama ve eşik geçitleri kullanarak sıralar.
|
||||
- `minScore`, `minRecallCount` ve `minUniqueQueries` değerlerinin geçilmesini gerektirir.
|
||||
- Yazmadan önce parçaları canlı günlük dosyalardan yeniden yükler; böylece eski/silinmiş parçalar atlanır.
|
||||
- `minScore`, `minRecallCount` ve `minUniqueQueries` koşullarının geçilmesini gerektirir.
|
||||
- Yazmadan önce parçacıkları canlı günlük dosyalardan yeniden alır; böylece eski/silinmiş parçacıklar atlanır.
|
||||
- Yükseltilen girdileri `MEMORY.md` dosyasına ekler.
|
||||
- `DREAMS.md` içine bir `## Deep Sleep` özeti yazar ve isteğe bağlı olarak `memory/dreaming/deep/YYYY-MM-DD.md` dosyasını yazar.
|
||||
- `DREAMS.md` içine bir `## Deep Sleep` özeti yazar ve isteğe bağlı olarak `memory/dreaming/deep/YYYY-MM-DD.md` dosyasına yazar.
|
||||
|
||||
### REM evresi
|
||||
|
||||
REM evresi, örüntüleri ve yansıtıcı sinyalleri çıkarır.
|
||||
REM evresi örüntüleri ve yansıtıcı sinyalleri çıkarır.
|
||||
|
||||
- Yakın tarihli kısa süreli izlerden tema ve yansıma özetleri oluşturur.
|
||||
- Son kısa süreli izlerden tema ve yansıma özetleri oluşturur.
|
||||
- Depolama satır içi çıktı içerdiğinde yönetilen bir `## REM Sleep` bloğu yazar.
|
||||
- Derin sıralamada kullanılan REM pekiştirme sinyallerini kaydeder.
|
||||
- Asla `MEMORY.md` dosyasına yazmaz.
|
||||
- Deep sıralamasında kullanılan REM pekiştirme sinyallerini kaydeder.
|
||||
- `MEMORY.md` dosyasına asla yazmaz.
|
||||
|
||||
## Oturum transkripti içe aktarma
|
||||
## Oturum dökümü alımı
|
||||
|
||||
Rüya görme, sansürlenmiş oturum transkriptlerini rüya görme külliyatına içe aktarabilir. Transkriptler
|
||||
mevcut olduğunda, günlük bellek sinyalleri ve geri çağırma izleriyle birlikte hafif
|
||||
evreye beslenir. Kişisel ve hassas içerik içe aktarmadan önce sansürlenir.
|
||||
Dreaming, sansürlenmiş oturum dökümlerini Dreaming derlemine alabilir. Dökümler
|
||||
mevcut olduğunda, günlük bellek sinyalleri ve geri çağırma izleriyle birlikte
|
||||
light evresine beslenir. Kişisel ve hassas içerik alımdan önce sansürlenir.
|
||||
|
||||
## Rüya Günlüğü
|
||||
## Dream Diary
|
||||
|
||||
Rüya görme ayrıca `DREAMS.md` içinde anlatı biçiminde bir **Rüya Günlüğü** tutar.
|
||||
Her evre yeterli miktarda materyale sahip olduktan sonra, `memory-core` en iyi çabayla arka planda
|
||||
bir alt ajan dönüşü çalıştırır (varsayılan çalışma zamanı modeli kullanılarak) ve kısa bir günlük girdisi ekler.
|
||||
Dreaming ayrıca `DREAMS.md` içinde anlatı biçiminde bir **Dream Diary** tutar.
|
||||
Her evrede yeterli materyal oluştuğunda, `memory-core` en iyi çaba esaslı bir arka plan
|
||||
alt ajan turu çalıştırır (varsayılan çalışma zamanı modeli kullanılarak) ve kısa
|
||||
bir günlük girdisi ekler.
|
||||
|
||||
Bu günlük, yükseltme kaynağı değil, Dreams UI içinde insanlar tarafından okunmak içindir.
|
||||
Dreaming tarafından üretilen günlük/rapor yapıtları kısa süreli
|
||||
yükseltmeden hariç tutulur. Yalnızca temellendirilmiş bellek parçacıkları
|
||||
`MEMORY.md` içine yükseltilebilir.
|
||||
|
||||
İnceleme ve kurtarma çalışmaları için ayrıca temellendirilmiş bir geçmiş doldurma hattı da vardır:
|
||||
İnceleme ve kurtarma işleri için temellendirilmiş bir geçmiş doldurma hattı da vardır:
|
||||
|
||||
- `memory rem-harness --path ... --grounded`, geçmiş `YYYY-MM-DD.md` notlarından temellendirilmiş günlük çıktısını önizler.
|
||||
- `memory rem-backfill --path ...`, geri alınabilir temellendirilmiş günlük girdilerini `DREAMS.md` içine yazar.
|
||||
- `memory rem-backfill --path ... --stage-short-term`, temellendirilmiş kalıcı adayları, normal derin evrenin zaten kullandığı aynı kısa süreli kanıt deposuna hazırlar.
|
||||
- `memory rem-backfill --rollback` ve `--rollback-short-term`, bu hazırlanmış geçmiş doldurma yapıtlarını, sıradan günlük girdilerine veya canlı kısa süreli geri çağırmaya dokunmadan kaldırır.
|
||||
- `memory rem-backfill --path ...`, geri alınabilir temellendirilmiş günlük girdilerini `DREAMS.md` dosyasına yazar.
|
||||
- `memory rem-backfill --path ... --stage-short-term`, temellendirilmiş kalıcı adayları normal deep evresinin zaten kullandığı aynı kısa süreli kanıt deposuna hazırlık olarak koyar.
|
||||
- `memory rem-backfill --rollback` ve `--rollback-short-term`, sıradan günlük girdilerine veya canlı kısa süreli geri çağırmaya dokunmadan bu hazırlanmış geçmiş doldurma yapıtlarını kaldırır.
|
||||
|
||||
Control UI, aynı günlük geri doldurma/sıfırlama akışını sunar; böylece
|
||||
temellendirilmiş adayların yükseltmeyi hak edip etmediğine karar vermeden önce sonuçları Dreams sahnesinde
|
||||
inceleyebilirsiniz. Sahne ayrıca ayrı bir temellendirilmiş hat gösterir; böylece
|
||||
hangi hazırlanmış kısa süreli girdilerin geçmiş yeniden oynatmadan geldiğini, hangi yükseltilmiş
|
||||
öğelerin temellendirme odaklı olduğunu görebilir ve yalnızca temellendirilmiş hazırlanmış girdileri
|
||||
sıradan canlı kısa süreli duruma dokunmadan temizleyebilirsiniz.
|
||||
Control UI, aynı günlük geçmiş doldurma/sıfırlama akışını sunar; böylece sonuçları,
|
||||
temellendirilmiş adayların yükseltilmeyi hak edip etmediğine karar vermeden önce
|
||||
Dreams sahnesinde inceleyebilirsiniz. Sahne ayrıca belirgin bir temellendirilmiş hat da gösterir; böylece
|
||||
hangi hazırlanmış kısa süreli girdilerin geçmiş tekrar oynatmadan geldiğini,
|
||||
hangi yükseltilmiş öğelerin temellendirme kaynaklı olduğunu görebilir ve sıradan canlı kısa süreli duruma
|
||||
dokunmadan yalnızca temellendirilmiş hazırlanmış girdileri temizleyebilirsiniz.
|
||||
|
||||
## Derin sıralama sinyalleri
|
||||
## Deep sıralama sinyalleri
|
||||
|
||||
Derin sıralama, evre pekiştirmesine ek olarak altı ağırlıklı temel sinyal kullanır:
|
||||
Deep sıralaması altı ağırlıklı temel sinyal ile evre pekiştirmesini kullanır:
|
||||
|
||||
| Sinyal | Ağırlık | Açıklama |
|
||||
| ------------------- | ------ | ------------------------------------------------- |
|
||||
| Sıklık | 0.24 | Girdinin biriktirdiği kısa süreli sinyal sayısı |
|
||||
| İlgililik | 0.30 | Girdi için ortalama getirme kalitesi |
|
||||
| Sorgu çeşitliliği | 0.15 | Onu ortaya çıkaran farklı sorgu/gün bağlamları |
|
||||
| Yakınlık | 0.15 | Zamanla azalan tazelik puanı |
|
||||
| Sağlamlaştırma | 0.10 | Çok günlük tekrar gücü |
|
||||
| Kavramsal zenginlik | 0.06 | Parça/yol kaynağından kavram etiketi yoğunluğu |
|
||||
| Sinyal | Ağırlık | Açıklama |
|
||||
| ------ | ------- | -------- |
|
||||
| Sıklık | 0.24 | Girdinin kaç kısa süreli sinyal biriktirdiği |
|
||||
| İlgililik | 0.30 | Girdi için ortalama geri getirme kalitesi |
|
||||
| Sorgu çeşitliliği | 0.15 | Onu ortaya çıkaran farklı sorgu/gün bağlamları |
|
||||
| Yakınlık | 0.15 | Zamana bağlı olarak azalan tazelik puanı |
|
||||
| Pekiştirme | 0.10 | Çok günlük yineleme gücü |
|
||||
| Kavramsal zenginlik | 0.06 | Parçacık/yol üzerindeki kavram etiketi yoğunluğu |
|
||||
|
||||
Hafif ve REM evresi isabetleri,
|
||||
`memory/.dreams/phase-signals.json` içinden zamanla azalan küçük bir ek artış sağlar.
|
||||
Light ve REM evresi isabetleri,
|
||||
`memory/.dreams/phase-signals.json` dosyasından gelen zamana bağlı olarak azalan küçük bir artış ekler.
|
||||
|
||||
## Zamanlama
|
||||
|
||||
Etkinleştirildiğinde `memory-core`, tam bir rüya görme
|
||||
taraması için tek bir cron işi otomatik olarak yönetir. Her tarama evreleri sırayla çalıştırır: hafif -> REM -> derin.
|
||||
Etkinleştirildiğinde `memory-core`, tam bir Dreaming taraması için tek bir Cron
|
||||
işini otomatik olarak yönetir. Her tarama evreleri sırayla çalıştırır: light -> REM -> deep.
|
||||
|
||||
Varsayılan sıklık davranışı:
|
||||
|
||||
| Ayar | Varsayılan |
|
||||
| -------------------- | ---------- |
|
||||
| Ayar | Varsayılan |
|
||||
| ---- | ---------- |
|
||||
| `dreaming.frequency` | `0 3 * * *` |
|
||||
|
||||
## Hızlı başlangıç
|
||||
|
||||
Rüya görmeyi etkinleştirin:
|
||||
Dreaming’i etkinleştirin:
|
||||
|
||||
```json
|
||||
{
|
||||
@ -148,7 +152,7 @@ Rüya görmeyi etkinleştirin:
|
||||
}
|
||||
```
|
||||
|
||||
Özel bir tarama sıklığı ile rüya görmeyi etkinleştirin:
|
||||
Özel bir tarama sıklığıyla Dreaming’i etkinleştirin:
|
||||
|
||||
```json
|
||||
{
|
||||
@ -188,8 +192,8 @@ openclaw memory promote --limit 5
|
||||
openclaw memory status --deep
|
||||
```
|
||||
|
||||
Elle `memory promote`, CLI bayraklarıyla geçersiz kılınmadığı sürece varsayılan olarak
|
||||
derin evre eşiklerini kullanır.
|
||||
Elle çalıştırılan `memory promote`, CLI bayraklarıyla geçersiz kılınmadıkça
|
||||
varsayılan olarak deep evresi eşiklerini kullanır.
|
||||
|
||||
Belirli bir adayın neden yükseltileceğini veya yükseltilmeyeceğini açıklayın:
|
||||
|
||||
@ -198,8 +202,7 @@ openclaw memory promote-explain "router vlan"
|
||||
openclaw memory promote-explain "router vlan" --json
|
||||
```
|
||||
|
||||
Hiçbir şey yazmadan REM yansımalarını, aday gerçekleri ve derin yükseltme çıktısını
|
||||
önizleyin:
|
||||
Herhangi bir şey yazmadan REM yansımalarını, aday gerçekleri ve deep yükseltme çıktısını önizleyin:
|
||||
|
||||
```bash
|
||||
openclaw memory rem-harness
|
||||
@ -210,30 +213,30 @@ openclaw memory rem-harness --json
|
||||
|
||||
Tüm ayarlar `plugins.entries.memory-core.config.dreaming` altında bulunur.
|
||||
|
||||
| Anahtar | Varsayılan |
|
||||
| ----------- | ---------- |
|
||||
| `enabled` | `false` |
|
||||
| Anahtar | Varsayılan |
|
||||
| ------- | ---------- |
|
||||
| `enabled` | `false` |
|
||||
| `frequency` | `0 3 * * *` |
|
||||
|
||||
Evre politikası, eşikler ve depolama davranışı iç uygulama
|
||||
ayrıntılarıdır (kullanıcıya açık yapılandırma değildir).
|
||||
Evre politikası, eşikler ve depolama davranışı dahili uygulama
|
||||
ayrıntılarıdır (kullanıcıya dönük yapılandırma değildir).
|
||||
|
||||
Tam anahtar listesi için [Bellek yapılandırma başvurusu](/tr/reference/memory-config#dreaming-experimental) sayfasına bakın.
|
||||
Tam anahtar listesi için bkz. [Bellek yapılandırma başvurusu](/tr/reference/memory-config#dreaming-experimental).
|
||||
|
||||
## Dreams UI
|
||||
|
||||
Etkinleştirildiğinde Gateway içindeki **Dreams** sekmesi şunları gösterir:
|
||||
Etkinleştirildiğinde Gateway **Dreams** sekmesi şunları gösterir:
|
||||
|
||||
- mevcut rüya görme etkin durumu
|
||||
- evre düzeyi durum ve yönetilen tarama varlığı
|
||||
- kısa süreli, temellendirilmiş, sinyal ve bugün yükseltilen sayılarını
|
||||
- geçerli Dreaming etkin durumunu
|
||||
- evre düzeyinde durumu ve yönetilen tarama varlığını
|
||||
- kısa süreli, temellendirilmiş, sinyal ve bugün yükseltilen sayıları
|
||||
- bir sonraki zamanlanmış çalıştırmanın zamanlamasını
|
||||
- hazırlanmış geçmiş yeniden oynatma girdileri için ayrı bir temellendirilmiş Sahne hattını
|
||||
- `doctor.memory.dreamDiary` tarafından desteklenen genişletilebilir bir Rüya Günlüğü okuyucusunu
|
||||
- hazırlık aşamasındaki geçmiş tekrar oynatma girdileri için ayrı bir temellendirilmiş Sahne hattını
|
||||
- `doctor.memory.dreamDiary` tarafından desteklenen genişletilebilir bir Dream Diary okuyucusunu
|
||||
|
||||
## İlgili
|
||||
|
||||
- [Bellek](/tr/concepts/memory)
|
||||
- [Bellek Arama](/tr/concepts/memory-search)
|
||||
- [Bellek Araması](/tr/concepts/memory-search)
|
||||
- [memory CLI](/cli/memory)
|
||||
- [Bellek yapılandırma başvurusu](/tr/reference/memory-config)
|
||||
|
||||
@ -2,27 +2,27 @@
|
||||
read_when:
|
||||
- Modelleri kendi GPU makinenizden sunmak istiyorsunuz
|
||||
- LM Studio’yu veya OpenAI uyumlu bir proxy’yi yapılandırıyorsunuz
|
||||
- En güvenli yerel model rehberine ihtiyacınız var
|
||||
- En güvenli yerel model rehberliğine ihtiyacınız var
|
||||
summary: OpenClaw’ı yerel LLM’lerde çalıştırın (LM Studio, vLLM, LiteLLM, özel OpenAI uç noktaları)
|
||||
title: Yerel Modeller
|
||||
x-i18n:
|
||||
generated_at: "2026-04-14T08:52:10Z"
|
||||
generated_at: "2026-04-15T08:53:16Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 1544c522357ba4b18dfa6d05ea8d60c7c6262281b53863d9aee7002464703ca7
|
||||
source_hash: 8778cc1c623a356ff3cf306c494c046887f9417a70ec71e659e4a8aae912a780
|
||||
source_path: gateway/local-models.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Yerel modeller
|
||||
|
||||
Yerel kullanım mümkündür, ancak OpenClaw büyük bağlam ve prompt injection’a karşı güçlü savunmalar bekler. Küçük kartlar bağlamı kırpar ve güvenliği zayıflatır. Hedefinizi yüksek tutun: **≥2 tam donanımlı Mac Studio veya eşdeğer GPU sistemi (~30 bin $+)**. Tek bir **24 GB** GPU yalnızca daha hafif prompt’larda ve daha yüksek gecikmeyle çalışır. Çalıştırabildiğiniz **en büyük / tam boyutlu model varyantını kullanın**; yoğun biçimde quantize edilmiş veya “small” checkpoint’ler prompt injection riskini artırır (bkz. [Güvenlik](/tr/gateway/security)).
|
||||
Yerelde kullanım mümkündür, ancak OpenClaw geniş bağlam + prompt injection’a karşı güçlü savunmalar bekler. Küçük kartlar bağlamı kırpar ve güvenliği sızdırır. Yüksek hedefleyin: **en az 2 tam donanımlı Mac Studio veya eşdeğer GPU sistemi (~30 bin $+)**. Tek bir **24 GB** GPU yalnızca daha hafif prompt’larda ve daha yüksek gecikmeyle işe yarar. Çalıştırabildiğiniz **en büyük / tam boyutlu model varyantını kullanın**; agresif biçimde quantize edilmiş veya “small” checkpoint’ler prompt injection riskini artırır ([Güvenlik](/tr/gateway/security) bölümüne bakın).
|
||||
|
||||
En az sürtünmeli yerel model kurulumu istiyorsanız, [LM Studio](/tr/providers/lmstudio) veya [Ollama](/tr/providers/ollama) ile başlayıp `openclaw onboard` çalıştırın. Bu sayfa, daha üst seviye yerel yığınlar ve özel OpenAI uyumlu yerel sunucular için görüş odaklı rehberdir.
|
||||
En az sürtünmeli yerel kurulumu istiyorsanız [LM Studio](/tr/providers/lmstudio) veya [Ollama](/tr/providers/ollama) ile başlayın ve `openclaw onboard` çalıştırın. Bu sayfa, daha üst düzey yerel yığınlar ve özel OpenAI uyumlu yerel sunucular için görüş odaklı rehberdir.
|
||||
|
||||
## Önerilen: LM Studio + büyük yerel model (Responses API)
|
||||
|
||||
Şu anda en iyi yerel yığın. LM Studio’da büyük bir model yükleyin (örneğin, tam boyutlu bir Qwen, DeepSeek veya Llama derlemesi), yerel sunucuyu etkinleştirin (varsayılan `http://127.0.0.1:1234`) ve akıl yürütmeyi nihai metinden ayrı tutmak için Responses API kullanın.
|
||||
Şu anda en iyi yerel yığın. LM Studio’da büyük bir model yükleyin (örneğin tam boyutlu bir Qwen, DeepSeek veya Llama derlemesi), yerel sunucuyu etkinleştirin (varsayılan `http://127.0.0.1:1234`) ve muhakemeyi nihai metinden ayrı tutmak için Responses API kullanın.
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -45,7 +45,7 @@ En az sürtünmeli yerel model kurulumu istiyorsanız, [LM Studio](/tr/providers
|
||||
models: [
|
||||
{
|
||||
id: “my-local-model”,
|
||||
name: “Yerel Model”,
|
||||
name: “Local Model”,
|
||||
reasoning: false,
|
||||
input: [“text”],
|
||||
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
||||
@ -62,13 +62,13 @@ En az sürtünmeli yerel model kurulumu istiyorsanız, [LM Studio](/tr/providers
|
||||
**Kurulum kontrol listesi**
|
||||
|
||||
- LM Studio’yu yükleyin: [https://lmstudio.ai](https://lmstudio.ai)
|
||||
- LM Studio’da, **mevcut en büyük model derlemesini** indirin (“small”/ağır quantize edilmiş varyantlardan kaçının), sunucuyu başlatın ve `http://127.0.0.1:1234/v1/models` çıktısında modelin listelendiğini doğrulayın.
|
||||
- `my-local-model` değerini LM Studio’da görünen gerçek model kimliğiyle değiştirin.
|
||||
- LM Studio’da mevcut **en büyük model derlemesini** indirin (“small”/ağır quantize edilmiş varyantlardan kaçının), sunucuyu başlatın, `http://127.0.0.1:1234/v1/models` adresinin modeli listelediğini doğrulayın.
|
||||
- `my-local-model` değerini, LM Studio’da gösterilen gerçek model kimliğiyle değiştirin.
|
||||
- Modeli yüklü tutun; soğuk yükleme başlangıç gecikmesi ekler.
|
||||
- LM Studio derlemeniz farklıysa `contextWindow`/`maxTokens` değerlerini ayarlayın.
|
||||
- WhatsApp için yalnızca son metnin gönderilmesi amacıyla Responses API kullanın.
|
||||
- WhatsApp için yalnızca nihai metnin gönderilmesi amacıyla Responses API kullanın.
|
||||
|
||||
Yerelde çalıştırıyor olsanız bile barındırılan modelleri yapılandırılmış tutun; yedeklerin kullanılabilir kalması için `models.mode: "merge"` kullanın.
|
||||
Yerelde çalıştırıyor olsanız bile barındırılan modelleri yapılandırılmış halde tutun; yedeklerin kullanılabilir kalması için `models.mode: "merge"` kullanın.
|
||||
|
||||
### Hibrit yapılandırma: barındırılan birincil, yerel yedek
|
||||
|
||||
@ -97,7 +97,7 @@ Yerelde çalıştırıyor olsanız bile barındırılan modelleri yapılandırı
|
||||
models: [
|
||||
{
|
||||
id: "my-local-model",
|
||||
name: "Yerel Model",
|
||||
name: "Local Model",
|
||||
reasoning: false,
|
||||
input: ["text"],
|
||||
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
||||
@ -111,18 +111,18 @@ Yerelde çalıştırıyor olsanız bile barındırılan modelleri yapılandırı
|
||||
}
|
||||
```
|
||||
|
||||
### Önce yerel, güvenlik ağı olarak barındırılan
|
||||
### Önce yerel, barındırılan güvenlik ağıyla
|
||||
|
||||
Birincil ve yedek sırasını değiştirin; yerel makine devre dışı kaldığında Sonnet veya Opus’a geri dönebilmek için aynı providers bloğunu ve `models.mode: "merge"` ayarını koruyun.
|
||||
Birincil ve yedek sırasını değiştirin; yerel makine kapalıyken Sonnet veya Opus’a geri düşebilmek için aynı provider bloğunu ve `models.mode: "merge"` ayarını koruyun.
|
||||
|
||||
### Bölgesel barındırma / veri yönlendirme
|
||||
|
||||
- Barındırılan MiniMax/Kimi/GLM varyantları OpenRouter üzerinde de bölgeye sabitlenmiş uç noktalarla mevcuttur (ör. ABD’de barındırılan). Trafiği seçtiğiniz yargı alanında tutarken Anthropic/OpenAI yedeklerini korumak için orada bölgesel varyantı seçin ve yine `models.mode: "merge"` kullanın.
|
||||
- Yalnızca yerel kullanım en güçlü gizlilik yoludur; barındırılan bölgesel yönlendirme ise sağlayıcı özelliklerine ihtiyaç duyduğunuz ama veri akışı üzerinde kontrol de istediğiniz durumlar için orta yoldur.
|
||||
- Barındırılan MiniMax/Kimi/GLM varyantları, bölgeye sabitlenmiş uç noktalarla OpenRouter üzerinde de bulunur (örneğin ABD’de barındırılan). Trafiği seçtiğiniz yargı alanında tutmak için oradaki bölgesel varyantı seçin ve yine Anthropic/OpenAI yedekleri için `models.mode: "merge"` kullanın.
|
||||
- Yalnızca yerel kullanım en güçlü gizlilik yoludur; barındırılan bölgesel yönlendirme ise sağlayıcı özelliklerine ihtiyaç duyduğunuz ama veri akışı üzerinde denetim istediğiniz durumda orta yoldur.
|
||||
|
||||
## Diğer OpenAI uyumlu yerel proxy’ler
|
||||
|
||||
vLLM, LiteLLM, OAI-proxy veya özel Gateway’ler OpenAI tarzı bir `/v1` uç noktası sunuyorsa çalışır. Yukarıdaki provider bloğunu kendi uç noktanız ve model kimliğinizle değiştirin:
|
||||
vLLM, LiteLLM, OAI-proxy veya özel Gateway’ler, OpenAI tarzı bir `/v1` uç noktası sundukları sürece çalışır. Yukarıdaki provider bloğunu kendi uç noktanız ve model kimliğinizle değiştirin:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -136,7 +136,7 @@ vLLM, LiteLLM, OAI-proxy veya özel Gateway’ler OpenAI tarzı bir `/v1` uç no
|
||||
models: [
|
||||
{
|
||||
id: "my-local-model",
|
||||
name: "Yerel Model",
|
||||
name: "Local Model",
|
||||
reasoning: false,
|
||||
input: ["text"],
|
||||
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
||||
@ -150,26 +150,26 @@ vLLM, LiteLLM, OAI-proxy veya özel Gateway’ler OpenAI tarzı bir `/v1` uç no
|
||||
}
|
||||
```
|
||||
|
||||
Barındırılan modellerin yedek olarak kullanılabilir kalması için `models.mode: "merge"` ayarını koruyun.
|
||||
Barındırılan modellerin yedek olarak kullanılabilir kalması için `models.mode: "merge"` kullanın.
|
||||
|
||||
Yerel/proxy’lenmiş `/v1` arka uçları için davranış notu:
|
||||
|
||||
- OpenClaw bunları yerel OpenAI uç noktaları olarak değil, proxy tarzı OpenAI uyumlu yollar olarak ele alır
|
||||
- yalnızca yerel OpenAI’ye özgü istek şekillendirmesi burada uygulanmaz: `service_tier` yoktur, Responses `store` yoktur, OpenAI reasoning-compat payload şekillendirmesi yoktur ve prompt-cache ipuçları yoktur
|
||||
- yerel OpenAI’ye özgü istek şekillendirme burada uygulanmaz: `service_tier` yoktur, Responses `store` yoktur, OpenAI reasoning uyumluluk payload şekillendirmesi yoktur ve prompt-cache ipuçları yoktur
|
||||
- gizli OpenClaw atıf başlıkları (`originator`, `version`, `User-Agent`) bu özel proxy URL’lerine eklenmez
|
||||
|
||||
Daha katı OpenAI uyumlu arka uçlar için uyumluluk notları:
|
||||
|
||||
- Bazı sunucular Chat Completions içinde yapılandırılmış content-part dizileri yerine yalnızca string `messages[].content` kabul eder. Bu uç noktalar için `models.providers.<provider>.models[].compat.requiresStringContent: true` ayarlayın.
|
||||
- Bazı daha küçük veya daha katı yerel arka uçlar, özellikle tool şemaları dahil edildiğinde, OpenClaw’ın tam agent-runtime prompt yapısıyla kararsız çalışır. Arka uç küçük doğrudan `/v1/chat/completions` çağrılarında çalışıyor ama normal OpenClaw agent dönüşlerinde başarısız oluyorsa önce `models.providers.<provider>.models[].compat.supportsTools: false` deneyin.
|
||||
- Bazı sunucular Chat Completions için yapılandırılmış içerik-parçası dizileri yerine yalnızca string `messages[].content` kabul eder. Bu uç noktalar için `models.providers.<provider>.models[].compat.requiresStringContent: true` ayarlayın.
|
||||
- Bazı daha küçük veya daha katı yerel arka uçlar, özellikle araç şemaları dahil edildiğinde, OpenClaw’ın tam agent-runtime prompt yapısıyla kararsız çalışır. Arka uç küçük doğrudan `/v1/chat/completions` çağrılarında çalışıyor ama normal OpenClaw agent dönüşlerinde başarısız oluyorsa önce `browser`, `cron` ve `message` gibi ağır varsayılan araçları bırakmak için `agents.defaults.localModelMode: "lean"` deneyin; bu da işe yaramazsa `models.providers.<provider>.models[].compat.supportsTools: false` deneyin.
|
||||
- Arka uç yalnızca daha büyük OpenClaw çalıştırmalarında hâlâ başarısız oluyorsa, kalan sorun genellikle OpenClaw’ın taşıma katmanı değil, yukarı akış model/sunucu kapasitesi veya bir arka uç hatasıdır.
|
||||
|
||||
## Sorun giderme
|
||||
|
||||
- Gateway proxy’ye ulaşabiliyor mu? `curl http://127.0.0.1:1234/v1/models`.
|
||||
- LM Studio modeli boşaltılmış mı? Yeniden yükleyin; “takılı kalıyor” durumunun yaygın nedenlerinden biri soğuk başlangıçtır.
|
||||
- OpenClaw, algılanan bağlam penceresi **32k**’nin altındaysa uyarır ve **16k**’nin altında engeller. Bu ön kontrolde takılırsanız, sunucu/model bağlam sınırını artırın veya daha büyük bir model seçin.
|
||||
- Bağlam hataları mı var? `contextWindow` değerini düşürün veya sunucu sınırınızı yükseltin.
|
||||
- OpenAI uyumlu sunucu `messages[].content ... expected a string` döndürüyor mu? Bu model girdisine `compat.requiresStringContent: true` ekleyin.
|
||||
- Doğrudan küçük `/v1/chat/completions` çağrıları çalışıyor ama `openclaw infer model run` Gemma veya başka bir yerel modelde başarısız mı oluyor? Önce tool şemalarını `compat.supportsTools: false` ile devre dışı bırakın, sonra yeniden test edin. Sunucu yalnızca daha büyük OpenClaw prompt’larında hâlâ çöküyorsa, bunu yukarı akış sunucu/model sınırlaması olarak değerlendirin.
|
||||
- Güvenlik: yerel modeller sağlayıcı tarafı filtreleri atlar; prompt injection etki alanını sınırlamak için agent’ları dar tutun ve Compaction’ı açık bırakın.
|
||||
- LM Studio modeli yüklenmemiş mi? Yeniden yükleyin; soğuk başlangıç yaygın bir “takılı kalma” nedenidir.
|
||||
- OpenClaw, algılanan bağlam penceresi **32k**’nin altındaysa uyarır ve **16k**’nin altındaysa engeller. Bu ön kontrolde takılırsanız, sunucu/model bağlam sınırını yükseltin veya daha büyük bir model seçin.
|
||||
- Bağlam hataları mı alıyorsunuz? `contextWindow` değerini düşürün veya sunucu sınırınızı yükseltin.
|
||||
- OpenAI uyumlu sunucu `messages[].content ... expected a string` döndürüyor mu? O model girdisine `compat.requiresStringContent: true` ekleyin.
|
||||
- Doğrudan küçük `/v1/chat/completions` çağrıları çalışıyor ama `openclaw infer model run` Gemma’da veya başka bir yerel modelde başarısız mı oluyor? Önce `compat.supportsTools: false` ile araç şemalarını kapatın, sonra yeniden test edin. Sunucu yalnızca daha büyük OpenClaw prompt’larında hâlâ çöküyorsa, bunu yukarı akış sunucu/model sınırlaması olarak değerlendirin.
|
||||
- Güvenlik: yerel modeller sağlayıcı tarafı filtreleri atlar; prompt injection etki alanını sınırlamak için agent’ları dar tutun ve Compaction’ı açık tutun.
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,23 +1,23 @@
|
||||
---
|
||||
read_when:
|
||||
- Bir OpenClaw Plugin’i oluşturuyorsunuz
|
||||
- Bir Plugin yapılandırma şeması yayımlamanız veya Plugin doğrulama hatalarında hata ayıklamanız gerekiyor
|
||||
summary: Plugin manifest’i + JSON şeması gereksinimleri (katı yapılandırma doğrulaması)
|
||||
- Bir OpenClaw Plugin'i oluşturuyorsunuz
|
||||
- Bir plugin yapılandırma şeması yayımlamanız veya plugin doğrulama hatalarında hata ayıklamanız gerekiyor
|
||||
summary: Plugin manifesti + JSON şema gereksinimleri (katı yapılandırma doğrulaması)
|
||||
title: Plugin Manifesti
|
||||
x-i18n:
|
||||
generated_at: "2026-04-12T23:28:36Z"
|
||||
generated_at: "2026-04-15T08:53:13Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 93b57c7373e4ccd521b10945346db67991543bd2bed4cc8b6641e1f215b48579
|
||||
source_hash: ba2183bfa8802871e4ef33a0ebea290606e8351e9e83e25ee72456addb768730
|
||||
source_path: plugins/manifest.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Plugin manifesti (`openclaw.plugin.json`)
|
||||
|
||||
Bu sayfa yalnızca **yerel OpenClaw Plugin manifesti** içindir.
|
||||
Bu sayfa yalnızca **yerel OpenClaw plugin manifesti** içindir.
|
||||
|
||||
Uyumlu paket düzenleri için bkz. [Plugin paketleri](/tr/plugins/bundles).
|
||||
Uyumlu paket düzenleri için bkz. [Plugin bundles](/tr/plugins/bundles).
|
||||
|
||||
Uyumlu paket biçimleri farklı manifest dosyaları kullanır:
|
||||
|
||||
@ -26,47 +26,49 @@ Uyumlu paket biçimleri farklı manifest dosyaları kullanır:
|
||||
düzeni
|
||||
- Cursor paketi: `.cursor-plugin/plugin.json`
|
||||
|
||||
OpenClaw bu paket düzenlerini de otomatik olarak algılar, ancak bunlar burada açıklanan
|
||||
`openclaw.plugin.json` şemasına göre doğrulanmaz.
|
||||
OpenClaw bu paket düzenlerini de otomatik olarak algılar, ancak bunlar burada
|
||||
açıklanan `openclaw.plugin.json` şemasına göre doğrulanmaz.
|
||||
|
||||
Uyumlu paketler için OpenClaw şu anda, düzen OpenClaw çalışma zamanı beklentileriyle eşleştiğinde
|
||||
paket meta verilerini ve bildirilen skill köklerini, Claude komut köklerini, Claude paketi
|
||||
`settings.json` varsayılanlarını, Claude paketi LSP varsayılanlarını ve desteklenen hook paketlerini okur.
|
||||
Uyumlu paketler için OpenClaw şu anda paket meta verilerini ve bildirilen
|
||||
skill köklerini, Claude komut köklerini, Claude paketi `settings.json`
|
||||
varsayılanlarını, Claude paketi LSP varsayılanlarını ve düzen OpenClaw çalışma
|
||||
zamanı beklentileriyle eşleştiğinde desteklenen hook paketlerini okur.
|
||||
|
||||
Her yerel OpenClaw Plugin’i, **Plugin kökünde** bir `openclaw.plugin.json` dosyası
|
||||
**bulundurmalıdır**. OpenClaw bu manifesti, yapılandırmayı **Plugin kodunu çalıştırmadan**
|
||||
doğrulamak için kullanır. Eksik veya geçersiz manifestler Plugin hatası olarak değerlendirilir
|
||||
ve yapılandırma doğrulamasını engeller.
|
||||
Her yerel OpenClaw plugin'i **plugin kökünde** bir `openclaw.plugin.json`
|
||||
dosyası sağlamalıdır. OpenClaw bu manifesti, plugin kodunu **çalıştırmadan**
|
||||
yapılandırmayı doğrulamak için kullanır. Eksik veya geçersiz manifestler plugin
|
||||
hatası olarak değerlendirilir ve yapılandırma doğrulamasını engeller.
|
||||
|
||||
Tam Plugin sistemi kılavuzu için bkz.: [Plugins](/tr/tools/plugin).
|
||||
Yerel yetenek modeli ve güncel dış uyumluluk rehberi için:
|
||||
[Yetenek modeli](/tr/plugins/architecture#public-capability-model).
|
||||
Tam plugin sistemi kılavuzu için bkz.: [Plugins](/tr/tools/plugin).
|
||||
Yerel yetenek modeli ve mevcut dış uyumluluk rehberi için:
|
||||
[Capability model](/tr/plugins/architecture#public-capability-model).
|
||||
|
||||
## Bu dosya ne yapar
|
||||
|
||||
`openclaw.plugin.json`, OpenClaw’ın Plugin kodunuzu yüklemeden önce okuduğu
|
||||
meta veridir.
|
||||
`openclaw.plugin.json`, OpenClaw'un plugin kodunuzu yüklemeden önce okuduğu
|
||||
meta verilerdir.
|
||||
|
||||
Bunu şunlar için kullanın:
|
||||
|
||||
- Plugin kimliği
|
||||
- yapılandırma doğrulaması
|
||||
- Plugin çalışma zamanını başlatmadan kullanılabilir olması gereken kimlik doğrulama ve onboarding meta verileri
|
||||
- plugin kimliği
|
||||
- yapılandırma doğrulama
|
||||
- plugin çalışma zamanını başlatmadan kullanılabilir olması gereken kimlik doğrulama ve onboarding meta verileri
|
||||
- çalışma zamanı yüklenmeden önce kontrol düzlemi yüzeylerinin inceleyebileceği düşük maliyetli etkinleştirme ipuçları
|
||||
- çalışma zamanı yüklenmeden önce kurulum/onboarding yüzeylerinin inceleyebileceği düşük maliyetli kurulum tanımlayıcıları
|
||||
- Plugin çalışma zamanı yüklenmeden önce çözülmesi gereken takma ad ve otomatik etkinleştirme meta verileri
|
||||
- çalışma zamanı yüklenmeden önce Plugin’i otomatik etkinleştirmesi gereken kısa model ailesi sahiplik meta verileri
|
||||
- paketli uyumluluk bağlama ve sözleşme kapsamı için kullanılan statik yetenek sahipliği anlık görüntüleri
|
||||
- çalışma zamanı yüklenmeden katalog ve doğrulama yüzeyleriyle birleştirilmesi gereken kanala özgü yapılandırma meta verileri
|
||||
- plugin çalışma zamanı yüklenmeden önce çözümlenmesi gereken takma ad ve otomatik etkinleştirme meta verileri
|
||||
- plugin çalışma zamanı yüklenmeden önce plugin'i otomatik etkinleştirmesi gereken kısa model ailesi sahipliği meta verileri
|
||||
- paketlenmiş uyumluluk bağlantıları ve sözleşme kapsamı için kullanılan statik yetenek sahipliği anlık görüntüleri
|
||||
- paylaşılan `openclaw qa` ana bilgisayarının plugin çalışma zamanı yüklenmeden önce inceleyebileceği düşük maliyetli QA çalıştırıcı meta verileri
|
||||
- çalışma zamanı yüklenmeden katalog ve doğrulama yüzeyleriyle birleşmesi gereken kanala özgü yapılandırma meta verileri
|
||||
- yapılandırma UI ipuçları
|
||||
|
||||
Bunu şunlar için kullanmayın:
|
||||
|
||||
- çalışma zamanı davranışını kaydetmek
|
||||
- kod giriş noktalarını bildirmek
|
||||
- çalışma zamanı davranışı kaydetme
|
||||
- kod giriş noktalarını bildirme
|
||||
- npm kurulum meta verileri
|
||||
|
||||
Bunlar Plugin kodunuzda ve `package.json` dosyasında yer almalıdır.
|
||||
Bunlar plugin kodunuza ve `package.json` dosyanıza aittir.
|
||||
|
||||
## En küçük örnek
|
||||
|
||||
@ -87,7 +89,7 @@ Bunlar Plugin kodunuzda ve `package.json` dosyasında yer almalıdır.
|
||||
{
|
||||
"id": "openrouter",
|
||||
"name": "OpenRouter",
|
||||
"description": "OpenRouter provider Plugin’i",
|
||||
"description": "OpenRouter sağlayıcı plugin'i",
|
||||
"version": "1.0.0",
|
||||
"providers": ["openrouter"],
|
||||
"modelSupport": {
|
||||
@ -141,61 +143,62 @@ Bunlar Plugin kodunuzda ve `package.json` dosyasında yer almalıdır.
|
||||
|
||||
| Alan | Gerekli | Tür | Anlamı |
|
||||
| ----------------------------------- | ------- | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `id` | Evet | `string` | Kanonik Plugin kimliği. Bu, `plugins.entries.<id>` içinde kullanılan kimliktir. |
|
||||
| `configSchema` | Evet | `object` | Bu Plugin’in yapılandırması için satır içi JSON şeması. |
|
||||
| `enabledByDefault` | Hayır | `true` | Paketli bir Plugin’i varsayılan olarak etkin işaretler. Plugin’i varsayılan olarak devre dışı bırakmak için bunu atlayın veya `true` dışındaki herhangi bir değeri ayarlayın. |
|
||||
| `legacyPluginIds` | Hayır | `string[]` | Bu kanonik Plugin kimliğine normalize edilen eski kimlikler. |
|
||||
| `autoEnableWhenConfiguredProviders` | Hayır | `string[]` | Kimlik doğrulama, yapılandırma veya model başvuruları bunlardan bahsettiğinde bu Plugin’i otomatik etkinleştirmesi gereken provider kimlikleri. |
|
||||
| `kind` | Hayır | `"memory"` \| `"context-engine"` | `plugins.slots.*` tarafından kullanılan, münhasır bir Plugin türünü bildirir. |
|
||||
| `channels` | Hayır | `string[]` | Bu Plugin’in sahip olduğu kanal kimlikleri. Keşif ve yapılandırma doğrulaması için kullanılır. |
|
||||
| `providers` | Hayır | `string[]` | Bu Plugin’in sahip olduğu provider kimlikleri. |
|
||||
| `modelSupport` | Hayır | `object` | Çalışma zamanından önce Plugin’i otomatik yüklemek için kullanılan, manifest sahipli kısa model ailesi meta verileri. |
|
||||
| `cliBackends` | Hayır | `string[]` | Bu Plugin’in sahip olduğu CLI çıkarım backend kimlikleri. Açık yapılandırma başvurularından başlangıçta otomatik etkinleştirme için kullanılır. |
|
||||
| `commandAliases` | Hayır | `object[]` | Çalışma zamanı yüklenmeden önce Plugin farkındalıklı yapılandırma ve CLI tanıları üretmesi gereken, bu Plugin’in sahip olduğu komut adları. |
|
||||
| `providerAuthEnvVars` | Hayır | `Record<string, string[]>` | OpenClaw’ın Plugin kodunu yüklemeden inceleyebileceği, düşük maliyetli provider kimlik doğrulama env meta verileri. |
|
||||
| `providerAuthAliases` | Hayır | `Record<string, string>` | Kimlik doğrulama araması için başka bir provider kimliğini yeniden kullanması gereken provider kimlikleri; örneğin temel provider API anahtarını ve kimlik doğrulama profillerini paylaşan bir coding provider. |
|
||||
| `channelEnvVars` | Hayır | `Record<string, string[]>` | OpenClaw’ın Plugin kodunu yüklemeden inceleyebileceği, düşük maliyetli kanal env meta verileri. Bunu, genel başlangıç/yapılandırma yardımcılarının görmesi gereken env güdümlü kanal kurulumu veya kimlik doğrulama yüzeyleri için kullanın. |
|
||||
| `providerAuthChoices` | Hayır | `object[]` | Onboarding seçicileri, tercih edilen provider çözümlemesi ve basit CLI flag bağlaması için düşük maliyetli kimlik doğrulama seçeneği meta verileri. |
|
||||
| `activation` | Hayır | `object` | Provider, komut, kanal, rota ve yetenek tetiklemeli yükleme için düşük maliyetli etkinleştirme ipuçları. Yalnızca meta veridir; gerçek davranış yine de Plugin çalışma zamanına aittir. |
|
||||
| `setup` | Hayır | `object` | Keşif ve kurulum yüzeylerinin Plugin çalışma zamanını yüklemeden inceleyebileceği düşük maliyetli kurulum/onboarding tanımlayıcıları. |
|
||||
| `contracts` | Hayır | `object` | Konuşma, gerçek zamanlı transkripsiyon, gerçek zamanlı ses, media-understanding, görsel üretimi, müzik üretimi, video üretimi, web-fetch, web araması ve araç sahipliği için statik paketli yetenek anlık görüntüsü. |
|
||||
| `channelConfigs` | Hayır | `Record<string, object>` | Çalışma zamanı yüklenmeden önce keşif ve doğrulama yüzeyleriyle birleştirilen, manifest sahipli kanal yapılandırma meta verileri. |
|
||||
| `skills` | Hayır | `string[]` | Plugin köküne göreli olarak yüklenecek Skills dizinleri. |
|
||||
| `name` | Hayır | `string` | İnsan tarafından okunabilir Plugin adı. |
|
||||
| `id` | Evet | `string` | Kanonik plugin kimliği. `plugins.entries.<id>` içinde kullanılan kimlik budur. |
|
||||
| `configSchema` | Evet | `object` | Bu plugin'in yapılandırması için satır içi JSON şeması. |
|
||||
| `enabledByDefault` | Hayır | `true` | Paketlenmiş bir plugin'i varsayılan olarak etkin işaretler. Plugin'i varsayılan olarak devre dışı bırakmak için bu alanı atlayın veya `true` dışındaki herhangi bir değere ayarlayın. |
|
||||
| `legacyPluginIds` | Hayır | `string[]` | Bu kanonik plugin kimliğine normalize edilen eski kimlikler. |
|
||||
| `autoEnableWhenConfiguredProviders` | Hayır | `string[]` | Kimlik doğrulama, yapılandırma veya model başvuruları bunlardan söz ettiğinde bu plugin'i otomatik etkinleştirmesi gereken sağlayıcı kimlikleri. |
|
||||
| `kind` | Hayır | `"memory"` \| `"context-engine"` | `plugins.slots.*` tarafından kullanılan özel bir plugin türü bildirir. |
|
||||
| `channels` | Hayır | `string[]` | Bu plugin'e ait kanal kimlikleri. Keşif ve yapılandırma doğrulaması için kullanılır. |
|
||||
| `providers` | Hayır | `string[]` | Bu plugin'e ait sağlayıcı kimlikleri. |
|
||||
| `modelSupport` | Hayır | `object` | Çalışma zamanından önce plugin'i otomatik yüklemek için kullanılan, manifeste ait kısa model ailesi meta verileri. |
|
||||
| `cliBackends` | Hayır | `string[]` | Bu plugin'e ait CLI çıkarım arka uç kimlikleri. Açık yapılandırma başvurularından başlangıçta otomatik etkinleştirme için kullanılır. |
|
||||
| `commandAliases` | Hayır | `object[]` | Çalışma zamanı yüklenmeden önce plugin farkındalıklı yapılandırma ve CLI tanılamaları üretmesi gereken, bu plugin'e ait komut adları. |
|
||||
| `providerAuthEnvVars` | Hayır | `Record<string, string[]>` | OpenClaw'un plugin kodunu yüklemeden inceleyebileceği, düşük maliyetli sağlayıcı kimlik doğrulama ortam değişkeni meta verileri. |
|
||||
| `providerAuthAliases` | Hayır | `Record<string, string>` | Kimlik doğrulama araması için başka bir sağlayıcı kimliğini yeniden kullanması gereken sağlayıcı kimlikleri; örneğin temel sağlayıcı API anahtarını ve kimlik doğrulama profillerini paylaşan bir kodlama sağlayıcısı. |
|
||||
| `channelEnvVars` | Hayır | `Record<string, string[]>` | OpenClaw'un plugin kodunu yüklemeden inceleyebileceği, düşük maliyetli kanal ortam değişkeni meta verileri. Bunu, genel başlangıç/yapılandırma yardımcılarının görmesi gereken ortam değişkeni tabanlı kanal kurulumu veya kimlik doğrulama yüzeyleri için kullanın. |
|
||||
| `providerAuthChoices` | Hayır | `object[]` | Onboarding seçicileri, tercih edilen sağlayıcı çözümlemesi ve basit CLI bayrağı bağlantıları için düşük maliyetli kimlik doğrulama seçeneği meta verileri. |
|
||||
| `activation` | Hayır | `object` | Sağlayıcı, komut, kanal, rota ve yetenek tetiklemeli yükleme için düşük maliyetli etkinleştirme ipuçları. Yalnızca meta veridir; gerçek davranış yine plugin çalışma zamanına aittir. |
|
||||
| `setup` | Hayır | `object` | Keşif ve kurulum yüzeylerinin plugin çalışma zamanını yüklemeden inceleyebileceği düşük maliyetli kurulum/onboarding tanımlayıcıları. |
|
||||
| `qaRunners` | Hayır | `object[]` | Paylaşılan `openclaw qa` ana bilgisayarı tarafından plugin çalışma zamanı yüklenmeden önce kullanılan düşük maliyetli QA çalıştırıcı tanımlayıcıları. |
|
||||
| `contracts` | Hayır | `object` | Konuşma, gerçek zamanlı transkripsiyon, gerçek zamanlı ses, media-understanding, image-generation, music-generation, video-generation, web-fetch, web search ve araç sahipliği için statik paketlenmiş yetenek anlık görüntüsü. |
|
||||
| `channelConfigs` | Hayır | `Record<string, object>` | Çalışma zamanı yüklenmeden önce keşif ve doğrulama yüzeyleriyle birleştirilen, manifeste ait kanal yapılandırma meta verileri. |
|
||||
| `skills` | Hayır | `string[]` | Plugin köküne göre göreli yüklenecek Skills dizinleri. |
|
||||
| `name` | Hayır | `string` | İnsan tarafından okunabilir plugin adı. |
|
||||
| `description` | Hayır | `string` | Plugin yüzeylerinde gösterilen kısa özet. |
|
||||
| `version` | Hayır | `string` | Bilgilendirici Plugin sürümü. |
|
||||
| `version` | Hayır | `string` | Bilgilendirici plugin sürümü. |
|
||||
| `uiHints` | Hayır | `Record<string, object>` | Yapılandırma alanları için UI etiketleri, yer tutucular ve hassasiyet ipuçları. |
|
||||
|
||||
## `providerAuthChoices` başvurusu
|
||||
## providerAuthChoices başvurusu
|
||||
|
||||
Her `providerAuthChoices` girdisi bir onboarding veya kimlik doğrulama seçeneğini tanımlar.
|
||||
OpenClaw bunu provider çalışma zamanı yüklenmeden önce okur.
|
||||
OpenClaw bunu sağlayıcı çalışma zamanı yüklenmeden önce okur.
|
||||
|
||||
| Alan | Gerekli | Tür | Anlamı |
|
||||
| --------------------- | ------- | ----------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
|
||||
| `provider` | Evet | `string` | Bu seçeneğin ait olduğu provider kimliği. |
|
||||
| `method` | Evet | `string` | Yönlendirilecek kimlik doğrulama yöntemi kimliği. |
|
||||
| Alan | Gerekli | Tür | Anlamı |
|
||||
| --------------------- | ------- | ----------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
|
||||
| `provider` | Evet | `string` | Bu seçeneğin ait olduğu sağlayıcı kimliği. |
|
||||
| `method` | Evet | `string` | Yönlendirilecek kimlik doğrulama yöntemi kimliği. |
|
||||
| `choiceId` | Evet | `string` | Onboarding ve CLI akışları tarafından kullanılan kararlı kimlik doğrulama seçeneği kimliği. |
|
||||
| `choiceLabel` | Hayır | `string` | Kullanıcıya dönük etiket. Atlanırsa OpenClaw `choiceId` değerine geri döner. |
|
||||
| `choiceHint` | Hayır | `string` | Seçici için kısa yardımcı metin. |
|
||||
| `assistantPriority` | Hayır | `number` | Daha düşük değerler, assistant güdümlü etkileşimli seçicilerde daha önce sıralanır. |
|
||||
| `assistantVisibility` | Hayır | `"visible"` \| `"manual-only"` | Manuel CLI seçimine yine izin verirken seçeneği assistant seçicilerinden gizler. |
|
||||
| `deprecatedChoiceIds` | Hayır | `string[]` | Kullanıcıları bu yedek seçenek yerine yönlendirmesi gereken eski seçenek kimlikleri. |
|
||||
| `choiceHint` | Hayır | `string` | Seçici için kısa yardımcı metin. |
|
||||
| `assistantPriority` | Hayır | `number` | Asistan odaklı etkileşimli seçicilerde daha düşük değerler daha önce sıralanır. |
|
||||
| `assistantVisibility` | Hayır | `"visible"` \| `"manual-only"` | Manuel CLI seçimine izin vermeye devam ederken seçeneği asistan seçicilerinden gizler. |
|
||||
| `deprecatedChoiceIds` | Hayır | `string[]` | Kullanıcıları bu yeni seçenekle değiştirilmiş seçeneğe yönlendirmesi gereken eski seçenek kimlikleri. |
|
||||
| `groupId` | Hayır | `string` | İlgili seçenekleri gruplamak için isteğe bağlı grup kimliği. |
|
||||
| `groupLabel` | Hayır | `string` | Bu grup için kullanıcıya dönük etiket. |
|
||||
| `groupHint` | Hayır | `string` | Grup için kısa yardımcı metin. |
|
||||
| `optionKey` | Hayır | `string` | Basit tek flag’li kimlik doğrulama akışları için dahili seçenek anahtarı. |
|
||||
| `cliFlag` | Hayır | `string` | `--openrouter-api-key` gibi CLI flag adı. |
|
||||
| `cliOption` | Hayır | `string` | `--openrouter-api-key <key>` gibi tam CLI seçenek biçimi. |
|
||||
| `cliDescription` | Hayır | `string` | CLI yardımında kullanılan açıklama. |
|
||||
| `groupLabel` | Hayır | `string` | Bu grup için kullanıcıya dönük etiket. |
|
||||
| `groupHint` | Hayır | `string` | Grup için kısa yardımcı metin. |
|
||||
| `optionKey` | Hayır | `string` | Basit tek bayraklı kimlik doğrulama akışları için iç seçenek anahtarı. |
|
||||
| `cliFlag` | Hayır | `string` | `--openrouter-api-key` gibi CLI bayrağı adı. |
|
||||
| `cliOption` | Hayır | `string` | `--openrouter-api-key <key>` gibi tam CLI seçenek biçimi. |
|
||||
| `cliDescription` | Hayır | `string` | CLI yardımında kullanılan açıklama. |
|
||||
| `onboardingScopes` | Hayır | `Array<"text-inference" \| "image-generation">` | Bu seçeneğin hangi onboarding yüzeylerinde görünmesi gerektiği. Atlanırsa varsayılan `["text-inference"]` olur. |
|
||||
|
||||
## `commandAliases` başvurusu
|
||||
## commandAliases başvurusu
|
||||
|
||||
Bir Plugin, kullanıcıların yanlışlıkla `plugins.allow` içine koyabileceği veya
|
||||
kök CLI komutu olarak çalıştırmayı deneyebileceği bir çalışma zamanı komut adına sahipse
|
||||
`commandAliases` kullanın. OpenClaw bu meta verileri, Plugin çalışma zamanı kodunu içe aktarmadan
|
||||
tanılar için kullanır.
|
||||
Bir plugin, kullanıcıların yanlışlıkla `plugins.allow` içine koyabileceği veya
|
||||
kök bir CLI komutu olarak çalıştırmayı deneyebileceği bir çalışma zamanı komut
|
||||
adına sahipse `commandAliases` kullanın. OpenClaw bu meta verileri, plugin
|
||||
çalışma zamanı kodunu içe aktarmadan tanılama için kullanır.
|
||||
|
||||
```json
|
||||
{
|
||||
@ -209,22 +212,47 @@ tanılar için kullanır.
|
||||
}
|
||||
```
|
||||
|
||||
| Alan | Gerekli | Tür | Anlamı |
|
||||
| ------------ | ------- | ---------------- | --------------------------------------------------------------------------- |
|
||||
| `name` | Evet | `string` | Bu Plugin’e ait komut adı. |
|
||||
| `kind` | Hayır | `"runtime-slash"`| Takma adı, kök CLI komutu yerine sohbet slash komutu olarak işaretler. |
|
||||
| `cliCommand` | Hayır | `string` | Varsa CLI işlemleri için önerilecek ilgili kök CLI komutu. |
|
||||
| Alan | Gerekli | Tür | Anlamı |
|
||||
| ------------ | ------- | ----------------- | ------------------------------------------------------------------------ |
|
||||
| `name` | Evet | `string` | Bu plugin'e ait komut adı. |
|
||||
| `kind` | Hayır | `"runtime-slash"` | Takma adı, kök bir CLI komutundan ziyade bir sohbet slash komutu olarak işaretler. |
|
||||
| `cliCommand` | Hayır | `string` | Varsa, CLI işlemleri için önerilecek ilgili kök CLI komutu. |
|
||||
|
||||
## `activation` başvurusu
|
||||
## activation başvurusu
|
||||
|
||||
Plugin daha sonra hangi kontrol düzlemi olaylarının onu etkinleştirmesi
|
||||
gerektiğini düşük maliyetle bildirebiliyorsa `activation` kullanın.
|
||||
|
||||
Bu blok yalnızca meta veridir. Çalışma zamanı davranışı kaydetmez ve
|
||||
`register(...)`, `setupEntry` veya diğer çalışma zamanı/Plugin giriş noktalarının yerine geçmez.
|
||||
Mevcut tüketiciler bunu daha geniş Plugin yüklemesinden önce daraltıcı bir ipucu olarak kullanır; bu nedenle
|
||||
eksik etkinleştirme meta verileri genellikle yalnızca performans maliyeti doğurur;
|
||||
eski manifest sahipliği geri dönüşleri hâlâ mevcutken doğruluğu değiştirmemelidir.
|
||||
## qaRunners başvurusu
|
||||
|
||||
Bir plugin, paylaşılan `openclaw qa` kökü altında bir veya daha fazla taşıma
|
||||
çalıştırıcısı sağlıyorsa `qaRunners` kullanın. Bu meta verileri düşük maliyetli
|
||||
ve statik tutun; gerçek CLI kaydı yine
|
||||
`qaRunnerCliRegistrations` dışa aktaran hafif bir `runtime-api.ts`
|
||||
yüzeyi üzerinden plugin çalışma zamanına aittir.
|
||||
|
||||
```json
|
||||
{
|
||||
"qaRunners": [
|
||||
{
|
||||
"commandName": "matrix",
|
||||
"description": "Docker destekli Matrix canlı QA hattını tek kullanımlık bir homeserver'a karşı çalıştır"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
| Alan | Gerekli | Tür | Anlamı |
|
||||
| ------------- | ------- | -------- | ------------------------------------------------------------------ |
|
||||
| `commandName` | Evet | `string` | `openclaw qa` altında bağlanan alt komut; örneğin `matrix`. |
|
||||
| `description` | Hayır | `string` | Paylaşılan ana bilgisayarın bir taslak komuta ihtiyaç duyması halinde kullanılan yedek yardım metni. |
|
||||
|
||||
Bu blok yalnızca meta veridir. Çalışma zamanı davranışını kaydetmez ve
|
||||
`register(...)`, `setupEntry` veya diğer çalışma zamanı/plugin giriş noktalarının
|
||||
yerini almaz. Mevcut tüketiciler bunu daha geniş plugin yüklemesinden önce
|
||||
daraltıcı bir ipucu olarak kullanır; bu nedenle eksik etkinleştirme meta
|
||||
verileri genellikle yalnızca performans maliyeti yaratır; eski manifest
|
||||
sahipliği geri dönüşleri hâlâ mevcutken doğruluğu değiştirmemelidir.
|
||||
|
||||
```json
|
||||
{
|
||||
@ -238,29 +266,29 @@ eski manifest sahipliği geri dönüşleri hâlâ mevcutken doğruluğu değişt
|
||||
}
|
||||
```
|
||||
|
||||
| Alan | Gerekli | Tür | Anlamı |
|
||||
| ---------------- | ------- | ---------------------------------------------------- | ------------------------------------------------------------------- |
|
||||
| `onProviders` | Hayır | `string[]` | İstendiğinde bu Plugin’i etkinleştirmesi gereken provider kimlikleri. |
|
||||
| `onCommands` | Hayır | `string[]` | Bu Plugin’i etkinleştirmesi gereken komut kimlikleri. |
|
||||
| `onChannels` | Hayır | `string[]` | Bu Plugin’i etkinleştirmesi gereken kanal kimlikleri. |
|
||||
| `onRoutes` | Hayır | `string[]` | Bu Plugin’i etkinleştirmesi gereken rota türleri. |
|
||||
| Alan | Gerekli | Tür | Anlamı |
|
||||
| ---------------- | ------- | ---------------------------------------------------- | ----------------------------------------------------------------- |
|
||||
| `onProviders` | Hayır | `string[]` | İstendiğinde bu plugin'i etkinleştirmesi gereken sağlayıcı kimlikleri. |
|
||||
| `onCommands` | Hayır | `string[]` | Bu plugin'i etkinleştirmesi gereken komut kimlikleri. |
|
||||
| `onChannels` | Hayır | `string[]` | Bu plugin'i etkinleştirmesi gereken kanal kimlikleri. |
|
||||
| `onRoutes` | Hayır | `string[]` | Bu plugin'i etkinleştirmesi gereken rota türleri. |
|
||||
| `onCapabilities` | Hayır | `Array<"provider" \| "channel" \| "tool" \| "hook">` | Kontrol düzlemi etkinleştirme planlamasında kullanılan geniş yetenek ipuçları. |
|
||||
|
||||
Güncel canlı tüketiciler:
|
||||
Mevcut canlı tüketiciler:
|
||||
|
||||
- komut tetiklemeli CLI planlaması, eski
|
||||
`commandAliases[].cliCommand` veya `commandAliases[].name` alanlarına geri döner
|
||||
- kanal tetiklemeli kurulum/kanal planlaması, açık kanal etkinleştirme meta verileri eksik olduğunda
|
||||
eski `channels[]`
|
||||
`commandAliases[].cliCommand` veya `commandAliases[].name` değerlerine geri döner
|
||||
- kanal tetiklemeli kurulum/kanal planlaması, açık kanal etkinleştirme meta
|
||||
verileri eksik olduğunda eski `channels[]`
|
||||
sahipliğine geri döner
|
||||
- provider tetiklemeli kurulum/çalışma zamanı planlaması, açık provider
|
||||
- sağlayıcı tetiklemeli kurulum/çalışma zamanı planlaması, açık sağlayıcı
|
||||
etkinleştirme meta verileri eksik olduğunda eski
|
||||
`providers[]` ve üst düzey `cliBackends[]` sahipliğine geri döner
|
||||
|
||||
## `setup` başvurusu
|
||||
## setup başvurusu
|
||||
|
||||
Kurulum ve onboarding yüzeylerinin çalışma zamanı yüklenmeden önce Plugin’e ait düşük maliyetli meta verilere
|
||||
ihtiyacı varsa `setup` kullanın.
|
||||
Çalışma zamanı yüklenmeden önce kurulum ve onboarding yüzeylerinin düşük maliyetli,
|
||||
plugin'e ait meta verilere ihtiyaç duyması durumunda `setup` kullanın.
|
||||
|
||||
```json
|
||||
{
|
||||
@ -279,41 +307,43 @@ ihtiyacı varsa `setup` kullanın.
|
||||
}
|
||||
```
|
||||
|
||||
Üst düzey `cliBackends` geçerliliğini korur ve CLI çıkarım
|
||||
backend’lerini tanımlamaya devam eder. `setup.cliBackends`, yalnızca meta veri olarak kalması gereken
|
||||
kontrol düzlemi/kurulum akışları için kurulum odaklı tanımlayıcı yüzeyidir.
|
||||
Üst düzey `cliBackends` geçerliliğini korur ve CLI çıkarım arka uçlarını
|
||||
tanımlamaya devam eder. `setup.cliBackends`, yalnızca meta veri olarak kalması
|
||||
gereken kontrol düzlemi/kurulum akışları için kurulum odaklı tanımlayıcı
|
||||
yüzeyidir.
|
||||
|
||||
Mevcut olduğunda, `setup.providers` ve `setup.cliBackends`,
|
||||
kurulum keşfi için tercih edilen önce tanımlayıcı yaklaşımına sahip arama yüzeyidir. Tanımlayıcı yalnızca
|
||||
aday Plugin’i daraltıyorsa ve kurulum yine de daha zengin kurulum zamanı çalışma zamanı
|
||||
hook’larına ihtiyaç duyuyorsa, `requiresRuntime: true` ayarlayın ve
|
||||
yedek yürütme yolu olarak `setup-api`’yi yerinde tutun.
|
||||
Mevcut olduğunda `setup.providers` ve `setup.cliBackends`, kurulum keşfi için
|
||||
tercih edilen, önce tanımlayıcı yaklaşımına dayalı arama yüzeyidir. Tanımlayıcı
|
||||
yalnızca aday plugin'i daraltıyorsa ve kurulum hâlâ daha zengin kurulum zamanı
|
||||
çalışma zamanı hook'larına ihtiyaç duyuyorsa `requiresRuntime: true` ayarlayın
|
||||
ve yedek yürütme yolu olarak `setup-api`yi yerinde tutun.
|
||||
|
||||
Kurulum araması Plugin’e ait `setup-api` kodunu çalıştırabildiği için,
|
||||
normalize edilmiş `setup.providers[].id` ve `setup.cliBackends[]` değerleri,
|
||||
keşfedilen Plugin’ler arasında benzersiz kalmalıdır. Belirsiz sahiplik, keşif sırasından
|
||||
bir kazanan seçmek yerine güvenli şekilde başarısız olur.
|
||||
Kurulum araması plugin'e ait `setup-api` kodunu çalıştırabildiği için,
|
||||
normalize edilmiş `setup.providers[].id` ve `setup.cliBackends[]` değerleri
|
||||
keşfedilen plugin'ler arasında benzersiz kalmalıdır. Belirsiz sahiplik, keşif
|
||||
sırasından bir kazanan seçmek yerine kapalı şekilde başarısız olur.
|
||||
|
||||
### `setup.providers` başvurusu
|
||||
### setup.providers başvurusu
|
||||
|
||||
| Alan | Gerekli | Tür | Anlamı |
|
||||
| ------------- | ------- | ---------- | -------------------------------------------------------------------------------------- |
|
||||
| `id` | Evet | `string` | Kurulum veya onboarding sırasında açığa çıkan provider kimliği. Normalize edilmiş kimlikleri genel olarak benzersiz tutun. |
|
||||
| `authMethods` | Hayır | `string[]` | Bu provider’ın tam çalışma zamanı yüklenmeden desteklediği kurulum/kimlik doğrulama yöntemi kimlikleri. |
|
||||
| `envVars` | Hayır | `string[]` | Genel kurulum/durum yüzeylerinin Plugin çalışma zamanı yüklenmeden önce kontrol edebileceği env değişkenleri. |
|
||||
| `id` | Evet | `string` | Kurulum veya onboarding sırasında sunulan sağlayıcı kimliği. Normalize edilmiş kimlikleri genel olarak benzersiz tutun. |
|
||||
| `authMethods` | Hayır | `string[]` | Tam çalışma zamanını yüklemeden bu sağlayıcının desteklediği kurulum/kimlik doğrulama yöntem kimlikleri. |
|
||||
| `envVars` | Hayır | `string[]` | Genel kurulum/durum yüzeylerinin plugin çalışma zamanı yüklenmeden önce kontrol edebileceği ortam değişkenleri. |
|
||||
|
||||
### `setup` alanları
|
||||
### setup alanları
|
||||
|
||||
| Alan | Gerekli | Tür | Anlamı |
|
||||
| ------------------ | ------- | ---------- | -------------------------------------------------------------------------------------------------- |
|
||||
| `providers` | Hayır | `object[]` | Kurulum ve onboarding sırasında açığa çıkan provider kurulum tanımlayıcıları. |
|
||||
| `cliBackends` | Hayır | `string[]` | Önce tanımlayıcı yaklaşımına sahip kurulum araması için kullanılan kurulum zamanı backend kimlikleri. Normalize edilmiş kimlikleri genel olarak benzersiz tutun. |
|
||||
| `configMigrations` | Hayır | `string[]` | Bu Plugin’in kurulum yüzeyine ait yapılandırma geçiş kimlikleri. |
|
||||
| Alan | Gerekli | Tür | Anlamı |
|
||||
| ------------------ | ------- | ---------- | --------------------------------------------------------------------------------------------------- |
|
||||
| `providers` | Hayır | `object[]` | Kurulum ve onboarding sırasında sunulan sağlayıcı kurulum tanımlayıcıları. |
|
||||
| `cliBackends` | Hayır | `string[]` | Önce tanımlayıcı yaklaşımına dayalı kurulum araması için kullanılan kurulum zamanı arka uç kimlikleri. Normalize edilmiş kimlikleri genel olarak benzersiz tutun. |
|
||||
| `configMigrations` | Hayır | `string[]` | Bu plugin'in kurulum yüzeyine ait yapılandırma geçiş kimlikleri. |
|
||||
| `requiresRuntime` | Hayır | `boolean` | Tanımlayıcı aramasından sonra kurulumun hâlâ `setup-api` yürütmesine ihtiyaç duyup duymadığı. |
|
||||
|
||||
## `uiHints` başvurusu
|
||||
## uiHints başvurusu
|
||||
|
||||
`uiHints`, yapılandırma alan adlarından küçük işleme ipuçlarına giden bir eşlemedir.
|
||||
`uiHints`, yapılandırma alan adlarından küçük görselleştirme ipuçlarına giden
|
||||
bir eşlemedir.
|
||||
|
||||
```json
|
||||
{
|
||||
@ -330,19 +360,19 @@ bir kazanan seçmek yerine güvenli şekilde başarısız olur.
|
||||
|
||||
Her alan ipucu şunları içerebilir:
|
||||
|
||||
| Alan | Tür | Anlamı |
|
||||
| ------------- | ---------- | --------------------------------------- |
|
||||
| `label` | `string` | Kullanıcıya dönük alan etiketi. |
|
||||
| `help` | `string` | Kısa yardımcı metin. |
|
||||
| `tags` | `string[]` | İsteğe bağlı UI etiketleri. |
|
||||
| `advanced` | `boolean` | Alanı gelişmiş olarak işaretler. |
|
||||
| Alan | Tür | Anlamı |
|
||||
| ------------- | ---------- | ------------------------------------ |
|
||||
| `label` | `string` | Kullanıcıya dönük alan etiketi. |
|
||||
| `help` | `string` | Kısa yardımcı metin. |
|
||||
| `tags` | `string[]` | İsteğe bağlı UI etiketleri. |
|
||||
| `advanced` | `boolean` | Alanı gelişmiş olarak işaretler. |
|
||||
| `sensitive` | `boolean` | Alanı gizli veya hassas olarak işaretler. |
|
||||
| `placeholder` | `string` | Form girdileri için yer tutucu metin. |
|
||||
| `placeholder` | `string` | Form girdileri için yer tutucu metin. |
|
||||
|
||||
## `contracts` başvurusu
|
||||
## contracts başvurusu
|
||||
|
||||
OpenClaw’ın Plugin çalışma zamanını içe aktarmadan okuyabileceği statik yetenek sahipliği
|
||||
meta verileri için yalnızca `contracts` kullanın.
|
||||
`contracts` öğesini yalnızca OpenClaw'un plugin çalışma zamanını içe aktarmadan
|
||||
okuyabileceği statik yetenek sahipliği meta verileri için kullanın.
|
||||
|
||||
```json
|
||||
{
|
||||
@ -362,22 +392,22 @@ meta verileri için yalnızca `contracts` kullanın.
|
||||
|
||||
Her liste isteğe bağlıdır:
|
||||
|
||||
| Alan | Tür | Anlamı |
|
||||
| -------------------------------- | ---------- | ----------------------------------------------------------- |
|
||||
| `speechProviders` | `string[]` | Bu Plugin’in sahip olduğu speech provider kimlikleri. |
|
||||
| `realtimeTranscriptionProviders` | `string[]` | Bu Plugin’in sahip olduğu gerçek zamanlı transkripsiyon provider kimlikleri. |
|
||||
| `realtimeVoiceProviders` | `string[]` | Bu Plugin’in sahip olduğu gerçek zamanlı ses provider kimlikleri. |
|
||||
| `mediaUnderstandingProviders` | `string[]` | Bu Plugin’in sahip olduğu media-understanding provider kimlikleri. |
|
||||
| `imageGenerationProviders` | `string[]` | Bu Plugin’in sahip olduğu görsel üretimi provider kimlikleri. |
|
||||
| `videoGenerationProviders` | `string[]` | Bu Plugin’in sahip olduğu video üretimi provider kimlikleri. |
|
||||
| `webFetchProviders` | `string[]` | Bu Plugin’in sahip olduğu web-fetch provider kimlikleri. |
|
||||
| `webSearchProviders` | `string[]` | Bu Plugin’in sahip olduğu web araması provider kimlikleri. |
|
||||
| `tools` | `string[]` | Paketli sözleşme kontrolleri için bu Plugin’in sahip olduğu ajan araç adları. |
|
||||
| Alan | Tür | Anlamı |
|
||||
| -------------------------------- | ---------- | ---------------------------------------------------------------- |
|
||||
| `speechProviders` | `string[]` | Bu plugin'in sahip olduğu konuşma sağlayıcısı kimlikleri. |
|
||||
| `realtimeTranscriptionProviders` | `string[]` | Bu plugin'in sahip olduğu gerçek zamanlı transkripsiyon sağlayıcısı kimlikleri. |
|
||||
| `realtimeVoiceProviders` | `string[]` | Bu plugin'in sahip olduğu gerçek zamanlı ses sağlayıcısı kimlikleri. |
|
||||
| `mediaUnderstandingProviders` | `string[]` | Bu plugin'in sahip olduğu media-understanding sağlayıcısı kimlikleri. |
|
||||
| `imageGenerationProviders` | `string[]` | Bu plugin'in sahip olduğu görsel oluşturma sağlayıcısı kimlikleri. |
|
||||
| `videoGenerationProviders` | `string[]` | Bu plugin'in sahip olduğu video oluşturma sağlayıcısı kimlikleri. |
|
||||
| `webFetchProviders` | `string[]` | Bu plugin'in sahip olduğu web-fetch sağlayıcısı kimlikleri. |
|
||||
| `webSearchProviders` | `string[]` | Bu plugin'in sahip olduğu web search sağlayıcısı kimlikleri. |
|
||||
| `tools` | `string[]` | Paketlenmiş sözleşme kontrolleri için bu plugin'in sahip olduğu ajan araç adları. |
|
||||
|
||||
## `channelConfigs` başvurusu
|
||||
## channelConfigs başvurusu
|
||||
|
||||
Bir kanal Plugin’i, çalışma zamanı yüklenmeden önce düşük maliyetli yapılandırma meta verilerine ihtiyaç duyuyorsa
|
||||
`channelConfigs` kullanın.
|
||||
Bir kanal plugin'i çalışma zamanı yüklenmeden önce düşük maliyetli yapılandırma
|
||||
meta verilerine ihtiyaç duyuyorsa `channelConfigs` kullanın.
|
||||
|
||||
```json
|
||||
{
|
||||
@ -406,19 +436,19 @@ Bir kanal Plugin’i, çalışma zamanı yüklenmeden önce düşük maliyetli y
|
||||
|
||||
Her kanal girdisi şunları içerebilir:
|
||||
|
||||
| Alan | Tür | Anlamı |
|
||||
| ------------- | ------------------------ | --------------------------------------------------------------------------------------- |
|
||||
| `schema` | `object` | `channels.<id>` için JSON şeması. Bildirilen her kanal yapılandırma girdisi için gereklidir. |
|
||||
| `uiHints` | `Record<string, object>` | Bu kanal yapılandırma bölümü için isteğe bağlı UI etiketleri/yer tutucuları/hassas ipuçları. |
|
||||
| `label` | `string` | Çalışma zamanı meta verileri hazır olmadığında seçici ve inceleme yüzeyleriyle birleştirilen kanal etiketi. |
|
||||
| `description` | `string` | İnceleme ve katalog yüzeyleri için kısa kanal açıklaması. |
|
||||
| `preferOver` | `string[]` | Bu kanalın seçim yüzeylerinde önüne geçmesi gereken eski veya daha düşük öncelikli Plugin kimlikleri. |
|
||||
| Alan | Tür | Anlamı |
|
||||
| ------------- | ------------------------ | ------------------------------------------------------------------------------------------- |
|
||||
| `schema` | `object` | `channels.<id>` için JSON şeması. Bildirilen her kanal yapılandırma girdisi için zorunludur. |
|
||||
| `uiHints` | `Record<string, object>` | Bu kanal yapılandırma bölümü için isteğe bağlı UI etiketleri/yer tutucuları/hassasiyet ipuçları. |
|
||||
| `label` | `string` | Çalışma zamanı meta verileri hazır olmadığında seçici ve inceleme yüzeylerine birleştirilen kanal etiketi. |
|
||||
| `description` | `string` | İnceleme ve katalog yüzeyleri için kısa kanal açıklaması. |
|
||||
| `preferOver` | `string[]` | Seçim yüzeylerinde bu kanalın önüne geçmesi gereken eski veya daha düşük öncelikli plugin kimlikleri. |
|
||||
|
||||
## `modelSupport` başvurusu
|
||||
## modelSupport başvurusu
|
||||
|
||||
OpenClaw’ın, Plugin çalışma zamanı yüklenmeden önce `gpt-5.4` veya `claude-sonnet-4.6` gibi
|
||||
kısa model kimliklerinden provider Plugin’inizi çıkarması gerekiyorsa
|
||||
`modelSupport` kullanın.
|
||||
OpenClaw, plugin çalışma zamanı yüklenmeden önce `gpt-5.4` veya
|
||||
`claude-sonnet-4.6` gibi kısa model kimliklerinden sağlayıcı plugin'inizi
|
||||
çıkarımlamalıysa `modelSupport` kullanın.
|
||||
|
||||
```json
|
||||
{
|
||||
@ -432,72 +462,74 @@ kısa model kimliklerinden provider Plugin’inizi çıkarması gerekiyorsa
|
||||
OpenClaw şu öncelik sırasını uygular:
|
||||
|
||||
- açık `provider/model` başvuruları, sahip olan `providers` manifest meta verilerini kullanır
|
||||
- `modelPatterns`, `modelPrefixes`’in önüne geçer
|
||||
- paketlenmemiş bir Plugin ile paketli bir Plugin aynı anda eşleşirse, paketlenmemiş
|
||||
Plugin kazanır
|
||||
- kullanıcı veya yapılandırma bir provider belirtinceye kadar kalan belirsizlik yok sayılır
|
||||
- `modelPatterns`, `modelPrefixes` değerlerini geçersiz kılar
|
||||
- paketlenmemiş bir plugin ve paketlenmiş bir plugin aynı anda eşleşirse paketlenmemiş
|
||||
plugin kazanır
|
||||
- kalan belirsizlik, kullanıcı veya yapılandırma bir sağlayıcı belirtinceye kadar yok sayılır
|
||||
|
||||
Alanlar:
|
||||
|
||||
| Alan | Tür | Anlamı |
|
||||
| --------------- | ---------- | ---------------------------------------------------------------------------- |
|
||||
| `modelPrefixes` | `string[]` | Kısa model kimliklerine karşı `startsWith` ile eşleştirilen önekler. |
|
||||
| --------------- | ---------- | ----------------------------------------------------------------------------- |
|
||||
| `modelPrefixes` | `string[]` | Kısa model kimliklerine karşı `startsWith` ile eşleştirilen önekler. |
|
||||
| `modelPatterns` | `string[]` | Profil son eki kaldırıldıktan sonra kısa model kimliklerine karşı eşleştirilen regex kaynakları. |
|
||||
|
||||
Eski üst düzey yetenek anahtarları kullanımdan kaldırılmıştır. `speechProviders`, `realtimeTranscriptionProviders`,
|
||||
`realtimeVoiceProviders`, `mediaUnderstandingProviders`,
|
||||
`imageGenerationProviders`, `videoGenerationProviders`,
|
||||
`webFetchProviders` ve `webSearchProviders` alanlarını `contracts` altına
|
||||
taşımak için `openclaw doctor --fix` kullanın; normal manifest yükleme artık bu üst düzey alanları
|
||||
yetenek sahipliği olarak değerlendirmez.
|
||||
Eski üst düzey yetenek anahtarları kullanım dışıdır. `speechProviders`,
|
||||
`realtimeTranscriptionProviders`, `realtimeVoiceProviders`,
|
||||
`mediaUnderstandingProviders`, `imageGenerationProviders`,
|
||||
`videoGenerationProviders`, `webFetchProviders` ve `webSearchProviders`
|
||||
alanlarını `contracts` altına taşımak için `openclaw doctor --fix` kullanın;
|
||||
normal manifest yükleme artık bu üst düzey alanları yetenek sahipliği olarak
|
||||
değerlendirmez.
|
||||
|
||||
## Manifest ve `package.json`
|
||||
## Manifest ve package.json karşılaştırması
|
||||
|
||||
Bu iki dosya farklı amaçlara hizmet eder:
|
||||
Bu iki dosya farklı görevler üstlenir:
|
||||
|
||||
| Dosya | Kullanım amacı |
|
||||
| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `openclaw.plugin.json` | Keşif, yapılandırma doğrulaması, kimlik doğrulama seçeneği meta verileri ve Plugin kodu çalışmadan önce bulunması gereken UI ipuçları |
|
||||
| `package.json` | npm meta verileri, bağımlılık kurulumu ve giriş noktaları, kurulum engelleme, setup veya katalog meta verileri için kullanılan `openclaw` bloğu |
|
||||
| Dosya | Kullanım amacı |
|
||||
| ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `openclaw.plugin.json` | Keşif, yapılandırma doğrulama, kimlik doğrulama seçeneği meta verileri ve plugin kodu çalışmadan önce var olması gereken UI ipuçları |
|
||||
| `package.json` | npm meta verileri, bağımlılık kurulumu ve giriş noktaları, kurulum geçitlemesi, kurulum veya katalog meta verileri için kullanılan `openclaw` bloğu |
|
||||
|
||||
Bir meta veri parçasının nereye ait olduğundan emin değilseniz şu kuralı kullanın:
|
||||
|
||||
- OpenClaw bunu Plugin kodunu yüklemeden önce bilmek zorundaysa, `openclaw.plugin.json` içine koyun
|
||||
- paketleme, giriş dosyaları veya npm kurulum davranışı ile ilgiliyse, `package.json` içine koyun
|
||||
- OpenClaw bunu plugin kodunu yüklemeden önce bilmek zorundaysa `openclaw.plugin.json` içine koyun
|
||||
- paketleme, giriş dosyaları veya npm kurulum davranışı ile ilgiliyse `package.json` içine koyun
|
||||
|
||||
### Keşfi etkileyen `package.json` alanları
|
||||
### Keşfi etkileyen package.json alanları
|
||||
|
||||
Bazı çalışma zamanı öncesi Plugin meta verileri, `openclaw.plugin.json` yerine
|
||||
özellikle `package.json` içindeki `openclaw` bloğunda bulunur.
|
||||
Bazı çalışma zamanı öncesi plugin meta verileri kasıtlı olarak `openclaw.plugin.json`
|
||||
yerine `package.json` içindeki `openclaw` bloğunda bulunur.
|
||||
|
||||
Önemli örnekler:
|
||||
|
||||
| Alan | Anlamı |
|
||||
| ----------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `openclaw.extensions` | Yerel Plugin giriş noktalarını bildirir. |
|
||||
| `openclaw.setupEntry` | Onboarding ve ertelenmiş kanal başlatma sırasında kullanılan hafif, yalnızca kurulum amaçlı giriş noktası. |
|
||||
| `openclaw.channel` | Etiketler, belge yolları, takma adlar ve seçim metni gibi düşük maliyetli kanal katalog meta verileri. |
|
||||
| `openclaw.channel.configuredState` | Tam kanal çalışma zamanını yüklemeden “yalnızca env tabanlı kurulum zaten mevcut mu?” sorusunu yanıtlayabilen hafif yapılandırılmış durum denetleyicisi meta verileri. |
|
||||
| `openclaw.channel.persistedAuthState` | Tam kanal çalışma zamanını yüklemeden “zaten oturum açılmış herhangi bir şey var mı?” sorusunu yanıtlayabilen hafif kalıcı kimlik doğrulama durumu denetleyicisi meta verileri. |
|
||||
| `openclaw.install.npmSpec` / `openclaw.install.localPath` | Paketli ve dışarıda yayımlanmış Plugin’ler için kurulum/güncelleme ipuçları. |
|
||||
| `openclaw.install.defaultChoice` | Birden fazla kurulum kaynağı mevcut olduğunda tercih edilen kurulum yolu. |
|
||||
| `openclaw.install.minHostVersion` | `>=2026.3.22` gibi bir semver tabanı kullanan, desteklenen en düşük OpenClaw host sürümü. |
|
||||
| `openclaw.install.allowInvalidConfigRecovery` | Yapılandırma geçersiz olduğunda dar kapsamlı bir paketli Plugin yeniden kurulum kurtarma yoluna izin verir. |
|
||||
| `openclaw.startup.deferConfiguredChannelFullLoadUntilAfterListen` | Başlangıç sırasında tam kanal Plugin’inden önce yalnızca kurulum amaçlı kanal yüzeylerinin yüklenmesine izin verir. |
|
||||
| `openclaw.extensions` | Yerel plugin giriş noktalarını bildirir. |
|
||||
| `openclaw.setupEntry` | Onboarding ve ertelenmiş kanal başlangıcı sırasında kullanılan, yalnızca kurulum amaçlı hafif giriş noktası. |
|
||||
| `openclaw.channel` | Etiketler, belge yolları, takma adlar ve seçim metni gibi düşük maliyetli kanal katalog meta verileri. |
|
||||
| `openclaw.channel.configuredState` | Tam kanal çalışma zamanını yüklemeden "yalnızca ortam değişkeni temelli kurulum zaten var mı?" sorusunu yanıtlayabilen hafif configured-state denetleyici meta verileri. |
|
||||
| `openclaw.channel.persistedAuthState` | Tam kanal çalışma zamanını yüklemeden "zaten oturum açılmış herhangi bir şey var mı?" sorusunu yanıtlayabilen hafif persisted-auth denetleyici meta verileri. |
|
||||
| `openclaw.install.npmSpec` / `openclaw.install.localPath` | Paketlenmiş ve harici olarak yayımlanmış plugin'ler için kurulum/güncelleme ipuçları. |
|
||||
| `openclaw.install.defaultChoice` | Birden fazla kurulum kaynağı mevcut olduğunda tercih edilen kurulum yolu. |
|
||||
| `openclaw.install.minHostVersion` | `>=2026.3.22` gibi bir semver alt sınırı kullanarak desteklenen minimum OpenClaw ana bilgisayar sürümü. |
|
||||
| `openclaw.install.allowInvalidConfigRecovery` | Yapılandırma geçersiz olduğunda dar kapsamlı bir paketlenmiş plugin yeniden kurulum kurtarma yoluna izin verir. |
|
||||
| `openclaw.startup.deferConfiguredChannelFullLoadUntilAfterListen` | Başlangıç sırasında tam kanal plugin'inden önce yalnızca kurulum amaçlı kanal yüzeylerinin yüklenmesini sağlar. |
|
||||
|
||||
`openclaw.install.minHostVersion`, kurulum ve manifest
|
||||
kayıt defteri yükleme sırasında uygulanır. Geçersiz değerler reddedilir; daha yeni ama geçerli değerler
|
||||
eski host’larda Plugin’i atlar.
|
||||
`openclaw.install.minHostVersion`, kurulum ve manifest kayıt defteri yükleme
|
||||
sırasında zorunlu kılınır. Geçersiz değerler reddedilir; daha yeni ama geçerli
|
||||
değerler ise daha eski ana bilgisayarlarda plugin'i atlar.
|
||||
|
||||
`openclaw.install.allowInvalidConfigRecovery` özellikle dar kapsamlıdır. Bu,
|
||||
rastgele bozuk yapılandırmaları kurulabilir hâle getirmez. Bugün yalnızca kurulum
|
||||
akışlarının, belirli eski paketli Plugin yükseltme hatalarından kurtulmasına izin verir; örneğin eksik
|
||||
bir paketli Plugin yolu veya aynı paketli Plugin için eski bir `channels.<id>` girdisi.
|
||||
İlgisiz yapılandırma hataları yine de kurulumu engeller ve operatörleri
|
||||
`openclaw.install.allowInvalidConfigRecovery` kasıtlı olarak dar kapsamlıdır.
|
||||
Bu, keyfi bozuk yapılandırmaları kurulabilir hale getirmez. Bugün yalnızca
|
||||
eksik paketlenmiş plugin yolu veya aynı paketlenmiş plugin için eski bir
|
||||
`channels.<id>` girdisi gibi belirli eski paketlenmiş plugin yükseltme
|
||||
başarısızlıklarından kurulum akışlarının kurtulmasına izin verir. İlgisiz
|
||||
yapılandırma hataları yine kurulumu engeller ve operatörleri
|
||||
`openclaw doctor --fix` komutuna yönlendirir.
|
||||
|
||||
`openclaw.channel.persistedAuthState`, küçük bir denetleyici
|
||||
modülü için paket meta verisidir:
|
||||
`openclaw.channel.persistedAuthState`, küçük bir denetleyici modül için paket
|
||||
meta verisidir:
|
||||
|
||||
```json
|
||||
{
|
||||
@ -513,13 +545,14 @@ modülü için paket meta verisidir:
|
||||
}
|
||||
```
|
||||
|
||||
Kurulum, doctor veya yapılandırılmış durum akışları, tam kanal Plugin’i yüklenmeden önce
|
||||
düşük maliyetli bir evet/hayır kimlik doğrulama yoklamasına ihtiyaç duyduğunda bunu kullanın. Hedef dışa aktarım,
|
||||
yalnızca kalıcı durumu okuyan küçük bir fonksiyon olmalıdır; bunu tam
|
||||
kanal çalışma zamanı barrel’i üzerinden yönlendirmeyin.
|
||||
Kurulum, doctor veya configured-state akışlarının tam kanal plugin'i
|
||||
yüklenmeden önce düşük maliyetli bir evet/hayır kimlik doğrulama yoklamasına
|
||||
ihtiyaç duyduğu durumlarda bunu kullanın. Hedef dışa aktarma, yalnızca kalıcı
|
||||
durumu okuyan küçük bir işlev olmalıdır; bunu tam kanal çalışma zamanı barrel'ı
|
||||
üzerinden yönlendirmeyin.
|
||||
|
||||
`openclaw.channel.configuredState`, düşük maliyetli yalnızca env tabanlı
|
||||
yapılandırılmış durum kontrolleri için aynı biçimi izler:
|
||||
`openclaw.channel.configuredState`, düşük maliyetli yalnızca ortam değişkeni
|
||||
temelli configured denetimleri için aynı biçimi izler:
|
||||
|
||||
```json
|
||||
{
|
||||
@ -535,65 +568,70 @@ yapılandırılmış durum kontrolleri için aynı biçimi izler:
|
||||
}
|
||||
```
|
||||
|
||||
Bir kanal, yapılandırılmış durumu env’den veya diğer küçük
|
||||
çalışma zamanı dışı girdilerden yanıtlayabiliyorsa bunu kullanın. Denetim tam yapılandırma çözümlemesi veya gerçek
|
||||
kanal çalışma zamanı gerektiriyorsa, bunun yerine bu mantığı Plugin `config.hasConfiguredState`
|
||||
hook’unda tutun.
|
||||
Bir kanal configured-state durumunu ortam değişkenlerinden veya başka küçük
|
||||
çalışma zamanı dışı girdilerden yanıtlayabiliyorsa bunu kullanın. Denetim tam
|
||||
yapılandırma çözümlemesi veya gerçek kanal çalışma zamanı gerektiriyorsa bu
|
||||
mantığı bunun yerine plugin `config.hasConfiguredState` hook'unda tutun.
|
||||
|
||||
## JSON şeması gereksinimleri
|
||||
## JSON şema gereksinimleri
|
||||
|
||||
- **Her Plugin bir JSON şeması bulundurmalıdır**, hiçbir yapılandırma kabul etmese bile.
|
||||
- **Her plugin bir JSON şeması sağlamalıdır**, yapılandırma kabul etmese bile.
|
||||
- Boş bir şema kabul edilebilir (örneğin `{ "type": "object", "additionalProperties": false }`).
|
||||
- Şemalar çalışma zamanında değil, yapılandırma okuma/yazma zamanında doğrulanır.
|
||||
- Şemalar çalışma zamanında değil, yapılandırma okuma/yazma sırasında doğrulanır.
|
||||
|
||||
## Doğrulama davranışı
|
||||
|
||||
- Plugin manifesti tarafından kanal kimliği bildirilmedikçe, bilinmeyen `channels.*` anahtarları **hatadır**.
|
||||
- Bilinmeyen `channels.*` anahtarları, kanal kimliği bir plugin manifesti
|
||||
tarafından bildirilmedikçe **hatadır**.
|
||||
- `plugins.entries.<id>`, `plugins.allow`, `plugins.deny` ve `plugins.slots.*`
|
||||
**keşfedilebilir** Plugin kimliklerine başvurmalıdır. Bilinmeyen kimlikler **hatadır**.
|
||||
- Bir Plugin kurulmuşsa ancak manifesti veya şeması bozuk ya da eksikse,
|
||||
doğrulama başarısız olur ve Doctor Plugin hatasını bildirir.
|
||||
- Plugin yapılandırması varsa ancak Plugin **devre dışıysa**, yapılandırma korunur ve
|
||||
Doctor + günlüklerde bir **uyarı** gösterilir.
|
||||
**keşfedilebilir** plugin kimliklerine başvurmalıdır. Bilinmeyen kimlikler
|
||||
**hatadır**.
|
||||
- Bir plugin kuruluysa ancak manifesti veya şeması bozuk ya da eksikse
|
||||
doğrulama başarısız olur ve Doctor plugin hatasını bildirir.
|
||||
- Plugin yapılandırması varsa ancak plugin **devre dışıysa**, yapılandırma
|
||||
korunur ve Doctor + günlüklerde bir **uyarı** gösterilir.
|
||||
|
||||
Tam `plugins.*` şeması için bkz. [Yapılandırma başvurusu](/tr/gateway/configuration).
|
||||
Tam `plugins.*` şeması için bkz. [Configuration reference](/tr/gateway/configuration).
|
||||
|
||||
## Notlar
|
||||
|
||||
- Manifest, yerel dosya sistemi yüklemeleri dahil **yerel OpenClaw Plugin’leri için zorunludur**.
|
||||
- Çalışma zamanı yine de Plugin modülünü ayrı olarak yükler; manifest yalnızca
|
||||
- Manifest, yerel dosya sistemi yüklemeleri dahil **yerel OpenClaw plugin'leri için zorunludur**.
|
||||
- Çalışma zamanı plugin modülünü yine ayrı olarak yükler; manifest yalnızca
|
||||
keşif + doğrulama içindir.
|
||||
- Yerel manifestler JSON5 ile ayrıştırılır; bu nedenle son değer hâlâ bir nesne olduğu sürece
|
||||
yorumlar, sondaki virgüller ve
|
||||
tırnaksız anahtarlar kabul edilir.
|
||||
- Manifest yükleyicisi yalnızca belgelenmiş manifest alanlarını okur. Buraya
|
||||
özel üst düzey anahtarlar eklemekten kaçının.
|
||||
- `providerAuthEnvVars`, kimlik doğrulama yoklamaları, env işaretleyici
|
||||
doğrulaması ve env adlarını incelemek için Plugin çalışma zamanını başlatmaması gereken
|
||||
benzer provider kimlik doğrulama yüzeyleri için düşük maliyetli meta veri yoludur.
|
||||
- `providerAuthAliases`, provider varyantlarının başka bir provider’ın kimlik doğrulama
|
||||
env değişkenlerini, kimlik doğrulama profillerini, yapılandırma destekli kimlik doğrulamayı ve API anahtarı onboarding seçeneğini
|
||||
bu ilişkiyi core içinde sabit kodlamadan yeniden kullanmasına izin verir.
|
||||
- `channelEnvVars`, kabuk env geri dönüşü, kurulum
|
||||
istemleri ve env adlarını incelemek için Plugin çalışma zamanını başlatmaması gereken
|
||||
benzer kanal yüzeyleri için düşük maliyetli meta veri yoludur.
|
||||
- `providerAuthChoices`, kimlik doğrulama seçeneği seçicileri,
|
||||
`--auth-choice` çözümlemesi, tercih edilen provider eşlemesi ve basit onboarding
|
||||
CLI flag kaydı için provider çalışma zamanı yüklenmeden önce kullanılan düşük maliyetli meta veri yoludur. Provider kodu gerektiren
|
||||
çalışma zamanı sihirbazı meta verileri için bkz.
|
||||
[Provider çalışma zamanı hook’ları](/tr/plugins/architecture#provider-runtime-hooks).
|
||||
- Münhasır Plugin türleri `plugins.slots.*` üzerinden seçilir.
|
||||
- `kind: "memory"` değeri `plugins.slots.memory` tarafından seçilir.
|
||||
- Yerel manifestler JSON5 ile ayrıştırılır; bu nedenle son değer hâlâ bir nesne
|
||||
olduğu sürece yorumlar, sondaki virgüller ve tırnaksız anahtarlar kabul edilir.
|
||||
- Manifest yükleyici yalnızca belgelenmiş manifest alanlarını okur. Buraya özel
|
||||
üst düzey anahtarlar eklemekten kaçının.
|
||||
- `providerAuthEnvVars`, kimlik doğrulama yoklamaları, env-işaretleyici
|
||||
doğrulaması ve ortam değişkeni adlarını incelemek için plugin çalışma zamanını
|
||||
başlatmaması gereken benzer sağlayıcı kimlik doğrulama yüzeyleri için düşük
|
||||
maliyetli meta veri yoludur.
|
||||
- `providerAuthAliases`, sağlayıcı varyantlarının başka bir sağlayıcının kimlik
|
||||
doğrulama ortam değişkenlerini, kimlik doğrulama profillerini, yapılandırma
|
||||
destekli kimlik doğrulamayı ve API anahtarı onboarding seçeneğini bu ilişkiyi
|
||||
core içinde sabit kodlamadan yeniden kullanmasına olanak tanır.
|
||||
- `channelEnvVars`, kabuk ortam değişkeni geri dönüşü, kurulum istemleri ve
|
||||
ortam değişkeni adlarını incelemek için plugin çalışma zamanını başlatmaması
|
||||
gereken benzer kanal yüzeyleri için düşük maliyetli meta veri yoludur.
|
||||
- `providerAuthChoices`, sağlayıcı çalışma zamanı yüklenmeden önce kimlik
|
||||
doğrulama seçeneği seçicileri, `--auth-choice` çözümlemesi, tercih edilen
|
||||
sağlayıcı eşlemesi ve basit onboarding CLI bayrağı kaydı için düşük maliyetli
|
||||
meta veri yoludur. Sağlayıcı kodu gerektiren çalışma zamanı sihirbazı meta
|
||||
verileri için bkz.
|
||||
[Provider runtime hooks](/tr/plugins/architecture#provider-runtime-hooks).
|
||||
- Özel plugin türleri `plugins.slots.*` üzerinden seçilir.
|
||||
- `kind: "memory"` değeri `plugins.slots.memory` ile seçilir.
|
||||
- `kind: "context-engine"` değeri `plugins.slots.contextEngine`
|
||||
tarafından seçilir (varsayılan: yerleşik `legacy`).
|
||||
- Bir Plugin bunlara ihtiyaç duymuyorsa `channels`, `providers`, `cliBackends` ve `skills`
|
||||
atlanabilir.
|
||||
- Plugin’iniz yerel modüllere bağlıysa, derleme adımlarını ve
|
||||
tüm paket yöneticisi izin listesi gereksinimlerini belgelendirin (örneğin pnpm `allow-build-scripts`
|
||||
ile seçilir (varsayılan: yerleşik `legacy`).
|
||||
- Bir plugin bunlara ihtiyaç duymuyorsa `channels`, `providers`, `cliBackends`
|
||||
ve `skills` alanları atlanabilir.
|
||||
- Plugin'iniz yerel modüllere bağlıysa derleme adımlarını ve varsa paket
|
||||
yöneticisi izin listesi gereksinimlerini belgelendirin (örneğin, pnpm
|
||||
`allow-build-scripts`
|
||||
- `pnpm rebuild <package>`).
|
||||
|
||||
## İlgili
|
||||
|
||||
- [Plugin Oluşturma](/tr/plugins/building-plugins) — Plugin’lere başlarken
|
||||
- [Plugin Mimarisi](/tr/plugins/architecture) — iç mimari
|
||||
- [SDK Genel Bakış](/tr/plugins/sdk-overview) — Plugin SDK başvurusu
|
||||
- [Building Plugins](/tr/plugins/building-plugins) — plugin'lerle çalışmaya başlama
|
||||
- [Plugin Architecture](/tr/plugins/architecture) — iç mimari
|
||||
- [SDK Overview](/tr/plugins/sdk-overview) — Plugin SDK başvurusu
|
||||
|
||||
@ -1,84 +1,110 @@
|
||||
---
|
||||
read_when:
|
||||
- Yeni bir mesajlaşma kanal plugin'i oluşturuyorsunuz
|
||||
- Yeni bir mesajlaşma kanal Plugin'i oluşturuyorsunuz
|
||||
- OpenClaw'ı bir mesajlaşma platformuna bağlamak istiyorsunuz
|
||||
- ChannelPlugin bağdaştırıcı yüzeyini anlamanız gerekiyor
|
||||
sidebarTitle: Channel Plugins
|
||||
summary: OpenClaw için bir mesajlaşma kanal plugin'i oluşturma adım adım kılavuzu
|
||||
summary: OpenClaw için bir mesajlaşma kanal Plugin'i oluşturma adım adım kılavuzu
|
||||
title: Kanal Plugin'leri Oluşturma
|
||||
x-i18n:
|
||||
generated_at: "2026-04-11T02:46:22Z"
|
||||
generated_at: "2026-04-15T08:53:15Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 8a026e924f9ae8a3ddd46287674443bcfccb0247be504261522b078e1f440aef
|
||||
source_hash: a7f4c746fe3163a8880e14c433f4db4a1475535d91716a53fb879551d8d62f65
|
||||
source_path: plugins/sdk-channel-plugins.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Kanal Plugin'leri Oluşturma
|
||||
|
||||
Bu kılavuz, OpenClaw'ı bir mesajlaşma platformuna bağlayan bir kanal plugin'i oluşturma sürecini adım adım açıklar. Sonunda DM güvenliği, eşleme, yanıt dizilimi ve giden mesajlaşma özelliklerine sahip çalışan bir kanalınız olacak.
|
||||
Bu kılavuz, OpenClaw'ı bir mesajlaşma platformuna bağlayan bir kanal plugin'i oluşturma sürecini adım adım açıklar. Sonunda DM güvenliği, eşleme, yanıt iş parçacığı oluşturma ve giden mesajlaşma özelliklerine sahip çalışan bir kanalınız olacak.
|
||||
|
||||
<Info>
|
||||
Daha önce hiç OpenClaw plugin'i oluşturmadıysanız, temel paket
|
||||
yapısı ve manifest kurulumu için önce
|
||||
[Başlangıç](/tr/plugins/building-plugins) bölümünü okuyun.
|
||||
yapısı ve manifest kurulumu için önce [Başlangıç](/tr/plugins/building-plugins)
|
||||
bölümünü okuyun.
|
||||
</Info>
|
||||
|
||||
## Kanal plugin'leri nasıl çalışır
|
||||
|
||||
Kanal plugin'lerinin kendi send/edit/react araçlarına ihtiyacı yoktur. OpenClaw, çekirdekte tek bir paylaşılan `message` aracı tutar. Plugin'iniz şunlardan sorumludur:
|
||||
Kanal plugin'lerinin kendi send/edit/react araçlarına ihtiyacı yoktur. OpenClaw, çekirdekte tek bir paylaşılan `message` aracını tutar. Plugin'iniz şunlardan sorumludur:
|
||||
|
||||
- **Yapılandırma** — hesap çözümleme ve kurulum sihirbazı
|
||||
- **Güvenlik** — DM politikası ve allowlist'ler
|
||||
- **Eşleme** — DM onay akışı
|
||||
- **Oturum dil bilgisi** — sağlayıcıya özgü konuşma kimliklerinin temel sohbetlere, iş parçacığı kimliklerine ve üst geri dönüşlere nasıl eşlendiği
|
||||
- **Giden** — platforma metin, medya ve anket gönderme
|
||||
- **İş parçacığı oluşturma** — yanıtların nasıl dizildiği
|
||||
- **Config** — hesap çözümleme ve kurulum sihirbazı
|
||||
- **Security** — DM ilkesi ve izin listeleri
|
||||
- **Pairing** — DM onay akışı
|
||||
- **Session grammar** — sağlayıcıya özgü konuşma kimliklerinin temel sohbetlere, iş parçacığı kimliklerine ve üst öğe geri dönüşlerine nasıl eşlendiği
|
||||
- **Outbound** — platforma metin, medya ve anket gönderme
|
||||
- **Threading** — yanıtların nasıl iş parçacığına alındığı
|
||||
|
||||
Çekirdek, paylaşılan mesaj aracından, istem bağlantılarından, dış oturum anahtarı biçiminden, genel `:thread:` kayıt takibinden ve sevkten sorumludur.
|
||||
Çekirdek; paylaşılan message aracından, istem bağlamasından, dış oturum-anahtarı biçiminden, genel `:thread:` kayıtlarından ve dağıtımdan sorumludur.
|
||||
|
||||
Platformunuz konuşma kimliklerinin içinde ek kapsam saklıyorsa, bu ayrıştırmayı plugin içinde `messaging.resolveSessionConversation(...)` ile tutun. Bu, `rawId` değerini temel konuşma kimliğine, isteğe bağlı iş parçacığı kimliğine, açık `baseConversationId` değerine ve herhangi bir `parentConversationCandidates` listesine eşlemek için kanonik kancadır. `parentConversationCandidates` döndürdüğünüzde, bunları en dar üstten en geniş/temel konuşmaya doğru sıralı tutun.
|
||||
Kanalınız medya kaynakları taşıyan message-tool parametreleri ekliyorsa, bu
|
||||
parametre adlarını `describeMessageTool(...).mediaSourceParams` üzerinden açığa çıkarın.
|
||||
Çekirdek bu açık listeyi sandbox yol normalleştirmesi ve giden medya erişim
|
||||
ilkesi için kullanır; böylece plugin'lerin sağlayıcıya özgü avatar,
|
||||
ek veya kapak görseli parametreleri için paylaşılan çekirdekte özel durumlara
|
||||
ihtiyacı olmaz.
|
||||
Tercihen
|
||||
`{ "set-profile": ["avatarUrl", "avatarPath"] }` gibi eylem anahtarlı bir eşleme döndürün; böylece ilgisiz eylemler başka bir eylemin medya argümanlarını devralmaz.
|
||||
Düz bir dizi de, açığa çıkarılan tüm eylemler arasında bilerek paylaşılan
|
||||
parametreler için çalışmaya devam eder.
|
||||
|
||||
Kanal kayıt defteri başlatılmadan önce aynı ayrıştırmaya ihtiyaç duyan paketlenmiş plugin'ler, eşleşen bir `resolveSessionConversation(...)` dışa aktarımına sahip üst düzey bir `session-key-api.ts` dosyası da sunabilir. Çekirdek bu önyükleme için güvenli yüzeyi yalnızca çalışma zamanı plugin kayıt defteri henüz kullanılamadığında kullanır.
|
||||
Platformunuz konuşma kimlikleri içinde ek kapsam depoluyorsa, bu ayrıştırmayı
|
||||
plugin içinde `messaging.resolveSessionConversation(...)` ile tutun. Bu,
|
||||
`rawId` değerini temel konuşma kimliğine, isteğe bağlı iş parçacığı
|
||||
kimliğine, açık `baseConversationId` değerine ve herhangi bir
|
||||
`parentConversationCandidates` değerine eşlemek için kanonik kancadır.
|
||||
`parentConversationCandidates` döndürdüğünüzde, bunları en dar üst öğeden en geniş/temel konuşmaya doğru sıralı tutun.
|
||||
|
||||
`messaging.resolveParentConversationCandidates(...)`, bir plugin'in yalnızca genel/ham kimliğin üzerine üst geri dönüşlere ihtiyaç duyması durumunda eski uyumluluk geri dönüşü olarak kullanılmaya devam eder. Her iki kanca da varsa, çekirdek önce `resolveSessionConversation(...).parentConversationCandidates` kullanır ve kanonik kanca bunları atladığında yalnızca `resolveParentConversationCandidates(...)` kancasına geri döner.
|
||||
Kanal kayıt defteri başlatılmadan önce aynı ayrıştırmaya ihtiyaç duyan paketli
|
||||
plugin'ler ayrıca eşleşen bir
|
||||
`resolveSessionConversation(...)` dışa aktarımı içeren üst düzey bir `session-key-api.ts`
|
||||
dosyası da sunabilir. Çekirdek bu önyükleme açısından güvenli yüzeyi
|
||||
yalnızca çalışma zamanı plugin kayıt defteri henüz kullanılabilir olmadığında kullanır.
|
||||
|
||||
`messaging.resolveParentConversationCandidates(...)`, bir plugin yalnızca
|
||||
genel/raw kimliğin üzerine üst öğe geri dönüşlerine ihtiyaç duyduğunda eski
|
||||
uyumluluk geri dönüşü olarak kullanılmaya devam eder. Her iki kanca da varsa,
|
||||
çekirdek önce
|
||||
`resolveSessionConversation(...).parentConversationCandidates` kullanır ve yalnızca kanonik kanca bunları
|
||||
atlanırsa `resolveParentConversationCandidates(...)` kancasına geri döner.
|
||||
|
||||
## Onaylar ve kanal yetenekleri
|
||||
|
||||
Çoğu kanal plugin'inin onaya özgü koda ihtiyacı yoktur.
|
||||
|
||||
- Çekirdek aynı sohbette `/approve`, paylaşılan onay düğmesi yükleri ve genel geri dönüş teslimatından sorumludur.
|
||||
- Kanal onaya özgü davranış gerektiriyorsa, kanal plugin'inde tek bir `approvalCapability` nesnesi tercih edin.
|
||||
- `ChannelPlugin.approvals` kaldırılmıştır. Onay teslimatı/yerel işleme/oluşturma/kimlik doğrulama bilgilerini `approvalCapability` içine koyun.
|
||||
- `plugin.auth` yalnızca login/logout içindir; çekirdek artık bu nesneden onay kimlik doğrulama kancalarını okumaz.
|
||||
- `approvalCapability.authorizeActorAction` ve `approvalCapability.getActionAvailabilityState`, onay kimlik doğrulaması için kanonik bağlantı yüzeyidir.
|
||||
- Aynı sohbette onay kimlik doğrulama kullanılabilirliği için `approvalCapability.getActionAvailabilityState` kullanın.
|
||||
- Kanalınız yerel exec onayları sunuyorsa, başlatan yüzey/yerel istemci durumu aynı sohbet onay kimlik doğrulamasından farklı olduğunda `approvalCapability.getExecInitiatingSurfaceState` kullanın. Çekirdek bu exec'e özgü kancayı `enabled` ile `disabled` ayrımını yapmak, başlatan kanalın yerel exec onaylarını destekleyip desteklemediğine karar vermek ve kanalı yerel istemci geri dönüş yönlendirmesine dahil etmek için kullanır. `createApproverRestrictedNativeApprovalCapability(...)`, yaygın durumda bunu doldurur.
|
||||
- Yinelenen yerel onay istemlerini gizleme veya teslimattan önce yazıyor göstergeleri gönderme gibi kanala özgü yük yaşam döngüsü davranışları için `outbound.shouldSuppressLocalPayloadPrompt` veya `outbound.beforeDeliverPayload` kullanın.
|
||||
- `approvalCapability.delivery` öğesini yalnızca yerel onay yönlendirmesi veya geri dönüş bastırma için kullanın.
|
||||
- Kanala ait yerel onay bilgileri için `approvalCapability.nativeRuntime` kullanın. Çalışma anında modülünüzü isteğe göre içe aktarabilen ve yine de çekirdeğin onay yaşam döngüsünü kurmasına izin veren `createLazyChannelApprovalNativeRuntimeAdapter(...)` ile bunu sıcak kanal giriş noktalarında lazy tutun.
|
||||
- Kanal gerçekten paylaşılan oluşturucu yerine özel onay yüklerine ihtiyaç duyuyorsa yalnızca `approvalCapability.render` kullanın.
|
||||
- Kanal devre dışı yol yanıtının yerel exec onaylarını etkinleştirmek için gereken tam yapılandırma ayarlarını açıklamasını istiyorsa `approvalCapability.describeExecApprovalSetup` kullanın. Kanca `{ channel, channelLabel, accountId }` alır; adlandırılmış hesaplı kanallar üst düzey varsayılanlar yerine `channels.<channel>.accounts.<id>.execApprovals.*` gibi hesap kapsamlı yollar oluşturmalıdır.
|
||||
- Bir kanal mevcut yapılandırmadan kararlı sahip benzeri DM kimliklerini çıkarabiliyorsa, onaya özgü çekirdek mantığı eklemeden aynı sohbette `/approve` kısıtlamak için `openclaw/plugin-sdk/approval-runtime` içindeki `createResolvedApproverActionAuthAdapter` kullanın.
|
||||
- Kanalınız yerel onay teslimatına ihtiyaç duyuyorsa, kanal kodunu hedef normalleştirme ile taşıma/sunum bilgilerine odaklı tutun. `openclaw/plugin-sdk/approval-runtime` içinden `createChannelExecApprovalProfile`, `createChannelNativeOriginTargetResolver`, `createChannelApproverDmTargetResolver` ve `createApproverRestrictedNativeApprovalCapability` kullanın. Kanala özgü bilgileri, ideal olarak `createChannelApprovalNativeRuntimeAdapter(...)` veya `createLazyChannelApprovalNativeRuntimeAdapter(...)` aracılığıyla, `approvalCapability.nativeRuntime` arkasına koyun; böylece çekirdek işleyiciyi kurabilir ve istek filtreleme, yönlendirme, tekilleştirme, süre dolumu, gateway aboneliği ve başka yere yönlendirildi bildirimlerinin sahipliğini alabilir. `nativeRuntime` birkaç küçük bağlantıya ayrılmıştır:
|
||||
- Çekirdek aynı sohbet içi `/approve`, paylaşılan onay düğmesi payload'ları ve genel geri dönüş teslimatından sorumludur.
|
||||
- Kanal onaya özgü davranış gerektiriyorsa, kanal plugin'inde tek bir `approvalCapability` nesnesini tercih edin.
|
||||
- `ChannelPlugin.approvals` kaldırıldı. Onay teslimatı/yerel işleme/görselleştirme/yetkilendirme bilgilerini `approvalCapability` içine koyun.
|
||||
- `plugin.auth` yalnızca giriş/çıkış içindir; çekirdek artık bu nesneden onay yetkilendirme kancalarını okumaz.
|
||||
- `approvalCapability.authorizeActorAction` ve `approvalCapability.getActionAvailabilityState`, onay yetkilendirmesi için kanonik kancadır.
|
||||
- Aynı sohbet içi onay yetkilendirme kullanılabilirliği için `approvalCapability.getActionAvailabilityState` kullanın.
|
||||
- Kanalınız yerel exec onaylarını açığa çıkarıyorsa, başlatıcı yüzey/yerel istemci durumu aynı sohbet içi onay yetkilendirmesinden farklı olduğunda `approvalCapability.getExecInitiatingSurfaceState` kullanın. Çekirdek bu exec'e özgü kancayı `enabled` ile `disabled` durumlarını ayırt etmek, başlatıcı kanalın yerel exec onaylarını destekleyip desteklemediğine karar vermek ve kanalı yerel istemci geri dönüş yönlendirmesine dahil etmek için kullanır. `createApproverRestrictedNativeApprovalCapability(...)` bunu yaygın durum için doldurur.
|
||||
- Yinelenen yerel onay istemlerini gizleme veya teslimattan önce yazıyor göstergeleri gönderme gibi kanala özgü payload yaşam döngüsü davranışları için `outbound.shouldSuppressLocalPayloadPrompt` veya `outbound.beforeDeliverPayload` kullanın.
|
||||
- `approvalCapability.delivery` yalnızca yerel onay yönlendirmesi veya geri dönüş bastırma için kullanın.
|
||||
- Kanala ait yerel onay bilgileri için `approvalCapability.nativeRuntime` kullanın. Bunu sıcak kanal giriş noktalarında `createLazyChannelApprovalNativeRuntimeAdapter(...)` ile tembel tutun; bu, çekirdeğin onay yaşam döngüsünü oluşturmaya devam etmesine izin verirken çalışma zamanı modülünüzü gerektiğinde içe aktarabilir.
|
||||
- Kanalın paylaşılan oluşturucu yerine gerçekten özel onay payload'larına ihtiyacı olduğunda yalnızca `approvalCapability.render` kullanın.
|
||||
- Kanal, devre dışı yol yanıtının yerel exec onaylarını etkinleştirmek için gereken tam config ayarlarını açıklamasını istiyorsa `approvalCapability.describeExecApprovalSetup` kullanın. Bu kanca `{ channel, channelLabel, accountId }` alır; adlandırılmış hesap kanalları, üst düzey varsayılanlar yerine `channels.<channel>.accounts.<id>.execApprovals.*` gibi hesap kapsamlı yolları oluşturmalıdır.
|
||||
- Bir kanal mevcut config'den kararlı sahip benzeri DM kimliklerini çıkarabiliyorsa, onaya özgü çekirdek mantığı eklemeden aynı sohbet içi `/approve` erişimini kısıtlamak için `openclaw/plugin-sdk/approval-runtime` içinden `createResolvedApproverActionAuthAdapter` kullanın.
|
||||
- Kanalın yerel onay teslimatına ihtiyacı varsa, kanal kodunu hedef normalizasyonu ile taşıma/sunum bilgilerine odaklı tutun. `openclaw/plugin-sdk/approval-runtime` içinden `createChannelExecApprovalProfile`, `createChannelNativeOriginTargetResolver`, `createChannelApproverDmTargetResolver` ve `createApproverRestrictedNativeApprovalCapability` kullanın. Kanala özgü bilgileri `approvalCapability.nativeRuntime` arkasına koyun; tercihen `createChannelApprovalNativeRuntimeAdapter(...)` veya `createLazyChannelApprovalNativeRuntimeAdapter(...)` üzerinden. Böylece çekirdek işleyiciyi oluşturabilir ve istek filtreleme, yönlendirme, tekilleştirme, süre sonu, Gateway aboneliği ve başka yere yönlendirildi bildirimlerini yönetebilir. `nativeRuntime` birkaç küçük parçaya ayrılmıştır:
|
||||
- `availability` — hesabın yapılandırılmış olup olmadığı ve bir isteğin işlenip işlenmemesi gerektiği
|
||||
- `presentation` — paylaşılan onay görünüm modelini bekleyen/çözülen/süresi dolan yerel yüklere veya nihai eylemlere eşleme
|
||||
- `presentation` — paylaşılan onay görünüm modelini beklemede/çözümlendi/süresi doldu yerel payload'larına veya son eylemlere eşleme
|
||||
- `transport` — hedefleri hazırlama ve yerel onay mesajlarını gönderme/güncelleme/silme
|
||||
- `interactions` — yerel düğmeler veya tepkiler için isteğe bağlı bağlama/çözme/eylem temizleme kancaları
|
||||
- `interactions` — yerel düğmeler veya tepkiler için isteğe bağlı bind/unbind/clear-action kancaları
|
||||
- `observe` — isteğe bağlı teslimat tanılama kancaları
|
||||
- Kanal çalışma anına ait istemci, belirteç, Bolt uygulaması veya webhook alıcısı gibi nesnelere ihtiyaç duyuyorsa, bunları `openclaw/plugin-sdk/channel-runtime-context` üzerinden kaydedin. Genel runtime-context kayıt defteri, çekirdeğin kanal başlangıç durumundan yetenek odaklı işleyicileri başlatmasına onaya özgü sarmalayıcı bağlayıcı eklemeden izin verir.
|
||||
- Yeteneğe dayalı bağlantı yüzeyi henüz yeterince ifade gücüne sahip değilse yalnızca daha alt düzey `createChannelApprovalHandler` veya `createChannelNativeApprovalRuntime` çözümlerine başvurun.
|
||||
- Yerel onay kanalları hem `accountId` hem de `approvalKind` değerlerini bu yardımcılar üzerinden yönlendirmelidir. `accountId`, çok hesaplı onay politikasını doğru bot hesabı kapsamına oturtur; `approvalKind` ise çekirdekte sabit kodlu dallar olmadan exec ve plugin onay davranışını kanala açık tutar.
|
||||
- Çekirdek artık onay yeniden yönlendirme bildirimlerinin de sahibidir. Kanal plugin'leri, `createChannelNativeApprovalRuntime` içinden kendi "onay DM'lere / başka bir kanala gitti" takip mesajlarını göndermemelidir; bunun yerine paylaşılan onay yeteneği yardımcıları üzerinden doğru kaynak + onaylayıcı-DM yönlendirmesini sunmalı ve çekirdeğin, başlatan sohbete herhangi bir bildirim göndermeden önce gerçek teslimatları toplamasına izin vermelidir.
|
||||
- Teslim edilen onay kimliği türünü uçtan uca koruyun. Yerel istemciler, exec ve plugin onay yönlendirmesini kanala özgü durumdan tahmin etmemeli veya yeniden yazmamalıdır.
|
||||
- Farklı onay türleri bilinçli olarak farklı yerel yüzeyler sunabilir.
|
||||
Mevcut paketlenmiş örnekler:
|
||||
- Kanalın istemci, token, Bolt uygulaması veya Webhook alıcısı gibi çalışma zamanına ait nesnelere ihtiyacı varsa, bunları `openclaw/plugin-sdk/channel-runtime-context` üzerinden kaydedin. Genel runtime-context kayıt defteri, çekirdeğin onaya özgü sarmalayıcı yapıştırıcısı eklemeden kanal başlangıç durumundan yetenek odaklı işleyicileri önyüklemesine olanak tanır.
|
||||
- Yalnızca yetenek odaklı kanca henüz yeterince ifade gücüne sahip değilse daha alt düzey `createChannelApprovalHandler` veya `createChannelNativeApprovalRuntime` çözümlerine başvurun.
|
||||
- Yerel onay kanalları, bu yardımcılar üzerinden hem `accountId` hem de `approvalKind` yönlendirmelidir. `accountId`, çok hesaplı onay ilkesini doğru bot hesabı kapsamına taşır; `approvalKind` ise exec ile plugin onayı davranışını çekirdekte sabit kodlu dallanmalar olmadan kanal için kullanılabilir tutar.
|
||||
- Çekirdek artık onay yeniden yönlendirme bildirimlerinden de sorumludur. Kanal plugin'leri, `createChannelNativeApprovalRuntime` içinden kendi "onay DM'lere / başka bir kanala gitti" takip mesajlarını göndermemelidir; bunun yerine paylaşılan onay yeteneği yardımcıları üzerinden doğru origin + approver-DM yönlendirmesini açığa çıkarın ve çekirdek, başlatıcı sohbete herhangi bir bildirim göndermeden önce gerçek teslimatları toplasın.
|
||||
- Teslim edilen onay kimliği türünü uçtan uca koruyun. Yerel istemciler exec ile plugin onayı yönlendirmesini kanal yerel durumundan tahmin etmemeli veya yeniden yazmamalıdır.
|
||||
- Farklı onay türleri bilerek farklı yerel yüzeyler açığa çıkarabilir.
|
||||
Güncel paketli örnekler:
|
||||
- Slack, hem exec hem de plugin kimlikleri için yerel onay yönlendirmesini kullanılabilir tutar.
|
||||
- Matrix, exec ve plugin onayları için aynı yerel DM/kanal yönlendirmesini ve reaction UX'i korurken, kimlik doğrulamanın onay türüne göre farklılaşmasına da izin verir.
|
||||
- `createApproverRestrictedNativeApprovalAdapter` hâlâ uyumluluk sarmalayıcısı olarak vardır, ancak yeni kod `capability` oluşturucusunu tercih etmeli ve plugin üzerinde `approvalCapability` sunmalıdır.
|
||||
- Matrix, yetkilendirmenin onay türüne göre farklılaşmasına izin verirken exec ve plugin onayları için aynı yerel DM/kanal yönlendirmesi ve tepki kullanıcı deneyimini korur.
|
||||
- `createApproverRestrictedNativeApprovalAdapter` uyumluluk sarmalayıcısı olarak hâlâ vardır, ancak yeni kod `capability` oluşturucusunu tercih etmeli ve plugin üzerinde `approvalCapability` açığa çıkarmalıdır.
|
||||
|
||||
Sıcak kanal giriş noktalarında, bu ailenin yalnızca bir parçasına ihtiyaç duyuyorsanız daha dar çalışma zamanı alt yollarını tercih edin:
|
||||
Sıcak kanal giriş noktaları için, bu ailenin yalnızca bir parçasına
|
||||
ihtiyacınız olduğunda daha dar runtime alt yollarını tercih edin:
|
||||
|
||||
- `openclaw/plugin-sdk/approval-auth-runtime`
|
||||
- `openclaw/plugin-sdk/approval-client-runtime`
|
||||
@ -90,88 +116,101 @@ Sıcak kanal giriş noktalarında, bu ailenin yalnızca bir parçasına ihtiyaç
|
||||
- `openclaw/plugin-sdk/approval-reply-runtime`
|
||||
- `openclaw/plugin-sdk/channel-runtime-context`
|
||||
|
||||
Benzer şekilde, daha geniş şemsiye yüzeye ihtiyaç duymadığınızda `openclaw/plugin-sdk/setup-runtime`,
|
||||
Benzer şekilde, daha geniş şemsiye
|
||||
yüzeye ihtiyacınız yoksa `openclaw/plugin-sdk/setup-runtime`,
|
||||
`openclaw/plugin-sdk/setup-adapter-runtime`,
|
||||
`openclaw/plugin-sdk/reply-runtime`,
|
||||
`openclaw/plugin-sdk/reply-dispatch-runtime`,
|
||||
`openclaw/plugin-sdk/reply-reference` ve
|
||||
`openclaw/plugin-sdk/reply-chunking` yollarını tercih edin.
|
||||
|
||||
Özellikle kurulum için:
|
||||
Kurulum için özel olarak:
|
||||
|
||||
- `openclaw/plugin-sdk/setup-runtime`, çalışma zamanı için güvenli kurulum yardımcılarını kapsar:
|
||||
içe aktarma için güvenli kurulum yama bağdaştırıcıları (`createPatchedAccountSetupAdapter`,
|
||||
- `openclaw/plugin-sdk/setup-runtime`, çalışma zamanında güvenli kurulum yardımcılarını kapsar:
|
||||
içe aktarma açısından güvenli kurulum yama bağdaştırıcıları (`createPatchedAccountSetupAdapter`,
|
||||
`createEnvPatchedAccountSetupAdapter`,
|
||||
`createSetupInputPresenceValidator`), arama notu çıktısı,
|
||||
`createSetupInputPresenceValidator`), lookup-note çıktısı,
|
||||
`promptResolvedAllowFrom`, `splitSetupEntries` ve devredilmiş
|
||||
kurulum proxy oluşturucuları
|
||||
- `openclaw/plugin-sdk/setup-adapter-runtime`, `createEnvPatchedAccountSetupAdapter` için dar, ortam farkındalıklı bağdaştırıcı yüzeyidir
|
||||
- `openclaw/plugin-sdk/channel-setup`, isteğe bağlı kurulum oluşturucularını ve birkaç kurulum açısından güvenli ilkel yapıyı kapsar:
|
||||
setup-proxy oluşturucuları
|
||||
- `openclaw/plugin-sdk/setup-adapter-runtime`, `createEnvPatchedAccountSetupAdapter`
|
||||
için dar, ortam farkındalıklı bağdaştırıcı
|
||||
kancasıdır
|
||||
- `openclaw/plugin-sdk/channel-setup`, isteğe bağlı kurulum oluşturucularını ve birkaç kurulum açısından güvenli ilkel öğeyi kapsar:
|
||||
`createOptionalChannelSetupSurface`, `createOptionalChannelSetupAdapter`,
|
||||
|
||||
Kanalınız ortam değişkeni odaklı kurulum veya kimlik doğrulamayı destekliyorsa ve genel başlangıç/yapılandırma akışlarının çalışma zamanı yüklenmeden önce bu ortam adlarını bilmesi gerekiyorsa, bunları plugin manifest'inde `channelEnvVars` ile bildirin. Kanal çalışma zamanı `envVars` veya yerel sabitlerini yalnızca operatöre yönelik metinler için kullanın.
|
||||
Kanalınız ortam güdümlü kurulum veya yetkilendirme destekliyorsa ve genel başlangıç/config
|
||||
akışlarının çalışma zamanı yüklenmeden önce bu ortam adlarını bilmesi gerekiyorsa,
|
||||
bunları plugin manifest içinde `channelEnvVars` ile bildirin. Kanal çalışma zamanı `envVars`
|
||||
veya yerel sabitlerini yalnızca operatöre dönük metinler için kullanın.
|
||||
`createOptionalChannelSetupWizard`, `DEFAULT_ACCOUNT_ID`,
|
||||
`createTopLevelChannelDmPolicy`, `setSetupChannelEnabled` ve
|
||||
`splitSetupEntries`
|
||||
|
||||
- yalnızca daha ağır paylaşılan kurulum/yapılandırma yardımcılarına da ihtiyaç duyuyorsanız daha geniş `openclaw/plugin-sdk/setup` yüzeyini kullanın; örneğin
|
||||
- yalnızca daha ağır paylaşılan kurulum/config yardımcılarına da ihtiyaç duyduğunuzda
|
||||
daha geniş `openclaw/plugin-sdk/setup` kancasını kullanın; örneğin
|
||||
`moveSingleAccountChannelSectionToDefaultAccount(...)`
|
||||
|
||||
Kanalınız yalnızca kurulum yüzeylerinde "önce bu plugin'i yükleyin" bilgisini göstermek istiyorsa, `createOptionalChannelSetupSurface(...)` tercih edin. Oluşturulan bağdaştırıcı/kurulum sihirbazı yapılandırma yazımlarında ve sonlandırmada kapalı başarısız olur; ayrıca doğrulama, sonlandırma ve doküman bağlantısı metinlerinde aynı kurulum gerekli mesajını yeniden kullanır.
|
||||
Kanalınız yalnızca kurulum yüzeylerinde "önce bu plugin'i yükleyin" bilgisini
|
||||
duyurmak istiyorsa, `createOptionalChannelSetupSurface(...)` çözümünü tercih edin. Üretilen
|
||||
bağdaştırıcı/sihirbaz config yazımlarında ve sonlandırmada güvenli biçimde başarısız olur
|
||||
ve doğrulama, sonlandırma ve docs-link
|
||||
metinlerinde aynı yükleme gerekli mesajını yeniden kullanır.
|
||||
|
||||
Diğer sıcak kanal yollarında da daha geniş eski yüzeyler yerine dar yardımcıları tercih edin:
|
||||
Diğer sıcak kanal yolları için, daha geniş eski yüzeyler yerine daha dar
|
||||
yardımcıları tercih edin:
|
||||
|
||||
- Çok hesaplı yapılandırma ve varsayılan hesap geri dönüşü için
|
||||
`openclaw/plugin-sdk/account-core`,
|
||||
- çok hesaplı config ve
|
||||
varsayılan hesap geri dönüşü için `openclaw/plugin-sdk/account-core`,
|
||||
`openclaw/plugin-sdk/account-id`,
|
||||
`openclaw/plugin-sdk/account-resolution` ve
|
||||
`openclaw/plugin-sdk/account-helpers`
|
||||
- Gelen yön/zarf ve kaydet-ve-sevk bağlantısı için
|
||||
`openclaw/plugin-sdk/inbound-envelope` ve
|
||||
- gelen rota/zarf ve
|
||||
kaydet-ve-dağıt bağlaması için `openclaw/plugin-sdk/inbound-envelope` ve
|
||||
`openclaw/plugin-sdk/inbound-reply-dispatch`
|
||||
- Hedef ayrıştırma/eşleme için `openclaw/plugin-sdk/messaging-targets`
|
||||
- Medya yükleme ve giden kimlik/gönderim delegeleri için
|
||||
`openclaw/plugin-sdk/outbound-media` ve
|
||||
- hedef ayrıştırma/eşleştirme için `openclaw/plugin-sdk/messaging-targets`
|
||||
- medya yükleme ile giden
|
||||
kimlik/gönderim delegeleri için `openclaw/plugin-sdk/outbound-media` ve
|
||||
`openclaw/plugin-sdk/outbound-runtime`
|
||||
- İş parçacığı bağlama yaşam döngüsü ve bağdaştırıcı kaydı için
|
||||
`openclaw/plugin-sdk/thread-bindings-runtime`
|
||||
- Yalnızca eski bir ajan/medya yük alan düzeni hâlâ gerekiyorsa
|
||||
`openclaw/plugin-sdk/agent-media-payload`
|
||||
- Telegram özel komut normalleştirme, yinelenen/çakışma doğrulaması ve geri dönüş açısından kararlı komut yapılandırma sözleşmesi için
|
||||
`openclaw/plugin-sdk/telegram-command-config`
|
||||
- iş parçacığı bağlama yaşam döngüsü
|
||||
ve bağdaştırıcı kaydı için `openclaw/plugin-sdk/thread-bindings-runtime`
|
||||
- yalnızca eski agent/media
|
||||
payload alan düzeni hâlâ gerekiyorsa `openclaw/plugin-sdk/agent-media-payload`
|
||||
- Telegram özel komut
|
||||
normalizasyonu, yinelenen/çakışan doğrulama ve geri dönüş açısından kararlı komut
|
||||
config sözleşmesi için `openclaw/plugin-sdk/telegram-command-config`
|
||||
|
||||
Yalnızca kimlik doğrulama kullanan kanallar genellikle varsayılan yolda kalabilir: çekirdek onayları yönetir ve plugin yalnızca giden/kimlik doğrulama yeteneklerini sunar. Matrix, Slack, Telegram ve özel sohbet taşıyıcıları gibi yerel onay kanalları, kendi onay yaşam döngülerini yazmak yerine paylaşılan yerel yardımcıları kullanmalıdır.
|
||||
Yalnızca yetkilendirme kullanan kanallar genellikle varsayılan yolda kalabilir: çekirdek onayları yönetir ve plugin yalnızca outbound/auth yeteneklerini açığa çıkarır. Matrix, Slack, Telegram ve özel sohbet taşıma katmanları gibi yerel onay kanalları, kendi onay yaşam döngülerini yazmak yerine paylaşılan yerel yardımcıları kullanmalıdır.
|
||||
|
||||
## Gelen mention politikası
|
||||
## Gelen mention ilkesi
|
||||
|
||||
Gelen mention işlemeyi iki katmana ayrılmış halde tutun:
|
||||
Gelen mention işlemeyi iki katmana bölünmüş tutun:
|
||||
|
||||
- plugin'e ait kanıt toplama
|
||||
- paylaşılan politika değerlendirmesi
|
||||
- paylaşılan ilke değerlendirmesi
|
||||
|
||||
Paylaşılan katman için `openclaw/plugin-sdk/channel-inbound` kullanın.
|
||||
|
||||
Plugin'e yerel mantık için uygun örnekler:
|
||||
|
||||
- bottan yanıt algılama
|
||||
- bottan alıntı algılama
|
||||
- iş parçacığı katılım kontrolleri
|
||||
- hizmet/sistem mesajı hariç tutmaları
|
||||
- bot'a yanıt algılama
|
||||
- bot alıntısı algılama
|
||||
- iş parçacığı katılımı kontrolleri
|
||||
- servis/sistem mesajı hariç tutmaları
|
||||
- bot katılımını kanıtlamak için gereken platforma özgü önbellekler
|
||||
|
||||
Paylaşılan yardımcı için uygun olanlar:
|
||||
Paylaşılan yardımcı için uygun örnekler:
|
||||
|
||||
- `requireMention`
|
||||
- açık mention sonucu
|
||||
- örtük mention allowlist
|
||||
- komut bypass
|
||||
- örtük mention izin listesi
|
||||
- komut baypası
|
||||
- son atlama kararı
|
||||
|
||||
Tercih edilen akış:
|
||||
|
||||
1. Yerel mention bilgilerini hesaplayın.
|
||||
2. Bu bilgileri `resolveInboundMentionDecision({ facts, policy })` içine geçirin.
|
||||
3. Gelen kapınızda `decision.effectiveWasMentioned`, `decision.shouldBypassMention` ve `decision.shouldSkip` kullanın.
|
||||
3. Gelen kapınızda `decision.effectiveWasMentioned`, `decision.shouldBypassMention` ve `decision.shouldSkip` değerlerini kullanın.
|
||||
|
||||
```typescript
|
||||
import {
|
||||
@ -210,7 +249,7 @@ const decision = resolveInboundMentionDecision({
|
||||
if (decision.shouldSkip) return;
|
||||
```
|
||||
|
||||
`api.runtime.channel.mentions`, çalışma zamanı eklemesine zaten bağımlı olan
|
||||
`api.runtime.channel.mentions`, çalışma zamanı enjeksiyonuna zaten bağımlı olan
|
||||
paketlenmiş kanal plugin'leri için aynı paylaşılan mention yardımcılarını sunar:
|
||||
|
||||
- `buildMentionRegexes`
|
||||
@ -219,18 +258,19 @@ paketlenmiş kanal plugin'leri için aynı paylaşılan mention yardımcıların
|
||||
- `implicitMentionKindWhen`
|
||||
- `resolveInboundMentionDecision`
|
||||
|
||||
Eski `resolveMentionGating*` yardımcıları yalnızca uyumluluk dışa aktarımları olarak
|
||||
`openclaw/plugin-sdk/channel-inbound` üzerinde kalır. Yeni kod,
|
||||
Eski `resolveMentionGating*` yardımcıları,
|
||||
yalnızca uyumluluk dışa aktarımları olarak
|
||||
`openclaw/plugin-sdk/channel-inbound` üzerinde kalmaya devam eder. Yeni kod
|
||||
`resolveInboundMentionDecision({ facts, policy })` kullanmalıdır.
|
||||
|
||||
## İzlenecek yol
|
||||
## Adım adım örnek
|
||||
|
||||
<Steps>
|
||||
<a id="step-1-package-and-manifest"></a>
|
||||
<Step title="Paket ve manifest">
|
||||
Standart plugin dosyalarını oluşturun. `package.json` içindeki `channel` alanı,
|
||||
Standart plugin dosyalarını oluşturun. `package.json` içindeki `channel` alanı
|
||||
bunun bir kanal plugin'i olmasını sağlar. Tam paket meta verisi yüzeyi için
|
||||
[Plugin Kurulumu ve Yapılandırması](/tr/plugins/sdk-setup#openclaw-channel) bölümüne bakın:
|
||||
bkz. [Plugin Kurulumu ve Config](/tr/plugins/sdk-setup#openclaw-channel):
|
||||
|
||||
<CodeGroup>
|
||||
```json package.json
|
||||
@ -244,7 +284,7 @@ Eski `resolveMentionGating*` yardımcıları yalnızca uyumluluk dışa aktarım
|
||||
"channel": {
|
||||
"id": "acme-chat",
|
||||
"label": "Acme Chat",
|
||||
"blurb": "Connect OpenClaw to Acme Chat."
|
||||
"blurb": "OpenClaw'ı Acme Chat'e bağlayın."
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -256,7 +296,7 @@ Eski `resolveMentionGating*` yardımcıları yalnızca uyumluluk dışa aktarım
|
||||
"kind": "channel",
|
||||
"channels": ["acme-chat"],
|
||||
"name": "Acme Chat",
|
||||
"description": "Acme Chat channel plugin",
|
||||
"description": "Acme Chat kanal plugin'i",
|
||||
"configSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
@ -280,10 +320,10 @@ Eski `resolveMentionGating*` yardımcıları yalnızca uyumluluk dışa aktarım
|
||||
</Step>
|
||||
|
||||
<Step title="Kanal plugin nesnesini oluşturun">
|
||||
`ChannelPlugin` arayüzünde birçok isteğe bağlı bağdaştırıcı yüzeyi vardır. En
|
||||
az olanla başlayın — `id` ve `setup` — ve ihtiyaç duydukça bağdaştırıcılar ekleyin.
|
||||
`ChannelPlugin` arayüzü birçok isteğe bağlı bağdaştırıcı yüzeyine sahiptir. En az
|
||||
gereksinimle başlayın — `id` ve `setup` — ve ihtiyaç duydukça bağdaştırıcılar ekleyin.
|
||||
|
||||
`src/channel.ts` oluşturun:
|
||||
`src/channel.ts` dosyasını oluşturun:
|
||||
|
||||
```typescript src/channel.ts
|
||||
import {
|
||||
@ -348,15 +388,15 @@ Eski `resolveMentionGating*` yardımcıları yalnızca uyumluluk dışa aktarım
|
||||
idLabel: "Acme Chat kullanıcı adı",
|
||||
message: "Kimliğinizi doğrulamak için bu kodu gönderin:",
|
||||
notify: async ({ target, code }) => {
|
||||
await acmeChatApi.sendDm(target, `Pairing code: ${code}`);
|
||||
await acmeChatApi.sendDm(target, `Eşleme kodu: ${code}`);
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
// İş parçacığı oluşturma: yanıtlar nasıl iletilir
|
||||
// İş parçacığı oluşturma: yanıtlar nasıl teslim edilir
|
||||
threading: { topLevelReplyToMode: "reply" },
|
||||
|
||||
// Giden: platforma mesaj gönderme
|
||||
// Giden: platforma mesaj gönder
|
||||
outbound: {
|
||||
attachedResults: {
|
||||
sendText: async (params) => {
|
||||
@ -377,23 +417,24 @@ Eski `resolveMentionGating*` yardımcıları yalnızca uyumluluk dışa aktarım
|
||||
```
|
||||
|
||||
<Accordion title="createChatChannelPlugin sizin için ne yapar">
|
||||
Düşük düzeyli bağdaştırıcı arayüzlerini elle uygulamak yerine,
|
||||
bildirimsel seçenekler geçirirsiniz ve oluşturucu bunları birleştirir:
|
||||
Düşük seviyeli bağdaştırıcı arayüzlerini elle uygulamak yerine,
|
||||
bildirime dayalı seçenekler verirsiniz ve oluşturucu bunları birleştirir:
|
||||
|
||||
| Seçenek | Bağladığı şey |
|
||||
| --- | --- |
|
||||
| `security.dm` | Yapılandırma alanlarından kapsamlı DM güvenlik çözücüsü |
|
||||
| `pairing.text` | Kod alışverişli metin tabanlı DM eşleme akışı |
|
||||
| `threading` | Reply-to modu çözücüsü (sabit, hesap kapsamlı veya özel) |
|
||||
| `outbound.attachedResults` | Sonuç meta verisi döndüren gönderim işlevleri (mesaj kimlikleri) |
|
||||
| `security.dm` | Config alanlarından kapsamlı DM güvenlik çözümleyicisi |
|
||||
| `pairing.text` | Kod alışverişiyle metin tabanlı DM eşleme akışı |
|
||||
| `threading` | Reply-to modu çözümleyicisi (sabit, hesap kapsamlı veya özel) |
|
||||
| `outbound.attachedResults` | Sonuç meta verisi döndüren gönderim fonksiyonları (mesaj kimlikleri) |
|
||||
|
||||
Tam denetime ihtiyaç duyuyorsanız bildirimsel seçenekler yerine ham bağdaştırıcı nesneleri de geçebilirsiniz.
|
||||
Tam denetime ihtiyaç duyarsanız bildirime dayalı seçenekler yerine ham
|
||||
bağdaştırıcı nesneleri de geçebilirsiniz.
|
||||
</Accordion>
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Giriş noktasını bağlayın">
|
||||
`index.ts` oluşturun:
|
||||
`index.ts` dosyasını oluşturun:
|
||||
|
||||
```typescript index.ts
|
||||
import { defineChannelPluginEntry } from "openclaw/plugin-sdk/channel-core";
|
||||
@ -402,20 +443,20 @@ Eski `resolveMentionGating*` yardımcıları yalnızca uyumluluk dışa aktarım
|
||||
export default defineChannelPluginEntry({
|
||||
id: "acme-chat",
|
||||
name: "Acme Chat",
|
||||
description: "Acme Chat channel plugin",
|
||||
description: "Acme Chat kanal plugin'i",
|
||||
plugin: acmeChatPlugin,
|
||||
registerCliMetadata(api) {
|
||||
api.registerCli(
|
||||
({ program }) => {
|
||||
program
|
||||
.command("acme-chat")
|
||||
.description("Acme Chat management");
|
||||
.description("Acme Chat yönetimi");
|
||||
},
|
||||
{
|
||||
descriptors: [
|
||||
{
|
||||
name: "acme-chat",
|
||||
description: "Acme Chat management",
|
||||
description: "Acme Chat yönetimi",
|
||||
hasSubcommands: false,
|
||||
},
|
||||
],
|
||||
@ -428,16 +469,17 @@ Eski `resolveMentionGating*` yardımcıları yalnızca uyumluluk dışa aktarım
|
||||
});
|
||||
```
|
||||
|
||||
Kanala ait CLI tanımlayıcılarını `registerCliMetadata(...)` içine koyun; böylece OpenClaw
|
||||
tam kanal çalışma zamanını etkinleştirmeden kök yardım çıktısında bunları gösterebilir,
|
||||
normal tam yüklemeler ise gerçek komut kaydı için aynı tanımlayıcıları almaya devam eder.
|
||||
`registerFull(...)` yalnızca çalışma zamanına özgü işler için kullanılmalıdır.
|
||||
`registerFull(...)` gateway RPC yöntemleri kaydediyorsa,
|
||||
Kanalın sahip olduğu CLI tanımlayıcılarını `registerCliMetadata(...)` içine koyun; böylece OpenClaw
|
||||
tam kanal çalışma zamanını etkinleştirmeden bunları kök yardımda gösterebilir,
|
||||
normal tam yüklemeler de gerçek komut kaydı için aynı tanımlayıcıları alır.
|
||||
`registerFull(...)` yöntemini çalışma zamanına özgü işler için kullanın.
|
||||
`registerFull(...)` Gateway RPC yöntemleri kaydediyorsa,
|
||||
plugin'e özgü bir önek kullanın. Çekirdek yönetici ad alanları (`config.*`,
|
||||
`exec.approvals.*`, `wizard.*`, `update.*`) ayrılmıştır ve her zaman
|
||||
`operator.admin` olarak çözülür.
|
||||
`operator.admin` çözümüne gider.
|
||||
`defineChannelPluginEntry`, kayıt modu ayrımını otomatik olarak yönetir. Tüm
|
||||
seçenekler için [Giriş Noktaları](/tr/plugins/sdk-entrypoints#definechannelpluginentry) bölümüne bakın.
|
||||
seçenekler için bkz.
|
||||
[Giriş Noktaları](/tr/plugins/sdk-entrypoints#definechannelpluginentry).
|
||||
|
||||
</Step>
|
||||
|
||||
@ -451,27 +493,28 @@ Eski `resolveMentionGating*` yardımcıları yalnızca uyumluluk dışa aktarım
|
||||
export default defineSetupPluginEntry(acmeChatPlugin);
|
||||
```
|
||||
|
||||
OpenClaw, kanal devre dışıyken veya yapılandırılmamışken tam giriş yerine bunu yükler.
|
||||
Bu, kurulum akışları sırasında ağır çalışma zamanı kodunun çekilmesini önler.
|
||||
Ayrıntılar için [Kurulum ve Yapılandırma](/tr/plugins/sdk-setup#setup-entry) bölümüne bakın.
|
||||
OpenClaw, kanal devre dışıysa
|
||||
veya yapılandırılmamışsa tam giriş yerine bunu yükler.
|
||||
Bu, kurulum akışları sırasında ağır çalışma zamanı kodunun yüklenmesini önler.
|
||||
Ayrıntılar için bkz. [Kurulum ve Config](/tr/plugins/sdk-setup#setup-entry).
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Gelen mesajları işleyin">
|
||||
Plugin'inizin platformdan mesaj alması ve bunları
|
||||
OpenClaw'a iletmesi gerekir. Tipik desen, isteği doğrulayan ve
|
||||
kendi kanalınızın gelen işleyicisi üzerinden sevk eden bir webhook'tur:
|
||||
OpenClaw'a iletmesi gerekir. Tipik desen, isteği doğrulayan
|
||||
ve kanalınızın gelen işleyicisi üzerinden dağıtan bir Webhook'tur:
|
||||
|
||||
```typescript
|
||||
registerFull(api) {
|
||||
api.registerHttpRoute({
|
||||
path: "/acme-chat/webhook",
|
||||
auth: "plugin", // plugin tarafından yönetilen kimlik doğrulama (imzaları kendiniz doğrulayın)
|
||||
auth: "plugin", // plugin tarafından yönetilen auth (imzaları kendiniz doğrulayın)
|
||||
handler: async (req, res) => {
|
||||
const event = parseWebhookPayload(req);
|
||||
|
||||
// Gelen işleyiciniz mesajı OpenClaw'a sevk eder.
|
||||
// Tam bağlantı, platform SDK'nıza bağlıdır —
|
||||
// Gelen işleyiciniz mesajı OpenClaw'a dağıtır.
|
||||
// Tam bağlama platform SDK'nıza bağlıdır —
|
||||
// gerçek bir örnek için paketlenmiş Microsoft Teams veya Google Chat plugin paketine bakın.
|
||||
await handleAcmeChatInbound(api, event);
|
||||
|
||||
@ -484,17 +527,17 @@ Eski `resolveMentionGating*` yardımcıları yalnızca uyumluluk dışa aktarım
|
||||
```
|
||||
|
||||
<Note>
|
||||
Gelen mesaj işleme, kanala özgüdür. Her kanal plugin'i
|
||||
kendi gelen işlem hattına sahiptir. Gerçek desenler için
|
||||
paketlenmiş kanal plugin'lerine
|
||||
(örneğin Microsoft Teams veya Google Chat plugin paketi) bakın.
|
||||
Gelen mesaj işleme kanala özgüdür. Her kanal plugin'i
|
||||
kendi gelen işlem hattına sahiptir. Gerçek desenler için paketlenmiş kanal plugin'lerine
|
||||
(örneğin Microsoft Teams veya Google Chat plugin paketi)
|
||||
bakın.
|
||||
</Note>
|
||||
|
||||
</Step>
|
||||
|
||||
<a id="step-6-test"></a>
|
||||
<Step title="Test">
|
||||
Aynı konumda `src/channel.test.ts` içinde testler yazın:
|
||||
`src/channel.test.ts` içinde aynı yerde testler yazın:
|
||||
|
||||
```typescript src/channel.test.ts
|
||||
import { describe, it, expect } from "vitest";
|
||||
@ -511,7 +554,7 @@ Aynı konumda `src/channel.test.ts` içinde testler yazın:
|
||||
expect(account.token).toBe("test-token");
|
||||
});
|
||||
|
||||
it("gizli bilgileri somutlaştırmadan hesabı inceler", () => {
|
||||
it("gizli verileri somutlaştırmadan hesabı inceler", () => {
|
||||
const cfg = {
|
||||
channels: { "acme-chat": { token: "test-token" } },
|
||||
} as any;
|
||||
@ -520,7 +563,7 @@ Aynı konumda `src/channel.test.ts` içinde testler yazın:
|
||||
expect(result.tokenStatus).toBe("available");
|
||||
});
|
||||
|
||||
it("eksik yapılandırmayı bildirir", () => {
|
||||
it("eksik config'i bildirir", () => {
|
||||
const cfg = { channels: {} } as any;
|
||||
const result = acmeChatPlugin.setup!.inspectAccount!(cfg, undefined);
|
||||
expect(result.configured).toBe(false);
|
||||
@ -532,7 +575,7 @@ Aynı konumda `src/channel.test.ts` içinde testler yazın:
|
||||
pnpm test -- <bundled-plugin-root>/acme-chat/
|
||||
```
|
||||
|
||||
Paylaşılan test yardımcıları için [Test](/tr/plugins/sdk-testing) bölümüne bakın.
|
||||
Paylaşılan test yardımcıları için bkz. [Test](/tr/plugins/sdk-testing).
|
||||
|
||||
</Step>
|
||||
</Steps>
|
||||
@ -542,45 +585,45 @@ Aynı konumda `src/channel.test.ts` içinde testler yazın:
|
||||
```
|
||||
<bundled-plugin-root>/acme-chat/
|
||||
├── package.json # openclaw.channel meta verileri
|
||||
├── openclaw.plugin.json # Yapılandırma şemasını içeren manifest
|
||||
├── openclaw.plugin.json # Config şemalı manifest
|
||||
├── index.ts # defineChannelPluginEntry
|
||||
├── setup-entry.ts # defineSetupPluginEntry
|
||||
├── api.ts # Genel dışa aktarımlar (isteğe bağlı)
|
||||
├── runtime-api.ts # Dahili çalışma zamanı dışa aktarımları (isteğe bağlı)
|
||||
└── src/
|
||||
├── channel.ts # createChatChannelPlugin aracılığıyla ChannelPlugin
|
||||
├── channel.ts # createChatChannelPlugin üzerinden ChannelPlugin
|
||||
├── channel.test.ts # Testler
|
||||
├── client.ts # Platform API istemcisi
|
||||
└── runtime.ts # Çalışma zamanı deposu (gerekirse)
|
||||
```
|
||||
|
||||
## İleri konular
|
||||
## Gelişmiş konular
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card title="İş parçacığı seçenekleri" icon="git-branch" href="/tr/plugins/sdk-entrypoints#registration-mode">
|
||||
Sabit, hesap kapsamlı veya özel yanıt modları
|
||||
</Card>
|
||||
<Card title="Mesaj aracı entegrasyonu" icon="puzzle" href="/tr/plugins/architecture#channel-plugins-and-the-shared-message-tool">
|
||||
<Card title="Message tool entegrasyonu" icon="puzzle" href="/tr/plugins/architecture#channel-plugins-and-the-shared-message-tool">
|
||||
describeMessageTool ve eylem keşfi
|
||||
</Card>
|
||||
<Card title="Hedef çözümleme" icon="crosshair" href="/tr/plugins/architecture#channel-target-resolution">
|
||||
inferTargetChatType, looksLikeId, resolveTarget
|
||||
</Card>
|
||||
<Card title="Çalışma zamanı yardımcıları" icon="settings" href="/tr/plugins/sdk-runtime">
|
||||
api.runtime aracılığıyla TTS, STT, medya, alt ajan
|
||||
api.runtime üzerinden TTS, STT, medya, alt ajan
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
<Note>
|
||||
Bazı paketlenmiş yardımcı bağlantı yüzeyleri, paketlenmiş plugin bakımı ve
|
||||
Bazı paketlenmiş yardımcı kancalar, paketlenmiş plugin bakımı ve
|
||||
uyumluluk için hâlâ mevcuttur. Bunlar yeni kanal plugin'leri için önerilen desen değildir;
|
||||
o paketlenmiş plugin ailesini doğrudan bakımını yapmıyorsanız, ortak SDK
|
||||
yüzeyindeki genel channel/setup/reply/runtime alt yollarını tercih edin.
|
||||
o paketlenmiş plugin ailesini doğrudan siz bakımını yapmıyorsanız,
|
||||
ortak SDK yüzeyindeki genel channel/setup/reply/runtime alt yollarını tercih edin.
|
||||
</Note>
|
||||
|
||||
## Sonraki adımlar
|
||||
|
||||
- [Sağlayıcı Plugin'leri](/tr/plugins/sdk-provider-plugins) — plugin'iniz aynı zamanda model de sağlıyorsa
|
||||
- [Provider Plugin'leri](/tr/plugins/sdk-provider-plugins) — plugin'iniz aynı zamanda modeller de sağlıyorsa
|
||||
- [SDK Genel Bakış](/tr/plugins/sdk-overview) — tam alt yol içe aktarma başvurusu
|
||||
- [SDK Test](/tr/plugins/sdk-testing) — test yardımcıları ve sözleşme testleri
|
||||
- [Plugin Manifesti](/tr/plugins/manifest) — tam manifest şeması
|
||||
|
||||
@ -1,25 +1,25 @@
|
||||
---
|
||||
read_when:
|
||||
- Herkese açık sürüm kanalı tanımlarını arıyorum
|
||||
- Herkese açık yayın kanalı tanımlarını arıyorum
|
||||
- Sürüm adlandırması ve yayın sıklığını arıyorum
|
||||
summary: Herkese açık sürüm kanalları, sürüm adlandırması ve yayın sıklığı
|
||||
title: Sürüm Politikası
|
||||
summary: Herkese açık yayın kanalları, sürüm adlandırması ve yayın sıklığı
|
||||
title: Yayın Politikası
|
||||
x-i18n:
|
||||
generated_at: "2026-04-14T08:52:08Z"
|
||||
generated_at: "2026-04-15T08:53:13Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 3eaf9f1786b8c9fd4f5a9c657b623cb69d1a485958e1a9b8f108511839b63587
|
||||
source_hash: 88724307269ab783a9fbf8a0540fea198d8a3add68457f4e64d5707114fa518c
|
||||
source_path: reference/RELEASING.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Sürüm Politikası
|
||||
# Yayın Politikası
|
||||
|
||||
OpenClaw’ın herkese açık üç sürüm hattı vardır:
|
||||
OpenClaw'ın herkese açık üç yayın kanalı vardır:
|
||||
|
||||
- stable: varsayılan olarak npm `beta`’ya yayımlanan etiketli sürümler veya açıkça istendiğinde npm `latest`’e
|
||||
- beta: npm `beta`’ya yayımlanan ön sürüm etiketleri
|
||||
- dev: `main` dalının hareketli başı
|
||||
- stable: varsayılan olarak npm `beta`'ya yayımlanan etiketli sürümler veya açıkça istendiğinde npm `latest`'e yayımlanan sürümler
|
||||
- beta: npm `beta`'ya yayımlanan ön sürüm etiketleri
|
||||
- dev: `main` dalının hareketli ucu
|
||||
|
||||
## Sürüm adlandırması
|
||||
|
||||
@ -29,158 +29,165 @@ OpenClaw’ın herkese açık üç sürüm hattı vardır:
|
||||
- Git etiketi: `vYYYY.M.D-N`
|
||||
- Beta ön sürüm versiyonu: `YYYY.M.D-beta.N`
|
||||
- Git etiketi: `vYYYY.M.D-beta.N`
|
||||
- Ay veya günü sıfırla doldurmayın
|
||||
- Ayı veya günü başına sıfır koymayın
|
||||
- `latest`, şu anda öne çıkarılmış stable npm sürümü anlamına gelir
|
||||
- `beta`, şu anda beta kurulum hedefi anlamına gelir
|
||||
- Stable ve stable düzeltme sürümleri varsayılan olarak npm `beta`’ya yayımlanır; sürüm operatörleri açıkça `latest`’i hedefleyebilir veya daha sonra doğrulanmış bir beta derlemesini öne çıkarabilir
|
||||
- `beta`, şu andaki beta kurulum hedefi anlamına gelir
|
||||
- Stable ve stable düzeltme sürümleri varsayılan olarak npm `beta`'ya yayımlanır; yayın operatörleri açıkça `latest`'i hedefleyebilir veya doğrulanmış bir beta derlemesini daha sonra öne çıkarabilir
|
||||
- Her OpenClaw sürümü, npm paketini ve macOS uygulamasını birlikte yayımlar
|
||||
|
||||
## Sürüm sıklığı
|
||||
## Yayın sıklığı
|
||||
|
||||
- Sürümler önce beta olarak ilerler
|
||||
- Stable, yalnızca en son beta doğrulandıktan sonra gelir
|
||||
- Ayrıntılı sürüm prosedürü, onaylar, kimlik bilgileri ve kurtarma notları
|
||||
- Ayrıntılı yayın prosedürü, onaylar, kimlik bilgileri ve kurtarma notları
|
||||
yalnızca maintainers içindir
|
||||
|
||||
## Sürüm ön kontrolü
|
||||
## Yayın öncesi kontroller
|
||||
|
||||
- Paket doğrulama adımı için beklenen `dist/*` sürüm artifaktları ve Control UI paketi mevcut olsun diye `pnpm release:check` öncesinde `pnpm build && pnpm ui:build` çalıştırın
|
||||
- Paket doğrulama adımı için beklenen
|
||||
`dist/*` yayın artifaktları ve Control UI paketi mevcut olsun diye
|
||||
`pnpm release:check` öncesinde `pnpm build && pnpm ui:build` çalıştırın
|
||||
- Her etiketli sürümden önce `pnpm release:check` çalıştırın
|
||||
- Sürüm kontrolleri artık ayrı bir manuel iş akışında çalışır:
|
||||
- Yayın kontrolleri artık ayrı bir manuel workflow içinde çalışır:
|
||||
`OpenClaw Release Checks`
|
||||
- Bu ayrım bilinçlidir: gerçek npm sürüm yolunu kısa,
|
||||
deterministik ve artifakt odaklı tutarken, daha yavaş canlı kontrolleri kendi
|
||||
hattında tutar; böylece yayımlamayı geciktirmez veya engellemez
|
||||
- Sürüm kontrolleri `main` iş akışı referansından tetiklenmelidir; böylece
|
||||
iş akışı mantığı ve gizli bilgiler kanonik kalır
|
||||
- Bu iş akışı, mevcut bir sürüm etiketini veya geçerli tam
|
||||
40 karakterlik `main` commit SHA’sını kabul eder
|
||||
- Platformlar arası kurulum ve yükseltme çalışma zamanı doğrulaması,
|
||||
özel çağırıcı workflow
|
||||
`openclaw/releases-private/.github/workflows/openclaw-cross-os-release-checks.yml`
|
||||
içinden başlatılır; bu workflow, yeniden kullanılabilir herkese açık workflow
|
||||
`.github/workflows/openclaw-cross-os-release-checks-reusable.yml`
|
||||
dosyasını çağırır
|
||||
- Bu ayrım bilerek yapılmıştır: gerçek npm yayın yolunu kısa,
|
||||
deterministik ve artifakt odaklı tutarken daha yavaş canlı kontrolleri kendi
|
||||
kanalında tutmak; böylece yayımlamayı geciktirmez veya engellemezler
|
||||
- Yayın kontrolleri `main` workflow ref'inden başlatılmalıdır; böylece
|
||||
workflow mantığı ve secrets kanonik kalır
|
||||
- Bu workflow, mevcut bir yayın etiketini veya geçerli tam
|
||||
40 karakterlik `main` commit SHA'sını kabul eder
|
||||
- Commit-SHA modunda yalnızca geçerli `origin/main` HEAD kabul edilir; daha eski
|
||||
sürüm commit’leri için bir sürüm etiketi kullanın
|
||||
- `OpenClaw NPM Release` yalnızca doğrulama amaçlı ön kontrolü de,
|
||||
itilmiş bir etiket gerektirmeden, geçerli tam 40 karakterlik `main` commit SHA’sını kabul eder
|
||||
- Bu SHA yolu yalnızca doğrulama içindir ve gerçek bir yayıma yükseltilemez
|
||||
- SHA modunda iş akışı, paket meta verisi kontrolü için yalnızca
|
||||
`v<package.json version>` üretir; gerçek yayımlama yine de gerçek bir sürüm etiketi gerektirir
|
||||
- Her iki iş akışı da gerçek yayımlama ve öne çıkarma yolunu GitHub-hosted
|
||||
runner’larda tutarken, değişiklik yapmayan doğrulama yolu daha büyük
|
||||
Blacksmith Linux runner’larını kullanabilir
|
||||
- Bu iş akışı
|
||||
yayın commit'leri için bir yayın etiketi kullanın
|
||||
- `OpenClaw NPM Release` yalnızca doğrulama amaçlı ön kontrolü de, itilmiş bir etiket gerektirmeden,
|
||||
geçerli tam 40 karakterlik `main` commit SHA'sını kabul eder
|
||||
- Bu SHA yolu yalnızca doğrulama içindir ve gerçek bir yayıma dönüştürülemez
|
||||
- SHA modunda workflow, paket meta verisi kontrolü için yalnızca
|
||||
`v<package.json version>` üretir; gerçek yayımlama yine de gerçek bir yayın etiketi gerektirir
|
||||
- Her iki workflow da gerçek yayımlama ve öne çıkarma yolunu GitHub barındırmalı
|
||||
runner'larda tutarken, durum değiştirmeyen doğrulama yolu daha büyük
|
||||
Blacksmith Linux runner'larını kullanabilir
|
||||
- Bu workflow,
|
||||
`OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_CACHE_TEST=1 pnpm test:live:cache`
|
||||
komutunu hem `OPENAI_API_KEY` hem de `ANTHROPIC_API_KEY` iş akışı gizli bilgilerini kullanarak çalıştırır
|
||||
- npm sürüm ön kontrolü artık ayrı sürüm kontrolleri hattını beklemez
|
||||
komutunu hem `OPENAI_API_KEY` hem de `ANTHROPIC_API_KEY` workflow secrets'ını kullanarak çalıştırır
|
||||
- npm yayın ön kontrolü artık ayrı yayın kontrolleri kanalını beklemiyor
|
||||
- Onaydan önce
|
||||
`RELEASE_TAG=vYYYY.M.D node --import tsx scripts/openclaw-npm-release-check.ts`
|
||||
komutunu (veya eşleşen beta/düzeltme etiketini) çalıştırın
|
||||
- npm yayımlamasından sonra, yayımlanan kayıt defteri kurulum yolunu yeni bir geçici önekte doğrulamak için
|
||||
- npm yayımlandıktan sonra, yayımlanan kayıt defteri
|
||||
kurulum yolunu yeni bir geçici prefix içinde doğrulamak için
|
||||
`node --import tsx scripts/openclaw-npm-postpublish-verify.ts YYYY.M.D`
|
||||
komutunu (veya eşleşen beta/düzeltme sürümünü) çalıştırın
|
||||
- Maintainer sürüm otomasyonu artık ön kontrol-sonra-öne çıkarma modelini kullanır:
|
||||
- gerçek npm yayımlaması başarılı bir npm `preflight_run_id` geçmelidir
|
||||
- stable npm sürümleri varsayılan olarak `beta`’ya gider
|
||||
- stable npm yayımlaması iş akışı girdisiyle açıkça `latest`’i hedefleyebilir
|
||||
- `beta`’dan `latest`’e stable npm öne çıkarma, güvenilen `OpenClaw NPM Release` iş akışında hâlâ açık bir manuel mod olarak kullanılabilir
|
||||
- doğrudan stable yayımlar ayrıca, `latest` ve `beta` etiketlerinin ikisini de zaten yayımlanmış stable sürüme işaret eden açık bir dist-tag eşitleme modunu çalıştırabilir
|
||||
- bu dist-tag modları, npm `dist-tag` yönetimi güvenilen yayımlamadan ayrı olduğu için `npm-release` ortamında yine de geçerli bir `NPM_TOKEN` gerektirir
|
||||
komutunu (veya eşleşen beta/düzeltme versiyonunu) çalıştırın
|
||||
- Maintainer yayın otomasyonu artık önce ön kontrol sonra öne çıkarma modelini kullanıyor:
|
||||
- gerçek npm yayımlama, başarılı bir npm `preflight_run_id` geçmelidir
|
||||
- stable npm sürümleri varsayılan olarak `beta`'yı kullanır
|
||||
- stable npm yayımlama, workflow girdisiyle açıkça `latest`'i hedefleyebilir
|
||||
- token tabanlı npm dist-tag değişikliği artık güvenlik nedeniyle
|
||||
`openclaw/releases-private/.github/workflows/openclaw-npm-dist-tags.yml`
|
||||
içinde yer alır; çünkü `npm dist-tag add` hâlâ `NPM_TOKEN` gerektirirken
|
||||
herkese açık repo yalnızca OIDC ile yayımlamayı korur
|
||||
- herkese açık `macOS Release` yalnızca doğrulama içindir
|
||||
- gerçek özel mac yayımlaması başarılı özel mac
|
||||
- gerçek özel mac yayımlama, başarılı özel mac
|
||||
`preflight_run_id` ve `validate_run_id` geçmelidir
|
||||
- gerçek yayımlama yolları, artifaktları yeniden derlemek yerine
|
||||
hazırlanmış artifaktları öne çıkarır
|
||||
- `YYYY.M.D-N` gibi stable düzeltme sürümleri için, yayımlama sonrası doğrulayıcı
|
||||
ayrıca `YYYY.M.D`’den `YYYY.M.D-N`’ye aynı geçici önek yükseltme yolunu da kontrol eder;
|
||||
böylece sürüm düzeltmeleri, eski global kurulumları sessizce temel stable yükte bırakmaz
|
||||
- npm sürüm ön kontrolü, tarball hem
|
||||
`dist/control-ui/index.html` hem de boş olmayan bir `dist/control-ui/assets/` yükü içermediği sürece kapalı başarısız olur;
|
||||
böylece tekrar boş bir tarayıcı panosu göndermeyiz
|
||||
- `pnpm test:install:smoke`, aday güncelleme tarball’ında npm pack `unpackedSize` bütçesini de uygular;
|
||||
böylece kurucu e2e, sürüm yayımlama yolundan önce kazara paket şişmesini yakalar
|
||||
- Sürüm çalışması CI planlamasına, eklenti zamanlama manifestolarına veya
|
||||
eklenti test matrislerine dokunduysa, onaydan önce `.github/workflows/ci.yml`
|
||||
içindeki planlayıcıya ait `checks-node-extensions` iş akışı matris çıktılarını yeniden üretin ve gözden geçirin;
|
||||
böylece sürüm notları eski bir CI düzenini açıklamaz
|
||||
- Stable macOS sürüm hazırlığı, güncelleyici yüzeylerini de içerir:
|
||||
- GitHub sürümü sonunda paketlenmiş `.zip`, `.dmg` ve `.dSYM.zip` dosyalarını içermelidir
|
||||
- `main` üzerindeki `appcast.xml`, yayımdan sonra yeni stable zip’i işaret etmelidir
|
||||
- paketlenmiş uygulama, hata ayıklama dışı bir bundle id, boş olmayan bir Sparkle feed URL’si ve o sürüm versiyonu için kanonik Sparkle derleme tabanına eşit veya daha yüksek bir `CFBundleVersion` korumalıdır
|
||||
ayrıca `YYYY.M.D` sürümünden `YYYY.M.D-N` sürümüne aynı geçici prefix yükseltme yolunu da
|
||||
kontrol eder; böylece sürüm düzeltmeleri, daha eski global kurulumları temel
|
||||
stable yük üzerinde sessizce bırakmaz
|
||||
- npm yayın ön kontrolü, tarball hem
|
||||
`dist/control-ui/index.html` hem de boş olmayan bir `dist/control-ui/assets/` yükü içermiyorsa
|
||||
kapalı şekilde başarısız olur; böylece yine boş bir tarayıcı kontrol paneli yayımlamayız
|
||||
- `pnpm test:install:smoke` ayrıca aday güncelleme tarball'ında npm pack
|
||||
`unpackedSize` bütçesini de zorunlu kılar; böylece yükleyici e2e, yanlışlıkla oluşan paket şişmesini
|
||||
yayın yayımlama yolundan önce yakalar
|
||||
- Yayın çalışması CI planlamasına, eklenti zamanlama manifest'lerine veya
|
||||
eklenti test matrislerine dokunduysa, onaydan önce
|
||||
`.github/workflows/ci.yml` içindeki planner'a ait
|
||||
`checks-node-extensions` workflow matris çıktılarını yeniden üretin ve inceleyin;
|
||||
böylece yayın notları eski bir CI düzenini açıklamaz
|
||||
- Stable macOS sürümü için hazır olma durumu ayrıca güncelleyici yüzeylerini de içerir:
|
||||
- GitHub sürümünde paketlenmiş `.zip`, `.dmg` ve `.dSYM.zip` bulunmalıdır
|
||||
- `main` üzerindeki `appcast.xml`, yayımlamadan sonra yeni stable zip'i işaret etmelidir
|
||||
- paketlenmiş uygulama, debug olmayan bir bundle id, boş olmayan bir Sparkle feed
|
||||
URL'si ve o sürüm versiyonu için kanonik Sparkle derleme tabanına eşit veya daha yüksek
|
||||
bir `CFBundleVersion` korumalıdır
|
||||
|
||||
## NPM iş akışı girdileri
|
||||
## NPM workflow girdileri
|
||||
|
||||
`OpenClaw NPM Release` şu operatör kontrollü girdileri kabul eder:
|
||||
`OpenClaw NPM Release`, operatör tarafından kontrol edilen şu girdileri kabul eder:
|
||||
|
||||
- `tag`: `v2026.4.2`, `v2026.4.2-1` veya
|
||||
`v2026.4.2-beta.1` gibi gerekli sürüm etiketi; `preflight_only=true` olduğunda,
|
||||
yalnızca doğrulama amaçlı ön kontrol için geçerli tam 40 karakterlik
|
||||
`main` commit SHA’sı da olabilir
|
||||
- `preflight_only`: yalnızca doğrulama/derleme/paketleme için `true`, gerçek yayımlama yolu için `false`
|
||||
- `preflight_run_id`: gerçek yayımlama yolunda gereklidir; böylece iş akışı,
|
||||
başarılı ön kontrol çalışmasından hazırlanmış tarball’ı yeniden kullanır
|
||||
- `npm_dist_tag`: yayımlama yolu için npm hedef etiketi; varsayılan `beta`
|
||||
- `promote_beta_to_latest`: yayımlamayı atlayıp daha önce yayımlanmış bir
|
||||
stable `beta` derlemesini `latest`’e taşımak için `true`
|
||||
- `sync_stable_dist_tags`: yayımlamayı atlayıp hem `latest` hem de
|
||||
`beta` etiketlerini daha önce yayımlanmış bir stable sürüme yönlendirmek için `true`
|
||||
`v2026.4.2-beta.1` gibi gerekli yayın etiketi; `preflight_only=true` olduğunda ayrıca yalnızca doğrulama amaçlı ön kontrol için
|
||||
geçerli tam 40 karakterlik `main` commit SHA'sı da olabilir
|
||||
- `preflight_only`: yalnızca doğrulama/derleme/paket için `true`, gerçek
|
||||
yayımlama yolu için `false`
|
||||
- `preflight_run_id`: gerçek yayımlama yolunda gereklidir; böylece workflow,
|
||||
başarılı ön kontrol çalışmasından hazırlanmış tarball'ı yeniden kullanır
|
||||
- `npm_dist_tag`: yayımlama yolu için npm hedef etiketi; varsayılanı `beta`'dır
|
||||
|
||||
`OpenClaw Release Checks` şu operatör kontrollü girdileri kabul eder:
|
||||
`OpenClaw Release Checks`, operatör tarafından kontrol edilen şu girdileri kabul eder:
|
||||
|
||||
- `ref`: doğrulanacak mevcut sürüm etiketi veya geçerli tam 40 karakterlik `main` commit
|
||||
SHA’sı
|
||||
- `ref`: doğrulanacak mevcut yayın etiketi veya geçerli tam 40 karakterlik `main` commit
|
||||
SHA'sı
|
||||
|
||||
Kurallar:
|
||||
|
||||
- Stable ve düzeltme etiketleri `beta` veya `latest`’e yayımlanabilir
|
||||
- Beta ön sürüm etiketleri yalnızca `beta`’ya yayımlanabilir
|
||||
- Stable ve düzeltme etiketleri `beta` veya `latest`'e yayımlanabilir
|
||||
- Beta ön sürüm etiketleri yalnızca `beta`'ya yayımlanabilir
|
||||
- Tam commit SHA girdisine yalnızca `preflight_only=true` olduğunda izin verilir
|
||||
- Sürüm kontrolleri commit-SHA modu ayrıca geçerli `origin/main` HEAD gerektirir
|
||||
- Gerçek yayımlama yolu, ön kontrolde kullanılan aynı `npm_dist_tag`’i kullanmalıdır;
|
||||
iş akışı, yayımlama devam etmeden önce bu meta veriyi doğrular
|
||||
- Öne çıkarma modu stable veya düzeltme etiketi, `preflight_only=false`,
|
||||
boş bir `preflight_run_id` ve `npm_dist_tag=beta` kullanmalıdır
|
||||
- Dist-tag eşitleme modu stable veya düzeltme etiketi,
|
||||
`preflight_only=false`, boş bir `preflight_run_id`, `npm_dist_tag=latest`
|
||||
ve `promote_beta_to_latest=false` kullanmalıdır
|
||||
- Öne çıkarma ve dist-tag eşitleme modları ayrıca geçerli bir `NPM_TOKEN` gerektirir;
|
||||
çünkü `npm dist-tag add` yine normal npm kimlik doğrulaması ister; güvenilen yayımlama
|
||||
yalnızca paket yayımlama yolunu kapsar
|
||||
- Yayın kontrolleri commit-SHA modu ayrıca geçerli `origin/main` HEAD'i gerektirir
|
||||
- Gerçek yayımlama yolu, ön kontrol sırasında kullanılan aynı `npm_dist_tag` değerini kullanmalıdır;
|
||||
workflow, yayımlama devam etmeden önce bu meta veriyi doğrular
|
||||
|
||||
## Stable npm sürüm sırası
|
||||
|
||||
Bir stable npm sürümü keserken:
|
||||
Bir stable npm sürümü çıkarırken:
|
||||
|
||||
1. `preflight_only=true` ile `OpenClaw NPM Release` çalıştırın
|
||||
- Etiket henüz yokken, ön kontrol iş akışının yalnızca doğrulama amaçlı deneme çalıştırması için geçerli tam `main` commit SHA’sını kullanabilirsiniz
|
||||
2. Normal beta-önce akışı için `npm_dist_tag=beta` seçin veya yalnızca
|
||||
doğrudan stable yayımlama yapmak istediğinizde `latest` seçin
|
||||
- Henüz bir etiket yoksa, ön kontrol workflow'unun
|
||||
yalnızca doğrulama amaçlı kuru çalıştırması için geçerli tam `main` commit SHA'sını kullanabilirsiniz
|
||||
2. Normal beta-first akışı için `npm_dist_tag=beta` seçin veya yalnızca
|
||||
doğrudan stable yayımlamayı özellikle istiyorsanız `latest` seçin
|
||||
3. Canlı prompt cache kapsamı istediğinizde,
|
||||
aynı etiket veya geçerli tam `main` commit SHA’sı ile `OpenClaw Release Checks` iş akışını ayrıca çalıştırın
|
||||
- Bu ayrım bilinçlidir; böylece canlı kapsam kullanılabilir kalır ve
|
||||
uzun süren veya kararsız kontroller yayımlama iş akışına yeniden bağlanmaz
|
||||
aynı etiketle veya geçerli tam `main` commit SHA'sıyla ayrı olarak
|
||||
`OpenClaw Release Checks` çalıştırın
|
||||
- Bu ayrım bilerek yapılmıştır; böylece canlı kapsam kullanılabilir kalırken
|
||||
uzun süren veya kararsız kontroller yeniden yayımlama workflow'una bağlanmaz
|
||||
4. Başarılı `preflight_run_id` değerini kaydedin
|
||||
5. `preflight_only=false`, aynı
|
||||
`tag`, aynı `npm_dist_tag` ve kaydedilmiş `preflight_run_id` ile `OpenClaw NPM Release`’i yeniden çalıştırın
|
||||
6. Sürüm `beta`’ya gittiyse, daha sonra aynı
|
||||
stable `tag`, `promote_beta_to_latest=true`, `preflight_only=false`,
|
||||
boş `preflight_run_id` ve `npm_dist_tag=beta` ile `OpenClaw NPM Release` çalıştırarak bu yayımlanmış
|
||||
derlemeyi `latest`’e taşıyabilirsiniz
|
||||
7. Sürüm bilerek doğrudan `latest`’e yayımlandıysa ve `beta`
|
||||
aynı stable derlemeyi takip etmeliyse, aynı
|
||||
stable `tag`, `sync_stable_dist_tags=true`, `promote_beta_to_latest=false`,
|
||||
`preflight_only=false`, boş `preflight_run_id` ve `npm_dist_tag=latest` ile `OpenClaw NPM Release` çalıştırın
|
||||
`tag`, aynı `npm_dist_tag` ve kaydedilmiş `preflight_run_id` ile
|
||||
`OpenClaw NPM Release`'i yeniden çalıştırın
|
||||
6. Sürüm `beta` üzerinde yayımlandıysa, bu stable sürümü `beta`'dan `latest`'e
|
||||
öne çıkarmak için özel
|
||||
`openclaw/releases-private/.github/workflows/openclaw-npm-dist-tags.yml`
|
||||
workflow'unu kullanın
|
||||
7. Sürüm kasıtlı olarak doğrudan `latest`'e yayımlandıysa ve `beta`
|
||||
aynı stable derlemeyi hemen takip edecekse, her iki dist-tag'i de stable versiyona işaret ettirmek için
|
||||
aynı özel workflow'u kullanın veya planlanmış
|
||||
self-healing sync'in `beta`yı daha sonra taşımasına izin verin
|
||||
|
||||
Öne çıkarma ve dist-tag eşitleme modları yine de `npm-release`
|
||||
ortam onayı ve bu iş akışı çalışmasına erişebilen geçerli bir `NPM_TOKEN` gerektirir.
|
||||
Dist-tag değişikliği güvenlik nedeniyle özel repo içinde tutulur; çünkü hâlâ
|
||||
`NPM_TOKEN` gerektirirken herkese açık repo yalnızca OIDC ile yayımlamayı korur.
|
||||
|
||||
Bu, doğrudan yayımlama yolunu ve beta-önce öne çıkarma yolunu hem
|
||||
belgelenmiş hem de operatör açısından görünür tutar.
|
||||
Bu, doğrudan yayımlama yolunu ve beta-first öne çıkarma yolunu hem
|
||||
belgelenmiş hem de operatör tarafından görünür halde tutar.
|
||||
|
||||
## Herkese açık başvurular
|
||||
|
||||
- [`.github/workflows/openclaw-npm-release.yml`](https://github.com/openclaw/openclaw/blob/main/.github/workflows/openclaw-npm-release.yml)
|
||||
- [`.github/workflows/openclaw-release-checks.yml`](https://github.com/openclaw/openclaw/blob/main/.github/workflows/openclaw-release-checks.yml)
|
||||
- [`.github/workflows/openclaw-cross-os-release-checks-reusable.yml`](https://github.com/openclaw/openclaw/blob/main/.github/workflows/openclaw-cross-os-release-checks-reusable.yml)
|
||||
- [`scripts/openclaw-npm-release-check.ts`](https://github.com/openclaw/openclaw/blob/main/scripts/openclaw-npm-release-check.ts)
|
||||
- [`scripts/package-mac-dist.sh`](https://github.com/openclaw/openclaw/blob/main/scripts/package-mac-dist.sh)
|
||||
- [`scripts/make_appcast.sh`](https://github.com/openclaw/openclaw/blob/main/scripts/make_appcast.sh)
|
||||
|
||||
Maintainers, gerçek çalışma kılavuzu için özel sürüm belgelerini
|
||||
Maintainers, gerçek runbook için
|
||||
[`openclaw/maintainers/release/README.md`](https://github.com/openclaw/maintainers/blob/main/release/README.md)
|
||||
içinde kullanır.
|
||||
içindeki özel yayın belgelerini kullanır.
|
||||
|
||||
@ -3,13 +3,13 @@ read_when:
|
||||
- SecretRef kimlik bilgisi kapsamını doğrulama
|
||||
- Bir kimlik bilgisinin `secrets configure` veya `secrets apply` için uygun olup olmadığını denetleme
|
||||
- Bir kimlik bilgisinin neden desteklenen yüzeyin dışında olduğunu doğrulama
|
||||
summary: Kanonik desteklenen ve desteklenmeyen SecretRef kimlik bilgisi yüzeyi
|
||||
summary: Kanonik olarak desteklenen ve desteklenmeyen SecretRef kimlik bilgisi yüzeyi
|
||||
title: SecretRef Kimlik Bilgisi Yüzeyi
|
||||
x-i18n:
|
||||
generated_at: "2026-04-07T08:49:15Z"
|
||||
generated_at: "2026-04-15T08:53:57Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 211f4b504c5808f7790683066fc2c8b700c705c598f220a264daf971b81cc593
|
||||
source_hash: dd0b9c379236b17a72f552d6360b8b5a2269009e019c138c6bb50f4f7328ddaf
|
||||
source_path: reference/secretref-credential-surface.md
|
||||
workflow: 15
|
||||
---
|
||||
@ -20,8 +20,8 @@ Bu sayfa, kanonik SecretRef kimlik bilgisi yüzeyini tanımlar.
|
||||
|
||||
Kapsam amacı:
|
||||
|
||||
- Kapsam dahilinde: OpenClaw'ın üretmediği veya döndürmediği, kesin olarak kullanıcı tarafından sağlanan kimlik bilgileri.
|
||||
- Kapsam dışında: çalışma zamanında üretilen veya dönen kimlik bilgileri, OAuth yenileme materyali ve oturum benzeri yapıtlar.
|
||||
- Kapsam dahilinde: OpenClaw’un üretmediği veya döndürmediği, kesin olarak kullanıcı tarafından sağlanan kimlik bilgileri.
|
||||
- Kapsam dışında: çalışma zamanında üretilen veya döndürülen kimlik bilgileri, OAuth yenileme materyali ve oturum benzeri yapıtlar.
|
||||
|
||||
## Desteklenen kimlik bilgileri
|
||||
|
||||
@ -49,6 +49,7 @@ Kapsam amacı:
|
||||
- `messages.tts.providers.*.apiKey`
|
||||
- `tools.web.fetch.firecrawl.apiKey`
|
||||
- `plugins.entries.brave.config.webSearch.apiKey`
|
||||
- `plugins.entries.exa.config.webSearch.apiKey`
|
||||
- `plugins.entries.google.config.webSearch.apiKey`
|
||||
- `plugins.entries.xai.config.webSearch.apiKey`
|
||||
- `plugins.entries.moonshot.config.webSearch.apiKey`
|
||||
@ -107,8 +108,8 @@ Kapsam amacı:
|
||||
- `channels.zalo.webhookSecret`
|
||||
- `channels.zalo.accounts.*.botToken`
|
||||
- `channels.zalo.accounts.*.webhookSecret`
|
||||
- `channels.googlechat.serviceAccount` sibling `serviceAccountRef` üzerinden (uyumluluk istisnası)
|
||||
- `channels.googlechat.accounts.*.serviceAccount` sibling `serviceAccountRef` üzerinden (uyumluluk istisnası)
|
||||
- `channels.googlechat.serviceAccount` sibling `serviceAccountRef` aracılığıyla (uyumluluk istisnası)
|
||||
- `channels.googlechat.accounts.*.serviceAccount` sibling `serviceAccountRef` aracılığıyla (uyumluluk istisnası)
|
||||
|
||||
### `auth-profiles.json` hedefleri (`secrets configure` + `secrets apply` + `secrets audit`)
|
||||
|
||||
@ -120,20 +121,20 @@ Kapsam amacı:
|
||||
Notlar:
|
||||
|
||||
- Auth-profile plan hedefleri `agentId` gerektirir.
|
||||
- Plan girdileri `profiles.*.key` / `profiles.*.token` alanlarını hedefler ve sibling ref'leri (`keyRef` / `tokenRef`) yazar.
|
||||
- Auth-profile ref'leri çalışma zamanı çözümlemesine ve denetim kapsamına dahildir.
|
||||
- OAuth politika koruması: `auth.profiles.<id>.mode = "oauth"`, o profil için SecretRef girdileriyle birlikte kullanılamaz. Bu politika ihlal edildiğinde başlangıç/yeniden yükleme ve auth-profile çözümlemesi hızlı başarısız olur.
|
||||
- SecretRef tarafından yönetilen model provider'lar için, oluşturulan `agents/*/agent/models.json` girdileri `apiKey`/header yüzeyleri için gizli olmayan işaretleyicileri saklar (çözümlenmiş gizli değerleri değil).
|
||||
- İşaretleyici kalıcılığı kaynak açısından yetkilidir: OpenClaw işaretleyicileri çözümlenmiş çalışma zamanı gizli değerlerinden değil, etkin kaynak yapılandırma anlık görüntüsünden (çözümleme öncesi) yazar.
|
||||
- Web search için:
|
||||
- Açık provider modunda (`tools.web.search.provider` ayarlı), yalnızca seçilen provider anahtarı etkindir.
|
||||
- Otomatik modda (`tools.web.search.provider` ayarsız), yalnızca öncelik sırasına göre çözümlenen ilk provider anahtarı etkindir.
|
||||
- Otomatik modda, seçilmeyen provider ref'leri seçilene kadar etkisiz kabul edilir.
|
||||
- Eski `tools.web.search.*` provider yolları uyumluluk penceresi boyunca çözümlenmeye devam eder, ancak kanonik SecretRef yüzeyi `plugins.entries.<plugin>.config.webSearch.*` yoludur.
|
||||
- Plan girdileri `profiles.*.key` / `profiles.*.token` hedefini kullanır ve sibling ref’ler (`keyRef` / `tokenRef`) yazar.
|
||||
- Auth-profile ref’leri çalışma zamanı çözümlemesine ve denetim kapsamına dahildir.
|
||||
- OAuth ilke koruması: `auth.profiles.<id>.mode = "oauth"`, o profil için SecretRef girdileriyle birlikte kullanılamaz. Bu ilke ihlal edildiğinde başlatma/yeniden yükleme ve auth-profile çözümlemesi hızlıca başarısız olur.
|
||||
- SecretRef tarafından yönetilen model sağlayıcıları için üretilen `agents/*/agent/models.json` girdileri, `apiKey`/header yüzeyleri için gizli olmayan işaretçileri saklar (çözülmüş gizli değerleri değil).
|
||||
- İşaretçi kalıcılığı kaynak açısından yetkilidir: OpenClaw işaretçileri, çözülmüş çalışma zamanı gizli değerlerinden değil, etkin kaynak yapılandırma anlık görüntüsünden (çözümleme öncesi) yazar.
|
||||
- Web araması için:
|
||||
- Açık sağlayıcı modunda (`tools.web.search.provider` ayarlıysa), yalnızca seçili sağlayıcı anahtarı etkindir.
|
||||
- Otomatik modda (`tools.web.search.provider` ayarlı değilse), öncelik sırasına göre çözümlenen ilk sağlayıcı anahtarı etkindir.
|
||||
- Otomatik modda, seçilmeyen sağlayıcı ref’leri seçilene kadar etkin değil olarak değerlendirilir.
|
||||
- Eski `tools.web.search.*` sağlayıcı yolları uyumluluk penceresi boyunca hâlâ çözülür, ancak kanonik SecretRef yüzeyi `plugins.entries.<plugin>.config.webSearch.*` biçimindedir.
|
||||
|
||||
## Desteklenmeyen kimlik bilgileri
|
||||
|
||||
Kapsam dışı kimlik bilgileri şunları içerir:
|
||||
Kapsam dışındaki kimlik bilgileri şunları içerir:
|
||||
|
||||
[//]: # "secretref-unsupported-list-start"
|
||||
|
||||
@ -151,4 +152,4 @@ Kapsam dışı kimlik bilgileri şunları içerir:
|
||||
|
||||
Gerekçe:
|
||||
|
||||
- Bu kimlik bilgileri üretilen, dönen, oturum taşıyan veya salt okunur harici SecretRef çözümlemesine uymayan OAuth-kalıcı sınıflardır.
|
||||
- Bu kimlik bilgileri üretilen, döndürülen, oturum taşıyan veya salt okunur harici SecretRef çözümlemesine uymayan OAuth-kalıcı sınıflardır.
|
||||
|
||||
@ -1,104 +1,131 @@
|
||||
---
|
||||
description: Real-world OpenClaw projects from the community
|
||||
read_when:
|
||||
- Gerçek OpenClaw kullanım örnekleri arıyorsunuz
|
||||
- Topluluk proje öne çıkanlarını güncelliyorsunuz
|
||||
summary: OpenClaw tarafından desteklenen, topluluk tarafından oluşturulmuş projeler ve entegrasyonlar
|
||||
- Gerçek OpenClaw kullanım örneklerini arıyorum
|
||||
- Topluluk projesi öne çıkanlarını güncelliyorum
|
||||
summary: OpenClaw ile desteklenen topluluk tarafından geliştirilen projeler ve entegrasyonlar
|
||||
title: Vitrin
|
||||
x-i18n:
|
||||
generated_at: "2026-04-05T14:10:14Z"
|
||||
generated_at: "2026-04-15T08:53:56Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 2917e9a476ef527ddb3e51c610bbafbd145e705c9cc29f191639fb63d238ef70
|
||||
source_hash: 797d0b85c9eca920240c79d870eb9636216714f3eba871c5ebd0f7f40cf7bbf1
|
||||
source_path: start/showcase.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
<!-- markdownlint-disable MD033 -->
|
||||
|
||||
# Vitrin
|
||||
|
||||
Topluluktan gerçek projeler. İnsanların OpenClaw ile neler yaptığını görün.
|
||||
<div className="showcase-hero">
|
||||
<p className="showcase-kicker">Sohbetlerde, terminallerde, tarayıcılarda ve oturma odalarında geliştirildi</p>
|
||||
<p className="showcase-lead">
|
||||
OpenClaw projeleri oyuncak demolar değildir. İnsanlar zaten kullandıkları kanallar üzerinden PR inceleme döngüleri, mobil uygulamalar, ev otomasyonu,
|
||||
ses sistemleri, geliştirici araçları ve bellek ağırlıklı iş akışlarını kullanıma sunuyor.
|
||||
</p>
|
||||
<div className="showcase-actions">
|
||||
<a href="#videos">Demoları izle</a>
|
||||
<a href="#fresh-from-discord">Projelere göz at</a>
|
||||
<a href="https://discord.gg/clawd">Sizinkini paylaşın</a>
|
||||
</div>
|
||||
<div className="showcase-highlights">
|
||||
<div className="showcase-highlight">
|
||||
<strong>Sohbet odaklı geliştirmeler</strong>
|
||||
<span>Telegram, WhatsApp, Discord, Beeper, web sohbeti ve terminal öncelikli iş akışları.</span>
|
||||
</div>
|
||||
<div className="showcase-highlight">
|
||||
<strong>Gerçek otomasyon</strong>
|
||||
<span>API beklemeden rezervasyon, alışveriş, destek, raporlama ve tarayıcı kontrolü.</span>
|
||||
</div>
|
||||
<div className="showcase-highlight">
|
||||
<strong>Yerel + fiziksel dünya</strong>
|
||||
<span>Yazıcılar, robot süpürgeler, kameralar, sağlık verileri, ev sistemleri ve kişisel bilgi tabanları.</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<Info>
|
||||
**Öne çıkarılmak mı istiyorsunuz?** Projenizi [Discord'daki #self-promotion kanalında](https://discord.gg/clawd) paylaşın veya [X'te @openclaw etiketini kullanın](https://x.com/openclaw).
|
||||
**Öne çıkarılmak mı istiyorsunuz?** Projenizi [Discord'daki #self-promotion kanalında](https://discord.gg/clawd) paylaşın veya [X'te @openclaw etiketleyin](https://x.com/openclaw).
|
||||
</Info>
|
||||
|
||||
## 🎥 OpenClaw İş Başında
|
||||
|
||||
VelvetShark tarafından hazırlanan tam kurulum rehberi (28 dk).
|
||||
|
||||
<div
|
||||
style={{
|
||||
position: "relative",
|
||||
paddingBottom: "56.25%",
|
||||
height: 0,
|
||||
overflow: "hidden",
|
||||
borderRadius: 16,
|
||||
}}
|
||||
>
|
||||
<iframe
|
||||
src="https://www.youtube-nocookie.com/embed/SaWSPZoPX34"
|
||||
title="OpenClaw: Siri'nin olması gereken kendi kendine barındırılan yapay zeka (Tam kurulum)"
|
||||
style={{ position: "absolute", top: 0, left: 0, width: "100%", height: "100%" }}
|
||||
frameBorder="0"
|
||||
loading="lazy"
|
||||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
|
||||
allowFullScreen
|
||||
/>
|
||||
<div className="showcase-jump-links">
|
||||
<a href="#videos">Videolar</a>
|
||||
<a href="#fresh-from-discord">Discord'dan taze</a>
|
||||
<a href="#automation-workflows">Otomasyon</a>
|
||||
<a href="#knowledge-memory">Bellek</a>
|
||||
<a href="#voice-phone">Ses ve Telefon</a>
|
||||
<a href="#infrastructure-deployment">Altyapı</a>
|
||||
<a href="#home-hardware">Ev ve Donanım</a>
|
||||
<a href="#community-projects">Topluluk</a>
|
||||
<a href="#submit-your-project">Bir proje gönderin</a>
|
||||
</div>
|
||||
|
||||
[YouTube'da izle](https://www.youtube.com/watch?v=SaWSPZoPX34)
|
||||
<h2 id="videos">Videolar</h2>
|
||||
|
||||
<div
|
||||
style={{
|
||||
position: "relative",
|
||||
paddingBottom: "56.25%",
|
||||
height: 0,
|
||||
overflow: "hidden",
|
||||
borderRadius: 16,
|
||||
}}
|
||||
>
|
||||
<iframe
|
||||
src="https://www.youtube-nocookie.com/embed/mMSKQvlmFuQ"
|
||||
title="OpenClaw vitrin videosu"
|
||||
style={{ position: "absolute", top: 0, left: 0, width: "100%", height: "100%" }}
|
||||
frameBorder="0"
|
||||
loading="lazy"
|
||||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
|
||||
allowFullScreen
|
||||
/>
|
||||
<p className="showcase-section-intro">
|
||||
“Bu da ne?” sorusundan “tamam, anladım” noktasına en kısa yoldan gitmek istiyorsanız buradan başlayın.
|
||||
</p>
|
||||
|
||||
<div className="showcase-video-grid">
|
||||
<div className="showcase-video-card">
|
||||
<div className="showcase-video-shell">
|
||||
<iframe
|
||||
src="https://www.youtube-nocookie.com/embed/SaWSPZoPX34"
|
||||
title="OpenClaw: Siri'nin olması gereken self-hosted AI (Tam kurulum)"
|
||||
loading="lazy"
|
||||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
|
||||
allowFullScreen
|
||||
/>
|
||||
</div>
|
||||
<h3>Tam kurulum rehberi</h3>
|
||||
<p>VelvetShark, 28 dakika. Kurulum yapın, başlangıç ayarlarını tamamlayın ve uçtan uca çalışan ilk asistana ulaşın.</p>
|
||||
<a href="https://www.youtube.com/watch?v=SaWSPZoPX34">YouTube'da izle</a>
|
||||
</div>
|
||||
|
||||
<div className="showcase-video-card">
|
||||
<div className="showcase-video-shell">
|
||||
<iframe
|
||||
src="https://www.youtube-nocookie.com/embed/mMSKQvlmFuQ"
|
||||
title="OpenClaw vitrin videosu"
|
||||
loading="lazy"
|
||||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
|
||||
allowFullScreen
|
||||
/>
|
||||
</div>
|
||||
<h3>Topluluk vitrin derlemesi</h3>
|
||||
<p>OpenClaw etrafında geliştirilen gerçek projeler, yüzeyler ve iş akışlarına daha hızlı bir bakış.</p>
|
||||
<a href="https://www.youtube.com/watch?v=mMSKQvlmFuQ">YouTube'da izle</a>
|
||||
</div>
|
||||
|
||||
<div className="showcase-video-card">
|
||||
<div className="showcase-video-shell">
|
||||
<iframe
|
||||
src="https://www.youtube-nocookie.com/embed/5kkIJNUGFho"
|
||||
title="OpenClaw topluluk vitrini"
|
||||
loading="lazy"
|
||||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
|
||||
allowFullScreen
|
||||
/>
|
||||
</div>
|
||||
<h3>Sahadaki projeler</h3>
|
||||
<p>Topluluktan örnekler: sohbet odaklı kodlama döngülerinden donanım ve kişisel otomasyona kadar.</p>
|
||||
<a href="https://www.youtube.com/watch?v=5kkIJNUGFho">YouTube'da izle</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
[YouTube'da izle](https://www.youtube.com/watch?v=mMSKQvlmFuQ)
|
||||
<h2 id="fresh-from-discord">Discord'dan taze</h2>
|
||||
|
||||
<div
|
||||
style={{
|
||||
position: "relative",
|
||||
paddingBottom: "56.25%",
|
||||
height: 0,
|
||||
overflow: "hidden",
|
||||
borderRadius: 16,
|
||||
}}
|
||||
>
|
||||
<iframe
|
||||
src="https://www.youtube-nocookie.com/embed/5kkIJNUGFho"
|
||||
title="OpenClaw topluluk vitrini"
|
||||
style={{ position: "absolute", top: 0, left: 0, width: "100%", height: "100%" }}
|
||||
frameBorder="0"
|
||||
loading="lazy"
|
||||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
|
||||
allowFullScreen
|
||||
/>
|
||||
</div>
|
||||
|
||||
[YouTube'da izle](https://www.youtube.com/watch?v=5kkIJNUGFho)
|
||||
|
||||
## 🆕 Discord'dan taze örnekler
|
||||
<p className="showcase-section-intro">
|
||||
Kodlama, geliştirici araçları, mobil ve sohbet odaklı ürün geliştirme alanlarında son dönemin öne çıkanları.
|
||||
</p>
|
||||
|
||||
<CardGroup cols={2}>
|
||||
|
||||
<Card title="PR İncelemesi → Telegram Geri Bildirimi" icon="code-pull-request" href="https://x.com/i/status/2010878524543131691">
|
||||
**@bangnokia** • `review` `github` `telegram`
|
||||
|
||||
OpenCode değişikliği tamamlar → bir PR açar → OpenClaw farkı inceler ve Telegram'da “küçük öneriler” ile birlikte net bir birleştirme kararıyla yanıt verir (önce uygulanması gereken kritik düzeltmeler dahil).
|
||||
OpenCode değişikliği tamamlar → bir PR açar → OpenClaw diff'i inceler ve Telegram'da “küçük öneriler” ile birlikte net bir birleştirme kararıyla yanıt verir (önce uygulanması gereken kritik düzeltmeler dahil).
|
||||
|
||||
<img src="/assets/showcase/pr-review-telegram.jpg" alt="Telegram'da iletilen OpenClaw PR inceleme geri bildirimi" />
|
||||
</Card>
|
||||
@ -106,15 +133,15 @@ OpenCode değişikliği tamamlar → bir PR açar → OpenClaw farkı inceler ve
|
||||
<Card title="Dakikalar İçinde Şarap Mahzeni Skill'i" icon="wine-glass" href="https://x.com/i/status/2010916352454791216">
|
||||
**@prades_maxime** • `skills` `local` `csv`
|
||||
|
||||
Yerel bir şarap mahzeni skill'i için “Robby”ye (@openclaw) soruldu. Örnek bir CSV dışa aktarımı ve bunun nereye kaydedileceğini istiyor, ardından skill'i hızlıca oluşturup test ediyor (örnekte 962 şişe).
|
||||
“Robby”den (@openclaw) yerel bir şarap mahzeni skill'i istendi. Bir örnek CSV dışa aktarımı ile bunun nereye kaydedileceğini soruyor, ardından skill'i hızlıca oluşturup test ediyor (örnekte 962 şişe).
|
||||
|
||||
<img src="/assets/showcase/wine-cellar-skill.jpg" alt="OpenClaw'ın CSV'den yerel bir şarap mahzeni skill'i oluşturması" />
|
||||
</Card>
|
||||
|
||||
<Card title="Tesco Alışveriş Otopilotu" icon="cart-shopping" href="https://x.com/i/status/2009724862470689131">
|
||||
<Card title="Tesco Alışveriş Otomatik Pilotu" icon="cart-shopping" href="https://x.com/i/status/2009724862470689131">
|
||||
**@marchattonhere** • `automation` `browser` `shopping`
|
||||
|
||||
Haftalık yemek planı → düzenli ürünler → teslimat zaman aralığı ayırtma → siparişi onaylama. API yok, sadece tarayıcı kontrolü.
|
||||
Haftalık yemek planı → düzenli ürünler → teslimat zamanı ayırt → siparişi onayla. API yok, yalnızca tarayıcı kontrolü.
|
||||
|
||||
<img src="/assets/showcase/tesco-shop.jpg" alt="Sohbet üzerinden Tesco alışveriş otomasyonu" />
|
||||
</Card>
|
||||
@ -122,9 +149,9 @@ Haftalık yemek planı → düzenli ürünler → teslimat zaman aralığı ayı
|
||||
<Card title="SNAG Ekran Görüntüsünden Markdown'a" icon="scissors" href="https://github.com/am-will/snag">
|
||||
**@am-will** • `devtools` `screenshots` `markdown`
|
||||
|
||||
Bir ekran bölgesine kısayol atayın → Gemini vision → panonuza anında Markdown.
|
||||
Ekranın bir bölgesine kısayol tuşuyla seç → Gemini vision → anında panona Markdown gelsin.
|
||||
|
||||
<img src="/assets/showcase/snag.png" alt="SNAG ekran görüntüsünden markdown'a aracı" />
|
||||
<img src="/assets/showcase/snag.png" alt="SNAG ekran görüntüsünden Markdown'a aracı" />
|
||||
</Card>
|
||||
|
||||
<Card title="Agents UI" icon="window-maximize" href="https://releaseflow.net/kitze/agents-ui">
|
||||
@ -136,9 +163,9 @@ Agents, Claude, Codex ve OpenClaw genelinde skills/komutları yönetmek için ma
|
||||
</Card>
|
||||
|
||||
<Card title="Telegram Sesli Notları (papla.media)" icon="microphone" href="https://papla.media/docs">
|
||||
**Community** • `voice` `tts` `telegram`
|
||||
**Topluluk** • `voice` `tts` `telegram`
|
||||
|
||||
papla.media TTS'yi sarar ve sonuçları Telegram sesli notları olarak gönderir (can sıkıcı otomatik oynatma yok).
|
||||
papla.media TTS'yi sarmalar ve sonuçları Telegram sesli notları olarak gönderir (rahatsız edici otomatik oynatma yok).
|
||||
|
||||
<img src="/assets/showcase/papla-tts.jpg" alt="TTS'den Telegram sesli not çıktısı" />
|
||||
</Card>
|
||||
@ -154,7 +181,7 @@ Yerel OpenAI Codex oturumlarını listelemek/incelemek/izlemek için Homebrew il
|
||||
<Card title="Bambu 3D Yazıcı Kontrolü" icon="print" href="https://clawhub.ai/tobiasbischoff/bambu-cli">
|
||||
**@tobiasbischoff** • `hardware` `3d-printing` `skill`
|
||||
|
||||
BambuLab yazıcıları denetleyin ve sorun giderin: durum, işler, kamera, AMS, kalibrasyon ve daha fazlası.
|
||||
BambuLab yazıcılarını kontrol edin ve sorun giderin: durum, işler, kamera, AMS, kalibrasyon ve daha fazlası.
|
||||
|
||||
<img src="/assets/showcase/bambu-cli.png" alt="ClawHub üzerinde Bambu CLI skill'i" />
|
||||
</Card>
|
||||
@ -162,66 +189,70 @@ BambuLab yazıcıları denetleyin ve sorun giderin: durum, işler, kamera, AMS,
|
||||
<Card title="Viyana Ulaşımı (Wiener Linien)" icon="train" href="https://clawhub.ai/hjanuschka/wienerlinien">
|
||||
**@hjanuschka** • `travel` `transport` `skill`
|
||||
|
||||
Viyana'nın toplu taşıması için gerçek zamanlı kalkışlar, kesintiler, asansör durumu ve yönlendirme.
|
||||
Viyana toplu taşıması için gerçek zamanlı kalkışlar, kesintiler, asansör durumu ve rota oluşturma.
|
||||
|
||||
<img src="/assets/showcase/wienerlinien.png" alt="ClawHub üzerinde Wiener Linien skill'i" />
|
||||
<img src="/assets/showcase/wienerlinien.png" alt="Wiener Linien skill'i" />
|
||||
</Card>
|
||||
|
||||
<Card title="ParentPay Okul Yemekleri" icon="utensils" href="#">
|
||||
<Card title="ParentPay Okul Yemekleri" icon="utensils">
|
||||
**@George5562** • `automation` `browser` `parenting`
|
||||
|
||||
ParentPay üzerinden Birleşik Krallık okul yemeği rezervasyonunu otomatikleştirir. Güvenilir tablo hücresi tıklaması için fare koordinatlarını kullanır.
|
||||
ParentPay üzerinden Birleşik Krallık'ta okul yemeği rezervasyonunu otomatikleştirir. Tablo hücrelerine güvenilir şekilde tıklamak için fare koordinatlarını kullanır.
|
||||
</Card>
|
||||
|
||||
<Card title="R2 Yükleme (Dosyalarımı Bana Gönder)" icon="cloud-arrow-up" href="https://clawhub.ai/skills/r2-upload">
|
||||
**@julianengel** • `files` `r2` `presigned-urls`
|
||||
|
||||
Cloudflare R2/S3'e yükleyin ve güvenli ön imzalı indirme bağlantıları oluşturun. Uzak OpenClaw örnekleri için mükemmeldir.
|
||||
Cloudflare R2/S3'e yükleyin ve güvenli önceden imzalanmış indirme bağlantıları oluşturun. Uzak OpenClaw örnekleri için idealdir.
|
||||
</Card>
|
||||
|
||||
<Card title="Telegram ile iOS Uygulaması" icon="mobile" href="#">
|
||||
<Card title="Telegram Üzerinden iOS Uygulaması" icon="mobile">
|
||||
**@coard** • `ios` `xcode` `testflight`
|
||||
|
||||
Haritalar ve ses kaydı içeren tam bir iOS uygulaması oluşturdu, tamamen Telegram sohbeti üzerinden TestFlight'a dağıttı.
|
||||
Haritalar ve ses kaydı içeren tam bir iOS uygulaması oluşturdu; tamamını Telegram sohbeti üzerinden TestFlight'a dağıttı.
|
||||
|
||||
<img src="/assets/showcase/ios-testflight.jpg" alt="TestFlight üzerindeki iOS uygulaması" />
|
||||
</Card>
|
||||
|
||||
<Card title="Oura Ring Sağlık Asistanı" icon="heart-pulse" href="#">
|
||||
<Card title="Oura Ring Sağlık Asistanı" icon="heart-pulse">
|
||||
**@AS** • `health` `oura` `calendar`
|
||||
|
||||
Oura ring verilerini takvim, randevular ve spor salonu programıyla birleştiren kişisel yapay zeka sağlık asistanı.
|
||||
Oura ring verilerini takvim, randevular ve spor programıyla birleştiren kişisel AI sağlık asistanı.
|
||||
|
||||
<img src="/assets/showcase/oura-health.png" alt="Oura ring sağlık asistanı" />
|
||||
</Card>
|
||||
<Card title="Kev'in Dream Team'i (14+ Aracı)" icon="robot" href="https://github.com/adam91holt/orchestrated-ai-articles">
|
||||
<Card title="Kev'in Dream Team'i (14+ Agent)" icon="robot" href="https://github.com/adam91holt/orchestrated-ai-articles">
|
||||
**@adam91holt** • `multi-agent` `orchestration` `architecture` `manifesto`
|
||||
|
||||
Tek bir gateway altında 14+ aracı; Opus 4.5 orkestratörü görevleri Codex çalışanlarına devrediyor. Dream Team kadrosunu, model seçimini, korumalı alanı, web kancalarını, heartbeats'i ve devir akışlarını kapsayan kapsamlı [teknik yazı](https://github.com/adam91holt/orchestrated-ai-articles). Aracı korumalı alanı için [Clawdspace](https://github.com/adam91holt/clawdspace). [Blog yazısı](https://adams-ai-journey.ghost.io/2026-the-year-of-the-orchestrator/).
|
||||
Tek bir Gateway altında, Opus 4.5 orkestratörünün Codex çalışanlarına görev devrettiği 14+ agent. Dream Team kadrosu, model seçimi, sandboxing, webhook'lar, Heartbeat'ler ve görev devri akışlarını kapsayan kapsamlı [teknik yazı](https://github.com/adam91holt/orchestrated-ai-articles). Agent sandboxing için [Clawdspace](https://github.com/adam91holt/clawdspace). [Blog yazısı](https://adams-ai-journey.ghost.io/2026-the-year-of-the-orchestrator/).
|
||||
</Card>
|
||||
|
||||
<Card title="Linear CLI" icon="terminal" href="https://github.com/Finesssee/linear-cli">
|
||||
**@NessZerra** • `devtools` `linear` `cli` `issues`
|
||||
|
||||
Aracılı iş akışlarıyla (Claude Code, OpenClaw) bütünleşen Linear için CLI. Sorunları, projeleri ve iş akışlarını terminalden yönetin. İlk harici PR birleştirildi!
|
||||
Agentik iş akışlarıyla (Claude Code, OpenClaw) entegre olan Linear için CLI. Sorunları, projeleri ve iş akışlarını terminalden yönetin. İlk harici PR birleştirildi!
|
||||
</Card>
|
||||
|
||||
<Card title="Beeper CLI" icon="message" href="https://github.com/blqke/beepcli">
|
||||
**@jules** • `messaging` `beeper` `cli` `automation`
|
||||
|
||||
Beeper Desktop üzerinden mesajları okuyun, gönderin ve arşivleyin. Beeper yerel MCP API'sini kullanır; böylece aracılar tüm sohbetlerinizi (iMessage, WhatsApp vb.) tek bir yerden yönetebilir.
|
||||
Beeper Desktop üzerinden mesajları okuyun, gönderin ve arşivleyin. Beeper yerel MCP API'sini kullanır; böylece agent'lar tüm sohbetlerinizi (iMessage, WhatsApp vb.) tek bir yerden yönetebilir.
|
||||
</Card>
|
||||
|
||||
</CardGroup>
|
||||
|
||||
## 🤖 Otomasyon ve İş Akışları
|
||||
<h2 id="automation-workflows">Otomasyon ve İş Akışları</h2>
|
||||
|
||||
<p className="showcase-section-intro">
|
||||
Planlama, tarayıcı kontrolü, destek döngüleri ve ürünün “görevi benim yerime yap” tarafı.
|
||||
</p>
|
||||
|
||||
<CardGroup cols={2}>
|
||||
|
||||
<Card title="Winix Hava Temizleyici Kontrolü" icon="wind" href="https://x.com/antonplex/status/2010518442471006253">
|
||||
**@antonplex** • `automation` `hardware` `air-quality`
|
||||
|
||||
Claude Code temizleyici denetimlerini keşfedip doğruladı, ardından OpenClaw oda hava kalitesini yönetmek için devralıyor.
|
||||
Claude Code hava temizleyici kontrollerini keşfedip doğruladı, ardından oda hava kalitesini yönetmek için OpenClaw devraldı.
|
||||
|
||||
<img src="/assets/showcase/winix-air-purifier.jpg" alt="OpenClaw üzerinden Winix hava temizleyici kontrolü" />
|
||||
</Card>
|
||||
@ -229,7 +260,7 @@ Claude Code temizleyici denetimlerini keşfedip doğruladı, ardından OpenClaw
|
||||
<Card title="Güzel Gökyüzü Kamera Çekimleri" icon="camera" href="https://x.com/signalgaining/status/2010523120604746151">
|
||||
**@signalgaining** • `automation` `camera` `skill` `images`
|
||||
|
||||
Bir çatı kamerası tarafından tetiklenir: gökyüzü güzel göründüğünde OpenClaw'dan bir fotoğraf çekmesini isteyin — bir skill tasarladı ve çekimi yaptı.
|
||||
Çatı kamerası tarafından tetiklenir: Gökyüzü güzel göründüğünde OpenClaw'dan bir gökyüzü fotoğrafı çekmesini isteyin — bir skill tasarladı ve çekimi yaptı.
|
||||
|
||||
<img src="/assets/showcase/roof-camera-sky.jpg" alt="OpenClaw tarafından yakalanan çatı kamerası gökyüzü görüntüsü" />
|
||||
</Card>
|
||||
@ -237,189 +268,213 @@ Bir çatı kamerası tarafından tetiklenir: gökyüzü güzel göründüğünde
|
||||
<Card title="Görsel Sabah Brifingi Sahnesi" icon="robot" href="https://x.com/buddyhadry/status/2010005331925954739">
|
||||
**@buddyhadry** • `automation` `briefing` `images` `telegram`
|
||||
|
||||
Zamanlanmış bir istem, her sabah bir OpenClaw personası aracılığıyla tek bir “sahne” görseli oluşturur (hava durumu, görevler, tarih, favori gönderi/alıntı).
|
||||
Zamanlanmış bir istem, bir OpenClaw personası üzerinden her sabah tek bir “sahne” görseli üretir (hava durumu, görevler, tarih, favori gönderi/alıntı).
|
||||
</Card>
|
||||
|
||||
<Card title="Padel Kort Rezervasyonu" icon="calendar-check" href="https://github.com/joshp123/padel-cli">
|
||||
**@joshp123** • `automation` `booking` `cli`
|
||||
|
||||
Playtomic uygunluk denetleyicisi + rezervasyon CLI'si. Bir daha asla boş bir kortu kaçırmayın.
|
||||
Playtomic uygunluk denetleyicisi + rezervasyon CLI'ı. Bir daha asla boş bir kortu kaçırmayın.
|
||||
|
||||
<img src="/assets/showcase/padel-screenshot.jpg" alt="padel-cli ekran görüntüsü" />
|
||||
</Card>
|
||||
|
||||
<Card title="Muhasebe Girdisi" icon="file-invoice-dollar">
|
||||
**Community** • `automation` `email` `pdf`
|
||||
<Card title="Muhasebe Belge Toplama" icon="file-invoice-dollar">
|
||||
**Topluluk** • `automation` `email` `pdf`
|
||||
|
||||
PDF'leri e-postadan toplar, belgeleri vergi danışmanı için hazırlar. Aylık muhasebe otopilotta.
|
||||
E-postadan PDF'leri toplar, belgeleri vergi danışmanı için hazırlar. Aylık muhasebe otomatik pilotta.
|
||||
</Card>
|
||||
|
||||
<Card title="Kanepeden Geliştirme Modu" icon="couch" href="https://davekiss.com">
|
||||
<Card title="Kanepeden Geliştirici Modu" icon="couch" href="https://davekiss.com">
|
||||
**@davekiss** • `telegram` `website` `migration` `astro`
|
||||
|
||||
Tüm kişisel sitesini Telegram üzerinden, Netflix izlerken yeniden oluşturdu — Notion → Astro, 18 yazı taşındı, DNS Cloudflare'a geçirildi. Hiç dizüstü bilgisayar açmadı.
|
||||
Telegram üzerinden Netflix izlerken tüm kişisel sitesini yeniden kurdu — Notion → Astro, 18 gönderi taşındı, DNS Cloudflare'a geçirildi. Hiç dizüstü bilgisayar açmadı.
|
||||
</Card>
|
||||
|
||||
<Card title="İş Arama Aracısı" icon="briefcase">
|
||||
<Card title="İş Arama Agent'ı" icon="briefcase">
|
||||
**@attol8** • `automation` `api` `skill`
|
||||
|
||||
İş ilanlarını arar, CV anahtar sözcükleriyle eşleştirir ve ilgili fırsatları bağlantılarla birlikte döndürür. JSearch API kullanılarak 30 dakikada oluşturuldu.
|
||||
İş ilanlarını arar, özgeçmiş anahtar kelimeleriyle eşleştirir ve ilgili fırsatları bağlantılarıyla birlikte döndürür. JSearch API kullanılarak 30 dakikada oluşturuldu.
|
||||
</Card>
|
||||
|
||||
<Card title="Jira Skill Oluşturucu" icon="diagram-project" href="https://x.com/jdrhyne/status/2008336434827002232">
|
||||
**@jdrhyne** • `automation` `jira` `skill` `devtools`
|
||||
|
||||
OpenClaw Jira'ya bağlandı, ardından yeni bir skill'i anında üretti (ClawHub'da bulunmadan önce).
|
||||
OpenClaw Jira'ya bağlandı, ardından anında yeni bir skill oluşturdu (ClawHub'da bulunmadan önce).
|
||||
</Card>
|
||||
|
||||
<Card title="Telegram ile Todoist Skill'i" icon="list-check" href="https://x.com/iamsubhrajyoti/status/2009949389884920153">
|
||||
<Card title="Telegram Üzerinden Todoist Skill'i" icon="list-check" href="https://x.com/iamsubhrajyoti/status/2009949389884920153">
|
||||
**@iamsubhrajyoti** • `automation` `todoist` `skill` `telegram`
|
||||
|
||||
Todoist görevlerini otomatikleştirdi ve OpenClaw'ın skill'i doğrudan Telegram sohbetinde üretmesini sağladı.
|
||||
Todoist görevlerini otomatikleştirdi ve OpenClaw'ın skill'i doğrudan Telegram sohbetinde oluşturmasını sağladı.
|
||||
</Card>
|
||||
|
||||
<Card title="TradingView Analizi" icon="chart-line">
|
||||
**@bheem1798** • `finance` `browser` `automation`
|
||||
|
||||
Tarayıcı otomasyonu ile TradingView'a giriş yapar, grafiklerin ekran görüntülerini alır ve istek üzerine teknik analiz gerçekleştirir. API gerekmez—yalnızca tarayıcı kontrolü yeterlidir.
|
||||
Tarayıcı otomasyonu aracılığıyla TradingView'a giriş yapar, grafiklerin ekran görüntülerini alır ve istek üzerine teknik analiz gerçekleştirir. API gerekmez — yalnızca tarayıcı kontrolü.
|
||||
</Card>
|
||||
|
||||
<Card title="Slack Otomatik Destek" icon="slack">
|
||||
**@henrymascot** • `slack` `automation` `support`
|
||||
|
||||
Şirket Slack kanalını izler, faydalı yanıtlar verir ve bildirimleri Telegram'a iletir. İstenmeden dağıtıma alınmış bir uygulamadaki üretim hatasını otonom olarak düzeltti.
|
||||
Şirketin Slack kanalını izler, yardımcı yanıtlar verir ve bildirimleri Telegram'a iletir. İstenmeden, dağıtımdaki bir uygulamadaki production hatasını otonom şekilde düzeltti.
|
||||
</Card>
|
||||
|
||||
</CardGroup>
|
||||
|
||||
## 🧠 Bilgi ve Bellek
|
||||
<h2 id="knowledge-memory">Bilgi ve Bellek</h2>
|
||||
|
||||
<p className="showcase-section-intro">
|
||||
Kişisel veya ekip bilgisini indeksleyen, arayan, hatırlayan ve üzerinde akıl yürüten sistemler.
|
||||
</p>
|
||||
|
||||
<CardGroup cols={2}>
|
||||
|
||||
<Card title="xuezh Çince Öğrenme" icon="language" href="https://github.com/joshp123/xuezh">
|
||||
<Card title="xuezh Çince Öğrenimi" icon="language" href="https://github.com/joshp123/xuezh">
|
||||
**@joshp123** • `learning` `voice` `skill`
|
||||
|
||||
OpenClaw üzerinden telaffuz geri bildirimi ve çalışma akışları sunan Çince öğrenme altyapısı.
|
||||
OpenClaw üzerinden telaffuz geri bildirimi ve çalışma akışları sunan Çince öğrenme motoru.
|
||||
|
||||
<img src="/assets/showcase/xuezh-pronunciation.jpeg" alt="xuezh telaffuz geri bildirimi" />
|
||||
</Card>
|
||||
|
||||
<Card title="WhatsApp Bellek Kasası" icon="vault">
|
||||
**Community** • `memory` `transcription` `indexing`
|
||||
**Topluluk** • `memory` `transcription` `indexing`
|
||||
|
||||
Tam WhatsApp dışa aktarımlarını alır, 1 binden fazla sesli notu yazıya döker, git günlükleriyle çapraz kontrol eder ve bağlantılı markdown raporları üretir.
|
||||
Tam WhatsApp dışa aktarımlarını içe alır, 1k+ sesli notu metne döker, git günlükleriyle çapraz kontrol yapar, bağlantılı markdown raporları üretir.
|
||||
</Card>
|
||||
|
||||
<Card title="Karakeep Anlamsal Arama" icon="magnifying-glass" href="https://github.com/jamesbrooksco/karakeep-semantic-search">
|
||||
**@jamesbrooksco** • `search` `vector` `bookmarks`
|
||||
|
||||
Qdrant + OpenAI/Ollama embedding'lerini kullanarak Karakeep yer imlerine vektör araması ekler.
|
||||
Qdrant + OpenAI/Ollama embedding'lerini kullanarak Karakeep yer imlerine vektör arama ekler.
|
||||
</Card>
|
||||
|
||||
<Card title="Inside-Out-2 Belleği" icon="brain">
|
||||
**Community** • `memory` `beliefs` `self-model`
|
||||
**Topluluk** • `memory` `beliefs` `self-model`
|
||||
|
||||
Oturum dosyalarını anılara → inançlara → gelişen benlik modeline dönüştüren ayrı bir bellek yöneticisi.
|
||||
Oturum dosyalarını anılar → inançlar → gelişen benlik modeline dönüştüren ayrı bellek yöneticisi.
|
||||
</Card>
|
||||
|
||||
</CardGroup>
|
||||
|
||||
## 🎙️ Ses ve Telefon
|
||||
<h2 id="voice-phone">Ses ve Telefon</h2>
|
||||
|
||||
<p className="showcase-section-intro">
|
||||
Konuşma öncelikli giriş noktaları, telefon köprüleri ve yoğun transkripsiyon iş akışları.
|
||||
</p>
|
||||
|
||||
<CardGroup cols={2}>
|
||||
|
||||
<Card title="Clawdia Telefon Köprüsü" icon="phone" href="https://github.com/alejandroOPI/clawdia-bridge">
|
||||
**@alejandroOPI** • `voice` `vapi` `bridge`
|
||||
|
||||
Vapi sesli asistanı ↔ OpenClaw HTTP köprüsü. Aracınızla neredeyse gerçek zamanlı telefon görüşmeleri.
|
||||
Vapi sesli asistanı ↔ OpenClaw HTTP köprüsü. Agent'ınızla neredeyse gerçek zamanlı telefon görüşmeleri.
|
||||
</Card>
|
||||
|
||||
<Card title="OpenRouter Transkripsiyonu" icon="microphone" href="https://clawhub.ai/obviyus/openrouter-transcribe">
|
||||
<Card title="OpenRouter Transkripsiyon" icon="microphone" href="https://clawhub.ai/obviyus/openrouter-transcribe">
|
||||
**@obviyus** • `transcription` `multilingual` `skill`
|
||||
|
||||
OpenRouter üzerinden çok dilli ses transkripsiyonu (Gemini vb.). ClawHub'da mevcuttur.
|
||||
OpenRouter üzerinden çok dilli ses transkripsiyonu (Gemini vb.). ClawHub'da mevcut.
|
||||
</Card>
|
||||
|
||||
</CardGroup>
|
||||
|
||||
## 🏗️ Altyapı ve Dağıtım
|
||||
<h2 id="infrastructure-deployment">Altyapı ve Dağıtım</h2>
|
||||
|
||||
<p className="showcase-section-intro">
|
||||
OpenClaw'ın çalıştırılmasını ve genişletilmesini kolaylaştıran paketleme, dağıtım ve entegrasyonlar.
|
||||
</p>
|
||||
|
||||
<CardGroup cols={2}>
|
||||
|
||||
<Card title="Home Assistant Eklentisi" icon="home" href="https://github.com/ngutman/openclaw-ha-addon">
|
||||
**@ngutman** • `homeassistant` `docker` `raspberry-pi`
|
||||
|
||||
SSH tüneli desteği ve kalıcı durum ile Home Assistant OS üzerinde çalışan OpenClaw gateway'i.
|
||||
SSH tüneli desteği ve kalıcı durum ile Home Assistant OS üzerinde çalışan OpenClaw Gateway.
|
||||
</Card>
|
||||
|
||||
<Card title="Home Assistant Skill'i" icon="toggle-on" href="https://clawhub.ai/skills/homeassistant">
|
||||
**ClawHub** • `homeassistant` `skill` `automation`
|
||||
|
||||
Home Assistant cihazlarını doğal dil ile kontrol edin ve otomatikleştirin.
|
||||
Home Assistant cihazlarını doğal dille kontrol edin ve otomatikleştirin.
|
||||
</Card>
|
||||
|
||||
<Card title="Nix Paketleme" icon="snowflake" href="https://github.com/openclaw/nix-openclaw">
|
||||
**@openclaw** • `nix` `packaging` `deployment`
|
||||
|
||||
Yeniden üretilebilir dağıtımlar için her şeyi içeren nix tabanlı OpenClaw yapılandırması.
|
||||
Tekrarlanabilir dağıtımlar için her şeyi içeren, nix ile yapılandırılmış OpenClaw yapılandırması.
|
||||
</Card>
|
||||
|
||||
<Card title="CalDAV Takvimi" icon="calendar" href="https://clawhub.ai/skills/caldav-calendar">
|
||||
**ClawHub** • `calendar` `caldav` `skill`
|
||||
|
||||
khal/vdirsyncer kullanan takvim skill'i. Kendi kendine barındırılan takvim entegrasyonu.
|
||||
khal/vdirsyncer kullanan takvim skill'i. Self-hosted takvim entegrasyonu.
|
||||
</Card>
|
||||
|
||||
</CardGroup>
|
||||
|
||||
## 🏠 Ev ve Donanım
|
||||
<h2 id="home-hardware">Ev ve Donanım</h2>
|
||||
|
||||
<p className="showcase-section-intro">
|
||||
OpenClaw'ın fiziksel dünya tarafı: evler, sensörler, kameralar, robot süpürgeler ve diğer cihazlar.
|
||||
</p>
|
||||
|
||||
<CardGroup cols={2}>
|
||||
|
||||
<Card title="GoHome Otomasyonu" icon="house-signal" href="https://github.com/joshp123/gohome">
|
||||
**@joshp123** • `home` `nix` `grafana`
|
||||
|
||||
Arayüz olarak OpenClaw kullanan, ayrıca güzel Grafana panoları sunan Nix tabanlı ev otomasyonu.
|
||||
Arayüz olarak OpenClaw'ı kullanan, ayrıca güzel Grafana panoları sunan Nix uyumlu ev otomasyonu.
|
||||
|
||||
<img src="/assets/showcase/gohome-grafana.png" alt="GoHome Grafana panosu" />
|
||||
</Card>
|
||||
|
||||
<Card title="Roborock Süpürge" icon="robot" href="https://github.com/joshp123/gohome/tree/main/plugins/roborock">
|
||||
<Card title="Roborock Robot Süpürge" icon="robot" href="https://github.com/joshp123/gohome/tree/main/plugins/roborock">
|
||||
**@joshp123** • `vacuum` `iot` `plugin`
|
||||
|
||||
Roborock robot süpürgenizi doğal konuşma yoluyla kontrol edin.
|
||||
Roborock robot süpürgenizi doğal konuşmayla kontrol edin.
|
||||
|
||||
<img src="/assets/showcase/roborock-screenshot.jpg" alt="Roborock durumu" />
|
||||
</Card>
|
||||
|
||||
</CardGroup>
|
||||
|
||||
## 🌟 Topluluk Projeleri
|
||||
<h2 id="community-projects">Topluluk Projeleri</h2>
|
||||
|
||||
<p className="showcase-section-intro">
|
||||
Tek bir iş akışının ötesine geçerek daha geniş ürünlere veya ekosistemlere dönüşen şeyler.
|
||||
</p>
|
||||
|
||||
<CardGroup cols={2}>
|
||||
|
||||
<Card title="StarSwap Marketplace" icon="star" href="https://star-swap.com/">
|
||||
**Community** • `marketplace` `astronomy` `webapp`
|
||||
**Topluluk** • `marketplace` `astronomy` `webapp`
|
||||
|
||||
Tam kapsamlı astronomi ekipmanı pazaryeri. OpenClaw ekosistemi ile/çevresinde oluşturuldu.
|
||||
Tam kapsamlı astronomi ekipmanı pazaryeri. OpenClaw ekosistemiyle/etrafında geliştirildi.
|
||||
</Card>
|
||||
|
||||
</CardGroup>
|
||||
|
||||
---
|
||||
|
||||
## Projenizi Gönderin
|
||||
<h2 id="submit-your-project">Projenizi Gönderin</h2>
|
||||
|
||||
<p className="showcase-section-intro">
|
||||
OpenClaw ile ilginç bir şey geliştiriyorsanız bize gönderin. Güçlü ekran görüntüleri ve somut sonuçlar yardımcı olur.
|
||||
</p>
|
||||
|
||||
Paylaşacak bir şeyiniz mi var? Sizi öne çıkarmaktan memnuniyet duyarız!
|
||||
|
||||
<Steps>
|
||||
<Step title="Paylaşın">
|
||||
[Discord'daki #self-promotion kanalında](https://discord.gg/clawd) paylaşın veya [X'te @openclaw'a tweet atın](https://x.com/openclaw)
|
||||
[Discord'daki #self-promotion kanalında](https://discord.gg/clawd) paylaşın veya [X'te @openclaw'a yazın](https://x.com/openclaw)
|
||||
</Step>
|
||||
<Step title="Ayrıntıları Ekleyin">
|
||||
Ne yaptığını anlatın, depo/demo bağlantısını verin, varsa bir ekran görüntüsü paylaşın
|
||||
Ne yaptığını anlatın, depo/demo bağlantısını paylaşın, varsa bir ekran görüntüsü ekleyin
|
||||
</Step>
|
||||
<Step title="Öne Çıkın">
|
||||
Dikkat çeken projeleri bu sayfaya ekleyeceğiz
|
||||
Öne çıkan projeleri bu sayfaya ekleyeceğiz
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
@ -1,34 +1,34 @@
|
||||
---
|
||||
read_when:
|
||||
- Videoları agent aracılığıyla oluşturma
|
||||
- Agent aracılığıyla video oluşturma
|
||||
- Video oluşturma sağlayıcılarını ve modellerini yapılandırma
|
||||
- '`video_generate` araç parametrelerini anlama'
|
||||
summary: Metin, görseller veya mevcut videolardan 14 sağlayıcı arka ucunu kullanarak videolar oluşturun
|
||||
- '`video_generate` aracının parametrelerini anlama'
|
||||
summary: 14 sağlayıcı arka ucunu kullanarak metin, görseller veya mevcut videolardan videolar oluşturun
|
||||
title: Video Oluşturma
|
||||
x-i18n:
|
||||
generated_at: "2026-04-11T15:15:59Z"
|
||||
generated_at: "2026-04-15T08:54:03Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 0ec159a0bbb6b8a030e68828c0a8bcaf40c8538ecf98bc8ff609dab9d0068263
|
||||
source_hash: c182f24b25e44f157a820e82a1f7422247f26125956944b5eb98613774268cfe
|
||||
source_path: tools/video-generation.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Video Oluşturma
|
||||
|
||||
OpenClaw agent’ları metin istemlerinden, referans görsellerden veya mevcut videolardan videolar oluşturabilir. On dört sağlayıcı arka ucu desteklenir ve her birinin farklı model seçenekleri, giriş modları ve özellik kümeleri vardır. Agent, yapılandırmanıza ve kullanılabilir API anahtarlarına göre doğru sağlayıcıyı otomatik olarak seçer.
|
||||
OpenClaw agent’ları metin prompt’larından, referans görsellerden veya mevcut videolardan video oluşturabilir. On dört sağlayıcı arka ucu desteklenir; her birinin farklı model seçenekleri, giriş modları ve özellik setleri vardır. Agent, yapılandırmanıza ve kullanılabilir API anahtarlarına göre doğru sağlayıcıyı otomatik olarak seçer.
|
||||
|
||||
<Note>
|
||||
`video_generate` aracı yalnızca en az bir video oluşturma sağlayıcısı kullanılabilir olduğunda görünür. Agent araçlarınızda bunu görmüyorsanız bir sağlayıcı API anahtarı ayarlayın veya `agents.defaults.videoGenerationModel` yapılandırmasını yapın.
|
||||
</Note>
|
||||
|
||||
OpenClaw, video oluşturmayı üç çalışma zamanı modu olarak ele alır:
|
||||
OpenClaw video oluşturmayı üç çalışma zamanı modu olarak ele alır:
|
||||
|
||||
- referans medya içermeyen metinden videoya istekler için `generate`
|
||||
- istek bir veya daha fazla referans görsel içerdiğinde `imageToVideo`
|
||||
- istek bir veya daha fazla referans video içerdiğinde `videoToVideo`
|
||||
|
||||
Sağlayıcılar bu modların herhangi bir alt kümesini destekleyebilir. Araç, gönderimden önce etkin modu doğrular ve desteklenen modları `action=list` içinde bildirir.
|
||||
Sağlayıcılar bu modların herhangi bir alt kümesini destekleyebilir. Araç, gönderimden önce etkin modu doğrular ve `action=list` içinde desteklenen modları bildirir.
|
||||
|
||||
## Hızlı başlangıç
|
||||
|
||||
@ -44,35 +44,35 @@ export GEMINI_API_KEY="your-key"
|
||||
openclaw config set agents.defaults.videoGenerationModel.primary "google/veo-3.1-fast-generate-preview"
|
||||
```
|
||||
|
||||
3. Agent’a sorun:
|
||||
3. Agent’a isteğinizi söyleyin:
|
||||
|
||||
> Gün batımında sörf yapan dost canlısı bir ıstakozun 5 saniyelik sinematik bir videosunu oluştur.
|
||||
> Gün batımında sörf yapan dost canlısı bir ıstakozun 5 saniyelik sinematik videosunu oluştur.
|
||||
|
||||
Agent, `video_generate` aracını otomatik olarak çağırır. Araç izin listesi gerekmez.
|
||||
Agent `video_generate` aracını otomatik olarak çağırır. Araç izin listesine alma gerekmez.
|
||||
|
||||
## Bir video oluşturduğunuzda ne olur
|
||||
## Video oluşturduğunuzda ne olur
|
||||
|
||||
Video oluşturma eşzamansızdır. Agent bir oturumda `video_generate` çağırdığında:
|
||||
|
||||
1. OpenClaw isteği sağlayıcıya gönderir ve hemen bir görev kimliği döndürür.
|
||||
2. Sağlayıcı işi arka planda işler (genellikle sağlayıcıya ve çözünürlüğe bağlı olarak 30 saniye ila 5 dakika).
|
||||
2. Sağlayıcı işi arka planda işler (genellikle sağlayıcıya ve çözünürlüğe bağlı olarak 30 saniye ile 5 dakika arasında).
|
||||
3. Video hazır olduğunda OpenClaw aynı oturumu dahili bir tamamlanma olayıyla uyandırır.
|
||||
4. Agent tamamlanan videoyu özgün konuşmaya geri gönderir.
|
||||
|
||||
Bir iş devam ederken, aynı oturumdaki yinelenen `video_generate` çağrıları yeni bir oluşturma başlatmak yerine mevcut görev durumunu döndürür. CLI üzerinden ilerlemeyi denetlemek için `openclaw tasks list` veya `openclaw tasks show <taskId>` kullanın.
|
||||
Bir iş devam ederken, aynı oturumdaki yinelenen `video_generate` çağrıları başka bir oluşturma başlatmak yerine mevcut görev durumunu döndürür. CLI üzerinden ilerlemeyi kontrol etmek için `openclaw tasks list` veya `openclaw tasks show <taskId>` kullanın.
|
||||
|
||||
Oturum destekli agent çalıştırmalarının dışında (örneğin doğrudan araç çağrıları), araç satır içi oluşturmaya geri döner ve son medya yolunu aynı turda döndürür.
|
||||
Oturum destekli agent çalıştırmalarının dışında (örneğin doğrudan araç çağrıları), araç satır içi oluşturmaya geri döner ve son medya yolunu aynı tur içinde döndürür.
|
||||
|
||||
### Görev yaşam döngüsü
|
||||
|
||||
Her `video_generate` isteği dört durumdan geçer:
|
||||
|
||||
1. **queued** -- görev oluşturuldu, sağlayıcının bunu kabul etmesi bekleniyor.
|
||||
2. **running** -- sağlayıcı işliyor (genellikle sağlayıcıya ve çözünürlüğe bağlı olarak 30 saniye ila 5 dakika).
|
||||
3. **succeeded** -- video hazır; agent uyanır ve bunu konuşmaya gönderir.
|
||||
1. **queued** -- görev oluşturuldu, sağlayıcının kabul etmesi bekleniyor.
|
||||
2. **running** -- sağlayıcı işliyor (genellikle sağlayıcıya ve çözünürlüğe bağlı olarak 30 saniye ile 5 dakika arasında).
|
||||
3. **succeeded** -- video hazır; agent uyanır ve videoyu konuşmaya gönderir.
|
||||
4. **failed** -- sağlayıcı hatası veya zaman aşımı; agent hata ayrıntılarıyla uyanır.
|
||||
|
||||
CLI’den durumu denetleyin:
|
||||
CLI üzerinden durumu kontrol edin:
|
||||
|
||||
```bash
|
||||
openclaw tasks list
|
||||
@ -80,26 +80,26 @@ openclaw tasks show <taskId>
|
||||
openclaw tasks cancel <taskId>
|
||||
```
|
||||
|
||||
Yinelenenleri önleme: geçerli oturum için bir video görevi zaten `queued` veya `running` durumundaysa, `video_generate` yeni bir görev başlatmak yerine mevcut görev durumunu döndürür. Yeni bir oluşturmayı tetiklemeden açıkça denetlemek için `action: "status"` kullanın.
|
||||
Yinelenmeyi önleme: geçerli oturum için bir video görevi zaten `queued` veya `running` durumundaysa, `video_generate` yeni bir görev başlatmak yerine mevcut görev durumunu döndürür. Yeni bir oluşturmayı tetiklemeden açıkça kontrol etmek için `action: "status"` kullanın.
|
||||
|
||||
## Desteklenen sağlayıcılar
|
||||
|
||||
| Sağlayıcı | Varsayılan model | Metin | Görsel ref. | Video ref. | API anahtarı |
|
||||
| --------------------- | ------------------------------- | ----- | ---------------------------------------------------- | ---------------- | ---------------------------------------- |
|
||||
| Alibaba | `wan2.6-t2v` | Evet | Evet (uzak URL) | Evet (uzak URL) | `MODELSTUDIO_API_KEY` |
|
||||
| Sağlayıcı | Varsayılan model | Metin | Görsel ref | Video ref | API anahtarı |
|
||||
| --------------------- | ------------------------------- | ----- | --------------------------------------------------- | ---------------- | ---------------------------------------- |
|
||||
| Alibaba | `wan2.6-t2v` | Evet | Evet (uzak URL) | Evet (uzak URL) | `MODELSTUDIO_API_KEY` |
|
||||
| BytePlus (1.0) | `seedance-1-0-pro-250528` | Evet | En fazla 2 görsel (yalnızca I2V modelleri; ilk + son kare) | Hayır | `BYTEPLUS_API_KEY` |
|
||||
| BytePlus Seedance 1.5 | `seedance-1-5-pro-251215` | Evet | En fazla 2 görsel (rol ile ilk + son kare) | Hayır | `BYTEPLUS_API_KEY` |
|
||||
| BytePlus Seedance 2.0 | `dreamina-seedance-2-0-260128` | Evet | En fazla 9 referans görsel | En fazla 3 video | `BYTEPLUS_API_KEY` |
|
||||
| ComfyUI | `workflow` | Evet | 1 görsel | Hayır | `COMFY_API_KEY` veya `COMFY_CLOUD_API_KEY` |
|
||||
| fal | `fal-ai/minimax/video-01-live` | Evet | 1 görsel | Hayır | `FAL_KEY` |
|
||||
| Google | `veo-3.1-fast-generate-preview` | Evet | 1 görsel | 1 video | `GEMINI_API_KEY` |
|
||||
| MiniMax | `MiniMax-Hailuo-2.3` | Evet | 1 görsel | Hayır | `MINIMAX_API_KEY` |
|
||||
| OpenAI | `sora-2` | Evet | 1 görsel | 1 video | `OPENAI_API_KEY` |
|
||||
| Qwen | `wan2.6-t2v` | Evet | Evet (uzak URL) | Evet (uzak URL) | `QWEN_API_KEY` |
|
||||
| Runway | `gen4.5` | Evet | 1 görsel | 1 video | `RUNWAYML_API_SECRET` |
|
||||
| Together | `Wan-AI/Wan2.2-T2V-A14B` | Evet | 1 görsel | Hayır | `TOGETHER_API_KEY` |
|
||||
| Vydra | `veo3` | Evet | 1 görsel (`kling`) | Hayır | `VYDRA_API_KEY` |
|
||||
| xAI | `grok-imagine-video` | Evet | 1 görsel | 1 video | `XAI_API_KEY` |
|
||||
| BytePlus Seedance 1.5 | `seedance-1-5-pro-251215` | Evet | En fazla 2 görsel (rol aracılığıyla ilk + son kare) | Hayır | `BYTEPLUS_API_KEY` |
|
||||
| BytePlus Seedance 2.0 | `dreamina-seedance-2-0-260128` | Evet | En fazla 9 referans görsel | En fazla 3 video | `BYTEPLUS_API_KEY` |
|
||||
| ComfyUI | `workflow` | Evet | 1 görsel | Hayır | `COMFY_API_KEY` veya `COMFY_CLOUD_API_KEY` |
|
||||
| fal | `fal-ai/minimax/video-01-live` | Evet | 1 görsel | Hayır | `FAL_KEY` |
|
||||
| Google | `veo-3.1-fast-generate-preview` | Evet | 1 görsel | 1 video | `GEMINI_API_KEY` |
|
||||
| MiniMax | `MiniMax-Hailuo-2.3` | Evet | 1 görsel | Hayır | `MINIMAX_API_KEY` |
|
||||
| OpenAI | `sora-2` | Evet | 1 görsel | 1 video | `OPENAI_API_KEY` |
|
||||
| Qwen | `wan2.6-t2v` | Evet | Evet (uzak URL) | Evet (uzak URL) | `QWEN_API_KEY` |
|
||||
| Runway | `gen4.5` | Evet | 1 görsel | 1 video | `RUNWAYML_API_SECRET` |
|
||||
| Together | `Wan-AI/Wan2.2-T2V-A14B` | Evet | 1 görsel | Hayır | `TOGETHER_API_KEY` |
|
||||
| Vydra | `veo3` | Evet | 1 görsel (`kling`) | Hayır | `VYDRA_API_KEY` |
|
||||
| xAI | `grok-imagine-video` | Evet | 1 görsel | 1 video | `XAI_API_KEY` |
|
||||
|
||||
Bazı sağlayıcılar ek veya alternatif API anahtarı ortam değişkenlerini kabul eder. Ayrıntılar için ilgili [sağlayıcı sayfalarına](#related) bakın.
|
||||
|
||||
@ -109,144 +109,136 @@ Bazı sağlayıcılar ek veya alternatif API anahtarı ortam değişkenlerini ka
|
||||
|
||||
Bu, `video_generate`, sözleşme testleri ve paylaşılan canlı tarama tarafından kullanılan açık mod sözleşmesidir.
|
||||
|
||||
| Sağlayıcı | `generate` | `imageToVideo` | `videoToVideo` | Güncel paylaşılan canlı kanallar |
|
||||
| Sağlayıcı | `generate` | `imageToVideo` | `videoToVideo` | Bugünkü paylaşılan canlı şeritler |
|
||||
| --------- | ---------- | -------------- | -------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Alibaba | Evet | Evet | Evet | `generate`, `imageToVideo`; `videoToVideo` atlanır çünkü bu sağlayıcı uzak `http(s)` video URL’leri gerektirir |
|
||||
| Alibaba | Evet | Evet | Evet | `generate`, `imageToVideo`; `videoToVideo` atlanır çünkü bu sağlayıcı uzak `http(s)` video URL’leri gerektirir |
|
||||
| BytePlus | Evet | Evet | Hayır | `generate`, `imageToVideo` |
|
||||
| ComfyUI | Evet | Evet | Hayır | Paylaşılan taramada yok; iş akışına özel kapsam Comfy testlerinde bulunur |
|
||||
| ComfyUI | Evet | Evet | Hayır | Paylaşılan taramada yok; iş akışına özgü kapsam Comfy testlerinde yer alır |
|
||||
| fal | Evet | Evet | Hayır | `generate`, `imageToVideo` |
|
||||
| Google | Evet | Evet | Evet | `generate`, `imageToVideo`; paylaşılan `videoToVideo` atlanır çünkü mevcut arabellek destekli Gemini/Veo taraması bu girdiyi kabul etmez |
|
||||
| Google | Evet | Evet | Evet | `generate`, `imageToVideo`; paylaşılan `videoToVideo` atlanır çünkü mevcut tampon destekli Gemini/Veo taraması bu girdiyi kabul etmez |
|
||||
| MiniMax | Evet | Evet | Hayır | `generate`, `imageToVideo` |
|
||||
| OpenAI | Evet | Evet | Evet | `generate`, `imageToVideo`; paylaşılan `videoToVideo` atlanır çünkü bu kuruluş/girdi yolu şu anda sağlayıcı tarafı inpaint/remix erişimi gerektirir |
|
||||
| Qwen | Evet | Evet | Evet | `generate`, `imageToVideo`; `videoToVideo` atlanır çünkü bu sağlayıcı uzak `http(s)` video URL’leri gerektirir |
|
||||
| Runway | Evet | Evet | Evet | `generate`, `imageToVideo`; `videoToVideo` yalnızca seçilen model `runway/gen4_aleph` olduğunda çalışır |
|
||||
| Qwen | Evet | Evet | Evet | `generate`, `imageToVideo`; `videoToVideo` atlanır çünkü bu sağlayıcı uzak `http(s)` video URL’leri gerektirir |
|
||||
| Runway | Evet | Evet | Evet | `generate`, `imageToVideo`; `videoToVideo` yalnızca seçilen model `runway/gen4_aleph` olduğunda çalışır |
|
||||
| Together | Evet | Evet | Hayır | `generate`, `imageToVideo` |
|
||||
| Vydra | Evet | Evet | Hayır | `generate`; paylaşılan `imageToVideo` atlanır çünkü paketlenmiş `veo3` yalnızca metindir ve paketlenmiş `kling` uzak bir görsel URL’si gerektirir |
|
||||
| xAI | Evet | Evet | Evet | `generate`, `imageToVideo`; `videoToVideo` atlanır çünkü bu sağlayıcı şu anda uzak bir MP4 URL’si gerektirir |
|
||||
| xAI | Evet | Evet | Evet | `generate`, `imageToVideo`; `videoToVideo` atlanır çünkü bu sağlayıcı şu anda uzak bir MP4 URL’si gerektirir |
|
||||
|
||||
## Araç parametreleri
|
||||
|
||||
### Zorunlu
|
||||
### Gerekli
|
||||
|
||||
| Parametre | Tür | Açıklama |
|
||||
| --------- | ------ | ------------------------------------------------------------------------- |
|
||||
| `prompt` | string | Oluşturulacak videonun metin açıklaması (`action: "generate"` için zorunludur) |
|
||||
| Parametre | Tür | Açıklama |
|
||||
| --------- | ------ | --------------------------------------------------------------------------- |
|
||||
| `prompt` | string | Oluşturulacak videonun metin açıklaması (`action: "generate"` için gereklidir) |
|
||||
|
||||
### İçerik girdileri
|
||||
|
||||
| Parametre | Tür | Açıklama |
|
||||
| ------------ | -------- | -------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `image` | string | Tek referans görseli (yol veya URL) |
|
||||
| `images` | string[] | Birden çok referans görseli (en fazla 9) |
|
||||
| `imageRoles` | string[] | Birleşik görsel listesine paralel, konuma göre isteğe bağlı rol ipuçları. Kanonik değerler: `first_frame`, `last_frame`, `reference_image` |
|
||||
| `video` | string | Tek referans videosu (yol veya URL) |
|
||||
| `videos` | string[] | Birden çok referans videosu (en fazla 4) |
|
||||
| `videoRoles` | string[] | Birleşik video listesine paralel, konuma göre isteğe bağlı rol ipuçları. Kanonik değer: `reference_video` |
|
||||
| `audioRef` | string | Tek referans sesi (yol veya URL). Sağlayıcı ses girdilerini desteklediğinde örneğin arka plan müziği veya ses referansı için kullanılır |
|
||||
| `audioRefs` | string[] | Birden çok referans ses (en fazla 3) |
|
||||
| `audioRoles` | string[] | Birleşik ses listesine paralel, konuma göre isteğe bağlı rol ipuçları. Kanonik değer: `reference_audio` |
|
||||
| Parametre | Tür | Açıklama |
|
||||
| ----------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `image` | string | Tek referans görseli (yol veya URL) |
|
||||
| `images` | string[] | Birden çok referans görseli (en fazla 9) |
|
||||
| `imageRoles`| string[] | Birleştirilmiş görsel listesine paralel isteğe bağlı konuma göre rol ipuçları. Kanonik değerler: `first_frame`, `last_frame`, `reference_image` |
|
||||
| `video` | string | Tek referans videosu (yol veya URL) |
|
||||
| `videos` | string[] | Birden çok referans videosu (en fazla 4) |
|
||||
| `videoRoles`| string[] | Birleştirilmiş video listesine paralel isteğe bağlı konuma göre rol ipuçları. Kanonik değer: `reference_video` |
|
||||
| `audioRef` | string | Tek referans sesi (yol veya URL). Sağlayıcının ses girdilerini desteklediği durumlarda örneğin arka plan müziği veya ses referansı için kullanılır |
|
||||
| `audioRefs` | string[] | Birden çok referans sesi (en fazla 3) |
|
||||
| `audioRoles`| string[] | Birleştirilmiş ses listesine paralel isteğe bağlı konuma göre rol ipuçları. Kanonik değer: `reference_audio` |
|
||||
|
||||
Rol ipuçları sağlayıcıya olduğu gibi iletilir. Kanonik değerler
|
||||
`VideoGenerationAssetRole` birleşiminden gelir ancak sağlayıcılar ek
|
||||
rol dizelerini kabul edebilir. `*Roles` dizileri karşılık gelen
|
||||
referans listesinden daha fazla giriş içermemelidir; bire bir hizalama
|
||||
hataları açık bir hatayla başarısız olur.
|
||||
Bir yuvayı ayarsız bırakmak için boş bir dize kullanın.
|
||||
rol string’lerini kabul edebilir. `*Roles` dizileri, karşılık gelen
|
||||
referans listesinden daha fazla öğe içermemelidir; bir eksik bir fazla
|
||||
hataları açık bir hata ile başarısız olur.
|
||||
Bir yuvayı ayarsız bırakmak için boş string kullanın.
|
||||
|
||||
### Stil denetimleri
|
||||
|
||||
| Parametre | Tür | Açıklama |
|
||||
| ----------------- | ------- | ----------------------------------------------------------------------------------------- |
|
||||
| Parametre | Tür | Açıklama |
|
||||
| ----------------- | ------- | ---------------------------------------------------------------------------------------- |
|
||||
| `aspectRatio` | string | `1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, `5:4`, `9:16`, `16:9`, `21:9` veya `adaptive` |
|
||||
| `resolution` | string | `480P`, `720P`, `768P` veya `1080P` |
|
||||
| `durationSeconds` | number | Saniye cinsinden hedef süre (sağlayıcının desteklediği en yakın değere yuvarlanır) |
|
||||
| `size` | string | Sağlayıcı desteklediğinde boyut ipucu |
|
||||
| `audio` | boolean | Desteklendiğinde çıktıda oluşturulan sesi etkinleştirir. `audioRef*` (girdiler) ile ayrıdır |
|
||||
| `watermark` | boolean | Desteklendiğinde sağlayıcı filigranını açıp kapatır |
|
||||
| `resolution` | string | `480P`, `720P`, `768P` veya `1080P` |
|
||||
| `durationSeconds` | number | Hedef süre, saniye cinsinden (sağlayıcının desteklediği en yakın değere yuvarlanır) |
|
||||
| `size` | string | Sağlayıcı destekliyorsa boyut ipucu |
|
||||
| `audio` | boolean | Destekleniyorsa çıktıdaki üretilmiş sesi etkinleştirir. `audioRef*` (girdiler) ile farklıdır |
|
||||
| `watermark` | boolean | Destekleniyorsa sağlayıcı filigranını açar/kapatır |
|
||||
|
||||
`adaptive`, sağlayıcıya özgü bir bekçi değerdir: yeteneklerinde `adaptive`
|
||||
bildiren sağlayıcılara olduğu gibi iletilir (örneğin BytePlus
|
||||
Seedance bunu giriş görseli boyutlarından oranı otomatik algılamak için
|
||||
`adaptive`, sağlayıcıya özgü bir sentinel değeridir: yeteneklerinde
|
||||
`adaptive` bildiren sağlayıcılara olduğu gibi iletilir (örneğin BytePlus
|
||||
Seedance bunu, giriş görselinin boyutlarından oranı otomatik algılamak için
|
||||
kullanır). Bunu bildirmeyen sağlayıcılar değeri araç sonucundaki
|
||||
`details.ignoredOverrides` üzerinden gösterir, böylece düşürülmesi görünür olur.
|
||||
`details.ignoredOverrides` üzerinden gösterir; böylece yok sayıldığı görünür olur.
|
||||
|
||||
### Gelişmiş
|
||||
|
||||
| Parametre | Tür | Açıklama |
|
||||
| ----------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `action` | string | `"generate"` (varsayılan), `"status"` veya `"list"` |
|
||||
| `model` | string | Sağlayıcı/model geçersiz kılması (ör. `runway/gen4.5`) |
|
||||
| `filename` | string | Çıktı dosya adı ipucu |
|
||||
| `providerOptions` | object | JSON nesnesi olarak sağlayıcıya özgü seçenekler (ör. `{"seed": 42, "draft": true}`). Yazılı bir şema bildiren sağlayıcılar anahtarları ve türleri doğrular; bilinmeyen anahtarlar veya uyuşmazlıklar geri dönüş sırasında adayın atlanmasına neden olur. Bildirilmiş bir şeması olmayan sağlayıcılar seçenekleri olduğu gibi alır. Her sağlayıcının ne kabul ettiğini görmek için `video_generate action=list` çalıştırın |
|
||||
| Parametre | Tür | Açıklama |
|
||||
| ----------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `action` | string | `"generate"` (varsayılan), `"status"` veya `"list"` |
|
||||
| `model` | string | Sağlayıcı/model geçersiz kılması (ör. `runway/gen4.5`) |
|
||||
| `filename` | string | Çıktı dosya adı ipucu |
|
||||
| `providerOptions` | object | JSON nesnesi olarak sağlayıcıya özgü seçenekler (ör. `{"seed": 42, "draft": true}`). Türlü şema bildiren sağlayıcılar anahtarları ve türleri doğrular; bilinmeyen anahtarlar veya uyuşmazlıklar, fallback sırasında adayın atlanmasına neden olur. Bildirilmiş şeması olmayan sağlayıcılar seçenekleri olduğu gibi alır. Her sağlayıcının ne kabul ettiğini görmek için `video_generate action=list` çalıştırın |
|
||||
|
||||
Tüm sağlayıcılar tüm parametreleri desteklemez. OpenClaw süreyi zaten
|
||||
sağlayıcının desteklediği en yakın değere normalize eder ve ayrıca bir geri dönüş
|
||||
sağlayıcısı farklı bir denetim yüzeyi sunduğunda boyuttan en-boy oranına gibi
|
||||
çevrilmiş geometri ipuçlarını yeniden eşler. Gerçekten desteklenmeyen
|
||||
geçersiz kılmalar, mümkün olan en iyi şekilde yok sayılır ve araç sonucunda uyarı
|
||||
olarak bildirilir. Sert yetenek sınırları (örneğin çok fazla referans girdisi)
|
||||
gönderimden önce başarısız olur.
|
||||
Tüm sağlayıcılar tüm parametreleri desteklemez. OpenClaw zaten süreyi sağlayıcının desteklediği en yakın değere normalize eder ve ayrıca bir fallback sağlayıcı farklı bir denetim yüzeyi sunduğunda boyuttan en-boy oranına gibi çevrilmiş geometri ipuçlarını yeniden eşler. Gerçekten desteklenmeyen geçersiz kılmalar en iyi çabayla yok sayılır ve araç sonucunda uyarı olarak bildirilir. Kesin yetenek sınırları (örneğin çok fazla referans girdisi) gönderimden önce başarısız olur.
|
||||
|
||||
Araç sonuçları uygulanan ayarları bildirir. OpenClaw, sağlayıcı geri dönüşü sırasında
|
||||
süreyi veya geometriyi yeniden eşlediğinde, döndürülen `durationSeconds`, `size`,
|
||||
`aspectRatio` ve `resolution` değerleri gönderilenleri yansıtır ve
|
||||
`details.normalization` istenenden uygulanana çeviriyi yakalar.
|
||||
Araç sonuçları uygulanan ayarları bildirir. OpenClaw sağlayıcı fallback’i sırasında süreyi veya geometriyi yeniden eşlediğinde, döndürülen `durationSeconds`, `size`, `aspectRatio` ve `resolution` değerleri gönderilen hali yansıtır; `details.normalization` ise istenenden uygulanana yapılan çeviriyi kaydeder.
|
||||
|
||||
Referans girdileri çalışma zamanı modunu da seçer:
|
||||
Referans girdileri ayrıca çalışma zamanı modunu da seçer:
|
||||
|
||||
- Referans medya yok: `generate`
|
||||
- Herhangi bir görsel referansı: `imageToVideo`
|
||||
- Herhangi bir video referansı: `videoToVideo`
|
||||
- Referans ses girdileri çözümlenen modu değiştirmez; görsel/video referanslarının seçtiği modun üzerine uygulanır ve yalnızca `maxInputAudios` bildiren sağlayıcılarla çalışır
|
||||
- Referans ses girdileri çözümlenen modu değiştirmez; görsel/video referanslarının seçtiği modun üzerine uygulanırlar ve yalnızca `maxInputAudios` bildiren sağlayıcılarla çalışırlar
|
||||
|
||||
Karışık görsel ve video referansları kararlı bir paylaşılan yetenek yüzeyi değildir.
|
||||
İstek başına tek bir referans türünü tercih edin.
|
||||
Karışık görsel ve video referansları, kararlı bir paylaşılan yetenek yüzeyi değildir.
|
||||
İstek başına tek bir referans türü tercih edin.
|
||||
|
||||
#### Geri dönüş ve yazılı seçenekler
|
||||
#### Fallback ve türlü seçenekler
|
||||
|
||||
Bazı yetenek denetimleri araç sınırı yerine geri dönüş katmanında uygulanır; böylece
|
||||
birincil sağlayıcının sınırlarını aşan bir istek yine de yetenekli bir geri dönüşte
|
||||
çalışabilir:
|
||||
Bazı yetenek kontrolleri, fallback katmanında uygulanır; araç sınırında değil.
|
||||
Böylece birincil sağlayıcının sınırlarını aşan bir istek, yine de bunu
|
||||
destekleyen bir fallback üzerinde çalışabilir:
|
||||
|
||||
- Etkin aday `maxInputAudios` bildirmiyorsa (veya bunu `0` olarak
|
||||
bildiriyorsa), istek ses referansları içerdiğinde atlanır ve
|
||||
bildiriyorsa), istek ses referansları içerdiğinde aday atlanır ve
|
||||
sonraki aday denenir.
|
||||
- Etkin adayın `maxDurationSeconds` değeri istenen
|
||||
`durationSeconds` değerinin altındaysa ve aday bir
|
||||
`supportedDurationSeconds` listesi bildirmiyorsa, atlanır.
|
||||
- İstek `providerOptions` içeriyorsa ve etkin aday
|
||||
açıkça yazılı bir `providerOptions` şeması bildiriyorsa, sağlanan
|
||||
anahtarlar şemada yoksa veya değer türleri uyuşmuyorsa aday
|
||||
atlanır. Henüz bir şema bildirmemiş sağlayıcılar seçenekleri
|
||||
olduğu gibi alır (geri uyumlu geçiş). Bir sağlayıcı
|
||||
boş bir şema bildirerek tüm sağlayıcı seçeneklerinden açıkça vazgeçebilir
|
||||
(`capabilities.providerOptions: {}`); bu da
|
||||
tür uyuşmazlığıyla aynı atlamaya neden olur.
|
||||
`durationSeconds` değerinden düşükse ve aday bir
|
||||
`supportedDurationSeconds` listesi bildirmiyorsa, aday atlanır.
|
||||
- İstek `providerOptions` içeriyorsa ve etkin aday açıkça türlü bir
|
||||
`providerOptions` şeması bildiriyorsa, sağlanan anahtarlar şemada yoksa
|
||||
veya değer türleri eşleşmiyorsa aday atlanır. Henüz şema bildirmemiş
|
||||
sağlayıcılar seçenekleri olduğu gibi alır (geriye dönük uyumlu geçiş).
|
||||
Bir sağlayıcı, boş bir şema bildirerek
|
||||
(`capabilities.providerOptions: {}`) tüm sağlayıcı seçeneklerinden açıkça
|
||||
vazgeçebilir; bu da tür uyuşmazlığındakiyle aynı atlamaya neden olur.
|
||||
|
||||
Bir istekteki ilk atlama nedeni `warn` düzeyinde günlüğe kaydedilir; böylece operatörler
|
||||
birincil sağlayıcılarının ne zaman pas geçildiğini görür; sonraki atlamalar uzun geri dönüş
|
||||
zincirlerini sessiz tutmak için `debug` düzeyinde günlüğe kaydedilir. Her aday atlanırsa,
|
||||
birleştirilmiş hata her biri için atlama nedenini içerir.
|
||||
Bir istekteki ilk atlama nedeni `warn` düzeyinde günlüğe yazılır; böylece
|
||||
operatörler birincil sağlayıcılarının neden pas geçildiğini görür.
|
||||
Sonraki atlamalar, uzun fallback zincirlerini sessiz tutmak için
|
||||
`debug` düzeyinde günlüğe yazılır. Her aday atlanırsa, toplanmış hata
|
||||
her biri için atlama nedenini içerir.
|
||||
|
||||
## Eylemler
|
||||
|
||||
- **generate** (varsayılan) -- verilen istem ve isteğe bağlı referans girdilerinden video oluşturur.
|
||||
- **status** -- başka bir oluşturma başlatmadan geçerli oturum için devam eden video görevinin durumunu denetler.
|
||||
- **generate** (varsayılan) -- verilen prompt ve isteğe bağlı referans girdilerinden bir video oluşturur.
|
||||
- **status** -- başka bir oluşturma başlatmadan geçerli oturum için işlemde olan video görevinin durumunu kontrol eder.
|
||||
- **list** -- kullanılabilir sağlayıcıları, modelleri ve yeteneklerini gösterir.
|
||||
|
||||
## Model seçimi
|
||||
|
||||
Bir video oluştururken OpenClaw modeli şu sırayla çözümler:
|
||||
Bir video oluşturulurken OpenClaw modeli şu sırayla çözümler:
|
||||
|
||||
1. **`model` araç parametresi** -- agent çağrıda bir tane belirtirse.
|
||||
2. **`videoGenerationModel.primary`** -- yapılandırmadan.
|
||||
1. **`model` araç parametresi** -- agent çağrıda bunu belirtirse.
|
||||
2. **`videoGenerationModel.primary`** -- config içinden.
|
||||
3. **`videoGenerationModel.fallbacks`** -- sırayla denenir.
|
||||
4. **Otomatik algılama** -- geçerli kimlik doğrulamaya sahip sağlayıcıları kullanır; önce geçerli varsayılan sağlayıcı, ardından kalan sağlayıcılar alfabetik sırayla.
|
||||
4. **Otomatik algılama** -- geçerli kimlik doğrulaması olan sağlayıcıları kullanır; önce mevcut varsayılan sağlayıcı, ardından kalan sağlayıcılar alfabetik sırayla.
|
||||
|
||||
Bir sağlayıcı başarısız olursa sonraki aday otomatik olarak denenir. Tüm adaylar başarısız olursa, hata her denemeden ayrıntılar içerir.
|
||||
Bir sağlayıcı başarısız olursa, sonraki aday otomatik olarak denenir. Tüm adaylar başarısız olursa hata, her denemeden ayrıntılar içerir.
|
||||
|
||||
Video oluşturmanın yalnızca açık `model`, `primary` ve `fallbacks`
|
||||
girdilerini kullanmasını istiyorsanız `agents.defaults.mediaGenerationAutoProviderFallback: false` ayarlayın.
|
||||
girdilerini kullanmasını istiyorsanız
|
||||
`agents.defaults.mediaGenerationAutoProviderFallback: false` ayarlayın.
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -263,28 +255,26 @@ girdilerini kullanmasını istiyorsanız `agents.defaults.mediaGenerationAutoPro
|
||||
|
||||
## Sağlayıcı notları
|
||||
|
||||
| Sağlayıcı | Notlar |
|
||||
| --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Sağlayıcı | Notlar |
|
||||
| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Alibaba | DashScope/Model Studio eşzamansız uç noktasını kullanır. Referans görseller ve videolar uzak `http(s)` URL’leri olmalıdır. |
|
||||
| BytePlus (1.0) | Sağlayıcı kimliği `byteplus`. Modeller: `seedance-1-0-pro-250528` (varsayılan), `seedance-1-0-pro-t2v-250528`, `seedance-1-0-pro-fast-251015`, `seedance-1-0-lite-t2v-250428`, `seedance-1-0-lite-i2v-250428`. T2V modelleri (`*-t2v-*`) görsel girdilerini kabul etmez; I2V modelleri ve genel `*-pro-*` modelleri tek bir referans görseli (ilk kare) destekler. Görseli konumsal olarak geçirin veya `role: "first_frame"` ayarlayın. Bir görsel sağlandığında T2V model kimlikleri otomatik olarak karşılık gelen I2V varyantına geçirilir. Desteklenen `providerOptions` anahtarları: `seed` (number), `draft` (boolean, 480p’yi zorlar), `camera_fixed` (boolean). |
|
||||
| BytePlus Seedance 1.5 | [`@openclaw/byteplus-modelark`](https://www.npmjs.com/package/@openclaw/byteplus-modelark) plugin’ini gerektirir. Sağlayıcı kimliği `byteplus-seedance15`. Model: `seedance-1-5-pro-251215`. Birleşik `content[]` API’sini kullanır. En fazla 2 giriş görselini destekler (first_frame + last_frame). Tüm girdiler uzak `https://` URL’leri olmalıdır. Her görselde `role: "first_frame"` / `"last_frame"` ayarlayın veya görselleri konumsal olarak geçirin. `aspectRatio: "adaptive"` giriş görselinden oranı otomatik algılar. `audio: true`, `generate_audio` ile eşlenir. `providerOptions.seed` (number) iletilir. |
|
||||
| BytePlus Seedance 2.0 | [`@openclaw/byteplus-modelark`](https://www.npmjs.com/package/@openclaw/byteplus-modelark) plugin’ini gerektirir. Sağlayıcı kimliği `byteplus-seedance2`. Modeller: `dreamina-seedance-2-0-260128`, `dreamina-seedance-2-0-fast-260128`. Birleşik `content[]` API’sini kullanır. En fazla 9 referans görseli, 3 referans videosu ve 3 referans sesi destekler. Tüm girdiler uzak `https://` URL’leri olmalıdır. Her varlıkta `role` ayarlayın — desteklenen değerler: `"first_frame"`, `"last_frame"`, `"reference_image"`, `"reference_video"`, `"reference_audio"`. `aspectRatio: "adaptive"` giriş görselinden oranı otomatik algılar. `audio: true`, `generate_audio` ile eşlenir. `providerOptions.seed` (number) iletilir. |
|
||||
| ComfyUI | İş akışı odaklı yerel veya bulut yürütme. Yapılandırılmış grafik üzerinden metinden videoya ve görselden videoya destekler. |
|
||||
| fal | Uzun süren işler için kuyruk destekli akış kullanır. Yalnızca tek görsel referansı. |
|
||||
| BytePlus (1.0) | Sağlayıcı kimliği `byteplus`. Modeller: `seedance-1-0-pro-250528` (varsayılan), `seedance-1-0-pro-t2v-250528`, `seedance-1-0-pro-fast-251015`, `seedance-1-0-lite-t2v-250428`, `seedance-1-0-lite-i2v-250428`. T2V modelleri (`*-t2v-*`) görsel girdilerini kabul etmez; I2V modelleri ve genel `*-pro-*` modelleri tek bir referans görseli (ilk kare) destekler. Görseli konumsal olarak geçin veya `role: "first_frame"` ayarlayın. Bir görsel sağlandığında T2V model kimlikleri otomatik olarak karşılık gelen I2V varyantına geçirilir. Desteklenen `providerOptions` anahtarları: `seed` (number), `draft` (boolean, 480p’yi zorlar), `camera_fixed` (boolean). |
|
||||
| BytePlus Seedance 1.5 | [`@openclaw/byteplus-modelark`](https://www.npmjs.com/package/@openclaw/byteplus-modelark) Plugin gerektirir. Sağlayıcı kimliği `byteplus-seedance15`. Model: `seedance-1-5-pro-251215`. Birleşik `content[]` API’sini kullanır. En fazla 2 giriş görseli destekler (first_frame + last_frame). Tüm girdiler uzak `https://` URL’leri olmalıdır. Her görselde `role: "first_frame"` / `"last_frame"` ayarlayın veya görselleri konumsal olarak geçin. `aspectRatio: "adaptive"` oranı giriş görselinden otomatik algılar. `audio: true`, `generate_audio` değerine eşlenir. `providerOptions.seed` (number) iletilir. |
|
||||
| BytePlus Seedance 2.0 | [`@openclaw/byteplus-modelark`](https://www.npmjs.com/package/@openclaw/byteplus-modelark) Plugin gerektirir. Sağlayıcı kimliği `byteplus-seedance2`. Modeller: `dreamina-seedance-2-0-260128`, `dreamina-seedance-2-0-fast-260128`. Birleşik `content[]` API’sini kullanır. En fazla 9 referans görseli, 3 referans videosu ve 3 referans sesi destekler. Tüm girdiler uzak `https://` URL’leri olmalıdır. Her varlık için `role` ayarlayın — desteklenen değerler: `"first_frame"`, `"last_frame"`, `"reference_image"`, `"reference_video"`, `"reference_audio"`. `aspectRatio: "adaptive"` oranı giriş görselinden otomatik algılar. `audio: true`, `generate_audio` değerine eşlenir. `providerOptions.seed` (number) iletilir. |
|
||||
| ComfyUI | İş akışı odaklı yerel veya bulut yürütme. Yapılandırılan grafik üzerinden metinden videoya ve görselden videoya desteği sunar. |
|
||||
| fal | Uzun süren işler için kuyruk destekli akış kullanır. Yalnızca tek görsel referansı. |
|
||||
| Google | Gemini/Veo kullanır. Bir görsel veya bir video referansını destekler. |
|
||||
| MiniMax | Yalnızca tek görsel referansı. |
|
||||
| OpenAI | Yalnızca `size` geçersiz kılması iletilir. Diğer stil geçersiz kılmaları (`aspectRatio`, `resolution`, `audio`, `watermark`) bir uyarıyla yok sayılır. |
|
||||
| Qwen | Alibaba ile aynı DashScope arka ucunu kullanır. Referans girdileri uzak `http(s)` URL’leri olmalıdır; yerel dosyalar peşinen reddedilir. |
|
||||
| Runway | Veri URI’leri aracılığıyla yerel dosyaları destekler. Videodan videoya için `runway/gen4_aleph` gerekir. Yalnızca metin çalıştırmaları `16:9` ve `9:16` en-boy oranlarını sunar. |
|
||||
| OpenAI | Yalnızca `size` geçersiz kılması iletilir. Diğer stil geçersiz kılmaları (`aspectRatio`, `resolution`, `audio`, `watermark`) bir uyarıyla yok sayılır. |
|
||||
| Qwen | Alibaba ile aynı DashScope arka ucunu kullanır. Referans girdileri uzak `http(s)` URL’leri olmalıdır; yerel dosyalar daha başta reddedilir. |
|
||||
| Runway | Data URI’leri üzerinden yerel dosyaları destekler. Videodan videoya için `runway/gen4_aleph` gerekir. Yalnızca metinli çalıştırmalar `16:9` ve `9:16` en-boy oranlarını sunar. |
|
||||
| Together | Yalnızca tek görsel referansı. |
|
||||
| Vydra | Kimlik doğrulamayı düşüren yönlendirmelerden kaçınmak için doğrudan `https://www.vydra.ai/api/v1` kullanır. `veo3` paketlenmiş olarak yalnızca metinden videoya sunulur; `kling` uzak bir görsel URL’si gerektirir. |
|
||||
| xAI | Metinden videoya, görselden videoya ve uzak video düzenleme/uzatma akışlarını destekler. |
|
||||
| Vydra | Kimlik doğrulamayı düşüren yönlendirmelerden kaçınmak için doğrudan `https://www.vydra.ai/api/v1` kullanır. `veo3` paketli olarak yalnızca metinden videoya sunulur; `kling` uzak bir görsel URL’si gerektirir. |
|
||||
| xAI | Metinden videoya, görselden videoya ve uzak video düzenleme/uzatma akışlarını destekler. |
|
||||
|
||||
## Sağlayıcı yetenek modları
|
||||
|
||||
Paylaşılan video oluşturma sözleşmesi artık sağlayıcıların yalnızca düz toplu sınırlar yerine
|
||||
moda özgü yetenekler bildirmesine izin veriyor. Yeni sağlayıcı
|
||||
uygulamaları açık mod bloklarını tercih etmelidir:
|
||||
Paylaşılan video oluşturma sözleşmesi artık sağlayıcıların yalnızca düz toplu sınırlar yerine moda özgü yetenekler bildirmesine izin veriyor. Yeni sağlayıcı uygulamaları açık mod bloklarını tercih etmelidir:
|
||||
|
||||
```typescript
|
||||
capabilities: {
|
||||
@ -308,38 +298,43 @@ capabilities: {
|
||||
}
|
||||
```
|
||||
|
||||
`maxInputImages` ve `maxInputVideos` gibi düz toplu alanlar,
|
||||
dönüştürme modu desteğini duyurmak için yeterli değildir. Sağlayıcılar,
|
||||
canlı testlerin, sözleşme testlerinin ve paylaşılan `video_generate` aracının
|
||||
mod desteğini deterministik biçimde doğrulayabilmesi için
|
||||
`generate`, `imageToVideo` ve `videoToVideo` alanlarını açıkça bildirmelidir.
|
||||
`maxInputImages` ve `maxInputVideos` gibi düz toplu alanlar, dönüşüm modu desteğini bildirmek için yeterli değildir. Sağlayıcılar `generate`, `imageToVideo` ve `videoToVideo` modlarını açıkça bildirmelidir; böylece canlı testler, sözleşme testleri ve paylaşılan `video_generate` aracı mod desteğini deterministik olarak doğrulayabilir.
|
||||
|
||||
## Canlı testler
|
||||
|
||||
Paylaşılan paketlenmiş sağlayıcılar için isteğe bağlı canlı kapsam:
|
||||
Paylaşılan paketli sağlayıcılar için isteğe bağlı canlı kapsam:
|
||||
|
||||
```bash
|
||||
OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/video-generation-providers.live.test.ts
|
||||
```
|
||||
|
||||
Repo sarmalayıcısı:
|
||||
Repo wrapper:
|
||||
|
||||
```bash
|
||||
pnpm test:live:media video
|
||||
```
|
||||
|
||||
Bu canlı dosya eksik sağlayıcı ortam değişkenlerini `~/.profile` içinden yükler,
|
||||
varsayılan olarak kaydedilmiş kimlik doğrulama profilleri yerine canlı/ortam API anahtarlarını
|
||||
tercih eder ve yerel medya ile güvenle çalıştırabildiği bildirilmiş modları yürütür:
|
||||
Bu canlı dosya, eksik sağlayıcı ortam değişkenlerini `~/.profile` içinden yükler, varsayılan olarak kayıtlı kimlik doğrulama profilleri yerine canlı/env API anahtarlarını tercih eder ve varsayılan olarak sürüm açısından güvenli bir smoke çalıştırır:
|
||||
|
||||
- taramadaki FAL dışı her sağlayıcı için `generate`
|
||||
- bir saniyelik ıstakoz prompt’u
|
||||
- `OPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS` üzerinden sağlayıcı başına işlem sınırı
|
||||
(varsayılan olarak `180000`)
|
||||
|
||||
FAL isteğe bağlıdır çünkü sağlayıcı tarafı kuyruk gecikmesi sürüm süresine baskın çıkabilir:
|
||||
|
||||
```bash
|
||||
pnpm test:live:media video --video-providers fal
|
||||
```
|
||||
|
||||
Paylaşılan taramanın yerel medya ile güvenli şekilde çalıştırabildiği bildirilmiş dönüşüm modlarını da çalıştırmak için `OPENCLAW_LIVE_VIDEO_GENERATION_FULL_MODES=1` ayarlayın:
|
||||
|
||||
- taramadaki her sağlayıcı için `generate`
|
||||
- `capabilities.imageToVideo.enabled` olduğunda `imageToVideo`
|
||||
- `capabilities.videoToVideo.enabled` olduğunda ve sağlayıcı/model
|
||||
paylaşılan taramada arabellek destekli yerel video girdisini kabul ettiğinde `videoToVideo`
|
||||
- `capabilities.videoToVideo.enabled` olduğunda ve sağlayıcı/model paylaşılan taramada tampon destekli yerel video girdisini kabul ettiğinde `videoToVideo`
|
||||
|
||||
Bugün paylaşılan `videoToVideo` canlı kanalı şunu kapsar:
|
||||
Bugün paylaşılan `videoToVideo` canlı şeridi şunları kapsar:
|
||||
|
||||
- yalnızca `runway/gen4_aleph` seçtiğinizde `runway`
|
||||
- yalnızca `runway/gen4_aleph` seçildiğinde `runway`
|
||||
|
||||
## Yapılandırma
|
||||
|
||||
@ -367,7 +362,7 @@ openclaw config set agents.defaults.videoGenerationModel.primary "qwen/wan2.6-t2
|
||||
## İlgili
|
||||
|
||||
- [Araçlara Genel Bakış](/tr/tools)
|
||||
- [Arka Plan Görevleri](/tr/automation/tasks) -- eşzamansız video oluşturma için görev izleme
|
||||
- [Arka Plan Görevleri](/tr/automation/tasks) -- eşzamansız video oluşturma için görev takibi
|
||||
- [Alibaba Model Studio](/tr/providers/alibaba)
|
||||
- [BytePlus](/tr/concepts/model-providers#byteplus-international)
|
||||
- [ComfyUI](/tr/providers/comfy)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user