Chuyển đến nội dung chính
Guardrails sàng lọc văn bản chảy qua một mô hình. Firewall kiểm soát các hành động mà một agent thực hiện — các tool nó gọi, các MCP server nó vươn tới, các skill nó nạp, và các host nó trò chuyện cùng. Nó là đối tác ở tầng hành động của Guardrails: cùng phạm vi workspace, cùng mô hình liên kết một lần, cùng lời hứa “chính sách nằm ở gateway, không phải trong ứng dụng của bạn”. Trang này là tổng quan khái niệm và tham chiếu vận hành. Ba trang đồng hành đi sâu vào các bộ phận chuyển động:

Quy tắc

Ngôn ngữ so khớp — tool glob, mệnh đề argument, danh sách egress, sanitizer, và chuỗi.

MCP server

Đăng ký và kiểm soát các Model Context Protocol server đằng sau một gateway được audit duy nhất.

Skills

Quét và chấm điểm rủi ro các khả năng mà agent của bạn cài đặt trước khi chúng có thể chạy.

1. Firewall là gì

Một AI agent không chỉ sinh ra văn bản — nó hành động. Nó gọi shell.exec, truy vấn db.query, fetch một URL, nạp một community skill, hoặc định tuyến một cuộc gọi tool qua một MCP server của bên thứ ba. Mỗi cái trong số đó là một hành động có hậu quả ngoài đời thực, và guardrail ở tầng prompt không thể thấy chúng. Firewall là một chính sách có tên, theo phạm vi workspace mà gateway đánh giá trên mọi cuộc gọi tool. Bạn soạn một chính sách một lần, liên kết một API key với nó (hoặc đặt một cái làm mặc định của workspace), và từ đó về sau mọi cuộc gọi tool mà key đó phát ra đều được kiểm tra đối với chính sách — trước khi nó đến được tool. Mỗi chính sách là một danh sách quy tắc có thứ tự. Một quy tắc quyết định một điều — nó áp dụng cho những cuộc gọi tool nào (một glob tên tool, tùy chọn thu hẹp theo một skill và theo một bề mặt thực thi) và làm gì với chúng (một verdict: allow, audit, deny, sanitize, giữ lại chờ phê duyệt, hoặc giới hạn chi phí). Engine duyệt các quy tắc theo thứ tự ưu tiên, match đầu tiên thắng, và fallback về verdict mặc định của chính sách nếu không có gì khớp. Chỉnh sửa một chính sách có hiệu lực trên mọi key liên kết với nó ở lần gọi kế tiếp. Không triển khai lại. Không đổi code agent. Chính sách được thực thi ở gateway — agent của bạn vẫn phát ra các cuộc gọi tool y như trước.
Phát hiện diễn ra ở gateway, ở lần dùng đầu tiên. Firewall nằm trên đường relay LLM, không phải bên trong package manager hay filesystem của agent bạn. Một tool, MCP server, hoặc skill mà một agent tự cài đặt được bắt ở lần đầu tiên cuộc gọi của nó vượt qua gateway — không phải lúc cài đặt. Đây là chủ đích: đó là điểm nghẽn duy nhất thấy mọi provider, mọi agent, và mọi cuộc gọi tool bất kể khả năng đó đến đó bằng cách nào.

2. Bốn bề mặt thực thi

Mỗi cuộc gọi tool được đánh giá đối với đúng một bề mặt — điểm trong vòng đời request nơi firewall thấy nó:
Bề mặtNó thấy cái gì
inboundCác tool mà một agent quảng bá tới mô hình trên request (định nghĩa tool). Cho phép bạn block một tool nguy hiểm trước khi mô hình kịp chọn nó.
responseCác tool_calls mà mô hình phát ra trong câu trả lời của nó.
mcpMột tools/call được dispatch qua Firewall MCP gateway hoặc được đánh giá qua SDK hook.
egressMột đích đến mạng đi ra ngoài (host / IP / CIDR) được một tool báo cáo — bề mặt SSRF và rò rỉ dữ liệu.
Một quy tắc không có stage áp dụng cho mọi bề mặt; ghim một quy tắc vào một bề mặt khi một verdict chỉ có ý nghĩa ở đó (vd: một allowlist egress).

3. Khái niệm cốt lõi

Khái niệmĐịnh nghĩa
Chính sáchMột tập quy tắc có tên, theo phạm vi workspace. Có enabled, is_default, một default_verdict, và một cờ shadow_mode.
Quy tắcMột kiểm tra bên trong một chính sách: một priority, một match tool/skill, một surface tùy chọn, một predicate argument tùy chọn, và một verdict. Xem Quy tắc.
VerdictHành động mà một quy tắc (hoặc mặc định) tạo ra — xem §4.
Verdict mặc địnhÁp dụng khi không có quy tắc nào khớp. Một trong allow, audit (mặc định), hoặc deny.
Shadow modeChính sách đánh giá và ghi log nhưng không bao giờ block — mọi verdict thực thi bị hạ cấp thành audit và lý do được thêm tiền tố [shadow] would …. Công tắc triển khai an toàn của bạn.
Observe modeMột thiết lập ở cấp workspace. Khi một request phân giải về không có chính sách và observe mode đang bật, cuộc gọi được cho phép nhưng được ghi log như một khoảng trống độ phủ — đó là cái nuôi dữ liệu cho chế độ xem Discovered-tools.

Phạm vi và phân giải

Các chính sách phân giải y hệt Guardrails và API key — chia sẻ theo workspace khi bạn có một workspace đang hoạt động. Với bất kỳ cuộc gọi tool nào, gateway phân giải chính sách theo thứ tự này:
  1. Liên kết key — nếu key đang gọi có một firewall_policy_id, chính sách đó áp dụng (khi nó tồn tại và được bật).
  2. Mặc định workspace — ngược lại, chính sách is_default đã bật của workspace sẽ áp dụng.
  3. Cả hai đều không — không thực thi. Với observe mode bật, cuộc gọi được cho phép và ghi log như một khoảng trống; với nó tắt, cuộc gọi được cho phép một cách im lặng (giống hệt từng byte với một workspace chưa bao giờ bật tính năng này).
Mỗi workspace có nhiều nhất một chính sách làm mặc định; thăng cấp một mặc định mới sẽ hạ cấp cái cũ trong cùng một transaction.
Fail-open trên cái chưa biết, fail-closed trên cái mơ hồ. Nếu việc phân giải chính sách gặp một lỗi thoáng qua, gateway suy giảm về observe/allow thay vì làm gián đoạn traffic. Nhưng ở nơi mà không thực thi sẽ đánh bại chính quy tắc — một báo cáo egress không có đích đến dùng được, một kho phê duyệt không thể tiếp cận, một skill mà quyền sở hữu của nó không thể phân giải — engine fail closed (deny hoặc giữ lại). Tính sẵn sàng được bảo toàn; an toàn không bị âm thầm bỏ qua trong các trường hợp quan trọng.

4. Verdict

Một quy tắc (hoặc verdict mặc định) tạo ra một trong các giá trị:
VerdictNó làm gì
allowCho cuộc gọi đi qua. Được ghi log.
auditCho phép, nhưng ghi lại để xem xét. default_verdict mặc định — quan sát mọi thứ, không block gì cả, cho đến khi bạn sẵn sàng.
denyBlock cuộc gọi. Agent thấy một lỗi tool (hoặc HTTP 400 trên bề mặt inbound).
sanitizeRedact các chuỗi con đã khớp khỏi argument của tool (secrets, PII) và chuyển tiếp cuộc gọi đã làm sạch. Xem sanitizer. Trên bề mặt inbound — nơi chưa có argument tại thời điểm gọi — sanitize leo thang thành một block.
pending_approvalGiữ cuộc gọi lại cho một con người. Agent nhận một phản hồi “held”; một reviewer phê duyệt hoặc từ chối ngoài luồng; agent gửi lại với một token phê duyệt dùng một lần. Xem §7.
cap_costDeny một khi mức chi tiêu tích lũy của lần chạy agent vượt quá mức trần tính bằng cents theo từng quy tắc. Một cầu dao ngắt mạch cho các vòng lặp mất kiểm soát.
Trong shadow mode, deny / sanitize / pending_approval đều bị hạ cấp thành audit để bạn có thể đo lường tác động của một chính sách trước khi nó thay đổi traffic.

5. Một cuộc gọi tool được đánh giá thế nào

  1. Một cuộc gọi tool đến gateway (được quảng bá inbound, phát ra trong một response, dispatch qua MCP gateway, hoặc được báo cáo như egress).
  2. Engine phân giải chính sách đang hoạt động (§3).
  3. Nó duyệt các quy tắc của chính sách theo thứ tự ưu tiên (priority thấp hơn trước; hòa nhau thì phân định theo rule id). Một quy tắc khớp khi surface của nó, glob tên tool, glob tên skill tùy chọn, các mệnh đề argument tùy chọn, và phạm vi egress tùy chọn của nó tất cả đều khớp.
  4. Match đầu tiên thắng → verdict của quy tắc áp dụng. Nếu không quy tắc nào khớp → default_verdict của chính sách.
  5. Nếu cuộc gọi thuộc sở hữu của một skill được kiểm soát, chế độ thực thi của skill được áp dụng lên trên — một skill ở chế độ block buộc một deny; một skill ở chế độ quarantine leo thang bất cứ thứ gì thấp hơn deny lên thành pending_approval.
  6. Quyết định được ghi log như một sự kiện firewall (trừ khi đó là một dry run), tương quan với lần chạy agent và session.

6. Một block trông như thế nào

Một cuộc gọi bị từ chối trên bề mặt inbound trả về HTTP 400 với một thân lỗi định dạng OpenAI, mã lỗi firewall_blocked, và một thông báo nêu tên tool và lý do — vd: tool "shell.exec" blocked by firewall: destructive shell command. Lỗi mang theo metadata có cấu trúc (mã lý do, các yếu tố rủi ro, điểm số) và được đánh dấu skip-retry (chạy lại cùng một cuộc gọi sẽ chỉ bị block lại). Một cuộc gọi được dispatch qua MCP gateway bị block như một lỗi tool (firewall deny: <reason>) thay vì một thất bại truyền tải, nên mô hình thấy sự từ chối và có thể phản ứng — chọn một tool khác, hỏi người dùng, hoặc dừng lại — thay vì crash. Một cuộc gọi bị giữ lại (pending_approval) trả về HTTP 400 với mã firewall_approval_pending và một approval id mà client poll dựa vào.

7. Phê duyệt bởi con người (HITL)

Một verdict pending_approval biến một cuộc gọi tool thành một cuộc xem xét ngoài luồng:
  1. Engine xếp vào hàng đợi một bản ghi phê duyệt và trả về một phản hồi “held” mang theo id của nó; cuộc gọi không đến được tool.
  2. Một reviewer giải quyết nó — từ console (Developer+), hoặc qua một webhook callback ký HMAC tới hệ thống phê duyệt của riêng bạn.
  3. Agent của bạn (hoặc MCP SDK) poll approval id; một khi được phê duyệt nó gửi lại cuộc gọi gốc với một header dùng một lần X-OrcaRouter-Firewall-Approval, và gateway cho nó đi qua đúng lần đó.
Các quyết định theo nguyên tắc first-writer-wins và idempotent. Nếu quy tắc nền tảng bị chỉnh sửa sau khi giữ lại, phần enrichment ghi chú rule_changed để reviewer biết ngữ cảnh đã dịch chuyển.

8. Cấp độ tự chủ — một công tắc cho toàn bộ tư thế của bạn

Tinh chỉnh chính sách theo từng quy tắc là con đường chính xác; cấp độ tự chủ là con đường nhanh. Một điều khiển duy nhất thay thế một cách nguyên tử tư thế Firewall Guardrails của workspace bạn trong một transaction, với hoàn tác một cú nhấp:
Cấp độTư thế
tightBlock shell phá hủy, secrets trong argument, và egress SSRF (mặc định deny); guardrail PII Shield + Secrets Blocker bật; observe mode tắt.
balancedAudit shell phá hủy, flag PII; observe mode tắt. Tư thế khởi đầu được khuyến nghị.
permissiveKhông có chính sách thực thi, không có guardrail; observe mode bật để bạn vẫn thấy mọi thứ.
Hoàn tác khôi phục đúng trạng thái trước đó từ snapshot audit.

9. Phát hiện bất thường

Vượt ra ngoài các quy tắc tĩnh, Firewall học hình dạng dùng tool bình thường của mỗi workspace và gắn cờ các sai lệch trên một feed mà viewer có thể đọc:
  • Spike tốc độ / chi phí — hoạt động theo từng tool được chấm điểm đối với một baseline theo giờ-trong-tuần đã học (trung bình trượt 14 ngày), nên “100 cuộc gọi db.query lúc 3 giờ sáng Chủ nhật” nổi bật ngay cả khi mỗi cuộc gọi đơn lẻ đều được cho phép.
  • retry_loop — một agent dồn dập cùng một tool đang thất bại.
  • novel_path — một chuyển tiếp tool-sang-tool mà workspace này chưa bao giờ thực hiện trước đây.
Feed chỉ báo cáo tên tool, các token id đã được redact, và số đếm. Bạn có thể snooze một bất thường lên đến 7 ngày trong khi điều tra.

10. Khả năng quan sát

Firewall để lại một dấu vết bạn có thể hành động dựa vào, tất cả đều theo phạm vi workspace:
Bề mặtNó cho bạn cái gì
EventsMọi lần đánh giá, có thể lọc theo verdict, surface, tool, run, và session. Bản ghi thô đằng sau mọi thứ khác.
Runs & sessionsCác sự kiện được gộp theo lần chạy agent hoặc cuộc hội thoại — phân tích verdict, các tool và mô hình riêng biệt, lần thấy đầu/cuối. Chế độ xem “agent này thực sự đã làm gì”.
Discovered toolsMọi tool mà workspace đã thấy, được gắn cờ covered (một quy tắc áp dụng) hoặc gap (không có gì áp dụng). Điều khiển việc soạn chính sách từ traffic thực tế.
SimulateXem trước những gì một cấp độ tự chủ sẽ thay đổi trước khi bạn áp dụng nó.
TestDry-run một chính sách đối với một cuộc gọi tool mẫu và xem verdict, quy tắc đã khớp, và lý do — không có gì được persist, không có gì được dispatch.
AuditMọi thay đổi chính sách, quy tắc, và cài đặt ghi một hàng audit (workspace + trung tâm) sau khi thay đổi được commit. Secrets và rule blob không bao giờ được ghi log.

11. Quan hệ với phần còn lại của gateway

Bề mặtPhối hợp với Firewall thế nào?
GuardrailsCác mặt phẳng bổ trợ. Guardrails sàng lọc văn bản prompt/response; Firewall kiểm soát các hành động tool. Cả hai có thể áp dụng cho một request. Cấp độ tự chủ đặt cả hai cùng lúc.
RoutingĐộc lập. Routing chọn mô hình/kênh; firewall phán xét các cuộc gọi tool bất kể mô hình nào phục vụ chúng.
API keysMột key liên kết với một chính sách qua firewall_policy_id; liên kết nằm trên key trong gateway. Không có liên kết thì fallback về mặc định của workspace.
MCP gatewayFirewall chính là MCP gateway — mọi server bạn đăng ký đều dispatch tools/call của nó qua engine.
SkillsChế độ thực thi của một skill được kiểm soát cưỡi lên trên verdict của quy tắc, nên một skill bị quarantine sẽ bị giữ lại ngay cả khi không có quy tắc nào nêu tên các tool của nó.

12. Kết nối một agent với gateway Firewall

Có hai cách để một cuộc gọi tool đến được engine:
  • MCP gateway — trỏ MCP client của bạn (Claude Desktop, Cursor, một agent framework) vào https://api.orcarouter.ai/api/v1/firewall/mcp. Gateway phơi bày các tool của mọi server đã đăng ký có thể tiếp cận được, được đặt namespace <server>.<tool>, và đánh giá mỗi tools/call inline. Xem MCP server.
  • Evaluate hook — gọi POST /api/v1/firewall/evaluate từ vòng lặp agent của riêng bạn trước khi dispatch một cuộc gọi tool, và hành động dựa trên verdict.
Cả hai đều yêu cầu một token có phạm vi firewall-gateway — một API key chuyên dụng được phát hành cho mục đích này. Một key thông thường nhận 403 trên các route này.

13. Tham chiếu API

Mọi route console đều theo phạm vi workspace qua ngữ cảnh workspace và thực thi RBAC nhất quán: đọc và các sandbox test/simulate mở cho mọi thành viên; ghi yêu cầu Developer+.

Chính sách & cài đặt

Method & pathVai tròMục đích
GET /api/workspace/firewall/settingsMemberĐọc cài đặt firewall của workspace (observe mode, mặc định).
PUT /api/workspace/firewall/settingsDeveloper+Cập nhật cài đặt.
GET /api/workspace/firewall/policiesMemberLiệt kê chính sách (với số lượng quy tắc + key liên kết).
GET /api/workspace/firewall/policies/:idMemberChi tiết một chính sách đơn lẻ.
POST /api/workspace/firewall/policiesDeveloper+Tạo một chính sách.
PUT /api/workspace/firewall/policiesDeveloper+Cập nhật một chính sách.
DELETE /api/workspace/firewall/policies/:idDeveloper+Xóa một chính sách (409 nếu vẫn còn key liên kết).

Tư thế, preset & sandbox

Method & pathVai tròMục đích
GET /api/workspace/firewall/presetsMemberCác preset quy tắc built-in.
POST /api/workspace/firewall/autonomyDeveloper+Áp dụng một cấp độ tự chủ.
POST /api/workspace/firewall/autonomy/undo/:audit_idDeveloper+Hoàn tác một thay đổi tự chủ.
GET /api/workspace/firewall/simulateMemberXem trước một cấp độ tự chủ (?level=).
POST /api/workspace/firewall/testDeveloper+Dry-run một chính sách đối với một cuộc gọi tool mẫu.

Khả năng quan sát

Method & pathVai tròMục đích
GET /api/workspace/firewall/discovered-toolsMemberCác tool đã thấy, gắn cờ covered / gap.
GET /api/workspace/firewall/eventsDeveloper+Liệt kê các sự kiện firewall (có thể lọc).
GET /api/workspace/firewall/events/by-request/:request_idDeveloper+Các sự kiện cho một request.
GET /api/workspace/firewall/events/aggregateDeveloper+Gộp runs / sessions.
GET /api/workspace/firewall/trace/by-runDeveloper+Các node trace cho một lần chạy (?run_id=).
GET /api/workspace/firewall/anomaliesMemberFeed bất thường (?window=).
POST /api/workspace/firewall/anomalies/snoozeDeveloper+Snooze feed bất thường.
Quy tắc, MCP server, và skill mỗi cái có endpoint riêng — xem Quy tắc, MCP server, và Skills.

Gateway (máy-tới-máy)

Các route này chạy trên một token có phạm vi firewall-gateway, không phải session console:
Method & pathMục đích
POST /api/v1/firewall/evaluateVerdict trước dispatch cho một cuộc gọi tool.
POST /api/v1/firewall/evaluate_planKiểm tra trước thực thi cho một kế hoạch nhiều bước.
ANY /api/v1/firewall/mcpEndpoint MCP gateway hợp nhất.
GET /api/v1/firewall/approvals/:idPoll trạng thái phê duyệt của một cuộc gọi bị giữ lại.
POST /api/v1/firewall/approvals/:id/callbackCallback phê duyệt ký HMAC.

14. FAQ

Với observe mode tắt, hành vi giống hệt từng byte với một workspace chưa bao giờ bật tính năng này — không có gì bị block hoặc ghi log. Với observe mode bật, cuộc gọi được cho phép nhưng được ghi lại như một khoảng trống độ phủ để nó xuất hiện trong Discovered tools.
Bật shadow mode. Chính sách đánh giá và ghi log chính xác như nó sẽ làm trong production, nhưng mọi verdict thực thi bị hạ cấp thành audit và lý do được thêm tiền tố [shadow] would …. Theo dõi các chế độ xem events và runs, xác nhận nó kích hoạt trên những gì bạn mong đợi và không kích hoạt trên những gì bạn không mong đợi, rồi tắt shadow mode để bắt đầu thực thi.
Một block inbound kích hoạt trước cuộc gọi mô hình thượng nguồn, nên nó không tốn token mô hình. Các verdict audit / allow không thay đổi billing. Một quy tắc cap_cost bản thân nó là một điều khiển billing — nó deny một khi mức chi tiêu của lần chạy vượt qua mức trần cents của bạn.
Cả hai, cho các tầng khác nhau. Guardrails sàng lọc văn bản trong prompt và response (PII, secrets, jailbreak). Firewall kiểm soát các hành động một agent thực hiện (tool nào, MCP server nào, host nào). Một request có thể đi qua cả hai. Cấp độ tự chủ tight cấu hình chúng cùng nhau.
Firewall thực thi trên các cuộc gọi tool vượt qua gateway — đường relay, MCP gateway, và evaluate hook. Một tool mà agent của bạn thực thi hoàn toàn bên trong tiến trình của chính nó, không bao giờ chạm tới gateway, nằm ngoài tầm nhìn của firewall. Mục tiêu thiết kế là biến gateway thành con đường được audit duy nhất cho các cuộc gọi quan trọng (các tool qua trung gian mô hình, dispatch MCP, egress mạng); định tuyến những cái đó qua nó và chúng được kiểm soát.

Xem thêm

Muốn đi sâu hơn về bảo mật agent? Các hướng dẫn Bảo mật agent (Zero Trust) đặt tính năng này vào một quy trình zero-trust.

Bảo mật agent (Zero Trust)

Playbook firewall agent zero-trust — allow-list tool, kiểm tra tham số, và kiểm soát egress.

Baseline Secure Agents

Một công tắc đặt tư thế Firewall và Guardrails của bạn cùng nhau.