mirror of
https://gitea.toothfairyai.com/ToothFairyAI/tf_code.git
synced 2026-04-03 15:43:45 +00:00
159 lines
3.7 KiB
Plaintext
159 lines
3.7 KiB
Plaintext
---
|
|
title: ACP
|
|
description: Używanie OpenCode z protokołem Agent Client Protocol (ACP).
|
|
---
|
|
|
|
import { Tabs, TabItem } from "@astrojs/starlight/components"
|
|
|
|
OpenCode obsługuje [Agent Client Protocol](https://agentclientprotocol.com) (ACP), który umożliwia korzystanie z OpenCode bezpośrednio w edytorach i środowiskach IDE.
|
|
|
|
:::tip
|
|
Listę edytorów i narzędzi obsługujących ACP znajdziesz w [raporcie postępu ACP](https://zed.dev/blog/acp-progress-report#available-now).
|
|
:::
|
|
|
|
ACP to otwarty standard, który ujednolica komunikację między edytorami kodu a agentami kodującymi AI.
|
|
|
|
---
|
|
|
|
## Konfiguracja
|
|
|
|
Aby używać OpenCode przez ACP, skonfiguruj swój edytor tak, aby uruchamiał polecenie `opencode acp`.
|
|
|
|
Uruchamia to OpenCode jako podproces zgodny z ACP, który komunikuje się z edytorem za pomocą JSON-RPC przez stdio.
|
|
|
|
Poniżej znajdują się przykłady dla edytorów obsługujących ACP.
|
|
|
|
---
|
|
|
|
### Zed
|
|
|
|
Dodaj do konfiguracji [Zed](https://zed.dev) (`~/.config/zed/settings.json`):
|
|
|
|
```json title="~/.config/zed/settings.json"
|
|
{
|
|
"agent_servers": {
|
|
"OpenCode": {
|
|
"command": "opencode",
|
|
"args": ["acp"]
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
Aby użyć, wybierz `agent: new thread` w **Palecie poleceń** (Command Palette).
|
|
|
|
Możesz także przypisać skrót klawiszowy, edytując `keymap.json`:
|
|
|
|
```json title="keymap.json"
|
|
[
|
|
{
|
|
"bindings": {
|
|
"cmd-alt-o": [
|
|
"agent::NewExternalAgentThread",
|
|
{
|
|
"agent": {
|
|
"custom": {
|
|
"name": "OpenCode",
|
|
"command": {
|
|
"command": "opencode",
|
|
"args": ["acp"]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
```
|
|
|
|
---
|
|
|
|
### JetBrains IDE
|
|
|
|
Dodaj do swojego [JetBrains IDE](https://www.jetbrains.com/) plik `acp.json` zgodnie z [dokumentacją](https://www.jetbrains.com/help/ai-assistant/acp.html):
|
|
|
|
```json title="acp.json"
|
|
{
|
|
"agent_servers": {
|
|
"OpenCode": {
|
|
"command": "/absolute/path/bin/opencode",
|
|
"args": ["acp"]
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
Następnie wybierz „OpenCode” w selektorze agentów AI Chat.
|
|
|
|
---
|
|
|
|
### Avante.nvim
|
|
|
|
Dodaj do konfiguracji [Avante.nvim](https://github.com/yetone/avante.nvim):
|
|
|
|
```lua
|
|
{
|
|
acp_providers = {
|
|
["opencode"] = {
|
|
command = "opencode",
|
|
args = { "acp" }
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
Jeśli potrzebujesz przekazać klucz API:
|
|
|
|
```lua {6-8}
|
|
{
|
|
acp_providers = {
|
|
["opencode"] = {
|
|
command = "opencode",
|
|
args = { "acp" },
|
|
env = {
|
|
OPENCODE_API_KEY = os.getenv("OPENCODE_API_KEY")
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
### CodeCompanion.nvim
|
|
|
|
Aby używać OpenCode jako agenta ACP w [CodeCompanion.nvim](https://github.com/olimorris/codecompanion.nvim), dodaj następującą konfigurację do Neovim:
|
|
|
|
```lua
|
|
require("codecompanion").setup({
|
|
interactions = {
|
|
chat = {
|
|
adapter = {
|
|
name = "opencode",
|
|
model = "claude-sonnet-4",
|
|
},
|
|
},
|
|
},
|
|
})
|
|
```
|
|
|
|
Ta konfiguracja sprawia, że CodeCompanion używa OpenCode jako agenta ACP do czatu.
|
|
|
|
Jeśli wymagany jest `OPENCODE_API_KEY`, zapoznaj się z sekcją [Konfigurowanie adapterów: Zmienne środowiskowe](https://codecompanion.olimorris.dev/getting-started#setting-an-api-key) w dokumentacji CodeCompanion.nvim, aby uzyskać szczegółowe informacje.
|
|
|
|
## Wsparcie
|
|
|
|
OpenCode działa przez ACP tak samo, jak w terminalu. Obsługiwane są wszystkie główne funkcje:
|
|
|
|
:::note
|
|
Niektóre polecenia z ukośnikiem, takie jak `/undo` i `/redo`, nie są obecnie obsługiwane przez ACP.
|
|
:::
|
|
|
|
- Narzędzia wbudowane (operacje na plikach, terminal itp.)
|
|
- Niestandardowe narzędzia i polecenia z ukośnikiem
|
|
- Serwery MCP zdefiniowane w konfiguracji OpenCode
|
|
- Zasady projektu z `AGENTS.md`
|
|
- Niestandardowe formatery i lintery
|
|
- Agenci systemowi i uprawnienia
|