Integracja ACP

Połącz dowolny edytor zgodny z ACP z Bob Shell jako asystentem AI pierwszej klasy.

Bob Shell może działać jako serwer Agent Client Protocol (ACP). Po połączeniu edytor zarządza interfejsem wątków, oknami dialogowymi uprawnień i diffami, podczas gdy Bob zarządza runtime: dostępem do modelu, narzędziami, serwerami MCP i wykonywaniem poleceń shell.

Uwaga:

ACP pełni dla agentów kodowania tę samą rolę, co Language Server Protocol dla narzędzi językowych: jeden kontrakt JSON-RPC, wiele edytorów, wiele agentów. Lokalne agenty komunikują się z edytorem przez stdin i stdout.

Obsługiwane edytory

Następujące edytory obsługują połączenia ACP z Bob Shell:

  • Zed
  • IntelliJ IDEA
  • Neovim

Pierwsze kroki

Uruchom Bob Shell jako serwer ACP:

bob acp

Proces czeka na JSON-RPC na stdin. Uruchom go przez konfigurację ACP swojego edytora; uruchomienie go bezpośrednio w terminalu wygląda jak zawieszenie.

Postępuj zgodnie z instrukcjami konfiguracji ACP swojego edytora, aby połączyć się z procesem bob acp. Więcej informacji o protokole znajdziesz w specyfikacji ACP.

Uwierzytelnianie

Bob uwierzytelnia się podczas inicjalizacji ACP. Jeśli BOBSHELL_API_KEY jest ustawiony w środowisku uruchamiającym bob acp, Bob używa klucza i nie jest wymagana żadna dodatkowa akcja.

Bez klucza API ani zapisanego tokenu edytor prosi o uwierzytelnienie przez SSO. Ukończ przepływ przeglądarki raz; Bob zapisuje token, aby kolejne sesje ACP na tym samym urządzeniu mogły go ponownie użyć.

Zaufanie do workspace

Bob sprawdza zaufanie do workspace przed utworzeniem sesji. Niezaufany workspace powoduje niepowodzenie tworzenia sesji. Aby zaufać workspace, otwórz terminal w tym katalogu i uruchom Bob Shell interaktywnie:

cd /path/to/project
bob

Po zapisaniu zaufania wyjdź i połącz się ponownie przez edytor.

W środowiskach tymczasowych lub jednorazowych przekaż --trust w argumentach ACP. Informacje o kompromisach znajdziesz w sekcji Opcje polecenia.

Serwery MCP

Zarówno edytor, jak i Bob mogą dostarczać serwery MCP do sesji. Oba zestawy serwerów są inicjalizowane w tym samym harness sesji Boba, co sprawia, że zduplikowaną konfigurację łatwo przeoczyć.

Preferuj jednego właściciela dla każdego serwera MCP. Jeśli narzędzie MCP nieoczekiwanie brakuje, sprawdź zarówno ustawienia MCP edytora, jak i natywną konfigurację MCP Boba.

Ważne:

Każda sesja ACP tworzy własny harness ze skonfigurowanymi serwerami MCP. Lokalny serwer MCP może uruchomić się raz dla każdego aktywnego wątku Boba. Monitoruj użycie zasobów przed otwarciem wielu równoległych wątków, zwłaszcza gdy serwer uruchamia JVM, kontener lub lokalny model.

Bob Shell w porównaniu z terminalem edytora

Bob Shell wykonuje polecenia we własnym procesie potomnym, nie w terminalu twojego edytora. Polecenie, które działa w terminalu edytora, może nie działać w Bob Shell, jeśli proces bob acp odziedziczył inny PATH, katalog roboczy lub środowisko.

Zmiany wprowadzane w działającym terminalu edytora takie jak cd lub export nie docierają do Bob Shell. Jeśli zaktualizujesz środowisko uruchomieniowe, uruchom ponownie wątek ACP.

Opcje polecenia

Zacznij od bob acp i dodawaj opcje tylko z konkretnego powodu:

OpcjaOpis
--log-level <level>Ustawia poziom szczegółowości logów: debug, info, warn, error lub silent. Można też skonfigurować przez zmienną środowiskową BOB_LOG_LEVEL.
--trustUfa każdemu workspace otwartemu przez ten serwer ACP. Ta opcja usuwa granicę na poziomie projektu; nie umieszczaj jej w stałej konfiguracji edytora.
--auto-approveZatwierdza każde wywołanie narzędzia bez wyświetlania okien dialogowych uprawnień. Ta opcja jest szersza niż wybranie Zawsze zezwalaj dla jednego narzędzia.
--disable-mcpPomija inicjalizację serwerów MCP. Użyj tej opcji, aby izolować awarie podczas uruchamiania sesji.
--disable-subagentsPomija rejestrację narzędzi subagenta Boba, gdy zadanie nie wymaga delegowania.
--accept-licenseRejestruje akceptację licencji przed uruchomieniem serwera. Najpierw przejrzyj pliki licencji, uruchamiając bob --show-license acp.
Ostrzeżenie:

Używanie --trust i --auto-approve razem usuwa zarówno blokadę workspace, jak i zatwierdzanie narzędzi. Monit może działać w dowolnym workspace otwartym przez serwer bez dalszego potwierdzenia. Nie umieszczaj obu opcji w domyślnej konfiguracji edytora.

Jak oceniasz ten temat?