Geliştirici İş İstasyonu — Genel Bakış
Geliştiriciler kendi bilgisayarlarında opencode ile çalışır; ama model çağrıları, komutlar ve eylemler şirket sunucusundan geçer: anahtarlar iş istasyonunda tutulmaz, her komut kurallara göre değerlendirilir, her şey değiştirilemez bir kayda yazılır. Bu bölüm teknik ekipler içindir; iş kullanıcıları Kullanım Kılavuzu'na bakmalıdır.
Platformun web arayüzü, ajanları tanımlamak için kullanılır: kim hangi departmanda, hangi model, hangi skill, hangi politika. Geliştirici İş İstasyonu katmanı (kod adı Agentic OS) ise geliştirici personaların bu tanımlarla gerçek işi yapmasını sağlar — kendi iş istasyonlarında, kod tabanının içinde.
Geliştirici persona, iş istasyonunda opencode çalıştırır. Tüm model trafiği merkezî bir gateway'den geçer, her araç çağrısı çalıştırılabilir politikalarla değerlendirilir ve her eylem değiştirilemez bir denetim zincirine yazılır. Web arayüzü bu katmandan habersizdir; katman opsiyoneldir ve onun yanında çalışır.
Neden
| Sorun | Yürütme Katmanının cevabı |
|---|---|
| Ajanlar ham API anahtarlarını görüyor | Gateway — persona token'ı ile bağlanır, upstream anahtarı hiç görülmez |
| "Ajan ne yaptı?" sorusuna kanıt yok | Hash-zincirli denetim + harici çıpalama |
| Politikalar yalnızca sistem prompt'unda öneri | Araç çağrısından önce çalışan fail-closed politika motoru |
| Yerel ajan sınırsız komut çalıştırabilir | Zorunlu yerel sandbox + egress allowlist |
| Prompt injection ile araç kötüye kullanımı | Katmanlı injection savunması (köken izleme → egress → imzalı komut kanalı) |
| Uzun ömürlü kimlik bilgisi sızıntısı | ~60 dakikalık access token + iptal + otomatik bayat-oturum temizliği |
Bileşenler
┌─────────────────────── İş istasyonu ───────────────────────┐
│ │
│ 3pa CLI ──► opencode (yönetilen sandbox konteyneri) │
│ │ ▲ │ │
│ plugin │ │ base-prompt.md (guardrail) │
│ ▼ │ ▼ │
│ egress proxy (allowlist) ──────────────────────┐ │
└───────────────────────────────────────────────────────│────┘
│
HTTPS (persona bearer token) │
▼
┌──────────────────────── Platform backend ──────────────────┐
│ │
│ /v1/* LLM Gateway ──► şirketin upstream'i │
│ /policy/decide Politika Motoru (off|dry_run|enforce) │
│ /workstation/* heartbeat · token · imzalı komut kanalı │
│ /audit/* Denetim Zinciri ──► S3 Object Lock çıpası │
│ /.well-known/opencode imzalı yönetilen yapılandırma │
│ /mcp persona skill'leri (JSON-RPC) │
└────────────────────────────────────────────────────────────┘
| Bileşen | Belge |
|---|---|
| Merkezî LLM Gateway | llm-gateway |
| Çalıştırılabilir Politika Motoru | policy-engine |
| Değiştirilemez Denetim Zinciri | audit-chain |
| Persona Kimliği ve Token'lar | identity |
3pa İş İstasyonu CLI | cli |
| İzole Çalıştırma Ortamı (sandbox) | sandbox |
| Prompt Injection Savunması | injection-defense |
| Yönetilen opencode Yapılandırması | managed-config |
Tasarım ilkeleri
- Fail-closed. Politika değerlendirmesi, token doğrulama ve iptal kontrolü — hata durumunda hepsi engeller, geçirmez.
- Varsayılanlar serbest. Gateway kotaları, politika modu (
dry_run), önem skorlaması — hiçbiri açıkça yapılandırılmadan kısıtlamaz. Katman önce gözlemlenir, sonra zorlanır. - Web arayüzüne dokunulmaz. Yürütme katmanı ayrı router'lar, ayrı tablolar, ayrı CI iş akışlarıdır.
- Karar = kod. Her mimari karar
docs/adr/altında bir ADR'dir (ADR-0001 … ADR-0013).