Harness Academy
Tài liệu gốc 05 3 phútTiếng Việt + English
running_the_code/03_runtime.mdXem bản gốc
Ngôn ngữ bài đọc
Bản dịch tiếng Việt

Bản dịch đầy đủ theo đúng cấu trúc tài liệu; code, liên kết và định danh kỹ thuật được giữ nguyên.

runtime headless — decode run, độ bền và phát lại

REPL cần bạn ngồi trên bàn phím. decode run không: nó chạy một nhiệm vụ để hoàn thành mà không cần giám sát và in câu trả lời trên thiết bị xuất chuẩn (làm sạch đường ống). Cùng một agent, khác tài xế — một Kitaru dòng bền bỉ kiểm tra mọi lệnh gọi mô hình và công cụ, do đó, một lần chạy tốn kém sẽ tồn tại sau sự cố và tiếp tục thay vì thanh toán lại cho công việc đã hoàn thành (ADR-0008).

Điều kiện tiên quyết: thiết lập cốt lõi từ 01_install_and_usage.md. Không có gì khác — ngăn xếp Kitaru cục bộ chạy ngoại tuyến, không cần máy chủ.

Chạy một tác vụ

decode run "list the python files under src and summarize what the cli module does"
  • Bỏ qua theo mặc định — mọi công cụ đều chạy mà không có lời nhắc phê duyệt. decode run --hitl thay vào đó tạm dừng toàn bộ quá trình thực hiện trên Kitaru bền bỉ chờ đợi write/edit/bash/ask_user; giải quyết từ terminal khác với kitaru executions input <exec_id> --wait <name> --value 'true'.
  • Ngăn xếp cục bộ ngoại tuyến — không có máy chủ Kitaru hoặc kitaru init cần thiết. Kiểm tra các lần chạy với kitaru executions list / get <id> / logs <id>; kitaru login bắt đầu bảng điều khiển web cục bộ tùy chọn tại http://127.0.0.1:8383 (kitaru logout quay trở lại cơ sở dữ liệu cục bộ không có máy chủ nếu daemon bị treo).
  • Guards — trình bảo vệ khóa nhà cung cấp tương tự như REPL; RUNTIME_ENABLED=false vô hiệu hóa lệnh phụ bằng một dòng thân thiện.

Phát lại & điều gì sẽ xảy ra nếu

Mỗi decode run ghi lại một điểm kiểm tra cho mỗi lệnh gọi mô hình và mỗi lệnh gọi công cụ, do đó bạn có thể chạy lại mọi hoạt động thực thi đã ghi từ bất kỳ điểm cố định nào có mô hình được hoán đổi và xem điều gì sẽ xảy ra (ADR-0010):

decode run "…"                                              # stderr prints exec_id + a replay hint
kitaru executions get <ID>                                  # list the checkpoint anchors
decode replay <ID> --from decode_runtime_model_request --model gemini-2.5-pro

Thượng nguồn của --from phục vụ từ bộ đệm của lần chạy ban đầu; neo và xuôi dòng thực hiện lại thực tế. Cái nĩa mới exec_id in trên stderr - so sánh fork với bản gốc với kitaru executions get. --from được yêu cầu; một câu hỏi giả định đáng tin cậy chạy lại đường cơ sở trước (không --model) và phân biệt ngã ba với điều đó. decode replay chỉ ở chế độ bỏ qua (HITL phát lại, hỏi lại mỗi lần chờ - sử dụng kitaru executions replay).

Khắc phục sự cố

macOS: máy chủ Kitaru cục bộ gặp sự cố khi đang chạy

Một cuộc chạy bắt đầu tốt đẹp, sau đó tràn ngập RemoteDisconnected / Connection refused trên 127.0.0.1:8383: daemon máy chủ đã chết do hủy bỏ an toàn ngã ba ObjC của Apple — nhật ký của nó (~/Library/Application Support/kitaru/zen_server/daemon/service.log) kết thúc bằng objc[…]: … fork() was called … Crashing instead. Khắc phục một trong hai cách:

uv run kitaru logout                                          # simplest: no daemon, no crash
OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES uv run kitaru login   # or keep the dashboard

Thích hơn logout trừ khi bạn thực sự muốn có bảng điều khiển web — decode run, kitaru executionsvà kitaru secrets tất cả đều hoạt động dựa trên cơ sở dữ liệu cục bộ không có máy chủ. Xác nhận với kitaru info: Local server: registered but unavailable có nghĩa là đăng ký cũ vẫn đang trỏ vào daemon đã chết.

Đi xa hơn

  • Chạy headless bên trong sandbox và trên bất kỳ repo nào: 04_sandboxing.md (SANDBOX_MODE=docker decode run --repo <url> "<task>").
  • Chạy headless trên đám mây — toàn bộ agent trên Modal, điểm kiểm tra trên máy chủ tự lưu trữ: 07_infra.md.
  • Hydrat hóa các bí mật của cuộc chạy từ Thùng môi trường thay vì .env: 06_credentials.md.
Mục lục nguồn