Thinking Levels (/think directives)

Chức năng

  • Directive inline trong bất kỳ nội dung đầu vào nào: /t <level>, /think:<level>, hoặc /thinking <level>.
  • Các mức độ (aliases): off | minimal | low | medium | high | xhigh (chỉ dành cho GPT-5.2 + Codex models)
    • minimal → “think”
    • low → “think hard”
    • medium → “think harder”
    • high → “ultrathink” (ngân sách tối đa)
    • xhigh → “ultrathink+” (chỉ dành cho GPT-5.2 + Codex models)
    • highest, max được ánh xạ thành high.
  • Lưu ý về Provider:
    • Z.AI (zai/*) chỉ hỗ trợ thinking nhị phân (on/off). Bất kỳ mức độ nào khác off đều được xử lý là on (ánh xạ thành low).

Thứ tự ưu tiên

  1. Inline directive trên message (chỉ áp dụng cho message đó).
  2. Session override (được thiết lập bằng cách gửi một message chỉ chứa directive).
  3. Giá trị mặc định toàn cục (agents.defaults.thinkingDefault trong config).
  4. Fallback: low cho các model có khả năng suy luận; off cho các model khác.

Thiết lập mặc định cho session

  • Gửi một message chỉ chứa directive (cho phép khoảng trắng), ví dụ /think:medium hoặc /t high.
  • Cài đặt này sẽ được giữ nguyên cho session hiện tại (mặc định theo từng người gửi); được xóa bởi /think:off hoặc khi session idle reset.
  • Hệ thống sẽ gửi tin nhắn xác nhận (Thinking level set to high. / Thinking disabled.). Nếu mức độ không hợp lệ (ví dụ /thinking big), lệnh sẽ bị từ chối kèm gợi ý và trạng thái session không thay đổi.
  • Gửi /think (hoặc /think:) không có tham số để xem mức thinking hiện tại.

Áp dụng theo agent

  • Embedded Pi: mức độ đã được xác định sẽ được truyền vào Pi agent runtime đang chạy trong process.

Verbose directives (/verbose hoặc /v)

  • Các mức độ: on (minimal) | full | off (mặc định).
  • Message chỉ chứa directive sẽ bật/tắt session verbose và trả về Verbose logging enabled. / Verbose logging disabled.; các mức độ không hợp lệ sẽ trả về gợi ý mà không thay đổi trạng thái.
  • /verbose off lưu một session override rõ ràng; xóa nó thông qua Sessions UI bằng cách chọn inherit.
  • Inline directive chỉ ảnh hưởng đến message đó; các giá trị mặc định session/global được áp dụng cho các trường hợp khác.
  • Gửi /verbose (hoặc /verbose:) không có tham số để xem mức verbose hiện tại.
  • Khi verbose được bật, các agent phát ra kết quả tool có cấu trúc (Pi, các JSON agent khác) sẽ gửi từng lời gọi tool dưới dạng message riêng chỉ chứa metadata, có tiền tố <emoji> <tool-name>: <arg> khi có sẵn (path/command). Các tóm tắt tool này được gửi ngay khi mỗi tool bắt đầu (các bubble riêng biệt), không phải dưới dạng streaming delta.
  • Khi verbose là full, các output của tool cũng được chuyển tiếp sau khi hoàn thành (bubble riêng, được cắt ngắn đến độ dài an toàn). Nếu các bạn bật/tắt /verbose on|full|off trong khi một run đang chạy, các tool bubble tiếp theo sẽ tuân theo cài đặt mới.

Hiển thị reasoning (/reasoning)

  • Các mức độ: on|off|stream.
  • Message chỉ chứa directive sẽ bật/tắt việc hiển thị các thinking block trong phản hồi.
  • Khi được bật, reasoning sẽ được gửi dưới dạng message riêng có tiền tố Reasoning:.
  • stream (chỉ dành cho Telegram): stream reasoning vào Telegram draft bubble trong khi phản hồi đang được tạo, sau đó gửi câu trả lời cuối cùng không có reasoning.
  • Alias: /reason.
  • Gửi /reasoning (hoặc /reasoning:) không có tham số để xem mức reasoning hiện tại.

Liên quan

Heartbeat

  • Nội dung Heartbeat probe là heartbeat prompt đã được cấu hình (mặc định: Read HEARTBEAT.md if it exists (workspace context). Follow it strictly. Do not infer or repeat old tasks from prior chats. If nothing needs attention, reply HEARTBEAT_OK.). Các inline directive trong heartbeat message được áp dụng như bình thường (nhưng tránh thay đổi giá trị mặc định của session từ heartbeat).
  • Heartbeat delivery mặc định chỉ gửi payload cuối cùng. Để cũng gửi message Reasoning: riêng biệt (khi có sẵn), thiết lập agents.defaults.heartbeat.includeReasoning: true hoặc theo từng agent agents.list[].heartbeat.includeReasoning: true.

Web chat UI

  • Bộ chọn thinking trong web chat phản ánh mức độ đã lưu của session từ inbound session store/config khi trang được tải.
  • Chọn một mức độ khác chỉ áp dụng cho message tiếp theo (thinkingOnce); sau khi gửi, bộ chọn sẽ quay lại mức độ session đã lưu.
  • Để thay đổi giá trị mặc định của session, gửi directive /think:<level> (như trước); bộ chọn sẽ phản ánh nó sau lần reload tiếp theo.