Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
Codex SDK, Otomasyon ve Maliyet: Programatik Kullanım, Scheduled Tasks ve Claude Code ile Karşılaştırma
Codex SDK local Codex thread'lerini koddan başlatır; veriyi workflow toplayıp thread'i read-only ve ağsız çalıştırmak hem riski hem kullanımı düşürür. TypeScript SDK ile haftalık bağımlılık güncelleme planı, GitHub Actions ile desktop app scheduled task karşılaştırması, ChatGPT planları, beş saatlik pencere tahminleri, Fast ve Ultrafast çarpanları ve Claude Code ile belgelere dayalı kısa bir özellik karşılaştırması.
Codex ile GitHub'da Code Review ve CI: `@codex review`, Automatic Review, `codex exec` ve codex-action
Codex GitHub'da PR'ları @codex review ve automatic review ile inceler ve AGENTS.md'deki Code Review Rules bölümünü uygular, ama insan onayının yerini tutmaz. codex exec'in read-only varsayılanı, JSONL ve --output-schema çıktısı, 0.169'daki --trust davranışı, API key'i job seviyesine koymamanın nedeni ve Bookstore'da EF Core sorgularını read-only profille inceleyip sonucu ayrı bir job'da yorum olarak yazan codex-action workflow'u.
Codex Cloud ile Paralel Task'lar: Cloud Environment'lar, .NET + Angular Kurulumu ve PR'a Dönüştürmek
Codex Cloud'da her task kendi izole workspace'inde çalışır; reusable environment'ı Codex'le bir konuşmada hazırlayıp yayınlarsın, ama secret'ı düz değişken olarak ve internete tam açık bir environment'a koymak prompt injection'a kapı açar. Bookstore için .NET 10 ve Angular kurulum script'i, NuGet'in package manager preset'inde olmaması, network secret ile environment variable farkı, --attempts ile paralel denemeler ve codex apply ile sonucu PR'a çevirmek.
Codex ile Local İş Akışı: Model ve Effort, Worktree'ler, Subagent'lar ve Hooks
Codex'te paralel iş için worktree'ler ve subagent'lar var, ama worktree yalnız Git'in takip ettiği dosyalarla açılır ve eşleşen hook'lar sırayla değil eşzamanlı başlar. Model ve reasoning effort seçimi, side chat ve plan modu, desktop app'te local environment setup script'i, sandbox'ı devralan custom agent'lar ve Bookstore'da commit'lenmiş migration'ları koruyan, hash ile trust edilen bir PreToolUse hook'u.
Codex'te Sandbox ve Approval'lar: Read-only, Workspace-write, Full Access ve Auto-review
Codex'te sandbox ne yapılabileceğini, approval policy ne zaman sorulacağını belirler: Full access ikisini birden kaldırır, Approve for me ise sınırı genişletmeden soruları bir reviewer agent'a verir. Native Windows'ta MXC, elevated ve unelevated sandbox, ağ proxy'si ve domain kuralları, korunan yollar, güven koşuluna bağlı proje ayarları ve Bookstore için SQL Server testlerini onaya bağlayan rules dosyası.
Codex'e Projenizi Öğretmek: AGENTS.md Zinciri, config.toml, Skills ve MCP
Codex talimatları global AGENTS.md'den başlayıp repo kökünden çalışma dizinine kadar zincirler; yakın dosya sonra gelip kazanır ve toplam 32 KiB'tan sonrası modele ulaşmaz. Bookstore'da kök ve alt klasör AGENTS.md dosyaları, Claude Code ile ortak talimat stratejisi, güven koşuluna bağlı proje config.toml katmanı, ayrı dosyalardaki profiller, örtük çağrısı kapatılmış bir migration skill'i ve sürümü sabitlenmiş bir MCP server tanımı.
OpenAI Codex'e Giriş: Desktop App, CLI, IDE Extension, Cloud ve Windows'ta Kurulum
Codex'e başlarken ilk karar giriş yöntemidir: Codex Cloud ve GitHub code review yalnız ChatGPT hesabıyla çalışır, API key yalnız local kullanım verir. Windows'ta standalone installer, npm ve WSL 2 kurulumu, desktop app, CLI, IDE extension ve cloud yüzeylerinin farkı, session'ı neden repo kökünde açman gerektiği ve Bookstore'da testle doğrulanan ilk küçük değişiklik.
Claude API'yi Production'a Taşımak: Hatalar, Rate Limit, Maliyet Takibi, OpenTelemetry ve IChatClient Köprüsü
Claude API'yi production'a taşırken SDK'nın tipli exception'larını en özelden başlayarak ayırır, retry'ı tek katmanda (SDK'da) bırakır, spend cap'i rate limit'ten ayırır ve her cevabın usage'ından maliyet metriği üretirsin. SDK 13.8 hata hiyerarşisi, 529 ve 429 retry davranışı, Polly ile çift retry, cache'in ITPM'e etkisi, OpenTelemetry span'leri ve temperature'ı yok sayan IChatClient köprüsü.
Claude Managed Agents'a Genel Bakış: Agent, Environment, Session ve Ne Zaman Seçilmeli?
Claude Managed Agents'ta agent'ı bir kez oluşturulan versiyonlu bir tanım olarak kurar, her çalıştırmada bu versiyona sabitlenmiş bir session açarsın; loop'u, container'ı ve event geçmişini Anthropic yönetir, credential'lar prompt'a değil vault'a girer. C# SDK ile client.Beta.Agents ve Sessions, ant apply ile dosyadan agent ve cron'lu deployment, session saati fiyatı ve kendi loop'un ya da Agent Framework ile karşılaştırma.
Claude API'de Skills, Code Execution ve MCP Connector: Hazır Yetenekleri ve Remote MCP Server'ları Kullanmak
Claude API'de Excel gibi dosyaları üretmek için container.skills ile xlsx skill'ini ve code execution tool'unu birlikte gönderir, $OUTPUT_DIR'dan dönen file_id'leri Files API ile indirirsin; remote MCP server'ı ise mcp_servers ve mcp_toolset ikilisiyle beta header'la API'ye bağlarsın. Sandbox sınırları ve fiyatı, custom SKILL.md yüklemek, pause_turn ve container, allowlist, token kapsamı ve SDK'nın null ve liste davranışı.
Message Batches ve Files API: Toplu İşleri Yarı Fiyatına Çalıştırmak ve Dosyaları Bir Kez Yüklemek
Acil olmayan binlerce Claude isteğini Message Batches API ile %50 indirimle gönderir, sonuçları sıraya değil custom_id'ye göre eşler ve batch id'sini saklayarak yeniden göndermeyi önlersin; Files API ile dosyayı bir kez yükleyip file_id ile kullanırsın. Dört sonuç tipi, BackgroundService ile gece job'u, 24 saat ve 29 gün sınırları, expires_in_seconds, file_id güvenliği ve document block'unu cache'lemek.
Claude'da Prompt Caching: Cache Breakpoint'leri, TTL ve Maliyeti %90 Düşürmek
Claude'da prompt caching için sabit içeriği (tools, system) başa koyar, sonuna cache_control breakpoint'i ve konuşma için top-level otomatik caching eklersin; cache'in çalıştığını usage'daki cache_read_input_tokens ve cache diagnostics ile doğrularsın. 5 dakika ve 1 saat TTL fiyatları, 512 token alt sınırı, 1.000 isteklik maliyet hesabı, DateTime.Now gibi sessiz bozucular, compaction ve context editing.