TECHDEV · Flagship · Công cụ mã nguồn mở

agent-seatbelt

Lớp chính sách trung lập nhà cung cấp và bằng chứng chống giả mạo nằm phía trên runtime agent bạn đang dùng. Mọi hành động của agent — gọi tool, egress mạng, tra cứu DNS, truy cập file, dùng credential — đều do một engine chính sách xác định quyết định, chạy ngoài tiến trình agent, và mọi quyết định, kể cả quyết định từ chối, đều ghi vào sổ bằng chứng append-only, hash-chained mà bạn có thể kiểm chứng bằng một lệnh offline.

Python · Policy pack OPA/Rego · Apache-2.0 · Python ≥ 3.11 + binary OPA (giai đoạn 1 phát triển với OPA 1.21) · Phần còn lại chỉ là thư viện chuẩn Python · Không có LLM nào phán quyết trong đường quyết định.

Vấn đề mà công cụ trả lời

Bạn chạy AI agent với credential thật trên hệ thống thật. README mô tả một đánh giá độc lập về một runtime hàng đầu, trong đó cơ chế chặn vẫn đứng vững, nhưng audit trail có lỗ hổng: một truy vấn DNS bị chặn không để lại bất kỳ event nào, audit export âm thầm không ghi gì, và các tool call bên trong sandbox không bao giờ được ghi lại. Khi sự cố xảy ra, bạn không thể trả lời câu hỏi duy nhất quan trọng — agent đã làm chính xác những gì, và chúng ta đã chặn những gì? — từ những bản ghi đáng tin, vì bản ghi rải rác khắp runtime, gateway và console, và một số còn có thể bị sửa sau khi ghi.

Seatbelt là lớp còn thiếu, theo cách README nói: một điểm chính sách và một sổ bằng chứng duy nhất xuyên suốt các runtime, với độ bao phủ được kiểm tra, không phải được tuyên bố. Quy tắc cốt lõi: hành động của agent mà không có bản ghi bằng chứng là lỗi hệ thống, không phải chi tiết nhỏ — sổ đối chiếu những gì kỳ vọng với những gì quan sát được, và một lần chạy sẽ công khai thất bại khi thiếu bản ghi.

Công cụ làm gì

Adapter (giai đoạn 1)

AdapterĐiểm biênTín hiệu gốc
Claude CodeHook CLI PreToolUse (seatbelt hook) + resolver tap + broker/budget qua daemonEvent OpenTelemetry, đưa vào cùng một sổ
NVIDIA OpenShellDecision API của daemon + MCP proxy + egress proxy + resolver tapExport OCSF, đưa vào và đối chiếu với chính bản ghi của Seatbelt

Mỗi adapter công bố coverage manifest trong repo (adapters/claude-code/coverage-manifest.json và adapters/openshell/coverage-manifest.json).

Cách dùng

README không có package npm và không có lệnh cài đặt — công cụ chạy từ source. Điều kiện: Python ≥ 3.11 và binary OPA (giai đoạn 1 phát triển với OPA 1.21); phần còn lại chỉ là thư viện chuẩn Python. Đường golden path mất khoảng 2 phút:

export PYTHONPATH="$PWD/src"
export OPA_BIN=/path/to/opa

# Credential DEMO GIẢ cho workload mẫu. Không bao giờ dùng credential thật:
# broker đọc nó từ môi trường, và nó không bao giờ được tới
# agent hay sổ.
export SEATBELT_SECRET_BILLING_API='DEMO-SECRET-billing-9c1f'

D=/tmp/seatbelt-demo; mkdir -p "$D/run" "$D/anchors" "$D/ws" "$D/bundle"

# 1. Khởi động API đích mẫu và daemon Seatbelt
python3 examples/ops-assistant/target_server.py 18741 &
python3 -m seatbelt.cli serve --run-dir "$D/run" --run-id demo-1 \
  --adapter openshell --workspace "$D/ws" --policies policies \
  --opa-bin "$OPA_BIN" --key-file "$D/operator-key.txt" \
  --anchor-dir "$D/anchors" --state-file "$D/state.json" &
sleep 2

# 2. Chạy workload mẫu sạch qua các điểm biên của Seatbelt
python3 examples/ops-assistant/agent.py --mode openshell \
  --scenario clean --state-file "$D/state.json" --workspace "$D/ws" \
  --ground-truth "$D/ground-truth.ndjson" \
  --transcript "$D/transcript.json" --target-port 18741

# 3. Dừng daemon, đối chiếu bao phủ, đóng gói + kiểm chứng bundle
kill %2; sleep 1
python3 -m seatbelt.cli coverage --run-dir "$D/run" \
  --ground-truth "$D/ground-truth.ndjson" --key-file "$D/operator-key.txt" \
  --adapter openshell --anchor-path "$D/anchors/anchors.ndjson"

cp "$D/run/ledger.ndjson" "$D/run/coverage-report.json" \
   "$D/anchors/anchors.ndjson" "$D/bundle/"

printf '%s\n' "$SEATBELT_SECRET_BILLING_API" 'CANARY-SECRET-7f3a9d2e' \
  > "$D/secrets.txt"

python3 -m seatbelt.cli verify --bundle "$D/bundle" \
  --key-file "$D/operator-key.txt" --secrets-file "$D/secrets.txt" \
  --ground-truth "$D/ground-truth.ndjson"

Lệnh chép đúng từ quickstart của README. Verifier in {"ok": true, ...} và thoát với mã 0. Thử scenario planted để xem năm vi phạm được gài sẵn vừa bị chặn vừa được ghi lại, rồi đổi bất kỳ byte nào trong bundle/ledger.ndjson và chạy lại bước verify — nó sẽ thất bại, chỉ đúng bản ghi bị sửa. Demo là một phiên terminal thật duy nhất, ghi lại đúng lúc chạy: bash docs/demo/run_demo.sh chạy workload sạch, rồi workload gài sẵn, đối chiếu bao phủ, kiểm chứng bundle bằng chứng offline, rồi đổi một byte trong bản sao của sổ và xem verifier thất bại, chỉ đúng bản ghi bị sửa. Văn bản phiên thô: docs/demo/typescript.txt trong repo.

Số liệu đã đo (README)

README không công bố số liệu độ trễ, throughput hay benchmark timing, nên trang này không đưa số liệu nào như vậy.

Đây KHÔNG phải gì — và đối thủ hơn chúng ta ở đâu

Giới hạn (README nêu rõ)

Bố cục repo (README): src/seatbelt/ (daemon, PDP client, ledger, broker, proxy, verifier); policies/ (policy pack Rego v1 + data); adapters/ (adapter claude-code/ và openshell/ + manifest); examples/ (workload mẫu ops-assistant, sạch + gài sẵn); verification/ (harness acceptance giai đoạn 1 và kết quả đã đo); docs/ (kiến trúc, threat model, demo); tests/ (23 test). Tài liệu thêm trong repo: kiến trúc và trust model, policy pack v1, README của cả hai adapter, workload mẫu, kết quả acceptance giai đoạn 1, release dossier, chính sách bảo mật.

Giấy phép

Apache-2.0 — xem LICENSE trong repo.

Source + README trên GitHub → · Báo lỗi → · ask@techdev.fun

Công cụ liên quan

Các công cụ mã nguồn mở khác của TECHDEV: sessguard, runverdict, gheist-guard, vetgate, context-diet, ci-failure-detective, devsecops-os, env-doctor, skill-audit, logtrim, testguard, breakcheck, keymap, memgraph, ggufit, leaseguard, factfence, jsonfold

Đóng góp ý kiến

Bình chọn cho công cụ này, đề xuất tính năng, hoặc thảo luận với các vận hành khác trên bảng cộng đồng.