Codex SDK
Codex SDK
Điều khiển tác nhân Codex 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 tác nhân 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
Sử dụng Codex SDK để tự động hóa các tác vụ lập trình, bao gồm cả công việc trong CI. Sử dụng Codex app server để xây dựng ứng dụng khách tùy chỉnh có khả năng xử lý xác thực, lịch sử hội thoại, phê duyệt và các sự kiện tác nhân được truyền phát trực tiếp.
Lệnh codex mcp-server và tệp nhị phân độc lập codex-mcp-server đã bị loại bỏ. Hãy sử dụng máy chủ ứng dụng Codex cho các tích hợp hiện có.
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-sdkCá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-codexCá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ể.
Python SDK hiện có dưới dạng bản phát hành ổn định. pip install openai-codex
cài đặt bản phát hành ổn định mới nhất. Sử dụng pip install --pre openai-codex để chủ động
sử dụng các bản dựng tiền phát hành 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 môi trường cô lập 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ó. Cấu hình 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.