Thêm các điều khiển thời gian chạy cho các tác nhân AI với NVIDIA OpenShell

Các tác tử AI có thể được giao một mục tiêu, viết mã, sử dụng các công cụ và tiếp tục làm việc khi có thông tin mới. Điều này mở ra cánh cửa cho các ứng dụng điều tra sự cố phần mềm, chạy thí nghiệm và thực hiện các hành động quan trọng đối với doanh nghiệp cũng như nghiên cứu trong nhiều ngày hoặc nhiều tuần.

Các tác tử hữu ích cần quyền truy cập vào không gian làm việc, tài nguyên tính toán, dữ liệu, thông tin xác thực và các dịch vụ bên ngoài. Tuy nhiên, quyền truy cập rộng hơn cũng tạo ra nhiều chế độ lỗi nghiêm trọng hơn, từ việc thay đổi dữ liệu sản xuất hoặc lộ thông tin bí mật đến việc hành động vượt quá nhiệm vụ được giao.

NVIDIA OpenShell 0.1.0 là một runtime mã nguồn mở để định nghĩa và thực thi các hệ thống và dữ liệu mà một agent có thể truy cập. Nó kết hợp thực thi trong môi trường cách ly (sandboxed execution), truy cập dịch vụ có kiểm soát, quản lý thông tin xác thực và phân tích chính sách chính thức. Các nhóm có thể cấp cho agent những khả năng mà tác vụ yêu cầu trong khi OpenShell thực thi các quyền hạn đó bên ngoài khối lượng công việc (workload).

Nó hỗ trợ Codex, Claude Code, Pi, Hermes và các framework trong tương lai trên các ứng dụng doanh nghiệp, nghiên cứu tiên phong và AI vật lý — từ các đội agent nội bộ và nghiên cứu dài hạn đến robot và hệ thống biên (edge systems).

Bài viết này cho thấy cách NVIDIA OpenShell 0.1.0 đặt các biện pháp kiểm soát thời gian thực thi được thực thi xung quanh một tác tử AI hiện có—mà không cần viết lại nó—để các nhóm có thể hạn chế các thao tác API, bảo vệ thông tin xác thực và xem xét các thay đổi quyền hạn bên ngoài khối lượng công việc của tác tử.

OpenShell cung cấp lớp thời gian thực thi của Nền tảng An toàn Tác tử Mở rộng NVIDIA rộng lớn hơn, mở rộng bảo vệ qua các lớp ứng dụng, thời gian thực thi và hạ tầng.

Video 1. Hướng dẫn cách thiết lập tác nhân tự chủ chạy dài hạn của bạn

Cách các tổ chức áp dụng OpenShell

OpenShell là mã nguồn mở và có sẵn để doanh nghiệp áp dụng trong hệ sinh thái đối tác rộng lớn, điều này định hình chính sản phẩm. Các tổ chức đang áp dụng OpenShell trong nhiều ứng dụng khác nhau, bao gồm thiết kế chip, tự động hóa doanh nghiệp, tính toán tăng tốc và AI vật lý.

  • Cadence sử dụng OpenShell cho thiết kế chip với ChipStack Autonomous RTL Design Engineer.
  • Slack đang xây dựng một nền tảng agent theo yêu cầu trên OpenShell để tự động hóa các tác vụ.
  • Gecko Robotics sử dụng OpenShell để quản lý các tác tử đưa ra quyết định trên các robot vật lý.

Các tính năng của OpenShell

OpenShell 0.1.0 hỗ trợ các thao tác sandbox, xác minh chính sách, tích hợp quản trị, bảo vệ thông tin xác thực và tính toán linh hoạt.

Năng lực Cách nó hỗ trợ
Hỗ trợ nền tảng đa người thuê Vận hành các dịch vụ agent cho nhiều nhóm hoặc khách hàng với các không gian làm việc, quyền hạn và quyền truy cập dịch vụ riêng biệt trên cơ sở hạ tầng dùng chung.
Xác minh chính sách chính thức Hiển thị cho người dùng và người xem xét AI xem các quyền được yêu cầu có còn nằm trong các ranh giới bảo mật được xác định hay không, và xác định nơi chúng vượt quá các ranh giới đó.
Bảo mật và quản trị có thể mở rộng Kết nối các dịch vụ bảo mật bên thứ ba, hệ thống quản trị và các kiểm tra tùy chỉnh với việc thực thi bên ngoài khối lượng công việc của tác tử.
Truy cập dịch vụ được bảo vệ bằng thông tin xác thực Sử dụng các dịch vụ đã xác thực trong khi các thông tin xác thực thực vẫn nằm bên ngoài khối lượng công việc của tác tử và được liên kết với các yêu cầu được ủy quyền.
Thực thi CPU và GPU Chạy các thí nghiệm và xử lý dữ liệu trên CPU hoặc GPU xuyên suốt các container, máy ảo và môi trường Kubernetes.

Bảng 1. Các tính năng mới được giới thiệu trong OpenShell 0.1.0

Thực thi quyền hạn bên ngoài tác nhân

Một tác nhân có thể diễn giải các chỉ thị, chọn công cụ và phát triển cách tiếp cận của nó theo thời gian. OpenShell duy trì sự linh hoạt đó trong khi thực thi quyền hạn bên ngoài khối lượng công việc của tác nhân.

OpenShell có thể quản lý các đội ngũ agent và môi trường sandbox của chúng, mỗi môi trường có các quyền riêng, và cho phép thực thi quản trị trên các nhóm cùng một lúc. Ba thành phần cung cấp khả năng kiểm soát này:

  • OpenShell Gateway: Quản lý vòng đời và chính sách của nhiều môi trường sandbox.
  • OpenShell Supervisor: Được ghép nối với mỗi sandbox, nó chạy bên ngoài khối lượng công việc của agent và kiểm tra các yêu cầu gửi đi theo chính sách.
  • OpenShell Sandbox: Chạy khối lượng công việc với các điều khiển ở cấp độ kernel đối với hệ thống tệp và tiến trình của nó, và không có đường dẫn mạng nào ngoại trừ thông qua supervisor.

Diagram showing the OpenShell Gateway managing three separate agent sandboxes. Each sandbox contains an agent with code and local tools. Policy-approved connections link the agents to one another and to application services, including model APIs, data and memory, and remote MCP servers.Hình 1. OpenShell quản lý các sandbox của agent. Các giám sát viên bên ngoài hạn chế liên lạc ra bên ngoài đến các dịch vụ được cấu hình

Thời gian chạy sandbox OpenShell sử dụng các điều khiển nhân hệ điều hành để giới hạn các tệp mà một khối lượng công việc có thể đọc hoặc thay đổi và ngăn nó thu thập thêm đặc quyền hệ thống. Đối với quyền truy cập mạng, bạn có thể cụ thể hơn so với việc cho phép kết nối đến một dịch vụ. Giám sát viên có thể kiểm tra lưu lượng HTTP, GraphQL và Model Context Protocol (MCP) được cấu hình, cho phép truy vấn dữ liệu trong khi chặn ghi thông qua cùng một API. Các điều khiển này vẫn được duy trì khi agent khởi động shell, chạy mã được tạo, khởi chạy các tiến trình con hoặc đề xuất ủy nhiệm tác vụ cho các sub-agent. OpenShell ghi lại các quyết định chính sách trong một bản ghi kiểm toán Open Cybersecurity Schema Framework (OCSF). Khi nó chặn một yêu cầu được kiểm tra, nó có thể trả về một lỗi mô tả giúp agent quyết định điều gì tiếp theo.

Xem một quyết định chính sách diễn ra

Ví dụ này sử dụng curl và một điểm cuối không xác thực trong GitHub REST API, giúp hiển thị rõ ràng mỗi quyết định chính sách mà không cần khóa API hoặc mô hình ngôn ngữ. Các điều khiển tương tự được áp dụng khi một tác nhân thực hiện yêu cầu.

Cài đặt và khởi động OpenShell 0.1.0 bằng hướng dẫn cài đặt. Sau đó, tải xuống các tệp chính sách no-network.yaml và github-readonly.yaml đi kèm vào thư mục examples.

Trước tiên, hãy tạo một sandbox không có quyền truy cập mạng ra bên ngoài:

openshell sandbox create --name policy-demo \
  --no-auto-providers \
  --policy examples/no-network.yaml

Lệnh create mở một shell bên trong sandbox. Hãy thử đọc một điểm cuối công khai:

curl -sS --max-time 10 https://api.github.com/zen

Yêu cầu thất bại vì sandbox không có quyền mạng đi ra. Mở một terminal thứ hai trên máy chủ của bạn và kiểm tra nhật ký để xem chương trình nào đã thực hiện yêu cầu và lý do nó bị chặn:

openshell logs policy-demo --since 5m

Tiếp theo, thay thế chính sách sandbox bằng chính sách cho phép truy cập chỉ đọc vào GitHub REST API. Các chính sách được tạo bằng YAML và được biên dịch thành OPA/Rego, mà OpenShell sẽ đánh giá cho mỗi yêu cầu đi ra.

network_policies:
  github_api:
    name: github-api-readonly
    endpoints:
      - host: api.github.com
        port: 443
        protocol: rest
        enforcement: enforce
        access: read-only
    binaries:
      - path: /usr/bin/curl

Quy tắc này cho phép /usr/bin/curl truy cập API GitHub trên cổng 443. Với protocol: rest, OpenShell sẽ kiểm tra các yêu cầu HTTP, cho phép đọc nhưng chặn ghi.

Trong terminal máy chủ của bạn, áp dụng chính sách thay thế hoàn chỉnh mà không cần khởi động lại sandbox:

openshell policy set policy-demo \
  --policy examples/github-readonly.yaml --wait

Quay lại shell sandbox và thử cả hai yêu cầu:

# Read: allowed
curl -sS --max-time 10 https://api.github.com/zen

# Write: blocked
curl -sS --max-time 10 -X POST https://api.github.com/zen

Kiểm tra lại nhật ký của host để xác nhận rằng OpenShell đã chặn POST. Một agent chạy các lệnh này sẽ gặp phải các hạn chế tương tự.

Truy cập dịch vụ mà không lộ thông tin xác thực

Nhiều tác nhân cần các API mô hình hoặc dịch vụ riêng để hoàn thành nhiệm vụ của chúng. OpenShell cấp quyền truy cập đó trong khi giữ các thông tin xác thực thực sự bên ngoài khối lượng công việc của tác nhân.

Diagram showing an agent workload sending an API request with a placeholder key to the OpenShell supervisor and proxy. The supervisor verifies the network policy and credential binding, substitutes the real provider key outside the agent workload, and forwards the authenticated request to an authorized service.Hình 2. Thông tin xác thực thực sự được thay thế bên ngoài khối lượng công việc của tác nhân và chỉ dành cho một điểm cuối được cấp quyền. Cả truy cập mạng và liên kết thông tin xác thực đều phải cho phép yêu cầu

Quyền ủy quyền cho một dịch vụ không làm cho thông tin xác thực có sẵn cho dịch vụ khác. Nếu tác tử gửi placeholder đến một điểm đích nằm ngoài các điểm cuối được phê duyệt của thông tin xác thực, OpenShell sẽ từ chối yêu cầu.

Dịch vụ nhận vẫn thực thi các quyền hạn gắn với thông tin xác thực thực. OpenShell thêm một lớp kiểm soát riêng biệt về cách tác tử có thể sử dụng nó. Ví dụ, một chính sách API chỉ đọc được kiểm tra có thể chặn các yêu cầu ghi ngay cả khi bản thân thông tin xác thực có quyền ghi.

Hồ sơ nhà cung cấp xác định thông tin xác thực, điểm cuối và các chương trình được phép cho một dịch vụ. Giả sử một nhà cung cấp GitHub có tên github đã được cấu hình, hãy gắn nó vào một sandbox mới và khởi động Codex.

openshell sandbox create \
  --provider github \
  -- codex

Điều chỉnh quyền truy cập mạng trong khi tác nhân đang chạy

Một agent có thể phát hiện ra rằng nó cần một dịch vụ hoặc nguồn dữ liệu mà trước đó chưa được biết đến khi nhiệm vụ bắt đầu. Khi chính sách chặn yêu cầu, OpenShell sẽ ghi lại việc từ chối để một người vận hành hoặc một agent AI có thẩm quyền phê duyệt có thể xem xét. Khi policy advisor được bật, agent có thể đề xuất một thay đổi chính sách mạng hoặc tệp có phạm vi hẹp. Đề xuất mặc định sẽ ở trạng thái chờ để con người xem xét, và agent không thể tự phê duyệt yêu cầu của chính mình. Sau khi được phê duyệt, OpenShell sẽ nạp quy tắc mới vào sandbox đang chạy để agent có thể thử lại mà không cần khởi động lại công việc.

Các hạn chế về hệ thống tệp và tiến trình được thiết lập khi sandbox khởi động. Việc thay đổi các kiểm soát đó yêu cầu một sandbox mới.

Bật cố vấn chính sách cho một sandbox bằng lệnh sau.

openshell settings set  \
  --key agent_policy_proposals_enabled \
  --value true

Xác minh các quyền hạn mà một chính sách cấp

Một chính sách có thể trông có vẻ hạn chế nhưng vẫn để mở một con đường khác. Việc chặn một thao tác ghi trên GitHub thông qua một công cụ sẽ không có tác dụng nếu một công cụ được phép khác hoặc mã được tạo ra có thể sử dụng thông tin xác thực để thực hiện cùng thao tác ghi đó.

Trình chứng minh chính sách OpenShell sử dụng logic hình thức để kiểm tra các quyền được cấp bởi chính sách, bao gồm cả quyền truy cập do nhà cung cấp đóng góp. Nó có thể chứng minh rằng các quyền được mô hình hóa vẫn nằm trong phạm vi do người vận hành xác định hoặc xác định một hành động cụ thể vượt ra khỏi phạm vi đó. Vì kết quả được suy ra từ mô hình chính sách, nên lời giải thích của tác tử không thể thay đổi kết quả đó. Tài liệu nhập môn về phương pháp hình thức được liên kết bên dưới sẽ hướng dẫn cách thức hoạt động của cơ chế này.

Trong các thử nghiệm đối kháng có thời gian dài, các tác nhân tiên phong với các biện pháp bảo vệ bị giảm thiểu đã dành đến hai giờ để thuyết phục một trình đánh giá AI cấp các quyền cho phép chúng sửa đổi một kho GitHub được bảo vệ. Phân tích chính sách chính thức của OpenShell đã cung cấp cho trình đánh giá bằng chứng về những gì các quyền đó cho phép, ngay cả khi các tác nhân cố gắng thao túng trình đánh giá. Các biện pháp kiểm soát đánh giá và thời gian chạy kết hợp đã cho phép truy cập hữu ích, và không có thao tác ghi nào vào kho được bảo vệ xảy ra trong các thử nghiệm này

Công việc đang tiếp diễn mở rộng phân tích chính sách trên nhiều tác nhân, trong đó quyền truy cập của một tác nhân có thể kết hợp với quyền truy cập của tác nhân khác. Mục tiêu là kiểm tra các quyền của hệ thống mà chúng tạo thành cùng nhau. Xem tài liệu chứng minh để biết các kiểm tra được hỗ trợ.

Xây dựng cục bộ và triển khai vào hạ tầng chia sẻ

Bắt đầu với một sandbox cục bộ trong khi xây dựng ứng dụng và xác định các quyền của nó. Để phục vụ nhiều người dùng, hãy làm theo hướng dẫn workspace và truy cập và sử dụng SDK để tạo và quản lý các sandbox. Mỗi khối việc có chính sách riêng và các nhà cung cấp được gắn kèm.

Trusted middleware bên ngoài sandbox có thể kết nối các dịch vụ danh tính và thêm các kiểm tra cụ thể cho ứng dụng vào đường dẫn yêu cầu. Các trình điều khiển tính toán kết nối OpenShell với Docker, Podman, MicroVM và Kubernetes; ma trận hỗ trợ bao gồm các yêu cầu hiện tại.

Tham gia #openshell-dev trên CNCF Slack để đặt câu hỏi, chia sẻ phản hồi và kết nối với các nhóm và nhà phát triển khác đang xây dựng trên OpenShell. Khám phá mã nguồn và đóng góp trên GitHub, và theo dõi các công tác nghiên cứu và kỹ thuật đang diễn ra trong ghi chú phát triển OpenShell. Nếu bạn đang nâng cấp một triển khai hiện có, hãy xem ghi chú di chuyển 0.1.0.

Sẵn sàng xây dựng? Bắt đầu với quickstart để chạy agent của riêng bạn với OpenShell và cấu hình các dịch vụ mà nó có thể truy cập.

____
Bài viết liên quan
TAG: , ,