Gateway
1Password
OpenClaw kết hợp với 1Password theo hai cách độc lập:
- Bí mật cấu hình: mọi trường SecretRef trong
openclaw.jsonđều có thể được phân giải thông qua CLIopkhi chạy, nhờ đó các khóa API không bao giờ nằm trong tệp cấu hình. - Quy trình làm việc của tác tử: skill
1passwordđi kèm hướng dẫn các tác tử đăng nhập và đọc hoặc chèn bí mật bằngopcho các tác vụ riêng của chúng.
Yêu cầu
- CLI 1Password (
op) được cài đặt trên máy chủ Gateway (brew install 1password-clitrên macOS). - Một chế độ xác thực cho
op:- Tài khoản dịch vụ (khuyên dùng cho Gateway không có giao diện): xuất
OP_SERVICE_ACCOUNT_TOKENtrong môi trường dịch vụ Gateway. Không cần ứng dụng máy tính, không cần đăng nhập tương tác. - Tích hợp ứng dụng máy tính: ứng dụng 1Password chạy trên cùng máy và đã bật tích hợp CLI. Những lệnh gọi đầu tiên có thể kích hoạt Touch ID hoặc xác thực hệ thống.
- Đăng nhập độc lập:
op signinnhắc đăng nhập theo từng phiên. Có thể dùng cho tác tử thông qua skill, nhưng không phù hợp để phân giải bí mật cấu hình trên Gateway không có giao diện.
- Tài khoản dịch vụ (khuyên dùng cho Gateway không có giao diện): xuất
Phân giải bí mật cấu hình bằng op
Khai báo một trình cung cấp bí mật thực thi chạy op read với tham chiếu op://vault/item/field, sau đó trỏ mọi trường hỗ trợ SecretRef đến trình cung cấp đó:
{ secrets: { providers: { onepassword_openai: { source: "exec", command: "/opt/homebrew/bin/op", allowSymlinkCommand: true, // bắt buộc đối với tệp nhị phân được Homebrew cài đặt dưới dạng liên kết tượng trưng trustedDirs: ["/opt/homebrew"], args: ["read", "op://Personal/OpenClaw QA API Key/password"], passEnv: ["HOME"], jsonOnly: false, }, }, }, models: { providers: { openai: { baseUrl: "https://api.openai.com/v1", models: [{ id: "gpt-5", name: "gpt-5" }], apiKey: { source: "exec", provider: "onepassword_openai", id: "value" }, }, }, },}Cách các thành phần kết hợp với nhau:
commandphải là đường dẫn tuyệt đối;trustedDirsđánh dấu thư mục của đường dẫn đó là đáng tin cậy và cầnallowSymlinkCommandvì Homebrew cài đặtopdưới dạng liên kết tượng trưng.argstruyền nguyên văn tham chiếuop://vault/item/field. OpenClaw không tự phân tích lược đồop://; tệp nhị phânopsẽ phân giải lược đồ đó.passEnvchuyển tiếp các biến được liệt kê từ môi trường Gateway. Tích hợp ứng dụng máy tính cầnHOME; tài khoản dịch vụ cũng cần cóOP_SERVICE_ACCOUNT_TOKENtrong môi trường dịch vụ Gateway (thêm biến này vàopassEnv, hoặc chỉ đặt quaenvnếu bạn chấp nhận việc mã thông báo có thể đọc được trong tệp cấu hình).- Đối với đầu ra một giá trị, hãy giữ
id: "value". VớijsonOnly: truevà tải trọng JSON, hãy truy cập các trường bằng mã định danh con trỏ JSON. - Mỗi bí mật dùng một mục trình cung cấp giúp các tham chiếu dễ kiểm tra; đặt tên trình cung cấp theo thành phần sử dụng chúng (
onepassword_openai,onepassword_telegram).
Xem Bí mật Gateway để biết thứ tự phân giải, cơ chế lưu bộ nhớ đệm và ngữ nghĩa lỗi; xem Bề mặt thông tin xác thực SecretRef để biết mọi trường chấp nhận SecretRef.
Thiết lập tài khoản dịch vụ cho Gateway không có giao diện
- Tạo tài khoản dịch vụ trong tài khoản 1Password của bạn và chỉ cấp cho tài khoản đó quyền đọc các mục trong kho mà Gateway cần.
- Cung cấp
OP_SERVICE_ACCOUNT_TOKENcho dịch vụ Gateway (plist launchd, unit systemd hoặc biến môi trường của vùng chứa). - Thêm
"OP_SERVICE_ACCOUNT_TOKEN"vào danh sáchpassEnvcủa trình cung cấp. - Xác minh từ môi trường máy chủ Gateway:
op whoamiphải in tài khoản dịch vụ mà không nhắc đăng nhập.
Việc đọc bằng tài khoản dịch vụ yêu cầu tên kho phải được chỉ định rõ ràng trong tham chiếu op://. Hãy giới hạn chặt chẽ phạm vi của tài khoản; đây là thông tin xác thực dạng bearer.
Skill 1password dành cho tác tử
OpenClaw đi kèm một skill 1password giúp tác tử trở thành người vận hành op thành thạo: skill này phát hiện chế độ xác thực khả dụng (tài khoản dịch vụ, tích hợp ứng dụng máy tính hoặc đăng nhập độc lập), xác minh quyền truy cập bằng op whoami trước khi đọc bất kỳ nội dung nào và ưu tiên op run / op inject thay vì ghi giá trị bí mật ra đĩa. Skill yêu cầu tệp nhị phân op và cung cấp tùy chọn cài đặt bằng Homebrew khi tệp này chưa có.
Tác tử sử dụng skill này cho quy trình làm việc riêng, chẳng hạn như đọc mã thông báo triển khai giữa tác vụ hoặc chèn biến môi trường vào một lệnh. Skill này độc lập với việc phân giải bí mật cấu hình; Gateway phân giải SecretRef mà không cần bất kỳ skill nào tham gia.
Lưu ý bảo mật
- Các giá trị bí mật được phân giải qua trình cung cấp thực thi vẫn nằm trong bộ nhớ Gateway; ảnh chụp nhanh cấu hình và phản hồi
config.getche các trường SecretRef. - Không bao giờ đặt giá trị bí mật trong
openclaw.json, nhật ký hoặc cuộc trò chuyện. Giữ tên mục trong cấu hình và giá trị trong 1Password. - Dấu vết kiểm tra của 1Password hiển thị mọi lần đọc của tài khoản dịch vụ, giúp việc luân chuyển khóa và xem xét sự cố trở nên khả thi.
Khắc phục sự cố
command not foundhoặc lỗi khởi tạo tiến trình: sử dụng đường dẫn tuyệt đốiopvà đưa thư mục của đường dẫn đó vàotrustedDirs.opđược phân giải nhưng thao tác đọc thất bại do lỗi liên kết tượng trưng: đặtallowSymlinkCommand: truecho các bản cài đặt Homebrew.account is not signed in: đối với tài khoản dịch vụ, hãy xác nhậnOP_SERVICE_ACCOUNT_TOKENđến được dịch vụ Gateway và có trongpassEnv; đối với tích hợp ứng dụng máy tính, hãy xác nhận ứng dụng đang chạy và đã được mở khóa.- Lần đọc đầu tiên chậm: tăng
timeoutMstrên trình cung cấp; quá trình khởi động nguội củaopcó thể vượt quá thời gian chờ nghiêm ngặt trên các máy chủ đang bận.