Ortam değişkenleri
Multica'yı kendi sunucunuzda barındırmak için ortak sunucu, depolama, entegrasyon ve runtime yapılandırması.
Multica, ortam değişkenlerini süreç başlangıcında okur. Birini değiştirdikten sonra, etkilenen API, web veya daemon sürecini yeniden başlatın. Docker Compose'un docker compose restart komutu .env'i yeniden okumaz; değişikliklerin etkili olması için container'ları up -d ile yeniden oluşturun.
Bu sayfa yalnızca dağıtıma yönelik yapılandırmayı listeler; test değişkenleri ve iç çalıştırma değişkenleri burada ele alınmaz. Bu gruplandırılmış bir referanstır — tam dağıtım adımları için bkz. kendi sunucunuzda hızlı başlangıç.
Asgari üretim yapılandırması
DATABASE_URL=postgres://user:password@postgres:5432/multica?sslmode=require
JWT_SECRET=<long-random-secret>
APP_ENV=production
FRONTEND_ORIGIN=https://multica.example.com
MULTICA_APP_URL=https://multica.example.com
MULTICA_PUBLIC_URL=https://api.multica.example.comAyrıca bir e-posta hizmeti seçmeniz gerekir, aksi hâlde doğrulama kodları ve davetler yalnızca sunucu günlüğüne yazılır.
JWT_SECRET üretimde zorunludur: APP_ENV=production iken arka uç, değer boş veya bilinen bir yer tutucu olduğunda başlamayı reddeder (openssl rand -hex 32 ile bir tane üretin). MULTICA_DEV_VERIFICATION_CODE'u ayarlamayın.
API ve veritabanı
| Değişken | Varsayılan | Açıklama |
|---|---|---|
DATABASE_URL | yerel multica veritabanı | PostgreSQL bağlantı dizesi |
DATABASE_MAX_CONNS | 25 | API süreci başına en fazla veritabanı bağlantısı |
DATABASE_MIN_CONNS | 5 | Her API sürecinin koruduğu minimum bağlantı |
DATABASE_REPLICA_URL | boş | İsteğe bağlı, salt okunur PostgreSQL replika bağlantı dizesi; yeni bağlantılar salt okunur olarak doğrulanır, işlerin kodda nihai-tutarlı okumaya açıkça katılması gerekir |
DATABASE_REPLICA_MAX_CONNS | 10 | API süreci başına en fazla replika bağlantısı |
DATABASE_REPLICA_MIN_CONNS | 0 | API süreci başına minimum replika bağlantısı |
MULTICA_DATABASE_STARTUP_TIMEOUT | 3m | Migrasyon ve API başlangıcının paylaştığı konteyner düzeyi yeniden deneme bütçesi; her aşama için tek seferde hızlı başarısızlık istiyorsanız 0 yapın |
MULTICA_DATABASE_CONNECT_TIMEOUT | 5s | Her başlangıç bağlantı denemesi için yedek zaman aşımı; yerel pgx connect_timeout, PGCONNECT_TIMEOUT veya servis ayarları önceliklidir |
PORT | 8080 | API dinleme portu |
JWT_SECRET | üretimde zorunlu | Giriş JWT'leri ve bazı imzalama akışları için sır; üretim, boş veya bilinen yer tutucularda başlamayı reddeder |
APP_ENV | boş | Üretimde production olarak ayarlayın |
AUTH_TOKEN_TTL | 720h (30 gün) | Tarayıcı JWT'lerinin ve çerezlerinin ömrü; bir Go süresi veya pozitif bir saniye tamsayısı kabul eder |
LOG_LEVEL | uygulama varsayılanı | Günlük düzeyi |
MULTICA_SHUTDOWN_HOLD_DURATION | 0 | Zarif kapanma başlamadan önce bir sonlandırma sinyalinden sonra ne kadar beklenileceği |
MULTICA_RUNTIME_RECONNECT_GRACE | 3h | Çevrimdışı bir runtime'ın, devam eden çalıştırmaları başarısız sayılmadan önce yeniden bağlanabileceği azami süre; 150s'nin altındaki değerler bu eşiğe yükseltilir |
Kubernetes'te bir kapanma bekletmesi ayarlarken, terminationGracePeriodSeconds, bekletme süresi artı gerçek kapanmanın ihtiyaç duyduğu süreyi aşmalıdır.
Birincil ve replika bağlantı sınırları birbirinden bağımsızdır; ikisinin toplamını her API süreci için PostgreSQL kümesinin bağlantı tavanına göre bütçeleyin. Replika bağlantıları, yükseltme (promotion) sonrası salt okunur doğrulamayı tazelemek için varsayılan olarak beş dakikada bir geri dönüştürülür. Replika bağlantı hataları sessizce birincile döner ve kısa, pasif bir devre kesici açar; arka planda ek bir veritabanı yoklaması eklenmez. Replika okumalarının uygulama tarafından zorlanan bir gecikme sınırı yoktur, bu yüzden gecikmeyi veritabanı katmanında izleyin ve tutarlılığa duyarlı okumaları birincilde tutun.
Herkese açık URL'ler ve tarayıcı erişimi
| Değişken | Varsayılan | Açıklama |
|---|---|---|
FRONTEND_ORIGIN | boş | Kullanıcıların ziyaret ettiği ön uç kaynağı; CORS, çerezler ve davet bağlantıları için kullanılır |
MULTICA_APP_URL | FRONTEND_ORIGIN'e döner | Kullanıcının erişebileceği web URL'si; CLI girişi ve hesap bağlama URL'leri bunu kullanır |
MULTICA_PUBLIC_URL | boş | Herkese açık API URL'si; webhook URL'leri ve runtime bağlantı talimatları için kullanılır |
MULTICA_DAEMON_SERVER_URL | boş — MULTICA_PUBLIC_URL'e, sonra MULTICA_APP_URL / FRONTEND_ORIGIN'e döner | API sürecinin multica setup self-host çıktısına eklediği sunucu URL'si; daemon'lar API'ye herkese açık webhook URL'sinden farklı bir adresten erişiyorsa ayarlayın |
CORS_ALLOWED_ORIGINS | boş | Ek izin verilen HTTP kaynakları (virgülle ayrılmış) |
ALLOWED_ORIGINS | CORS / ön uç kaynaklarına döner | WebSocket kaynak izin listesi (virgülle ayrılmış) |
COOKIE_DOMAIN | boş | Ön uç ve API farklı host'lar kullandığında ve tarayıcı doğrudan API alan adıyla konuştuğunda zorunludur; tek alan adlı dağıtımlarda boş bırakın |
MULTICA_DAEMON_SERVER_URL, kimlik doğrulaması olmayan /api/config uç noktası tarafından döndürülür ve istemcilere görünür. Bunu herkese açık yapılandırma olarak ele alın; içine kimlik bilgisi, token veya başka bir sır koymayın.
Ön uç ve API farklı host'larda çalıştığında ve tarayıcı doğrudan API alan adıyla konuştuğunda, COOKIE_DOMAIN'i ayarlamalısınız — aksi hâlde tarayıcı CSRF çerezini okuyamaz: okumalar sorunsuz çalışırken her yazma isteği 403 CSRF validation failed döner. Her iki host'u da kapsayan en dar üst alan adını kullanın (.example.com yerine .agent.example.com). Bu, giriş oturumu çerezini o alan adı altındaki her host'a yayar, bu yalnızca o host'ların hepsi aynı güvenilen taraf tarafından işletildiğinde kabul edilebilir. Değiştirdikten sonra, her iki host'taki eski çerezleri temizleyin ve yeniden giriş yapın. Kendi sunucunuzda hızlı başlangıç rehberindeki aynı-kaynak tarifini izliyorsanız (tarayıcı yalnızca uygulama alan adını ziyaret eder), boş bırakın. Bir IP adresi kullanmayın — tarayıcılar Domain'i bir IP olan çerezleri yok sayar.
Kendi sunucunuzda barındırılan dağıtımlar FRONTEND_ORIGIN'i ayarlamalıdır. Ayarlanmazsa, davet bağlantıları, çerez güvenlik nitelikleri ve WebSocket kaynak kontrolleri gerçek alan adınızla uyuşmayabilir.
E-posta ve giriş
Resend
| Değişken | Varsayılan | Açıklama |
|---|---|---|
RESEND_API_KEY | boş | Ayarlamak Resend'i etkinleştirir |
RESEND_FROM_EMAIL | noreply@multica.ai | Gönderen adresi; doğrulanmış bir alan adına ait olmalı |
SMTP
SMTP_HOST boş olmadığında SMTP, Resend'e göre önceliklidir.
| Değişken | Varsayılan | Açıklama |
|---|---|---|
SMTP_HOST | boş | SMTP host'u; ayarlamak SMTP'yi etkinleştirir |
SMTP_PORT | 25 | Yaygın değerler: 25, 587, 465 |
SMTP_USERNAME | boş | Kullanıcı adı; anonim relay'ler için boş bırakın |
SMTP_PASSWORD | boş | Parola |
SMTP_FROM_EMAIL | RESEND_FROM_EMAIL'e döner | Zarf From ve mesaj From'u |
SMTP_TLS | starttls | implicit, smtps veya ssl anlık (implicit) TLS anlamına gelir; port 465 bunu otomatik etkinleştirir |
SMTP_TLS_INSECURE | false | Sertifika doğrulamasını atlar; yalnızca güvenilen iç ağlar için |
SMTP_EHLO_NAME | makine hostname'i | Katı relay'lerin gerektirdiği EHLO/FQDN |
Google OAuth
| Değişken | Varsayılan | Açıklama |
|---|---|---|
GOOGLE_CLIENT_ID | boş | Google OAuth istemci kimliği |
GOOGLE_CLIENT_SECRET | boş | Google OAuth istemci sırrı |
GOOGLE_REDIRECT_URI | http://localhost:3000/auth/callback | Google Console'daki callback URL'siyle tam olarak eşleşmeli |
Kayıt kapsamı
| Değişken | Varsayılan | Açıklama |
|---|---|---|
ALLOW_SIGNUP | true | Herhangi bir izin listesi yapılandırılmadığında yeni hesapların oluşturulup oluşturulamayacağı |
ALLOWED_EMAILS | boş | Kayıt olmasına izin verilen tam e-posta adresleri (virgülle ayrılmış) |
ALLOWED_EMAIL_DOMAINS | boş | Kayıt olmasına izin verilen e-posta alan adları (virgülle ayrılmış) |
DISABLE_WORKSPACE_CREATION | false | Tüm kullanıcıların çalışma alanı oluşturmasını engeller; sahip/yönetici istisnası yoktur |
MULTICA_DEV_VERIFICATION_CODE | boş | Üretim dışı ortamlar için sabit 6 haneli test kodu |
İzin listesi değerlendirme sırasının tamamı için bkz. Giriş ve kayıt.
Ek depolama
S3_BUCKET ayarlanmadığında, Multica yerel diski kullanır.
S3 veya uyumlu depolama
| Değişken | Varsayılan | Açıklama |
|---|---|---|
S3_BUCKET | boş | Bucket adı; tam hostname'i kullanmayın |
S3_REGION | us-west-2 | Bucket'ın bulunduğu bölge |
AWS_ACCESS_KEY_ID | SDK varsayılan kimlik bilgisi zinciri | Statik erişim anahtarı |
AWS_SECRET_ACCESS_KEY | SDK varsayılan kimlik bilgisi zinciri | Statik sır anahtarı |
AWS_ENDPOINT_URL | boş | MinIO gibi S3 uyumlu bir uç nokta |
S3_USE_PATH_STYLE | özel bir uç noktayla true | Yol-stili adreslemenin kullanılıp kullanılmayacağı |
ATTACHMENT_DOWNLOAD_MODE | auto | auto, cloudfront, presign veya proxy |
ATTACHMENT_DOWNLOAD_URL_TTL | 30m | İmzalı indirme URL'lerinin ömrü |
Uç nokta — örneğin dahili bir MinIO — tarayıcıdan erişilebilir olmadığında ATTACHMENT_DOWNLOAD_MODE=proxy kullanın.
Yerel disk
| Değişken | Varsayılan | Açıklama |
|---|---|---|
LOCAL_UPLOAD_DIR | ./data/uploads | Dosyalar ve meta veri için dizin; kalıcı bir birim gerektirir |
LOCAL_UPLOAD_BASE_URL | boş | İsteğe bağlı herkese açık taban URL; boş olduğunda, uygulama içi göreli URL'ler döner |
CloudFront
| Değişken | Açıklama |
|---|---|
CLOUDFRONT_DOMAIN | CDN alan adı |
CLOUDFRONT_KEY_PAIR_ID | CloudFront anahtar çifti kimliği |
CLOUDFRONT_PRIVATE_KEY | Tam özel anahtar |
CLOUDFRONT_PRIVATE_KEY_SECRET | Özel anahtarı Secrets Manager'dan okurken kullanın |
Redis ve hız sınırlama
| Değişken | Varsayılan | Açıklama |
|---|---|---|
REDIS_URL | boş | Paylaşılan hız sınırlaması, gerçek zamanlı olaylar ve token önbelleği için kullanılır; ayarlanmadığında gerçek zamanlı olaylar ve davet sınırları işlem-içi belleğe döner, kimlik doğrulama hız sınırlaması ise kapalıdır |
REDIS_DISABLE_CLIENT_NAME | false | Yönetilen bir Redis CLIENT SETNAME'i engellediğinde true yapın |
RATE_LIMIT_AUTH | 5 | Bir doğrulama kodu göndermek veya Google girişini başlatmak için IP başına dakikada istek |
RATE_LIMIT_AUTH_VERIFY | 20 | IP başına dakikada kod doğrulaması |
RATE_LIMIT_INVITATION_ACTOR_10M | 10 | Her davet edenin 10 dakikalık kayan pencerede oluşturabileceği çalışma alanı daveti; 0 bu sınırı devre dışı bırakır |
RATE_LIMIT_INVITATION_WORKSPACE_24H | 50 | Tüm yöneticilerin çalışma alanı başına 24 saatlik kayan pencerede oluşturabileceği davet; 0 bu sınırı devre dışı bırakır |
RATE_LIMIT_INVITATION_RECIPIENT_24H | 6 | Normalleştirilmiş bir alıcı e-postasının çalışma alanları genelinde 24 saatlik kayan pencerede alabileceği davet; 0 bu sınırı devre dışı bırakır |
RATE_LIMIT_TRUSTED_PROXIES | boş | X-Forwarded-For sağlamasına izin verilen virgülle ayrılmış proxy CIDR'leri |
MULTICA_TRUSTED_PROXIES | boş | Otomasyon webhook'ları ve gerçek zamanlı bağlantılar için güvenilen proxy CIDR'leri |
Bir ters proxy'nin arkasındaki dağıtımlar gerçek proxy aralıklarını listelemelidir. Tüm kaynaklara körü körüne güvenmeyin, aksi hâlde istemciler yönlendirilmiş IP'leri sahteleyebilir.
Kimlik doğrulama hız sınırları REDIS_URL gerektirir; olmadan, başlangıç günlüğü kimlik doğrulama hız sınırlamasının devre dışı olduğunu belirtir. Davet sınırları Redis olmadan yine işlem-yerel bellekte çalışır ve Redis yapılandırıldığında replikalar arasında paylaşılır hâle gelir. Yapılandırılmış Redis geçici olarak erişilemez hâle gelirse, kimlik doğrulama hız sınırlaması işlem-yoktur şekilde açılırken, davet oluşturma korumasız e-posta göndermek yerine yeniden denenebilir bir 503 döner.
Dış entegrasyonlar
| Entegrasyon | Değişken | Açıklama |
|---|---|---|
| GitHub | GITHUB_APP_SLUG | GitHub App slug'ı |
| GitHub | GITHUB_WEBHOOK_SECRET | Webhook HMAC ve bağlantı-durumu imzalama sırrı |
| GitHub | GITHUB_APP_ID | PR kartlarında CI durumu ve birleştirilebilirlik ile "GitHub'dan seç" depo seçici için gerekli |
| GitHub | GITHUB_APP_PRIVATE_KEY | App ID ile eşleştirilmiş tam PEM özel anahtarı; yukarıdakiyle aynı kullanımlar |
| Lark | MULTICA_LARK_SECRET_KEY | Base64 kodlu 32 bayt kimlik bilgisi şifreleme anahtarı |
| Slack | MULTICA_SLACK_SECRET_KEY | Base64 kodlu 32 bayt token şifreleme anahtarı |
| Telegram | MULTICA_TELEGRAM_SECRET_KEY | Base64 kodlu 32 bayt Bot token şifreleme anahtarı |
| Composio | COMPOSIO_API_KEY | Composio araç bağlantılarını etkinleştirir |
| Composio | COMPOSIO_CALLBACK_BASE_URL | Callback API URL'si; MULTICA_PUBLIC_URL'e dönebilir |
| Composio | COMPOSIO_STATE_SECRET | OAuth durum imzalama sırrı; JWT_SECRET'ten türetilebilir |
| Kendi sunucunuzda barındırılan Git | MULTICA_VCS_INTEGRATION_ENABLED | Forgejo/Gitea/GitLab entegrasyon anahtarı; compose'da varsayılan olarak etkin |
| Kendi sunucunuzda barındırılan Git | MULTICA_VCS_SECRET_KEY | Base64 kodlu 32 bayt şifreleme anahtarı (openssl rand -base64 32); bu olmadan özellik tamamen kullanılamaz |
| Eklentiler | MULTICA_PLUGIN_SECRET_KEY | Saklanan sırlar ve şifreli yüzey başlatma URL'leri için Base64 kodlu 32 bayt anahtar |
| Eklentiler | MULTICA_PLUGIN_SURFACE_ORIGIN | Bu arka uca yönlendirilen, çerezsiz özel bir tarayıcı kaynağı; uygulama/API kaynaklarından farklı olmalı ve Host'u korumalı |
| Eklentiler | MULTICA_PLUGIN_API_URL | https://plugin-api.example.com/v1 gibi, sürümlenmiş tam Eklenti Herkese Açık API taban URL'si; MULTICA_PUBLIC_URL + /v1'e döner |
| Eklentiler | MULTICA_PLUGIN_DIR | Geliştirme sırasında yerel eklenti paketlerini yayımlamak için kullanılan isteğe bağlı mutlak dizin |
GITHUB_APP_ID ve özel anahtar olmadan, PR'lar yine de normal şekilde bağlanır, yansıtılır ve birleştirmede-bitir'i tetikler, ama kartlar CI veya birleştirilebilirlik durumu göstermez ve "GitHub'dan seç" depo girişi devre dışıdır.
Kurulum adımları için bkz. GitHub entegrasyonu, Lark bot, Slack bot ve Telegram bot.
Sunucu tarafı LLM
Bu grup, konuşma başlıkları gibi sunucu tarafı yardım üretimini yapılandırır; agent'ların çalıştırmaları yürütmek için kullandığı yapay zekâ kodlama aracı kimlik bilgileri değildir.
| Değişken | Varsayılan | Açıklama |
|---|---|---|
MULTICA_LLM_API_KEY | boş | OpenAI uyumlu API anahtarı |
MULTICA_LLM_BASE_URL | boş | OpenAI uyumlu uç nokta |
MULTICA_LLM_DEFAULT_MODEL | gpt-5.6-luna | Bir istek model belirtmediğinde kullanılır |
MULTICA_LLM_MAX_RETRIES | 2 | Çağrı başına yeniden deneme tavanı; 0 yeniden denemeleri devre dışı bırakır, 1–5 onu N'de sınırlar |
MULTICA_LLM_MAX_RETRIES, yeniden deneme ilkesi için tek kaynaktır. Varsayılan olan 2 için ayarsız bırakın, her çağrıda tam olarak bir istek göndermek için 0 yapın, veya yeniden denemeleri o kadarla sınırlamak için 1–5 ayarlayın. Bu bir kota değil, bir tavandır: yalnızca yeniden denenebilir başarısızlıklar onu tüketir, bir başarı veya çağıranın kendi son tarihi çağrıyı daha erken bitirebilir. Başka herhangi bir değer — negatif, sayısal olmayan veya 5'in üzerinde — sessizce düzeltilmek yerine başlangıcı başarısız kılar. Tavan bir gecikme bütçesidir: geri çekilme 0.5s'de başlar ve 8s tavanına kadar ikiye katlanır, bu yüzden daha büyük bir bütçe çağıranların kendi son tarihlerini aşar ve yeniden denenebilir bir başarısızlığı bir zaman aşımına çevirir. Yeniden denemeler bağlantı hatalarını ve HTTP 408, 409, 429 ve 5xx'i kapsar; diğer tüm 4xx yanıtları olduğu gibi döner. Sunucu, başlangıçta etkin ilkeyi llm retry policy olarak günlükler, satırda hiçbir kimlik bilgisi olmadan.
Bu katmanı iki özellik kullanır ve her biri sohbet içeriğini yapılandırdığınız uç noktaya gönderir:
- Sohbet otomatik başlıklandırma — yeni bir sohbet oturumunun ilk kullanıcı mesajı, olduğu gibi gönderilir. Ekler asla dahil edilmez.
- Takip soruları (bir agent yanıtının altındaki öneri düğmeleri) — konuşmanın kuyruğu: en fazla 6 mesaj, yanıtlanan mesaj 3000 karakterle, her eski mesaj 800 karakterle sınırlı.
Hem API anahtarı hem de taban URL boş olduğunda, bu katman devre dışı kalır ve hiçbir üst akış isteği yapmaz — yukarıdaki iki özellik de hiçbir şey göndermez. İlkeniz bu katmanın sohbet içeriğini dağıtımın dışına göndermesine izin vermediğinde desteklenen yapılandırma budur: sohbet oturumları istemcinin ilk mesajdan türettiği başlığı korur, takip sorusu düğmeleri görünmez ve geri kalan her şey etkilenmez.
Bu yalnızca yardım katmanını kapsar. Bir agent'ı çalıştırmak ayrı bir veri yoludur: bir agent bir sohbeti yanıtladığında, daemon'unuz o agent'ın yapay zekâ kodlama aracını aracın kendi kimlik bilgileriyle çalıştırır ve yukarıdaki MULTICA_LLM_* ayarlarını ona iletmez. (Agent'ın ihtiyaç duyduğu çalıştırma kapsamlı Multica bağlantı değişkenleri daemon tarafından ayrıca enjekte edilir.) Yukarıdaki değişkenleri boşaltmak o yolu etkilemez — onu agent'ın runtime yapılandırması üzerinden yönetin.
Daemon yapılandırması
Aşağıdaki değişkenler, agent'larınızı çalıştıran bilgisayarda okunur, API container'ında değil.
| Değişken | Varsayılan | Açıklama |
|---|---|---|
MULTICA_SERVER_URL | ws://localhost:8080/ws | Multica API / WebSocket URL'si; http(s) de kabul eder |
MULTICA_DAEMON_DEVICE_NAME | hostname | Runtime listesinde gösterilen cihaz adı |
MULTICA_AGENT_RUNTIME_NAME | Local Agent | Runtime görünen adı |
MULTICA_DAEMON_POLL_INTERVAL | 30s | Hiçbir uyandırma olayı gelmediğinde çalıştırma sorgulama aralığı |
MULTICA_DAEMON_WS_CLAIM_POLL_INTERVAL | 3m | Sağlıklı WebSocket üstlenme güvenlik yoklamaları için üst sınır, MULTICA_DAEMON_POLL_INTERVAL'dan bağımsız yapılandırılır; aşağı yönlü jitter normal varsayılanı 2m30s–2m45s yapar, eski sunucular ve belirsiz üstlenmeler ise olağan sorgulama aralığını korur |
MULTICA_DAEMON_HEARTBEAT_INTERVAL | 15s | Kalp atışı aralığı |
MULTICA_DAEMON_MAX_CONCURRENT_TASKS | 20 | Daemon başına eşzamanlı çalıştırma tavanı |
MULTICA_AGENT_TIMEOUT | 0 | Çalıştırma başına mutlak zaman sınırı; 0 sınırsız anlamına gelir |
MULTICA_AGENT_IDLE_WATCHDOG | 2h | Çıktı ve araç çalıştırması olmadan izin verilen azami sessizlik süresi; 0 izleyiciyi tamamen devre dışı bırakır |
MULTICA_AGENT_TOOL_WATCHDOG | MULTICA_AGENT_IDLE_WATCHDOG ile aynı | Tek bir araç çağrısı için azami sessizlik süresi; yalnızca araçlara modelin aldığından daha fazla alan vermek için ayarlayın, 0 bir araç çağrısını asla zorla durdurmaz |
MULTICA_OPENCODE_IDLE_WATCHDOG | 10m | OpenCode'a özel sessizlik eşiği |
MULTICA_CODEX_SEMANTIC_INACTIVITY_TIMEOUT | MULTICA_AGENT_IDLE_WATCHDOG ile aynı | Codex anlamsal-sessizlik eşiği. Codex'in kendi zamanlayıcısı bir aracın çalıştığını göremez, bu yüzden ayrı, daha kısa bir tavan tutmak yerine boşta kalma / araç bütçelerinin büyüğünü izler |
MULTICA_CODEX_FIRST_TURN_TIMEOUT | 0 | Codex'in ilk-tur ilerleme-yok tavanı için açık geçersiz kılma; 0 varsayılanı korur. Etkin ilk-tur bekleme süresi MULTICA_CODEX_SEMANTIC_INACTIVITY_TIMEOUT ve genel yürütme zaman aşımıyla sınırlı kalır — MULTICA_CODEX_SEMANTIC_INACTIVITY_TIMEOUT'u bu değerin kesin olarak üzerine (biraz payla) ayarlayın, aksi hâlde bekleme ona kısaltılır ve model-kataloğu başlangıç yeniden denemesi atlanır. Eşit değerler yeterli değildir: anlamsal zamanlayıcı önce devreye girer, bu yüzden eşit sürelerde bile yeniden deneme kaybedilebilir |
MULTICA_CODEX_HANDSHAKE_TIMEOUT | 30s; thread/start, thread/resume: 60s | Codex uygulama-sunucusu başlangıç el sıkışma tavanları. Açık bir değer her iki bütçeyi de global olarak geçersiz kılar |
MULTICA_DAEMON_AUTO_UPDATE | Cloud true; kendi sunucunuzda barındırılan false | CLI güncellemelerinin otomatik olarak kontrol edilip uygulanıp uygulanmayacağı |
MULTICA_DAEMON_AUTO_UPDATE_INTERVAL | 6h | Güncelleme kontrol aralığı |
MULTICA_DAEMON_AUTO_RELOAD | true | Diskte dışarıdan değiştirilen bir multica ikili dosyasına (brew upgrade, yeniden indirme, yerel derleme) yeniden başlayıp başlamayacağı; MULTICA_DAEMON_AUTO_UPDATE'den bağımsızdır |
MULTICA_WORKSPACES_ROOT | ~/multica_workspaces | Çalıştırma çalışma dizinleri için kök dizin |
MULTICA_AGENT_TEMP_BASE | /tmp (Linux/macOS) | Yalnızca Linux/macOS. Çalıştırma başına özel geçici dizinler için üst dizin; var olan, yazılabilir mutlak bir dizin olmalıdır ve geçersiz bir değer /tmp'e dönmek yerine çalıştırma başlangıcını başarısız kılar. Kısa bir yol seçin — alt araçlar onun altında AF_UNIX soketleri bağlayabilir ve sun_path, Linux'ta 108 bayt, macOS'ta 104 bayt ile sınırlıdır |
MULTICA_KEEP_ENV_AFTER_TASK | false | Hata ayıklama için çalıştırma dizinlerini koru |
Daemon'ın agent çalıştırmalarına enjekte ettiği iç bağlam için bkz. Çalıştırma runtime ortamı.
Her yapay zekâ kodlama aracı, komut yolunu ve varsayılan modeli geçersiz kılmak için MULTICA_<SAĞLAYICI>_PATH ve MULTICA_<SAĞLAYICI>_MODEL'i kabul eder. QwenPaw ve MiniMax Code'un model değişkeni yoktur çünkü Multica onlara asla bir model göndermez; MiniMax Code'un yol değişkeni MULTICA_MCODE_PATH'tir — bkz. Yapay zekâ kodlama araçları karşılaştırması. DeepSeek Harness, MULTICA_DSH_PATH ve MULTICA_DSH_MODEL'i destekler (dsh kataloğundan bir model kimliği, örn. deepseek-official/deepseek-chat). Dim, MULTICA_DIM_PATH ve MULTICA_DIM_MODEL'i destekler (dim kataloğundan bir model kimliği). ZeroClaw, MULTICA_ZEROCLAW_PATH'i destekler ama model değişkeni yoktur; model seçimi agent profiline aittir. MULTICA_<SAĞLAYICI>_ARGS üzerinden makine çapında varsayılan argümanlar şu anda beş araç için desteklenir: Claude Code, Codex, CodeBuddy, Qwen Code ve QwenPaw. Değişkenler MULTICA_CLAUDE_ARGS, MULTICA_CODEX_ARGS, MULTICA_CODEBUDDY_ARGS, MULTICA_QWEN_ARGS ve MULTICA_QWENPAW_ARGS'tır. Örneğin:
MULTICA_CLAUDE_PATH=/opt/bin/claude
MULTICA_CLAUDE_ARGS=--max-turns 40Öncelik sırası komut satırı bayrağı → ortam değişkeni → ~/.multica/config.json → yerleşik varsayılandır. İzleyici davranışı için bkz. Daemon ve runtime'lar.
Daemon yapılandırmasını kalıcı hale getirme
Yaygın daemon tarafı ayarlar, kabuk ortam değişkenlerine güvenmek yerine ~/.multica/config.json'a da yazılabilir; adlandırılmış profiller kendilerinkini ~/.multica/profiles/<name>/config.json'da tutar:
multica config set poll_interval 10s
multica config showDesteklenen anahtarlar:
| Anahtar | Varsayılan | Açıklama |
|---|---|---|
server_url | ws://localhost:8080/ws | Multica API / WebSocket URL'si |
app_url | boş | Tarayıcı girişi için kullanılan web URL'si |
workspace_id | boş | Varsayılan çalışma alanı |
device_name | hostname | Runtime listesinde gösterilen cihaz adı |
runtime_name | Local Agent | Runtime görünen adı |
workspaces_root | profil bilgili, ~ altında bir yol | Çalıştırma çalışma dizinleri için kök dizin |
max_concurrent_tasks | 20 | Eşzamanlı çalıştırma tavanı; 0 veya boş, ayarlanmamış anlamına gelir |
poll_interval | 30s | Çalıştırma sorgulama aralığı |
ws_claim_poll_interval | 3m | Sağlıklı WebSocket üstlenme güvenlik yoklamaları için üst sınır, poll_interval'dan bağımsız; daemon yalnızca aşağı yönlü jitter uygular |
heartbeat_interval | 15s | Kalp atışı aralığı |
agent_timeout | sınırsız | Çalıştırma başına mutlak zaman sınırı |
codex_semantic_inactivity_timeout | türetilir | Codex anlamsal-sessizlik eşiği. Hiçbir şey ayarlanmadığında, boşta kalma ve araç izleyici bütçelerinin büyüğünü alır; 0 olan bir araç bütçesi boşta kalma bütçesine döner ve yalnızca tüm izleyici takımı devre dışı bırakıldığında Codex kendi 10m'ini korur |
codex_handshake_timeout | 30s; thread/start, thread/resume: 60s | Codex uygulama-sunucusu başlangıç el sıkışma tavanları. Açık bir değer her iki bütçeyi de global olarak geçersiz kılar |
disable_auto_update | ortamı izler | true otomatik güncellemeyi kapatır; false yerel geçersiz kılmayı temizler ve ortam değişkenine veya varsayılana döner |
auto_update_check_interval | 6h | Güncelleme kontrol aralığı |
disable_auto_reload | ortamı izler | true, daemon'ın diskte değiştirilen bir ikili dosyayı izlemesini durdurur; false yerel geçersiz kılmayı temizler. disable_auto_update'ten ayrı çözümlenir |
Birkaç değer kuralı:
- Süre anahtarları pozitif Go süreleri kabul eder (
10s,2hgibi);0sve negatif değerler reddedilir. Tek istisnaagent_timeout'tur:0sgeçerlidir ve çalıştırma zaman sınırını açıkça devre dışı bırakır. - Boş bir dize geçmek, kalıcı bir değeri temizler ve ortam değişkenine veya yerleşik varsayılana döner, örneğin
multica config set poll_interval "". max_concurrent_tasks, negatif olmayan bir tamsayı gerektirir.- Göreli
workspaces_rootdeğerleri kaydedilirken mutlak yollara dönüştürülür.
Gözlemlenebilirlik ve analitik
| Değişken | Varsayılan | Açıklama |
|---|---|---|
ANALYTICS_DISABLED | false | PostHog raporlamasını kapatmak için true yapın |
POSTHOG_API_KEY | boş | Ayarlanmadığında raporlama kapalıdır; kendi PostHog projenizi kullanmak için ayarlayın |
POSTHOG_HOST | https://us.i.posthog.com | PostHog host'u |
METRICS_ADDR | boş | Prometheus metrik dinleme adresi; boş, başlatılmadığı anlamına gelir |
REALTIME_METRICS_TOKEN | boş | /health/realtime'ı koruyan Bearer token'ı |
Sırada
- Giriş ve kayıt — giriş yöntemleri ve kayıt kısıtlamaları.
- Sorun Giderme — dağıtım sorunlarının belirtiye dayalı teşhisi.
- Daemon ve runtime'lar — bu yapılandırmanın daemon tarafındaki karşılıkları.