Nếu bạn sử dụng Claude Code, Codex, hoặc Cursor với bất kỳ thứ gì liên quan đến một API thực tế, bạn sẽ gặp vấn đề: tác nhân cần thông tin đăng nhập và trình quản lý mật khẩu của bạn muốn giữ chúng an toàn. Các cách giải quyết thông thường đều tệ. Dán khóa API vào một cuộc trò chuyện và nó sẽ tồn tại trong cửa sổ ngữ cảnh của mô hình mãi mãi. Đặt bí mật vào tệp .env và công cụ bash của tác nhân sẽ vui vẻ cat chúng và gửi chúng đi đâu đó. Hầu hết các nhóm chỉ hạ thấp tiêu chuẩn của họ.
Dự án mã nguồn mở mới của Bitwarden, Agent Access, là nỗ lực nghiêm túc đầu tiên để khắc phục điều này. Đó là một giao thức chia sẻ thông tin đăng nhập, một CLI (aac), và một SDK Rust + Python xây dựng một đường hầm được mã hóa giữa trình quản lý mật khẩu của bạn và một tiến trình từ xa: một tác nhân, một trình chạy CI, một tập lệnh. Tác nhân nhận được các bí mật cần thiết, được giới hạn trong một tên miền hoặc mục kho lưu trữ duy nhất, mà không bao giờ nhìn thấy kho lưu trữ của bạn.
Hướng dẫn này trình bày về những gì Agent Access cung cấp, cách cài đặt nó, cách sử dụng aac connect và aac run, cách nó phù hợp với quy trình làm việc của Claude Code, Codex và Cursor, và vị trí của nó bên cạnh các mẫu vệ sinh thông tin đăng nhập được đề cập trong Cách bảo mật thông tin đăng nhập API của tác nhân AI.
Agent Access là gì (một đoạn văn)
Agent Access là một giao thức mở cộng với triển khai tham chiếu được xây dựng bởi Bitwarden nhưng được thiết kế để bất kỳ trình quản lý mật khẩu nào cũng có thể áp dụng. CLI (aac) tạo một đường hầm được mã hóa đầu cuối bằng cách sử dụng giao thức Noise. Một “nhà cung cấp” lắng nghe các yêu cầu kết nối; một “người tiêu dùng” (tác nhân của bạn, tập lệnh của bạn, công việc CI của bạn) kết nối với nhà cung cấp và yêu cầu thông tin đăng nhập theo tên miền hoặc ID mục kho lưu trữ. Nhà cung cấp quyết định sẽ gửi lại gì. Người tiêu dùng không bao giờ nhìn thấy toàn bộ kho lưu trữ. Nhà cung cấp không bao giờ thấy người tiêu dùng làm gì với thông tin đăng nhập. Nhật ký kiểm tra tồn tại ở cả hai phía.

Hiện tại nó đang ở giai đoạn xem trước ban đầu. README của dự án cảnh báo rằng “Các API và giao thức có thể thay đổi” và “chúng tôi không khuyến nghị nhập trực tiếp các thông tin đăng nhập nhạy cảm vào LLM hoặc tác nhân AI.” Mô hình mà Bitwarden khuyến nghị thay vào đó là trọng tâm của một nửa hướng dẫn này: chèn biến môi trường thông qua aac run, giúp đưa bí mật vào một tiến trình mà không làm lộ chúng ra cửa sổ ngữ cảnh của tác nhân.
Tại sao điều này lại quan trọng vào năm 2026
Các tác nhân viết mã AI đã vượt ra ngoài các hộp cát. Claude Code, Codex, Cursor và những cái khác hiện đọc kho lưu trữ của bạn, chạy các bài kiểm tra của bạn, truy cập API của bạn, triển khai mã của bạn. Mỗi bước đó đều cần thông tin đăng nhập. Sự cố khóa API bị lộ của Postman đã cho thấy sự yếu kém của việc quản lý thông tin đăng nhập khi chỉ con người bất cẩn; con người cộng với tác nhân còn tệ hơn.
Câu trả lời đúng không phải là “tin tưởng tác nhân hơn”; mà là “cung cấp ít thông tin cho tác nhân hơn.” Agent Access thực hiện điều này ở cấp độ giao thức: thông tin đăng nhập được giới hạn phạm vi, được mã hóa khi truyền, được lấy tại thời gian chạy, biến mất khi tiến trình thoát. So sánh với thực tiễn hiện tại (Công cụ quản lý khóa API bao gồm phần còn lại của bức tranh) và Agent Access là thứ đầu tiên được xây dựng dành riêng cho trường hợp tác nhân.
Cài đặt
Chọn nền tảng của bạn.
macOS (Apple Silicon)
curl -L https://github.com/bitwarden/agent-access/releases/latest/download/aac-macos-aarch64.tar.gz | tar xz
sudo mv aac /usr/local/bin/
macOS (Intel)
curl -L https://github.com/bitwarden/agent-access/releases/latest/download/aac-macos-x86_64.tar.gz | tar xz
sudo mv aac /usr/local/bin/
Linux (x86_64)
curl -L https://github.com/bitwarden/agent-access/releases/latest/download/aac-linux-x86_64.tar.gz | tar xz
sudo mv aac /usr/local/bin/
Windows (x86_64)
Tải xuống aac-windows-x86_64.zip từ trang phát hành mới nhất và giải nén vào bất kỳ thư mục nào trong PATH của bạn.
Xác minh cài đặt bằng aac --help. Nếu Bitwarden CLI (bw) cũng nằm trong PATH của bạn, aac sẽ sử dụng nó làm nhà cung cấp thông tin đăng nhập mặc định; nếu không, hãy truyền --provider example để sử dụng nhà cung cấp demo tích hợp trong khi bạn thử nghiệm.
Bắt đầu nhanh: ghép nối và lấy thông tin đăng nhập
Hai lệnh. Chạy aac listen trên máy chứa kho lưu trữ của bạn, thường là máy tính xách tay của bạn:
aac listen
Trình lắng nghe in ra một mã thông báo ghép nối. Ở phía người tiêu dùng (máy từ xa, trình chạy CI, hoặc chỉ là một shell khác trên cùng một máy chủ trong khi bạn kiểm tra), ghép nối và lấy thông tin trong một cuộc gọi:
aac connect --token <pairing-token> --domain github.com --output json
Bạn sẽ nhận lại được cái gì đó như sau:
{
"credential": {
"notes": null,
"password": "alligator5",
"totp": null,
"uri": "https://github.com",
"username": "example"
},
"domain": "github.com",
"success": true
}
Hình dạng JSON đó là hợp đồng ổn định của giao thức. Tập lệnh của bạn có thể phân tích cú pháp nó theo cách nó muốn. Để lấy thông tin theo ID mục kho lưu trữ thay vì tên miền:
aac connect --id <vault-item-id> --output json
--id và --domain loại trừ lẫn nhau; hãy chọn một. Mã TOTP chảy qua cùng một payload khi mục kho lưu trữ có một mã được cấu hình.
Tính năng “đỉnh”: aac run để chèn biến môi trường
aac connect rất tốt khi tập lệnh của bạn biết cách xử lý JSON. Mô hình lớn hơn là aac run: nó lấy một thông tin đăng nhập và chạy tiến trình con của bạn với các bí mật được chèn dưới dạng biến môi trường. Không bao giờ xuất ra stdout, không bao giờ ghi vào đĩa, không bao giờ hiển thị cho bất cứ thứ gì đã khởi tạo aac.
Chèn các trường cụ thể:
aac run --domain example.com --env DB_PASSWORD=password --env DB_USER=username -- psql
Chèn mọi trường với tiền tố AAC_:
aac run --domain example.com --env-all -- deploy.sh
Kết hợp mặc định với ghi đè:
aac run --domain example.com --env-all --env CUSTOM_PW=password -- deploy.sh
Các trường có sẵn là username, password, totp, uri, notes, domain, và credential_id.
Đây là mô hình mà Bitwarden tích cực khuyến nghị cho việc sử dụng tác nhân AI: bạn hướng Claude Code hoặc Codex đến một tập lệnh gọi aac run, và bí mật không bao giờ xuất hiện trong bản ghi của tác nhân. Mô hình nhìn thấy lệnh aac run --domain api.stripe.com --env-all -- ./deploy.sh, chứ không phải mật khẩu. Nếu tác nhân sau đó hỏi “giá trị của $STRIPE_API_KEY là gì?” câu trả lời là “tôi không thể thấy nó” bởi vì nó được giới hạn trong tiến trình con deploy.sh.
Đây là nguyên tắc cô lập tương tự được đề cập trong Cách bảo mật thông tin đăng nhập API của tác nhân AI, được cụ thể hóa bằng một công cụ thực tế.
SDK Python và Rust
Nếu một lời gọi CLI là không đủ (ví dụ bạn đang nhúng Agent Access vào ứng dụng của riêng mình), thì có các ràng buộc cấp cao.
Python
from agent_access import RemoteClient
client = RemoteClient("python-remote")
client.connect(token="ABC-DEF-GHI")
cred = client.request_credential("example.com")
print(cred.username, cred.password)
client.close()
Mô-đun Python được hỗ trợ bởi PyO3, vì vậy các tác vụ nặng vẫn nằm trong Rust và bạn có cùng một triển khai giao thức Noise bên dưới.
Rust
SDK Rust cung cấp cùng giao diện RemoteClient dưới dạng thư viện cấp cao. Các triển khai tham chiếu nằm trong examples/rust-remote/ trong kho lưu trữ. Sử dụng nó khi bạn đang viết người tiêu dùng bằng Rust trực tiếp. Phổ biến trong các công cụ CLI, trình chạy xây dựng và bất kỳ dịch vụ nào muốn phân phối nhị phân đã biên dịch.
Đối với các nhóm ứng dụng đã cung cấp công cụ API, mô hình SDK phù hợp một cách rõ ràng bên cạnh các tích hợp HashiCorp Vault hoặc Azure Key Vault. Agent Access không phải là sự thay thế cho những thứ đó ở cấp doanh nghiệp, nhưng nó phù hợp hơn cho các trường hợp sử dụng máy tính xách tay của nhà phát triển và trình chạy CI.
Tích hợp với các tác nhân mã hóa AI
Claude Code
Kết nối aac run vào tập lệnh mà Claude Code gọi. Ví dụ cho một tác vụ triển khai:
# deploy.sh
#!/usr/bin/env bash
aac run --domain prod.example.com --env-all -- ./run-deploy.sh
Thêm tập lệnh này vào dự án của bạn, hướng quy trình làm việc Claude Code của bạn vào nó, và tác nhân sẽ gọi ./deploy.sh mà không có thông tin đăng nhập trong lời nhắc. Tích hợp Claude Code GitHub Actions mở rộng mô hình tương tự vào CI: cài đặt aac trong trình chạy, ghép nối nó với nhà cung cấp kho lưu trữ Bitwarden đang chạy trên mặt phẳng điều khiển, và GitHub Actions của bạn sẽ kế thừa các thông tin đăng nhập được giới hạn phạm vi tại thời điểm công việc.
OpenAI Codex
Mô hình tương tự cũng hoạt động với CLI của Codex. Lớp gọi công cụ của Codex đưa các lệnh lên mô hình; tập lệnh mà mô hình gọi sẽ truy cập vào aac run và các bí mật vẫn nằm ngoài ngữ cảnh của mô hình. Bài đăng gần đây Codex từ điện thoại của bạn đề cập đến bề mặt rộng hơn của Codex; đây là khía cạnh thông tin đăng nhập kết hợp với nó.
Cursor
Đối với các lệnh terminal và quy trình làm việc Composer của Cursor, các tập lệnh được bao bọc bởi aac run hoạt động mà không cần sửa đổi. Điểm mạnh của Cursor là chỉnh sửa cục bộ, vì vậy trình lắng nghe thường chạy trên cùng một máy.
OpenClaw (Kỹ năng hệ sinh thái Anthropic)
Agent Access cung cấp một kỹ năng OpenClaw chính thức ngay từ đầu (một tệp SKILL.md nằm trong kho lưu trữ). Đối với các nhóm sử dụng kỹ năng theo phong cách OpenClaw, đây là sự tích hợp được đánh bóng nhất hiện nay: kỹ năng biết hình dạng giao thức, lấy thông tin đăng nhập và chuyển chúng cho bất kỳ công cụ hạ nguồn nào mà kỹ năng đó cung cấp. Hướng dẫn khóa API OpenClaw bao gồm câu chuyện quản lý thông tin đăng nhập rộng hơn cho hệ sinh thái đó.
Mô hình bảo mật bằng ngôn ngữ đơn giản
Ba tuyên bố đáng kiểm tra:
- Mã hóa đầu cuối qua Noise. Lưu lượng truy cập giữa người tiêu dùng và nhà cung cấp được mã hóa bằng khung giao thức Noise, cùng loại bắt tay mà WireGuard và Signal sử dụng. Lớp vận chuyển không phải là mắt xích yếu nhất.
- Thông tin đăng nhập được giới hạn phạm vi. Người tiêu dùng chỉ nhận được những gì nó yêu cầu (một tên miền hoặc một ID mục kho lưu trữ). Nó không thể liệt kê kho lưu trữ.
- Theo mặc định, không có bí mật nào trên đĩa của người tiêu dùng.
aac runchuyển các bí mật qua biến môi trường vào một tiến trình con; không có gì được ghi vào tệp, không có gì xuất hiện trong stdout, không có gì được lưu vào lịch sử shell.
Những gì Agent Access không bảo vệ khỏi:
- Một tiến trình người tiêu dùng bị xâm nhập. Nếu tác nhân độc hại hoặc bị xâm nhập, thông tin đăng nhập được giới hạn phạm vi vẫn có thể bị rò rỉ. Phòng thủ là phạm vi, không phải giao thức.
- Một nhà cung cấp bị xâm nhập. Nếu kho lưu trữ Bitwarden của bạn bị xâm nhập, lớp này không giúp ích gì cho bạn.
- Nhập trực tiếp các bí mật vào cửa sổ ngữ cảnh LLM. README giải thích rõ ràng về điều này: “chúng tôi không khuyến nghị nhập trực tiếp các thông tin đăng nhập nhạy cảm vào LLM hoặc tác nhân AI.”
aac runlà giải pháp thay thế.
Một mô hình phổ biến: tác nhân gọi API, Apidog kiểm tra nó
Đây là vòng lặp mà hầu hết các nhóm sẽ áp dụng:
- Tác nhân viết mã. Claude Code, Codex, hoặc Cursor mở một yêu cầu kéo liên quan đến một điểm cuối.
- CI chạy các bài kiểm tra. Trình chạy kiểm tra của bạn gọi
aac runđể lấy khóa API, chạy bộ kiểm thử đối với một triển khai thử nghiệm. - Apidog xác minh hợp đồng. Apidog chạy kiểm tra hợp đồng OpenAPI dưới dạng một bước CI riêng biệt, cũng thông qua
aac run, cũng mà không để tác nhân nhìn thấy khóa.
Kết quả: tác nhân triển khai mã, hợp đồng được giữ vững, bí mật không bao giờ rời khỏi kho lưu trữ. Sách hướng dẫn rộng hơn về kiểm tra các thay đổi do AI điều khiển có trong Cách kiểm tra các tác nhân AI gọi API của bạn.
Hạn chế và cảnh báo
- Xem trước ban đầu. Các API và giao thức có thể thay đổi. Đừng gắn một quy trình làm việc sản xuất vào giao thức v0 mà không có ngân sách cho việc viết lại tiếp theo.
- Yêu cầu Bitwarden CLI theo mặc định. Nhà cung cấp mặc định là
bw; cài đặt Bitwarden CLI trước, hoặc truyền--provider examplecho nhà cung cấp demo trong khi kiểm tra. - Chưa có tệp cấu hình. Agent Access hiện đang được điều khiển bằng cờ. Các lời gọi lặp lại cần được viết script xung quanh chúng.
- Không dán bí mật vào lời nhắc LLM. Ngay cả khi đã cài đặt Agent Access, nếu bạn sao chép thông tin đăng nhập vào cửa sổ trò chuyện, không có giao thức nào có thể cứu bạn.
Các câu hỏi thường gặp
Agent Access có miễn phí không?
Có. CLI, SDK và giao thức là mã nguồn mở dưới tổ chức GitHub của Bitwarden. Bạn vẫn phải trả phí cho Bitwarden nếu bạn đang sử dụng nó làm kho lưu trữ của mình.
Nó có hoạt động với các trình quản lý mật khẩu khác ngoài Bitwarden không?
Giao thức được thiết kế để không phụ thuộc vào nhà cung cấp. Triển khai tham chiếu đi kèm với hỗ trợ Bitwarden và một nhà cung cấp ví dụ; các nhà cung cấp khác dự kiến sẽ cung cấp các nhà cung cấp riêng của họ theo thời gian.
Tôi có thể sử dụng nó mà không cần trình quản lý mật khẩu nào không?
Để kiểm tra, có; truyền --provider example để sử dụng nhà cung cấp demo tích hợp. Để sản xuất, bạn cần một nhà cung cấp thực (Bitwarden hiện tại, những nhà cung cấp khác đang trong lộ trình).
Tiến trình người tiêu dùng có cần truy cập mạng không?
Người tiêu dùng cần truy cập mạng để tiếp cận trình lắng nghe của nhà cung cấp. Các thiết lập cục bộ chỉ hoạt động nếu trình lắng nghe và người tiêu dùng nằm trên cùng một máy chủ.
Cái này khác với tệp .env như thế nào?
Một tệp .env nằm trên đĩa, vô tình bị đưa vào kho lưu trữ, và có thể đọc được bởi bất cứ thứ gì mà tác nhân có thể chạy. aac run giữ bí mật chỉ trong bộ nhớ tiến trình, được giới hạn trong tiến trình con, biến mất khi nó thoát.
Nó có thay thế HashiCorp Vault hoặc AWS Secrets Manager không?
Không. Kho lưu trữ doanh nghiệp vẫn là công cụ phù hợp cho các bí mật từ dịch vụ đến dịch vụ ở quy mô lớn. Agent Access lấp đầy khoảng trống cho máy tính xách tay của nhà phát triển và trình chạy CI, nơi một kho lưu trữ doanh nghiệp đầy đủ là quá mức cần thiết.
Liệu Anthropic, OpenAI, hoặc các nhà cung cấp tác nhân khác có tích hợp trực tiếp cái này không?
Chưa được công bố. Mô hình tích hợp hiện tại là “bao bọc các tập lệnh của bạn trong aac run.” Hỗ trợ trực tiếp cấp cao từ các nhà cung cấp tác nhân là bước tiếp theo tự nhiên nhưng chưa được phát hành.
Tôi báo cáo lỗi hoặc đóng góp ở đâu?
Kho lưu trữ GitHub. Các vấn đề, PR và thảo luận giao thức đều diễn ra ở đó.
Hãy thử ngay bây giờ
Cài đặt aac, chạy aac listen trên máy tính xách tay của bạn, chạy aac connect --provider example --domain test.com --output json từ một terminal khác. Xác nhận rằng JSON trả về. Đó là vòng lặp đầu cuối nhỏ nhất. Từ đó, thay thế nhà cung cấp ví dụ bằng bw, bao bọc một tập lệnh thực tế trong aac run, và ngừng dán khóa API vào các tác nhân AI của bạn.
Kết hợp Agent Access với Apidog cho phía kiểm tra API của quy trình làm việc, và bạn sẽ có một sự tách biệt rõ ràng: kho lưu trữ giữ bí mật, Apidog kiểm tra hợp đồng, tác nhân triển khai mã, và không có thông tin đăng nhập nào rời khỏi máy của bạn dưới dạng văn bản thuần túy.
