Bỏ qua tới nội dung
RexAPFTài liệuMở RexAPF Web
Tài liệuCLIBắt đầu
CLI

Chạy một lần và đầu ra --json

Giao một tác vụ cho rexapf rồi thoát, đọc tác vụ từ stdin, nhận sự kiện JSON từng dòng và tiếp tục phiên bằng --session-id trong script hoặc CI.

4 phút đọcYêu cầu: Đã đăng nhập bằng rexapf login
Trên trang này
  1. Chạy một tác vụ
  2. Đứng trong thư mục dự án
  3. Giao tác vụ
  4. Đọc kết quả
  5. Kiểm tra mã thoát
  6. Đọc tác vụ từ stdin
  7. Đầu ra JSON từng dòng
  8. Tiếp tục một phiên
  9. Dùng trong CI

Khi chạy rexapf kèm nội dung tác vụ, CLI làm đúng một tác vụ, in câu trả lời cuối ra stdout rồi thoát. Chế độ này hợp với script, cron hay bước CI: không mở cổng mạng và không để lại tiến trình chạy nền.

Chạy một tác vụ

  1. Đứng trong thư mục dự án

    Thư mục hiện tại là thư mục làm việc của phiên.

    bash
    $ cd ~/du-an
  2. Giao tác vụ

    Nội dung tác vụ là các đối số còn lại, được nối bằng dấu cách. Nên đặt trong ngoặc kép.

    bash
    $ rexapf "chạy test và sửa lỗi"
  3. Đọc kết quả

    Trong lúc chạy, phần suy nghĩ của mô hình (nếu có) được ghi ra stderr. Khi xong, câu trả lời cuối được in ra stdout.

  4. Kiểm tra mã thoát

    Mã 0 nghĩa là lượt kết thúc bình thường. Mã 1 nghĩa là tác vụ bị huỷ, lỗi, hoặc chưa đăng nhập.

rexapf — một lần
$ rexapf "tóm tắt README trong ba gạch đầu dòng"
- Dự án là ...
- Cài đặt bằng ...
- Chạy test bằng ...

$ echo $?
0
Chạy một tác vụ rồi thoát

Đọc tác vụ từ stdin

Dùng - làm đối số duy nhất, hoặc chỉ cần nối ống vào rexapf:

bash
$ echo "tóm tắt README" | rexapf -
$ git diff | rexapf -
$ cat yeu-cau.md | rexapf

Lưu ý:

  • - phải là đối số tác vụ duy nhất. Viết rexapf - thêm chữ sẽ báo lỗi.
  • Một đối số chỉ toàn khoảng trắng bị từ chối với error: cần nội dung tác vụ.
  • Nếu không có tác vụ và stdin là terminal, CLI in trợ giúp thay vì chờ nhập.

Đầu ra JSON từng dòng

Thêm --json để stdout nhận luồng sự kiện, mỗi dòng một đối tượng JSON, thay cho câu trả lời thuần:

bash
$ rexapf --json "liệt kê các file lớn"
typeÝ nghĩa
sessionMở đầu luồng. Có sessionId và cwd của lần chạy.
statusTiến trình lượt và bước. phase là turn_start, step_start, step_end (có thể kèm usage) hoặc turn_end (kèm reason).
thinkingPhần suy nghĩ đã chốt của một bước.
textVăn bản trả lời đã chốt của một bước.
tool_callTác tử gọi công cụ: callId, tool, input.
tool_resultKết quả công cụ: callId, status (completed hoặc error), result.
finalKết thúc luồng, text là câu trả lời cuối đầy đủ.
errorLỗi ngoài lượt (ví dụ cờ sai, --session-id không dùng được). Luồng dừng mà không có final.
stdout
{"type":"session","sessionId":"session-…","cwd":"/home/ban/du-an"}
{"type":"status","phase":"turn_start","turn":1}
{"type":"tool_call","callId":"…","tool":"bash","input":{"command":"du -sh *"}}
{"type":"tool_result","callId":"…","status":"completed","result":"…"}
{"type":"text","text":"Các file lớn nhất là …"}
{"type":"status","phase":"turn_end","turn":1,"reason":"completed"}
{"type":"final","text":"Các file lớn nhất là …"}
Luồng là bản chiếu, không phải nhật ký đầy đủ

text và thinking chỉ đến khi bước được chốt, không theo từng token. Mọi chuỗi trừ final bị cắt ở 8 KiB và gắn cờ truncated; mỗi dòng tối đa 32 KiB. Một lượt lỗi vẫn có thể kết thúc bằng final rỗng, nên hãy dựa vào mã thoát và reason của turn_end để biết thành công hay không.

Ví dụ lấy câu trả lời cuối bằng jq:

bash
$ rexapf --json "đếm số dòng code" | jq -r 'select(.type=="final") | .text'

Tiếp tục một phiên

Mỗi lần chạy mặc định tạo phiên mới session-<uuid>. Lấy id từ sự kiện session (hoặc từ TUI), rồi giao tiếp việc:

bash
$ rexapf --session-id session-1234abcd "làm tiếp phần còn lại"

Phiên phải tồn tại và có cùng thư mục làm việc với lần chạy hiện tại; nếu không, CLI từ chối trước khi chạy. Không thể dùng một id đang được tiến trình khác điều khiển. Muốn mở phiên đó trong giao diện tương tác, chỉ chạy rexapf --session-id <id>; xem Giao diện tương tác.

Dùng trong CI

Quyền trong chế độ một lần

Phiên mới dùng preset quyền workspace-write: lệnh shell và thao tác tệp chỉ được ghi trong thư mục làm việc và thư mục tạm. Quyền đọc và truy cập mạng không bị giới hạn. Chỉ chạy trên mã nguồn bạn tin cậy.

  • Đăng nhập trên máy chạy CI một lần bằng rexapf login; thông tin được lưu trong ~/.dsh/.credentials.yaml (xem Tệp cấu hình).
  • Kiểm tra mã thoát của rexapf để quyết định bước CI đạt hay không.
  • Công cụ web_search không có trong CLI; web_fetch vẫn dùng được.

Danh sách đầy đủ cờ và lệnh ở Tham chiếu lệnh.

Trang này có hữu ích không?Cập nhật 22/10/2026