Tiếng Việt

Codex SDK

Điều khiển Codex agent cục bộ bằng chương trình

Nếu sử dụng Codex thông qua Codex CLI, tiện ích mở rộng IDE hoặc Codex cloud, bạn cũng có thể điều khiển Codex bằng chương trình.

Dùng SDK khi bạn cần:

  • Điều khiển Codex như một phần trong pipeline CI/CD
  • Tạo agent riêng có thể tương tác với Codex để thực hiện các tác vụ kỹ thuật phức tạp
  • Tích hợp Codex vào các công cụ và quy trình làm việc nội bộ của riêng bạn
  • Tích hợp Codex vào ứng dụng của riêng bạn

Dùng Codex SDK cho các luồng Codex tập trung vào lập trình. Nếu Codex là một chuyên gia trong quy trình điều phối rộng hơn, hãy chạy Codex CLI dưới dạng MCP server và điều phối bằng Agents SDK.

Nếu bạn có quyền truy cập beta và cần quét repository hoặc thay đổi với các phát hiện bảo mật và phạm vi kiểm tra có cấu trúc, hãy dùng Codex Security TypeScript SDK.

Thư viện TypeScript

Thư viện TypeScript cho phép ứng dụng của bạn bắt đầu, tiếp tục và khôi phục các luồng Codex cục bộ.

Hãy sử dụng thư viện ở phía máy chủ; thư viện yêu cầu Node.js 18 trở lên.

Cài đặt

Để bắt đầu, hãy cài đặt Codex SDK bằng npm:

npm install @openai/codex-sdk

Cách sử dụng

Bắt đầu một luồng với Codex và chạy luồng đó bằng prompt của bạ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);

Gọi lại run() để tiếp tục trên cùng một luồng hoặc khôi phục luồng trước đây bằng cách cung cấp ID luồng.

// 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);

Để biết thêm chi tiết, hãy xem repo TypeScript.

Thư viện Python

Python SDK điều khiển Codex app-server cục bộ qua JSON-RPC. SDK yêu cầu Python 3.10 trở lên. Các bản build SDK đã phát hành bao gồm một phần phụ thuộc runtime Codex CLI được ghim phiên bản.

Cài đặt

Để cài đặt SDK, hãy chạy:

pip install openai-codex

Các bản build SDK đã phát hành tự động sử dụng runtime được ghim phiên bản. Chỉ truyền CodexConfig(codex_bin=...) khi bạn chủ ý muốn chạy với một tệp thực thi Codex cục bộ cụ thể.

Trong thời gian Python SDK còn ở giai đoạn beta, pip install openai-codex chọn bản build beta đã phát hành mới nhất. Sau khi có bản phát hành SDK ổn định, hãy dùng pip install --pre openai-codex để chủ động sử dụng các bản phát hành trước mới hơn.

Cách sử dụng

Khởi động Codex, tạo một luồng và chạy prompt:

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)

Dùng AsyncCodex khi ứng dụng của bạn đã hoạt động bất đồng bộ:

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())

Cấu hình sandbox có sẵn

Dùng cùng các cấu hình Sandbox khi tạo luồng hoặc thay đổi quyền truy cập hệ thống tệp cho một lượt sau:

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)

Các cấu hình có sẵn:

  • Sandbox.read_only: Đọc tệp nhưng không cho phép ghi.
  • Sandbox.workspace_write: Đọc tệp và ghi bên trong workspace cùng các thư mục gốc cho phép ghi đã cấu hình.
  • Sandbox.full_access: Chạy không có giới hạn truy cập hệ thống tệp.

Khi bạn bỏ qua sandbox=, app-server sử dụng cấu hình mặc định của nó. Sandbox được truyền cho run(...) hoặc turn(...) áp dụng cho lượt đó và các lượt sau trong luồng.

Để biết thêm chi tiết, hãy xem repo Python.