Türkçe

Codex SDK

Yerel Codex ajanlarını programlı olarak denetleyin

Codex'i Codex CLI, IDE uzantısı veya Codex cloud üzerinden kullanıyorsanız programlı olarak da denetleyebilirsiniz.

Şu durumlarda SDK'yı kullanın:

  • Codex'i CI/CD işlem hattınızın bir parçası olarak denetlemek
  • Karmaşık mühendislik görevlerini gerçekleştirmek için Codex ile etkileşim kurabilen kendi ajanınızı oluşturmak
  • Codex'i kendi dâhilî araçlarınıza ve iş akışlarınıza eklemek
  • Codex'i kendi uygulamanızla tümleştirmek

Kodlamaya odaklanan Codex iş parçacıkları için Codex SDK'yı kullanın. Codex, daha geniş ve orkestre edilmiş bir iş akışında uzmanlardan biriyse Codex CLI'ı bir MCP sunucusu olarak çalıştırın ve Agents SDK ile orkestre edin.

Beta erişiminiz varsa ve yapılandırılmış güvenlik bulguları ile kapsam bilgileri sunan depo veya değişiklik taramalarına ihtiyacınız varsa Codex Security TypeScript SDK'yı kullanın.

TypeScript kitaplığı

TypeScript kitaplığı, uygulamanızın yerel Codex iş parçacıklarını başlatmasına, sürdürmesine ve devam ettirmesine olanak tanır.

Kitaplığı sunucu tarafında kullanın; Node.js 18 veya üzerini gerektirir.

Kurulum

Başlamak için npm kullanarak Codex SDK'yı yükleyin:

npm install @openai/codex-sdk

Kullanım

Codex ile bir iş parçacığı başlatın ve isteminizle çalıştırın.



const codex = new Codex();
const thread = codex.startThread();
const result = await thread.run(
  "Make a plan to diagnose and fix the CI failures"
);

console.log(result.finalResponse);

Aynı iş parçacığında devam etmek için run() öğesini yeniden çağırın veya bir iş parçacığı kimliği sağlayarak geçmiş bir iş parçacığını devam ettirin.

// running the same thread
const result = await thread.run("Implement the plan");

console.log(result.finalResponse);

// resuming past thread

const threadId = "<thread-id>";
const thread2 = codex.resumeThread(threadId);
const result2 = await thread2.run("Pick up where you left off");

console.log(result2.finalResponse);

Daha fazla ayrıntı için TypeScript deposuna bakın.

Python kitaplığı

Python SDK, yerel Codex app-server'ını JSON-RPC üzerinden denetler. Python 3.10 veya üzerini gerektirir. Yayımlanmış SDK derlemeleri, sabitlenmiş bir Codex CLI çalışma zamanı bağımlılığı içerir.

Kurulum

SDK'yı yüklemek için şunu çalıştırın:

pip install openai-codex

Yayımlanmış SDK derlemeleri sabitlenmiş çalışma zamanlarını otomatik olarak kullanır. CodexConfig(codex_bin=...) öğesini yalnızca belirli bir yerel Codex yürütülebilir dosyasına karşı çalıştırmayı özellikle istediğinizde iletin.

Python SDK beta aşamasındayken pip install openai-codex, yayımlanmış en son beta derlemesini seçer. Kararlı bir SDK sürümü yayımlandıktan sonra daha yeni ön sürüm derlemelerini kullanmayı seçmek için pip install --pre openai-codex öğesini kullanın.

Kullanım

Codex'i başlatın, bir iş parçacığı oluşturun ve bir istem çalıştırın:

from openai_codex import Codex, Sandbox

with Codex() as codex:
    thread = codex.thread_start(
        model="gpt-5.6-terra",
        sandbox=Sandbox.workspace_write,
    )
    result = thread.run("Make a plan to diagnose and fix the CI failures")
    print(result.final_response)

Uygulamanız zaten eşzamansız çalışıyorsa AsyncCodex öğesini kullanın:

import asyncio

from openai_codex import AsyncCodex


async def main() -> None:
    async with AsyncCodex() as codex:
        thread = await codex.thread_start(model="gpt-5.6-terra")
        result = await thread.run("Implement the plan")
        print(result.final_response)


asyncio.run(main())

Sandbox ön ayarları

Bir iş parçacığı oluştururken veya sonraki bir tur için dosya sistemi erişimini değiştirirken aynı Sandbox ön ayarlarını kullanın:

from openai_codex import Codex, Sandbox

with Codex() as codex:
    thread = codex.thread_start(sandbox=Sandbox.workspace_write)
    thread.run("Make the requested change.")
    review = thread.run("Review the diff only.", sandbox=Sandbox.read_only)

Kullanılabilir ön ayarlar:

  • Sandbox.read_only: Yazmaya izin vermeden dosyaları okuyun.
  • Sandbox.workspace_write: Dosyaları okuyun; çalışma alanının ve yapılandırılmış yazılabilir köklerin içine yazın.
  • Sandbox.full_access: Dosya sistemi erişimi kısıtlamaları olmadan çalıştırın.

sandbox= öğesini belirtmediğinizde app-server, yapılandırılmış varsayılanını kullanır. run(...) veya turn(...) öğesine iletilen bir sandbox, ilgili tur ve iş parçacığındaki sonraki turlar için geçerli olur.

Daha fazla ayrıntı için Python deposuna bakın.