Gateway
Arka planda yürütme ve süreç aracı
OpenClaw, kabuk komutlarını exec aracı üzerinden çalıştırır ve uzun süre çalışan görevleri bellekte tutar. process aracı bu arka plan oturumlarını yönetir.
exec aracı
Parametreler:
| Parametre | Açıklama |
|---|---|
command |
Zorunludur. Çalıştırılacak kabuk komutu. |
workdir |
Çalışma dizini; varsayılan mevcut çalışma dizinini kullanmak için belirtilmez. |
env |
Komut için ek ortam değişkenleri. |
yieldMs |
Arka plana almadan önce beklenecek milisaniye (varsayılan 10000). |
background |
Hemen arka planda çalıştırır. |
timeout |
Saniye cinsinden zaman aşımı (varsayılan tools.exec.timeoutSeconds); süre dolduğunda işlemi sonlandırır. Bu çağrı için exec işlem zaman aşımını devre dışı bırakmak üzere timeout: 0 olarak ayarlayın. |
pty |
Kullanılabildiğinde sözde terminalde çalıştırır (TTY gerektiren CLI'lar, kodlama ajanları). |
elevated |
Yükseltilmiş mod etkinse/izin veriliyorsa korumalı alanın dışında çalıştırır (varsayılan olarak gateway veya exec hedefi node olduğunda node). |
host |
Exec hedefi: auto, sandbox, gateway veya node. |
node |
host: "node" ile kullanılan Node kimliği/adı. |
Davranış:
- Ön plandaki çalıştırmalar çıktıyı doğrudan döndürür.
- Arka plana alındığında (açıkça veya
yieldMszaman aşımı yoluyla), araçstatus: "running"+sessionIdve çıktının kısa bir son bölümünü döndürür. - Arka plana alınan ve
yieldMsçalıştırmaları, çağrı açık birtimeoutiletmediği sürecetools.exec.timeoutSecondsdeğerini devralır. - Çıktı, oturum yoklanana veya temizlenene kadar bellekte kalır.
processaracına izin verilmiyorsaexeceşzamanlı olarak çalışır veyieldMs/backgrounddeğerlerini yok sayar.- Başlatılan exec komutları, bağlama duyarlı kabuk/profil kuralları için
OPENCLAW_SHELL=execdeğerini alır. - Şimdi başlayan uzun süreli işler için: işi bir kez başlatın ve komut çıktı verdiğinde veya başarısız olduğunda otomatik tamamlanma uyandırmasına (etkinse) güvenin.
- Otomatik tamamlanma uyandırması kullanılamıyorsa veya çıktı vermeden başarıyla sonlanan bir komut için sessiz başarı onayı gerekiyorsa
processile yoklayın. - Hatırlatıcıları veya gecikmeli takipleri
sleepdöngüleriyle ya da tekrarlanan yoklamalarla taklit etmeyin — gelecekteki işler için Cron kullanın.
Ortam değişkeni geçersiz kılmaları
| Değişken | Etki |
|---|---|
OPENCLAW_BASH_YIELD_MS |
Arka plana almadan önce varsayılan bekleme süresi (ms). Varsayılan 10000, 10-120000 aralığıyla sınırlandırılır. |
OPENCLAW_BASH_MAX_OUTPUT_CHARS |
Bellek içi çıktı sınırı (karakter). |
OPENCLAW_BASH_PENDING_MAX_OUTPUT_CHARS |
Akış başına bekleyen stdout/stderr sınırı (karakter). |
OPENCLAW_BASH_JOB_TTL_MS |
Tamamlanan oturumların yaşam süresi (ms), 1 dk.-3 sa. aralığıyla sınırlandırılır. |
OPENCLAW_PROCESS_INPUT_WAIT_IDLE_MS |
Yazılabilir arka plan oturumlarının büyük olasılıkla girdi bekliyor olarak işaretlenmesinden önceki boşta çıktı eşiği. Varsayılan 15000. |
Yapılandırma (ortam değişkeni geçersiz kılmalarına tercih edilir)
| Anahtar | Varsayılan | Etki |
|---|---|---|
tools.exec.backgroundMs |
10000 | OPENCLAW_BASH_YIELD_MS ile aynıdır. |
tools.exec.timeoutSeconds |
1800 | Çağrı başına varsayılan zaman aşımı. |
tools.exec.cleanupMs |
1800000 | OPENCLAW_BASH_JOB_TTL_MS ile aynıdır. |
tools.exec.notifyOnExit |
true | Arka plana alınmış bir exec sonlandığında bir sistem olayını kuyruğa alır ve Heartbeat ister. |
tools.exec.notifyOnExitEmptySuccess |
false | Çıktı vermeden başarıyla tamamlanan arka plan çalıştırmaları için de tamamlanma olaylarını kuyruğa alır. |
Alt süreç köprüleme
Exec/process araçları dışında uzun süre çalışan alt süreçler başlatırken (CLI yeniden başlatmaları, Gateway yardımcıları), sonlandırma sinyallerinin iletilmesi ve çıkış/hata durumunda dinleyicilerin ayrılması için alt süreç köprü yardımcısını ekleyin. Bu, systemd üzerinde sahipsiz süreçleri önler ve kapatmanın platformlar arasında tutarlı kalmasını sağlar.
process aracı
Eylemler:
| Eylem | Etki |
|---|---|
list |
Çalışan + tamamlanan oturumlar. |
poll |
Bir oturumun yeni çıktısını tüketir (çıkış durumunu da bildirir). |
log |
Birleştirilmiş çıktıyı ve girdi kurtarma ipuçlarını okur. offset + limit destekler. |
write |
stdin gönderir (data, isteğe bağlı eof). |
send-keys |
PTY destekli bir oturuma açık tuş belirteçleri veya baytlar gönderir. |
submit |
PTY destekli bir oturuma Enter/satır başı gönderir. |
paste |
İsteğe bağlı olarak köşeli ayraçlı yapıştırma moduna sarılmış düz metin gönderir. |
kill |
Bir arka plan oturumunu sonlandırır. |
clear |
Tamamlanmış bir oturumu bellekten kaldırır. |
remove |
Çalışıyorsa sonlandırır, tamamlanmışsa temizler. |
Notlar:
- Yalnızca arka plana alınan oturumlar listelenir/saklanır — yalnızca bellekte tutulur, diske yazılmaz. İşlem yeniden başlatıldığında oturumlar kaybolur.
- Canlı bir arka plan oturumu, süreç sahibi gerçekten sonlandığını doğrulayana kadar işbirlikçi ana makine askıya almasını ve güvenli Gateway yeniden başlatmasını engeller.
process remove, sonlandırma istendikten hemen sonra çalışan bir oturumu gizleyebilir; askıya alma ve yeniden başlatma, çıkış onaylanana kadar engellenmeye devam eder.- Oturum günlükleri yalnızca
process poll/logçalıştırılır ve araç sonucu kaydedilirse sohbet geçmişine kaydedilir. processajan başına kapsamlandırılır; yalnızca o ajan tarafından başlatılan oturumları görür.- Otomatik tamamlanma uyandırması kullanılamadığında durum, günlükler veya tamamlanma onayı için
poll/logkullanın. - Etkileşimli bir CLI'ı kurtarmadan önce
logkullanın; böylece mevcut transkript, stdin durumu ve girdi bekleme ipucu birlikte görünür. - Girdi veya müdahale gerektiğinde
write/send-keys/submit/paste/killkullanın. process list, hızlı taramalar için türetilmiş birname(komut fiili + hedef) içerir.process list,pollvelog, yalnızca oturumda hâlâ yazılabilir stdin varsa ve oturum girdi bekleme eşiğinden (varsayılan 15000 ms,OPENCLAW_PROCESS_INPUT_WAIT_IDLE_MS) daha uzun süredir boşta isewaitingForInputbildirir.process log, satır tabanlıoffset/limitkullanır. İkisi de belirtilmediğinde, sayfalama ipucuyla birlikte son 200 satırı döndürür.offsetayarlanmış ancaklimitayarlanmamışsaoffsetdeğerinden sona kadar döndürür (200 ile sınırlandırılmaz).pollöğesinintimeoutdeğeri, dönmeden önce en fazla belirtilen milisaniye kadar bekler; 30000 üzerindeki değerler 30000 ile sınırlandırılır.- Yoklama, isteğe bağlı durum sorgulama içindir; bekleme döngüsü zamanlaması için değildir. İş daha sonra yapılacaksa Cron kullanın.
Örnekler
Uzun bir görev çalıştırıp daha sonra yoklayın:
{ "tool": "exec", "command": "sleep 5 && echo done", "yieldMs": 1000 }{ "tool": "process", "action": "poll", "sessionId": "<id>" }Girdi göndermeden önce etkileşimli bir oturumu inceleyin:
{ "tool": "process", "action": "log", "sessionId": "<id>" }Hemen arka planda başlatın:
{ "tool": "exec", "command": "npm run build", "background": true }stdin gönderin:
{ "tool": "process", "action": "write", "sessionId": "<id>", "data": "y\n" }PTY tuşlarını gönderin:
{ "tool": "process", "action": "send-keys", "sessionId": "<id>", "keys": ["C-c"] }Geçerli satırı gönderin:
{ "tool": "process", "action": "submit", "sessionId": "<id>" }Düz metin yapıştırın:
{ "tool": "process", "action": "paste", "sessionId": "<id>", "text": "line1\nline2\n" }