openclaw doctor, OpenClaw için onarım + geçiş aracıdır. Bayat yapılandırma/durumu düzeltir, sağlığı denetler ve uygulanabilir onarım adımları sağlar.
Hızlı başlangıç
Başsız ve otomasyon modları
- --yes
- --fix
- --lint
- --fix --force
- --non-interactive
- --deep
Salt okunur lint modu
openclaw doctor --lint, openclaw doctor --fix komutunun otomasyon dostu
kardeşidir. İkisi de doctor sağlık denetimlerini kullanır, ancak duruşları
farklıdır:
| Mod | Sorular | Yapılandırma/durum yazar | Çıktı | Bunun için kullan |
|---|---|---|---|---|
openclaw doctor | evet | hayır | kullanıcı dostu sağlık raporu | durumu denetleyen bir insan |
openclaw doctor --fix | bazen | evet, onarım ilkesiyle | kullanıcı dostu onarım günlüğü | onaylı onarımları uygulama |
openclaw doctor --lint | hayır | hayır | yapılandırılmış bulgular | CI, ön kontrol ve inceleme kapıları |
repair() uygulaması
sağlayabilir. doctor --fix, bu onarımlar mevcut olduğunda uygular ve henüz
taşınmamış denetimler için mevcut doctor onarım akışını kullanmaya devam eder.
Yapılandırılmış onarım sözleşmesi, onarım raporlamasını algılamadan da ayırır:
detect() mevcut bulguları bildirirken repair() değişiklikleri,
yapılandırma/dosya farklarını ve dosya dışı yan etkileri bildirebilir. Bu,
lint denetimlerinin mutasyon planlamasına neden olmadan gelecekteki
doctor --fix --dry-run ve fark çıktısı için geçiş yolunu açık tutar.
Örnekler:
ok: seçilen önem eşiğini karşılayan görünür bir bulgu olup olmadığıchecksRun: yürütülen sağlık denetimi sayısıchecksSkipped: seçilen profil,--onlyveya--skiptarafından atlanan denetimlerfindings:checkId,severity,messageve isteğe bağlıpath,line,column,ocPathvefixHintiçeren yapılandırılmış tanı bilgileri
0: seçilen eşikte veya üzerinde bulgu yok1: bir veya daha fazla bulgu seçilen eşiği karşıladı2: lint bulguları üretilemeden önce komut/çalışma zamanı hatası
--severity-min info|warning|error kullan. Varsayılan otomasyon kümesinden hariç tutulan daha derin, isteğe bağlı denetimler dahil olmak üzere eksiksiz lint envanterini çalıştırmak için --all kullan. Dar ön kontrol kapıları için --only <id> ve
lint çalışmasının geri kalanını etkin tutarken gürültülü bir denetimi geçici olarak hariç tutmak için
--skip <id> kullan.
--json, --severity-min, --all, --only ve --skip gibi lint çıktısı
seçenekleri --lint ile eşleştirilmelidir; normal doctor ve onarım çalışmaları
bunları reddeder.
Ne yapar (özet)
Sağlık, UI ve güncellemeler
Sağlık, UI ve güncellemeler
- Git kurulumları için isteğe bağlı ön uçuş güncellemesi (yalnızca etkileşimli).
- UI protokol güncelliği denetimi (protokol şeması daha yeniyse Control UI yeniden derlenir).
- Sağlık denetimi + yeniden başlatma istemi.
- Skills durum özeti (uygun/eksik/engellenmiş) ve plugin durumu.
Yapılandırma ve geçişler
Yapılandırma ve geçişler
- Eski değerler için yapılandırma normalleştirme.
- Eski düz
talk.*alanlarındantalk.provider+talk.providers.<provider>içine Talk yapılandırma geçişi. - Eski Chrome uzantısı yapılandırmaları ve Chrome MCP hazırlığı için tarayıcı geçiş denetimleri.
- OpenCode provider geçersiz kılma uyarıları (
models.providers.opencode/models.providers.opencode-go). - Eski OpenAI Codex provider/profil geçişi (
openai-codex→openai) ve bayatmodels.providers.openai-codexiçin gölgeleme uyarıları. - OpenAI Codex OAuth profilleri için OAuth TLS önkoşulları denetimi.
plugins.allowkısıtlayıcıyken araç ilkesi hâlâ joker karakter veya plugin sahipli araçlar istediğinde Plugin/araç allowlist uyarıları.- Eski disk üzerindeki durum geçişi (oturumlar/agent dizini/WhatsApp kimlik doğrulaması).
- Eski plugin manifest sözleşme anahtarı geçişi (
speechProviders,realtimeTranscriptionProviders,realtimeVoiceProviders,mediaUnderstandingProviders,imageGenerationProviders,videoGenerationProviders,webFetchProviders,webSearchProviders→contracts). - Eski cron deposu geçişi (
jobId,schedule.cron, üst düzey teslim/payload alanları, payloadprovider,notify: truewebhook geri dönüş işleri). - Eski tüm-agent çalışma zamanı ilkesi temizliği; provider/model çalışma zamanı ilkesi etkin rota seçicidir.
- Pluginler etkinleştirildiğinde bayat plugin yapılandırması temizliği;
plugins.enabled=falseolduğunda bayat plugin referansları durağan kapsama yapılandırması olarak ele alınır ve korunur.
Durum ve bütünlük
Durum ve bütünlük
- Oturum kilit dosyası incelemesi ve bayat kilit temizliği.
- Etkilenen 2026.4.24 derlemeleri tarafından oluşturulan yinelenmiş prompt-yeniden-yazma dalları için oturum transkripti onarımı.
- Takılmış subagent yeniden başlatma-kurtarma tombstone algılama;
--fix, bayat iptal edilmiş kurtarma bayraklarını temizlemeyi destekler, böylece başlangıç çocuğu yeniden başlatma-iptal edilmiş olarak görmeye devam etmez. - Durum bütünlüğü ve izin denetimleri (oturumlar, transkriptler, durum dizini).
- Yerel çalışırken yapılandırma dosyası izin denetimleri (chmod 600).
- Model kimlik doğrulama sağlığı: OAuth süresinin dolmasını denetler, süresi dolmak üzere olan tokenları yenileyebilir ve kimlik doğrulama profili cooldown/devre dışı durumlarını bildirir.
Gateway, hizmetler ve supervisorlar
Gateway, hizmetler ve supervisorlar
- Sandbox etkinleştirildiğinde sandbox imajı onarımı.
- Eski hizmet geçişi ve ek gateway algılama.
- Matrix kanalı eski durum geçişi (
--fix/--repairmodunda). - Gateway çalışma zamanı denetimleri (hizmet kurulu ama çalışmıyor; önbelleğe alınmış launchd etiketi).
- Kanal durum uyarıları (çalışan gateway üzerinden yoklanır).
- Kanala özgü izin denetimleri
openclaw channels capabilitiesaltında bulunur; örneğin Discord ses kanalı izinleriopenclaw channels capabilities --channel discord --target channel:<channel-id>ile denetlenir. - Yerel TUI istemcileri hâlâ çalışırken bozulmuş Gateway event-loop sağlığı için WhatsApp yanıt verebilirlik denetimleri;
--fixyalnızca doğrulanmış yerel TUI istemcilerini durdurur. - Birincil modellerde, geri dönüşlerde, görüntü/video üretim modellerinde, heartbeat/subagent/compaction geçersiz kılmalarında, hooklarda, kanal model geçersiz kılmalarında ve oturum rota sabitlemelerinde eski
openai-codex/*model refleri için Codex rota onarımı;--fixbunlarıopenai/*olarak yeniden yazar,openai-codex:*kimlik doğrulama profillerini/sırasınıopenai:*içine taşır, bayat oturum/tüm-agent çalışma zamanı sabitlemelerini kaldırır ve kanonik OpenAI agent reflerini varsayılan Codex harness üzerinde bırakır. - İsteğe bağlı onarımla supervisor yapılandırma denetimi (launchd/systemd/schtasks).
- Kurulum veya güncelleme sırasında kabuk
HTTP_PROXY/HTTPS_PROXY/NO_PROXYdeğerlerini yakalayan gateway hizmetleri için gömülü proxy ortam temizliği. - Gateway çalışma zamanı en iyi uygulama denetimleri (Node ve Bun, sürüm yöneticisi yolları).
- Gateway port çakışması tanıları (varsayılan
18789).
Kimlik doğrulama, güvenlik ve eşleme
Kimlik doğrulama, güvenlik ve eşleme
- Açık DM ilkeleri için güvenlik uyarıları.
- Yerel token modu için Gateway kimlik doğrulama denetimleri (token kaynağı yoksa token üretimi önerir; token SecretRef yapılandırmalarının üzerine yazmaz).
- Cihaz eşleme sorun algılama (bekleyen ilk kez eşleme istekleri, bekleyen rol/kapsam yükseltmeleri, bayat yerel cihaz-token önbellek sapması ve eşlenmiş kayıt kimlik doğrulama sapması).
Çalışma alanı ve kabuk
Çalışma alanı ve kabuk
- Linux üzerinde systemd linger denetimi.
- Çalışma alanı bootstrap dosya boyutu denetimi (bağlam dosyaları için kesilme/sınıra yakın uyarıları).
- Varsayılan agent için Skills hazırlık denetimi; eksik binary, env, yapılandırma veya OS gereksinimleri olan izin verilmiş skills bildirir ve
--fix, kullanılamayan skills öğeleriniskills.entriesiçinde devre dışı bırakabilir. - Kabuk tamamlama durum denetimi ve otomatik kurulum/yükseltme.
- Bellek araması embedding provider hazırlık denetimi (yerel model, uzak API anahtarı veya QMD binary).
- Kaynak kurulum denetimleri (pnpm çalışma alanı uyumsuzluğu, eksik UI varlıkları, eksik tsx binary).
- Güncellenmiş yapılandırma + sihirbaz meta verisi yazar.
Dreams UI geri doldurma ve sıfırlama
Control UI Dreams sahnesi, grounded dreaming iş akışı için Geri doldur, Sıfırla ve Grounded Temizle eylemlerini içerir. Bu eylemler gateway doctor tarzı RPC yöntemlerini kullanır, ancakopenclaw doctor CLI onarımı/geçişinin parçası değildir.
Ne yaparlar:
- Geri doldur, etkin çalışma alanındaki geçmiş
memory/YYYY-MM-DD.mddosyalarını tarar, grounded REM günlük geçişini çalıştırır ve geri alınabilir geri doldurma girdileriniDREAMS.mdiçine yazar. - Sıfırla, yalnızca işaretlenmiş geri doldurma günlük girdilerini
DREAMS.mddosyasından kaldırır. - Grounded Temizle, yalnızca geçmiş yeniden oynatmadan gelen ve henüz canlı hatırlama veya günlük destek biriktirmemiş aşamalanmış yalnızca-grounded kısa vadeli girdileri kaldırır.
MEMORY.mddosyasını düzenlemezler- tam doctor geçişlerini çalıştırmazlar
- aşamalanmış CLI yolunu açıkça önce çalıştırmadığın sürece grounded adayları canlı kısa vadeli promotion deposuna otomatik olarak aşamalamazlar
DREAMS.md dosyasını inceleme yüzeyi olarak tutarken grounded kalıcı adayları kısa vadeli dreaming deposuna aşamalar.
Ayrıntılı davranış ve gerekçe
0. İsteğe bağlı güncelleme (git kurulumları)
0. İsteğe bağlı güncelleme (git kurulumları)
1. Yapılandırma normalleştirme
1. Yapılandırma normalleştirme
messages.ackReaction), doctor bunları mevcut şemaya normalleştirir.Buna eski Talk düz alanları da dahildir. Mevcut herkese açık Talk konuşma yapılandırması talk.provider + talk.providers.<provider>, gerçek zamanlı ses yapılandırması ise talk.realtime.* şeklindedir. Doctor, eski talk.voiceId / talk.voiceAliases / talk.modelId / talk.outputFormat / talk.apiKey şekillerini provider haritasına yeniden yazar ve eski üst düzey gerçek zamanlı seçicileri (talk.mode, talk.transport, talk.brain, talk.model, talk.voice) talk.realtime içine yeniden yazar.Doctor ayrıca plugins.allow boş değilken ve araç ilkesi joker karakter veya Plugin’e ait araç girdileri kullandığında uyarır. tools.allow: ["*"] yalnızca gerçekten yüklenen Plugin’lerden gelen araçlarla eşleşir; özel Plugin izin listesini atlamaz.2. Eski yapılandırma anahtarı geçişleri
2. Eski yapılandırma anahtarı geçişleri
openclaw doctor çalıştırmanızı ister.Doctor şunları yapar:- Hangi eski anahtarların bulunduğunu açıklar.
- Uyguladığı geçişi gösterir.
~/.openclaw/openclaw.jsondosyasını güncellenmiş şemayla yeniden yazar.
openclaw doctor --fix çalıştırmanızı ister; başlangıçta openclaw.json dosyasını yeniden yazmaz. Cron iş deposu geçişleri de openclaw doctor --fix tarafından işlenir.Mevcut geçişler:routing.allowFrom→channels.whatsapp.allowFromrouting.groupChat.requireMention→channels.whatsapp/telegram/imessage.groups."*".requireMentionrouting.groupChat.historyLimit→messages.groupChat.historyLimitrouting.groupChat.mentionPatterns→messages.groupChat.mentionPatternschannels.telegram.requireMention→channels.telegram.groups."*".requireMention- emekliye ayrılmış
channels.webchatvegateway.webchatkaldırılır routing.queue→messages.queuerouting.bindings→ üst düzeybindingsrouting.agents/routing.defaultAgentId→agents.list+agents.list[].default- eski
talk.voiceId/talk.voiceAliases/talk.modelId/talk.outputFormat/talk.apiKey→talk.provider+talk.providers.<provider> - eski üst düzey gerçek zamanlı Talk seçicileri (
talk.mode/talk.transport/talk.brain/talk.model/talk.voice) +talk.provider/talk.providers→talk.realtime routing.agentToAgent→tools.agentToAgentrouting.transcribeAudio→tools.media.audio.modelsmessages.tts.<provider>(openai/elevenlabs/microsoft/edge) →messages.tts.providers.<provider>messages.tts.provider: "edge"vemessages.tts.providers.edge→messages.tts.provider: "microsoft"vemessages.tts.providers.microsoft- TTS konuşmacı seçimi alanları (
voice/voiceName/voiceId) →speakerVoice/speakerVoiceId channels.discord.voice.tts.<provider>(openai/elevenlabs/microsoft/edge) →channels.discord.voice.tts.providers.<provider>channels.discord.accounts.<id>.voice.tts.<provider>(openai/elevenlabs/microsoft/edge) →channels.discord.accounts.<id>.voice.tts.providers.<provider>plugins.entries.voice-call.config.tts.<provider>(openai/elevenlabs/microsoft/edge) →plugins.entries.voice-call.config.tts.providers.<provider>plugins.entries.voice-call.config.tts.provider: "edge"veplugins.entries.voice-call.config.tts.providers.edge→provider: "microsoft"veproviders.microsoftplugins.entries.voice-call.config.provider: "log"→"mock"plugins.entries.voice-call.config.twilio.from→plugins.entries.voice-call.config.fromNumberplugins.entries.voice-call.config.streaming.sttProvider→plugins.entries.voice-call.config.streaming.providerplugins.entries.voice-call.config.streaming.openaiApiKey|sttModel|silenceDurationMs|vadThreshold→plugins.entries.voice-call.config.streaming.providers.openai.*bindings[].match.accountID→bindings[].match.accountId- Adlandırılmış
accountsiçeren ama kalıcı tek hesaplı üst düzey kanal değerleri bulunan kanallarda, bu hesap kapsamlı değerleri ilgili kanal için seçilen yükseltilmiş hesaba taşı (accounts.defaultçoğu kanal için; Matrix mevcut eşleşen adlandırılmış/varsayılan hedefi koruyabilir) identity→agents.list[].identityagent.*→agents.defaults+tools.*(tools/elevated/exec/sandbox/subagents)agent.model/allowedModels/modelAliases/modelFallbacks/imageModelFallbacks→agents.defaults.models+agents.defaults.model.primary/fallbacks+agents.defaults.imageModel.primary/fallbacksagents.defaults.llmkaldırılır; yavaş sağlayıcı/model zaman aşımları içinmodels.providers.<id>.timeoutSecondskullanın ve tüm çalıştırmanın daha uzun sürmesi gerektiğinde ajan/çalıştırma zaman aşımını bu değerin üzerinde tutunbrowser.ssrfPolicy.allowPrivateNetwork→browser.ssrfPolicy.dangerouslyAllowPrivateNetworkbrowser.profiles.*.driver: "extension"→"existing-session"browser.relayBindHostkaldırılır (eski uzantı röle ayarı)- eski
models.providers.*.api: "openai"→"openai-completions"(Gateway başlangıcı,apideğeri gelecekteki veya bilinmeyen bir enum değerine ayarlanmış sağlayıcıları da kapalı hata vermek yerine atlar) plugins.entries.codex.config.codexDynamicToolsProfilekaldırılır; Codex uygulama sunucusu Codex’e özgü çalışma alanı araçlarını her zaman yerel tutar
- İki veya daha fazla
channels.<channel>.accountsgirdisichannels.<channel>.defaultAccountveyaaccounts.defaultolmadan yapılandırılmışsa, doctor yedek yönlendirmenin beklenmeyen bir hesap seçebileceği konusunda uyarır. channels.<channel>.defaultAccountbilinmeyen bir hesap kimliğine ayarlanmışsa, doctor uyarır ve yapılandırılmış hesap kimliklerini listeler.
2b. OpenCode sağlayıcı geçersiz kılmaları
2b. OpenCode sağlayıcı geçersiz kılmaları
models.providers.opencode, opencode-zen veya opencode-go girdilerini elle eklediyseniz, bu openclaw/plugin-sdk/llm içindeki yerleşik OpenCode kataloğunu geçersiz kılar. Bu, modelleri yanlış API’ye zorlayabilir veya maliyetleri sıfırlayabilir. Doctor, geçersiz kılmayı kaldırıp model başına API yönlendirmesini ve maliyetleri geri yükleyebilmeniz için uyarır.2c. Tarayıcı geçişi ve Chrome MCP hazır olma durumu
2c. Tarayıcı geçişi ve Chrome MCP hazır olma durumu
browser.profiles.*.driver: "extension"değeri"existing-session"olurbrowser.relayBindHostkaldırılır
defaultProfile: "user" veya yapılandırılmış bir existing-session profili kullandığınızda ana makineye yerel Chrome MCP yolunu da denetler:- varsayılan otomatik bağlanma profilleri için Google Chrome’un aynı ana makinede yüklü olup olmadığını denetler
- algılanan Chrome sürümünü denetler ve Chrome 144’ün altındaysa uyarır
- tarayıcı inceleme sayfasında uzaktan hata ayıklamayı etkinleştirmenizi hatırlatır (örneğin
chrome://inspect/#remote-debugging,brave://inspect/#remote-debuggingveyaedge://inspect/#remote-debugging)
- gateway/node ana makinesinde Chromium tabanlı 144+ bir tarayıcı
- tarayıcının yerel olarak çalışıyor olması
- o tarayıcıda uzaktan hata ayıklamanın etkinleştirilmiş olması
- tarayıcıdaki ilk bağlanma onayı istemini onaylama
responsebody, PDF dışa aktarma, indirme kesme ve toplu işlemler gibi gelişmiş rotalar hâlâ yönetilen bir tarayıcı veya ham CDP profili gerektirir.Bu denetim Docker, sandbox, uzak tarayıcı veya diğer başsız akışlar için geçerli değildir. Bunlar ham CDP kullanmaya devam eder.2d. OAuth TLS önkoşulları
2d. OAuth TLS önkoşulları
UNABLE_TO_GET_ISSUER_CERT_LOCALLY, süresi dolmuş sertifika veya kendinden imzalı sertifika), doctor platforma özgü düzeltme kılavuzu yazdırır. Homebrew Node kullanılan macOS’ta düzeltme genellikle brew postinstall ca-certificates komutudur. --deep ile, Gateway sağlıklı olsa bile yoklama çalışır.2e. Codex OAuth sağlayıcı geçersiz kılmaları
2e. Codex OAuth sağlayıcı geçersiz kılmaları
models.providers.openai-codex altında eski OpenAI aktarım ayarları eklediyseniz, bunlar yeni sürümlerin otomatik olarak kullandığı yerleşik Codex OAuth sağlayıcı yolunu gölgeleyebilir. Doctor, bu eski aktarım ayarlarını Codex OAuth ile birlikte gördüğünde uyarır; böylece eskimiş aktarım geçersiz kılmasını kaldırabilir veya yeniden yazabilir ve yerleşik yönlendirme/yedek davranışını geri alabilirsiniz. Özel proxy’ler ve yalnızca başlık geçersiz kılmaları hâlâ desteklenir ve bu uyarıyı tetiklemez.2f. Codex rota onarımı
2f. Codex rota onarımı
openai-codex/* model başvurularını denetler. Yerel Codex harness yönlendirmesi kanonik openai/* model başvurularını kullanır; OpenAI ajan turları OpenClaw OpenAI sağlayıcı yolu yerine Codex uygulama sunucusu harness’ı üzerinden gider.--fix / --repair modunda doctor, birincil modeller, yedekler, görüntü/video üretim modelleri, heartbeat/subagent/compaction geçersiz kılmaları, hook’lar, kanal modeli geçersiz kılmaları ve eskimiş kalıcı oturum rota durumu dahil olmak üzere etkilenen varsayılan ajan ve ajan başına başvuruları yeniden yazar:openai-codex/gpt-*değeriopenai/gpt-*olur.- Codex niyeti, onarılan ajan modeli başvuruları için sağlayıcı/model kapsamlı
agentRuntime.id: "codex"girdilerine taşınır. - Çalışma zamanı seçimi sağlayıcı/model kapsamlı olduğundan, eskimiş tüm-ajan çalışma zamanı yapılandırması ve kalıcı oturum çalışma zamanı sabitlemeleri kaldırılır.
- Onarılan eski model başvurusu eski kimlik doğrulama yolunu korumak için Codex yönlendirmesine ihtiyaç duymadığı sürece mevcut sağlayıcı/model çalışma zamanı ilkesi korunur.
- Mevcut model yedek listeleri, eski girdileri yeniden yazılarak korunur; kopyalanan model başına ayarlar eski anahtardan kanonik
openai/*anahtarına taşınır. - Kalıcı oturum
modelProvider/providerOverride,model/modelOverride, yedek bildirimleri ve kimlik doğrulama profili sabitlemeleri keşfedilen tüm ajan oturum depolarında onarılır. /codex ..., “sohbetten yerel bir Codex konuşmasını denetle veya bağla” anlamına gelir./acp ...veyaruntime: "acp", “harici ACP/acpx adaptörünü kullan” anlamına gelir.
2g. Oturum rota temizliği
2g. Oturum rota temizliği
openclaw doctor --fix, sahip rotaları artık yapılandırılmadığında modelOverrideSource: "auto" model sabitlemeleri, çalışma zamanı modeli meta verileri, sabitlenmiş harness kimlikleri, CLI oturum bağlamaları ve otomatik kimlik doğrulama profili geçersiz kılmaları gibi otomatik oluşturulmuş eskimiş durumu temizleyebilir. Açık kullanıcı veya eski oturum modeli seçimleri elle inceleme için raporlanır ve dokunulmadan bırakılır; o rota artık amaçlanmıyorsa bunları /model ..., /new ile değiştirin veya oturumu sıfırlayın.3. Eski durum geçişleri (disk düzeni)
3. Eski durum geçişleri (disk düzeni)
- Oturum deposu + transkriptler:
~/.openclaw/sessions/konumundan~/.openclaw/agents/<agentId>/sessions/konumuna
- Ajan dizini:
~/.openclaw/agent/konumundan~/.openclaw/agents/<agentId>/agent/konumuna
- WhatsApp kimlik doğrulama durumu (Baileys):
- eski
~/.openclaw/credentials/*.jsonkonumundan (oauth.jsonhariç) ~/.openclaw/credentials/whatsapp/<accountId>/...konumuna (varsayılan hesap kimliği:default)
- eski
openclaw doctor üzerinden geçirilir. Talk sağlayıcı/sağlayıcı haritası normalleştirmesi artık yapısal eşitlikle karşılaştırır, bu nedenle yalnızca anahtar sırası farkları artık tekrarlanan etkisiz doctor --fix değişikliklerini tetiklemez.3a. Eski plugin manifest geçişleri
3a. Eski plugin manifest geçişleri
speechProviders, realtimeTranscriptionProviders, realtimeVoiceProviders, mediaUnderstandingProviders, imageGenerationProviders, videoGenerationProviders, webFetchProviders, webSearchProviders) için tarar. Bulduğunda, bunları contracts nesnesine taşımayı ve manifest dosyasını yerinde yeniden yazmayı önerir. Bu geçiş idempotenttir; contracts anahtarı zaten aynı değerlere sahipse, eski anahtar veri yinelenmeden kaldırılır.3b. Eski cron deposu geçişleri
3b. Eski cron deposu geçişleri
~/.openclaw/cron/jobs.json veya geçersiz kılındığında cron.store) denetler.Geçerli cron temizlemeleri şunları içerir:jobId→idschedule.cron→schedule.expr- üst düzey payload alanları (
message,model,thinking, …) →payload - üst düzey delivery alanları (
deliver,channel,to,provider, …) →delivery - payload
providerdelivery diğer adları → açıkdelivery.channel - eski
notify: truewebhook fallback işleri →cron.webhookayarlandığında açık webhook delivery; duyuru işleri sohbet delivery’lerini korur vedelivery.completionDestinationalır.cron.webhookayarlanmamışsa, inert üst düzeynotifyişaretçisi hedefi olmayan işler için kaldırılır (duyuru dahil mevcut delivery korunur), çünkü çalışma zamanı delivery bunu hiçbir zaman okumaz
jobs.json içinden kaldırılmadan önce etkin deponun yanındaki jobs-quarantine.json dosyasına kopyalanır; doctor karantinaya alınmış satırları bildirir, böylece bunları elle inceleyebilir veya onarabilirsiniz.Gateway başlatması çalışma zamanı projeksiyonunu normalleştirir ve üst düzey notify işaretçisini yok sayar, ancak kalıcı cron yapılandırmasını doctor onarımı için bırakır. cron.webhook ayarlanmamışsa, doctor geçiş hedefi olmayan işler için (delivery.mode yok/yok sayılmış, kullanılamaz bir webhook hedefi veya mevcut duyuru/sohbet delivery) inert işaretçiyi kaldırır ve mevcut delivery’ye dokunmaz; böylece tekrarlanan doctor --fix çalıştırmaları aynı iş hakkında artık yeniden uyarı vermez. cron.webhook ayarlanmış ancak geçerli bir HTTP(S) URL’si değilse, doctor yine uyarır ve URL’yi düzeltebilmeniz için işaretçiyi yerinde bırakır.Linux’ta doctor, kullanıcının crontab’ı hâlâ eski ~/.openclaw/bin/ensure-whatsapp.sh çağırıyorsa da uyarır. Bu ana makineye yerel betik, mevcut OpenClaw tarafından bakımı yapılmaz ve cron systemd kullanıcı veriyoluna ulaşamadığında ~/.openclaw/logs/whatsapp-health.log içine hatalı Gateway inactive iletileri yazabilir. Eski crontab girdisini crontab -e ile kaldırın; geçerli sağlık denetimleri için openclaw channels status --probe, openclaw doctor ve openclaw gateway status kullanın.3c. Oturum kilidi temizliği
3c. Oturum kilidi temizliği
--fix / --repair modunda, ölü, sahipsiz, yeniden kullanılmış, hatalı biçimlendirilmiş-eski veya OpenClaw dışı sahipleri olan kilitleri otomatik olarak kaldırır. Hâlâ canlı bir OpenClaw sürecine ait olan eski kilitler bildirilir ancak yerinde bırakılır; böylece doctor etkin bir transkript yazıcısını kesmez.3d. Oturum transkript dalı onarımı
3d. Oturum transkript dalı onarımı
--fix / --repair modunda doctor, etkilenen her dosyayı özgünün yanına yedekler ve transkripti etkin dala yeniden yazar; böylece gateway geçmişi ve bellek okuyucuları artık yinelenen turları görmez.4. Durum bütünlüğü denetimleri (oturum kalıcılığı, yönlendirme ve güvenlik)
4. Durum bütünlüğü denetimleri (oturum kalıcılığı, yönlendirme ve güvenlik)
- Durum dizini eksik: yıkıcı durum kaybı hakkında uyarır, dizini yeniden oluşturmayı ister ve eksik verileri kurtaramayacağını hatırlatır.
- Durum dizini izinleri: yazılabilirliği doğrular; izinleri onarmayı önerir (ve sahip/grup uyumsuzluğu algılandığında bir
chownipucu verir). - macOS bulutla eşitlenen durum dizini: durum iCloud Drive (
~/Library/Mobile Documents/com~apple~CloudDocs/...) veya~/Library/CloudStorage/...altında çözümlendiğinde uyarır, çünkü eşitleme destekli yollar daha yavaş G/Ç ve kilit/eşitleme yarışlarına neden olabilir. - Linux SD veya eMMC durum dizini: durum bir
mmcblk*bağlama kaynağına çözümlendiğinde uyarır, çünkü SD veya eMMC destekli rastgele G/Ç, oturum ve kimlik bilgisi yazmaları altında daha yavaş olabilir ve daha hızlı yıpranabilir. - Linux geçici durum dizini: durum
tmpfsveyaramfsolarak çözümlendiğinde uyarır, çünkü oturumlar, kimlik bilgileri, yapılandırma ve WAL/günlük yan dosyalarıyla birlikte SQLite durumu yeniden başlatmada kaybolur. Dockeroverlaybağlamaları bilerek işaretlenmez, çünkü yazılabilir katmanları konteyner kaldığı sürece ana makine yeniden başlatmaları boyunca kalıcıdır. - Oturum dizinleri eksik: geçmişi kalıcı kılmak ve
ENOENTçökmelerini önlemek içinsessions/ve oturum deposu dizini gereklidir. - Transkript uyumsuzluğu: son oturum girdilerinde eksik transkript dosyaları olduğunda uyarır.
- Ana oturum “1 satırlık JSONL”: ana transkriptte yalnızca bir satır olduğunda işaretler (geçmiş birikmiyordur).
- Birden çok durum dizini: ev dizinleri genelinde birden çok
~/.openclawklasörü olduğunda veyaOPENCLAW_STATE_DIRbaşka bir yeri gösterdiğinde uyarır (geçmiş kurulumlar arasında bölünebilir). - Uzak mod hatırlatıcısı:
gateway.mode=remoteise doctor bunu uzak ana makinede çalıştırmanızı hatırlatır (durum orada yaşar). - Yapılandırma dosyası izinleri:
~/.openclaw/openclaw.jsongrup/dünya tarafından okunabilir durumdaysa uyarır ve600değerine sıkılaştırmayı önerir.
5. Model kimlik doğrulama sağlığı (OAuth sona ermesi)
5. Model kimlik doğrulama sağlığı (OAuth sona ermesi)
--non-interactive yenileme denemelerini atlar.Bir OAuth yenilemesi kalıcı olarak başarısız olduğunda (örneğin refresh_token_reused, invalid_grant veya sağlayıcının yeniden oturum açmanızı söylemesi), doctor yeniden kimlik doğrulamanın gerekli olduğunu bildirir ve çalıştırılacak tam openclaw models auth login --provider ... komutunu yazdırır.Doctor ayrıca şu nedenlerle geçici olarak kullanılamayan auth profillerini de bildirir:- kısa bekleme süreleri (hız sınırları/zaman aşımları/auth hataları)
- daha uzun devre dışı bırakmalar (faturalama/kredi hataları)
auth-profiles.json içine geçirmek için etkileşimli bir terminalden bir kez openclaw doctor --fix çalıştırın; bundan sonra gömülü turlar (Telegram, cron, alt ajan dispatch) bunları kanonik OpenAI OAuth profilleri olarak çözer.6. Hooks model doğrulaması
6. Hooks model doğrulaması
hooks.gmail.model ayarlanmışsa, doctor model referansını katalog ve izin listesine göre doğrular ve çözümlenmeyecekse veya izin verilmiyorsa uyarır.7. Sandbox imaj onarımı
7. Sandbox imaj onarımı
7b. Plugin kurulum temizliği
7b. Plugin kurulum temizliği
openclaw doctor --fix / openclaw doctor --repair modunda OpenClaw tarafından oluşturulmuş eski Plugin bağımlılığı hazırlama durumunu kaldırır. Bu; bayat oluşturulmuş bağımlılık köklerini, eski install-stage dizinlerini, önceki gömülü Plugin bağımlılığı onarım kodundan kalan paket yerel kalıntıları ve geçerli gömülü manifesti gölgeleyebilen gömülü @openclaw/* Plugin’lerinin sahipsiz veya kurtarılmış yönetilen npm kopyalarını kapsar. Doctor ayrıca ana makine openclaw paketini peerDependencies.openclaw bildiren yönetilen npm Plugin’lerine yeniden bağlar; böylece openclaw/plugin-sdk/* gibi paket yerel çalışma zamanı importları güncellemelerden veya npm onarımlarından sonra çözümlenmeye devam eder.Doctor, yapılandırma bunlara başvurduğunda ancak yerel Plugin kayıt defteri bunları bulamadığında eksik indirilebilir Plugin’leri de yeniden kurabilir. Örnekler arasında somut plugins.entries, yapılandırılmış kanal/sağlayıcı/arama ayarları ve yapılandırılmış ajan çalışma zamanları bulunur. Paket güncellemeleri sırasında doctor, çekirdek paket değiştirilirken paket yöneticisi Plugin onarımını çalıştırmaktan kaçınır; yapılandırılmış bir Plugin hâlâ kurtarma gerektiriyorsa güncellemeden sonra openclaw doctor --fix komutunu yeniden çalıştırın. Gateway başlatması ve yapılandırma yeniden yüklemesi paket yöneticilerini çalıştırmaz; Plugin kurulumları açık doctor/install/update işi olarak kalır.8. Gateway hizmet geçişleri ve temizlik ipuçları
8. Gateway hizmet geçişleri ve temizlik ipuçları
openclaw gateway status --deep veya openclaw doctor --deep ile inceleyin; ardından yineleneni kaldırın veya gateway yaşam döngüsüne bir sistem süpervizörü sahipse OPENCLAW_SERVICE_REPAIR_POLICY=external ayarlayın.8b. Başlatma Matrix geçişi
8b. Başlatma Matrix geçişi
--fix / --repair modunda) geçiş öncesi bir snapshot oluşturur ve ardından en iyi çaba geçiş adımlarını çalıştırır: eski Matrix durum geçişi ve eski şifreli durum hazırlığı. Her iki adım da ölümcül değildir; hatalar günlüğe kaydedilir ve başlatma devam eder. Salt okunur modda (--fix olmadan openclaw doctor) bu denetim tamamen atlanır.8c. Cihaz eşleştirme ve auth sapması
8c. Cihaz eşleştirme ve auth sapması
- bekleyen ilk eşleştirme istekleri
- zaten eşleştirilmiş cihazlar için bekleyen rol yükseltmeleri
- zaten eşleştirilmiş cihazlar için bekleyen kapsam yükseltmeleri
- cihaz id’sinin hâlâ eşleştiği ancak cihaz kimliğinin artık onaylı kayıtla eşleşmediği public-key uyumsuzluğu onarımları
- onaylı bir rol için etkin tokenı eksik olan eşleştirilmiş kayıtlar
- kapsamları onaylı eşleştirme temel çizgisinin dışına kayan eşleştirilmiş tokenlar
- geçerli makine için gateway tarafı token rotasyonundan daha eski olan veya bayat kapsam meta verisi taşıyan yerel önbelleğe alınmış cihaz-token girdileri
- bekleyen istekleri
openclaw devices listile inceleyin - tam isteği
openclaw devices approve <requestId>ile onaylayın openclaw devices rotate --device <deviceId> --role <role>ile yeni bir token döndürün- bayat bir kaydı
openclaw devices remove <deviceId>ile kaldırıp yeniden onaylayın
9. Güvenlik uyarıları
9. Güvenlik uyarıları
10. systemd linger (Linux)
10. systemd linger (Linux)
11. Çalışma alanı durumu (Skills, Plugin'ler ve TaskFlow'lar)
11. Çalışma alanı durumu (Skills, Plugin'ler ve TaskFlow'lar)
- Skills durumu: uygun, eksik-gereksinimli ve izin-listesi-engelli Skills sayılarını gösterir.
- Plugin durumu: etkin/devre dışı/hatalı Plugin’leri sayar; hatalar için Plugin ID’lerini listeler; paket Plugin yeteneklerini raporlar.
- Plugin uyumluluk uyarıları: geçerli çalışma zamanı ile uyumluluk sorunları olan Plugin’leri işaretler.
- Plugin tanılamaları: Plugin kayıt defterinin yükleme sırasında yaydığı uyarı veya hataları görünür kılar.
- TaskFlow kurtarma: elle incelenmesi veya iptal edilmesi gereken şüpheli yönetilen TaskFlow’ları görünür kılar.
11b. Bootstrap dosya boyutu
11b. Bootstrap dosya boyutu
AGENTS.md, CLAUDE.md veya diğer enjekte edilen bağlam dosyaları) yapılandırılmış karakter bütçesine yaklaşıp yaklaşmadığını veya bunu aşıp aşmadığını denetler. Dosya başına ham ve enjekte edilmiş karakter sayılarını, kırpma yüzdesini, kırpma nedenini (max/file veya max/total) ve toplam enjekte edilmiş karakterlerin toplam bütçeye oranını raporlar. Dosyalar kırpıldığında veya sınıra yaklaştığında Doctor, agents.defaults.bootstrapMaxChars ve agents.defaults.bootstrapTotalMaxChars ayarlarını düzenlemek için ipuçları yazdırır.11d. Eski kanal Plugin temizliği
11d. Eski kanal Plugin temizliği
openclaw doctor --fix eksik bir kanal Plugin’ini kaldırdığında, o Plugin’e başvuran sarkık kanal kapsamlı yapılandırmayı da kaldırır: channels.<id> girdileri, kanalı adlandıran Heartbeat hedefleri ve agents.*.models["<channel>/*"] geçersiz kılmaları. Bu, kanal çalışma zamanı yok olmuşken yapılandırmanın hâlâ Gateway’den ona bağlanmasını istediği Gateway önyükleme döngülerini önler.11c. Kabuk tamamlama
11c. Kabuk tamamlama
- Kabuk profili yavaş bir dinamik tamamlama kalıbı (
source <(openclaw completion ...)) kullanıyorsa Doctor bunu daha hızlı önbelleğe alınmış dosya varyantına yükseltir. - Tamamlama profilde yapılandırılmış ancak önbellek dosyası eksikse Doctor önbelleği otomatik olarak yeniden oluşturur.
- Hiç tamamlama yapılandırılmamışsa Doctor bunun kurulmasını ister (yalnızca etkileşimli mod;
--non-interactiveile atlanır).
openclaw completion --write-state çalıştırın.12. Gateway kimlik doğrulama denetimleri (yerel token)
12. Gateway kimlik doğrulama denetimleri (yerel token)
- Token modu bir token gerektiriyorsa ve token kaynağı yoksa Doctor bir tane üretmeyi teklif eder.
gateway.auth.tokenSecretRef tarafından yönetiliyor ancak kullanılamıyorsa Doctor uyarır ve bunu düz metinle üzerine yazmaz.openclaw doctor --generate-gateway-token, yalnızca hiçbir token SecretRef yapılandırılmamışsa üretimi zorlar.
12b. Salt okunur SecretRef duyarlı onarımlar
12b. Salt okunur SecretRef duyarlı onarımlar
openclaw doctor --fixartık hedefli yapılandırma onarımları için durum ailesi komutlarıyla aynı salt okunur SecretRef özet modelini kullanır.- Örnek: Telegram
allowFrom/groupAllowFrom@usernameonarımı, mevcut olduğunda yapılandırılmış bot kimlik bilgilerini kullanmayı dener. - Telegram bot token’ı SecretRef üzerinden yapılandırılmış ancak geçerli komut yolunda kullanılamıyorsa Doctor, kimlik bilgisinin yapılandırılmış-ama-kullanılamaz olduğunu bildirir ve token’ı eksik olarak yanlış raporlamak veya çökmek yerine otomatik çözümlemeyi atlar.
13. Gateway sağlık denetimi + yeniden başlatma
13. Gateway sağlık denetimi + yeniden başlatma
13b. Bellek arama hazırlığı
13b. Bellek arama hazırlığı
- QMD arka ucu:
qmdikilisinin mevcut ve başlatılabilir olup olmadığını yoklar. Değilse npm paketi ve elle ikili yol seçeneği dahil düzeltme rehberliği yazdırır. - Açık yerel sağlayıcı: yerel model dosyası veya tanınan uzak/indirilebilir model URL’si olup olmadığını denetler. Eksikse uzak sağlayıcıya geçmeyi önerir.
- Açık uzak sağlayıcı (
openai,voyagevb.): ortamda veya kimlik doğrulama deposunda bir API anahtarı bulunduğunu doğrular. Eksikse uygulanabilir düzeltme ipuçları yazdırır. - Eski otomatik sağlayıcı:
memorySearch.provider: "auto"değerini OpenAI olarak ele alır, OpenAI hazırlığını denetler vedoctor --fixbunuprovider: "openai"olarak yeniden yazar.
openclaw memory status --deep kullanın.14. Kanal durumu uyarıları
14. Kanal durumu uyarıları
15. Supervisor yapılandırma denetimi + onarım
15. Supervisor yapılandırma denetimi + onarım
openclaw doctor, supervisor yapılandırmasını yeniden yazmadan önce onay ister.openclaw doctor --yes, varsayılan onarım istemlerini kabul eder.openclaw doctor --fix, önerilen düzeltmeleri istem olmadan uygular (--repairbir takma addır).openclaw doctor --fix --force, özel supervisor yapılandırmalarının üzerine yazar.OPENCLAW_SERVICE_REPAIR_POLICY=external, Gateway servis yaşam döngüsü için Doctor’ı salt okunur tutar. Servis sağlığını yine raporlar ve servis dışı onarımları çalıştırır, ancak dış bir supervisor bu yaşam döngüsüne sahip olduğu için servis kurma/başlatma/yeniden başlatma/bootstrap, supervisor yapılandırma yeniden yazmaları ve eski servis temizliğini atlar.- Linux’ta Doctor, eşleşen systemd Gateway birimi etkinken komut/entrypoint meta verilerini yeniden yazmaz. Ayrıca yinelenen servis taraması sırasında etkin olmayan eski olmayan ek Gateway benzeri birimleri yok sayar; böylece yardımcı servis dosyaları temizlik gürültüsü oluşturmaz.
- Token kimlik doğrulaması bir token gerektiriyorsa ve
gateway.auth.tokenSecretRef tarafından yönetiliyorsa Doctor servis kurulumu/onarımı SecretRef’i doğrular, ancak çözümlenmiş düz metin token değerlerini supervisor servis ortam meta verilerine kalıcı olarak yazmaz. - Doctor, eski LaunchAgent, systemd veya Windows Scheduled Task kurulumlarının satır içi gömdüğü yönetilen
.env/SecretRef destekli servis ortam değerlerini algılar ve bu değerlerin supervisor tanımı yerine çalışma zamanı kaynağından yüklenmesi için servis meta verilerini yeniden yazar. - Doctor,
gateway.portdeğiştikten sonra servis komutunun hâlâ eski bir--portsabitlediğini algılar ve servis meta verilerini geçerli porta yeniden yazar. - Token kimlik doğrulaması bir token gerektiriyorsa ve yapılandırılmış token SecretRef çözümlenemiyorsa Doctor kurulum/onarım yolunu uygulanabilir rehberlikle engeller.
- Hem
gateway.auth.tokenhem degateway.auth.passwordyapılandırılmışsa vegateway.auth.modeayarlanmamışsa Doctor, mod açıkça ayarlanana kadar kurulumu/onarımı engeller. - Linux kullanıcı-systemd birimleri için Doctor token sapması denetimleri artık servis kimlik doğrulama meta verilerini karşılaştırırken hem
Environment=hem deEnvironmentFile=kaynaklarını içerir. - Doctor servis onarımları, yapılandırma en son daha yeni bir sürüm tarafından yazıldıysa eski bir OpenClaw ikilisinden gelen Gateway servisini yeniden yazmayı, durdurmayı veya yeniden başlatmayı reddeder. Bkz. Gateway sorun giderme.
- Her zaman
openclaw gateway install --forceile tam yeniden yazmayı zorlayabilirsiniz.
16. Gateway çalışma zamanı + port tanılamaları
16. Gateway çalışma zamanı + port tanılamaları
18789) port çakışmalarını denetler ve olası nedenleri (Gateway zaten çalışıyor, SSH tüneli) raporlar.17. Gateway çalışma zamanı en iyi uygulamaları
17. Gateway çalışma zamanı en iyi uygulamaları
nvm, fnm, volta, asdf vb.) çalıştığında Doctor uyarır. WhatsApp + Telegram kanalları Node gerektirir ve sürüm yöneticisi yolları yükseltmelerden sonra bozulabilir, çünkü servis kabuk başlatmanızı yüklemez. Doctor, mevcut olduğunda sistem Node kurulumuna geçmeyi teklif eder (Homebrew/apt/choco).Yeni kurulan veya onarılan macOS LaunchAgent’ları etkileşimli kabuk PATH’ini kopyalamak yerine kurallı bir sistem PATH’i (/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin) kullanır; böylece Homebrew tarafından yönetilen sistem ikilileri kullanılabilir kalırken Volta, asdf, fnm, pnpm ve diğer sürüm yöneticisi dizinleri Node alt süreçlerinin neyi çözümlediğini değiştirmez. Linux servisleri açık ortam köklerini (NVM_DIR, FNM_DIR, VOLTA_HOME, ASDF_DATA_DIR, BUN_INSTALL, PNPM_HOME) ve kararlı user-bin dizinlerini korumaya devam eder, ancak tahmin edilen sürüm yöneticisi fallback dizinleri yalnızca bu dizinler diskte mevcutsa servis PATH’ine yazılır.18. Yapılandırma yazma + sihirbaz meta verileri
18. Yapılandırma yazma + sihirbaz meta verileri
19. Çalışma alanı ipuçları (yedekleme + bellek sistemi)
19. Çalışma alanı ipuçları (yedekleme + bellek sistemi)