Gateway
1Password
OpenClaw współpracuje z 1Password na dwa niezależne sposoby:
- Sekrety konfiguracji: każde pole SecretRef w
openclaw.jsonmoże być rozpoznawane w czasie wykonywania za pomocą CLIop, dzięki czemu klucze API nigdy nie znajdują się w pliku konfiguracyjnym. - Przepływy pracy agentów: dołączona umiejętność
1passworduczy agentów logowania się oraz odczytywania lub wstrzykiwania sekretów za pomocąopna potrzeby ich własnych zadań.
Wymagania
- CLI 1Password (
op) zainstalowane na hoście Gateway (brew install 1password-cliw systemie macOS). - Tryb uwierzytelniania dla
op:- Konto usługi (zalecane dla bezobsługowych instancji Gateway): należy wyeksportować
OP_SERVICE_ACCOUNT_TOKENw środowisku usługi Gateway. Nie jest wymagana aplikacja komputerowa ani interaktywne logowanie. - Integracja z aplikacją komputerową: aplikacja 1Password działa na tym samym komputerze i ma włączoną integrację z CLI. Pierwsze wywołania mogą uruchomić Touch ID lub uwierzytelnianie systemowe.
- Samodzielne logowanie:
op signinwyświetla monit w każdej sesji. Może być używane przez agentów za pośrednictwem umiejętności, ale nie nadaje się do rozpoznawania sekretów konfiguracji w bezobsługowej instancji Gateway.
- Konto usługi (zalecane dla bezobsługowych instancji Gateway): należy wyeksportować
Rozpoznawanie sekretów konfiguracji za pomocą op
Należy zadeklarować dostawcę sekretów typu exec, który uruchamia op read z odwołaniem op://vault/item/field, a następnie wskazać go w dowolnym polu obsługującym SecretRef:
{ secrets: { providers: { onepassword_openai: { source: "exec", command: "/opt/homebrew/bin/op", allowSymlinkCommand: true, // wymagane w przypadku plików binarnych zainstalowanych przez Homebrew jako dowiązania symboliczne 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" }, }, }, },}Jak współdziałają poszczególne elementy:
commandmusi być ścieżką bezwzględną;trustedDirsoznacza jej katalog jako zaufany, aallowSymlinkCommandjest wymagane, ponieważ Homebrew instalujeopjako dowiązanie symboliczne.argsprzekazuje odwołanieop://vault/item/fieldbez zmian. OpenClaw nie analizuje samodzielnie schematuop://; rozpoznaje go plik binarnyop.passEnvprzekazuje wymienione zmienne ze środowiska Gateway. Integracja z aplikacją komputerową wymagaHOME; konta usług wymagają również obecnościOP_SERVICE_ACCOUNT_TOKENw środowisku usługi Gateway (należy dodać je dopassEnvlub ustawić za pomocąenvtylko wtedy, gdy akceptowane jest, że token będzie możliwy do odczytania z pliku konfiguracyjnego).- W przypadku danych wyjściowych zawierających pojedynczą wartość należy zachować
id: "value". W przypadkujsonOnly: truei ładunku JSON pola należy wskazywać za pomocą identyfikatora wskaźnika JSON. - Oddzielny wpis dostawcy dla każdego sekretu ułatwia audyt odwołań; dostawców należy nazywać według ich odbiorców (
onepassword_openai,onepassword_telegram).
Informacje o kolejności rozpoznawania, buforowaniu i semantyce błędów zawiera sekcja Sekrety Gateway, a listę wszystkich pól akceptujących SecretRef zawiera strona Powierzchnia poświadczeń SecretRef.
Konfiguracja konta usługi dla bezobsługowych instancji Gateway
- Należy utworzyć konto usługi na koncie 1Password i przyznać mu dostęp do odczytu wyłącznie tych elementów sejfu, których potrzebuje Gateway.
- Należy przekazać
OP_SERVICE_ACCOUNT_TOKENdo usługi Gateway (plist launchd, jednostka systemd lub zmienna środowiskowa kontenera). - Należy dodać
"OP_SERVICE_ACCOUNT_TOKEN"do listypassEnvdostawcy. - Należy zweryfikować działanie w środowisku hosta Gateway:
op whoamipowinno wyświetlić konto usługi bez monitowania.
Odczyty za pomocą konta usługi wymagają jawnego podania nazwy sejfu w odwołaniu op://. Zakres uprawnień konta należy ściśle ograniczyć; jest ono poświadczeniem typu bearer.
Umiejętność 1password dla agentów
OpenClaw zawiera umiejętność 1password, która umożliwia agentom sprawną obsługę op: wykrywa dostępny tryb uwierzytelniania (konto usługi, integracja z aplikacją komputerową lub samodzielne logowanie), przed odczytaniem czegokolwiek weryfikuje dostęp za pomocą op whoami oraz preferuje op run / op inject zamiast zapisywania wartości sekretów na dysku. Umiejętność wymaga pliku binarnego op, a gdy go brakuje, oferuje instalację za pomocą Homebrew.
Agenci używają jej we własnych przepływach pracy, na przykład do odczytania tokenu wdrożeniowego w trakcie zadania lub wstrzyknięcia zmiennych środowiskowych do polecenia. Jest ona niezależna od rozpoznawania sekretów konfiguracji; Gateway rozpoznaje SecretRef bez udziału jakiejkolwiek umiejętności.
Uwagi dotyczące bezpieczeństwa
- Wartości sekretów rozpoznane za pomocą dostawców exec pozostają w pamięci Gateway; migawki konfiguracji i odpowiedzi
config.getukrywają pola SecretRef. - Nigdy nie należy umieszczać wartości sekretów w
openclaw.json, dziennikach ani na czacie. Nazwy elementów należy przechowywać w konfiguracji, a ich wartości w 1Password. - Dziennik audytu 1Password pokazuje każdy odczyt wykonany przez konto usługi, co ułatwia rotację kluczy i analizę incydentów.
Rozwiązywanie problemów
command not foundlub błędy uruchamiania procesu: należy użyć bezwzględnej ścieżkiopi uwzględnić jej katalog wtrustedDirs.opzostaje rozpoznane, ale odczyty kończą się błędami dowiązań symbolicznych: w przypadku instalacji Homebrew należy ustawićallowSymlinkCommand: true.account is not signed in: w przypadku kont usług należy sprawdzić, czyOP_SERVICE_ACCOUNT_TOKENdociera do usługi Gateway i znajduje się na liściepassEnv; w przypadku integracji z aplikacją komputerową należy sprawdzić, czy aplikacja działa i jest odblokowana.- Powolne pierwsze odczyty: należy zwiększyć
timeoutMsu dostawcy; zimne uruchomieniaopmogą przekraczać restrykcyjne limity czasu na obciążonych hostach.