# Integración ACP


Ejecuta agentes directamente en tu editor utilizando el Protocolo Cliente Agente (ACP - Agent Client Protocol).
Tu agente obtiene acceso al contexto del sistema de archivos de tu editor y puede leer y
modificar archivos mientras trabajas. El editor maneja las operaciones de archivos mientras que Docker Agent
proporciona las capacidades de IA.

Esta guía te muestra cómo configurar Neovim o Zed para ejecutar agentes con Docker Agent. Si
buscas exponer agentes como herramientas a clientes MCP como Claude
Desktop o Claude Code, consulta la [integración MCP](/ai/docker-agent/integrations/mcp/) en su lugar.

## Cómo funciona

Cuando ejecutas Docker Agent con ACP, se convierte en parte del entorno de tu editor.
Seleccionas código, resaltas una función o haces referencia a un archivo; el agente ve lo que
tú ves. Sin copiar rutas de archivos ni cambiar a un terminal.

Pregunta "explica esta función" y el agente leerá el archivo que estás viendo. Pídele
que "añada manejo de errores" y editará el código directamente en tu editor. El agente
trabaja con la vista del proyecto de tu editor, no con algún sistema de archivos externo por el
que tenga que navegar.

La diferencia con respecto a ejecutar Docker Agent en un terminal: las operaciones de archivos pasan por
tu editor en lugar de que el agente acceda directamente a tu sistema de archivos. Cuando el
agente necesita leer o escribir un archivo, lo solicita a tu editor. Esto mantiene
la vista de tu código sincronizada entre el agente y tú: mismo directorio de trabajo,
mismos archivos, mismo estado.

## Requisitos previos

Antes de configurar tu editor, necesitas:

- **Docker Agent instalado** - Consulta la [guía de instalación](/ai/integrations/#instalacion)
- **Configuración del agente** - Un archivo YAML que define tu agente. Consulta el
  [tutorial](/ai/docker-agent/tutorial/) o las [configuraciones de
  ejemplo](https://github.com/docker/docker-agent/tree/main/examples)
- **Editor con soporte para ACP** - Neovim, IntelliJ, Zed, etc.

Tus agentes utilizarán las claves de API de los proveedores de modelos de tu entorno de shell
(`ANTHROPIC_API_KEY`, `OPENAI_API_KEY`, etc.). Asegúrate de que estén configuradas antes de
iniciar tu editor.

## Configuración del editor

### Zed

Zed tiene soporte integrado para ACP.

1. Añade `docker agent` a tus servidores de agentes en `settings.json`:

   ```json
   {
     "agent_servers": {
       "my-agent-team": {
         "command": "docker",
         "args": ["agent", "serve", "acp", "agent.yml"]
       }
     }
   }
   ```

   Reemplaza:
   - `my-agent-team` por el nombre que desees usar para el agente
   - `agent.yml` por la ruta a tu archivo de configuración del agente.

   Si tienes múltiples archivos de agentes que te gusta ejecutar por separado, puedes
   crear varias entradas bajo `agent_servers` para cada agente.

2. Inicia un nuevo hilo de agente externo. Selecciona tu agente en la lista desplegable.

   ![Nuevo hilo externo con Docker Agent en Zed](/ai/docker-agent/images/cagent-acp-zed.avif)

### Neovim

Utiliza el plugin [CodeCompanion](https://github.com/olimorris/codecompanion.nvim),
que cuenta con soporte nativo para Docker Agent a través de un adaptador integrado:

1. [Instala CodeCompanion](https://codecompanion.olimorris.dev/installation)
   a través de tu gestor de plugins.
2. Extiende el adaptador `dockeragent` en tu configuración de CodeCompanion:

   ```lua
   require("codecompanion").setup({
     adapters = {
       acp = {
         dockeragent = function()
           return require("codecompanion.adapters").extend("dockeragent", {
             commands = {
               default = {
                 "docker",
                 "agent",
                 "serve",
                 "acp",
                 "agent.yml",
               },
             },
           })
         end,
       },
     },
   })
   ```

   Reemplaza `agent.yml` por la ruta a tu archivo de configuración del agente. Si
   tienes múltiples archivos de agentes que prefieres ejecutar por separado, puedes crear
   varios comandos para cada agente.

3. Reinicia Neovim e inicia CodeCompanion:

   ```plaintext
   :CodeCompanion
   ```

4. Cambia al adaptador de Docker Agent (por defecto, combinación de teclas `ga` en el búfer de CodeCompanion).

Consulta la [documentación de CodeCompanion ACP](https://codecompanion.olimorris.dev/usage/acp-protocol) para obtener más
información sobre el soporte de ACP en CodeCompanion. Ten en cuenta que las operaciones de terminal
no están soportadas, por lo que los [conjuntos de herramientas (toolsets)](/ai/docker-agent/reference/toolsets/) como `shell` o
`script_shell` no se pueden usar a través de CodeCompanion.

## Referencias de agentes

Puedes especificar la configuración de tu agente como una ruta de archivo local o una
referencia a un registro OCI:

```console
# Ruta de archivo local
$ docker agent serve acp ./agent.yml

# Referencia a un registro OCI
$ docker agent serve acp agentcatalog/pirate
$ docker agent serve acp dockereng/myagent:v1.0.0
```

Utiliza la misma sintaxis en la configuración de tu editor:

```json
{
  "agent_servers": {
    "myagent": {
      "command": "docker",
      "args": ["agent", "serve", "acp", "agentcatalog/pirate"]
    }
  }
}
```

Las referencias de registro permiten compartir con el equipo, gestionar versiones y mantener una
configuración limpia sin rutas de archivos locales. Consulta [Compartir
agentes](/ai/docker-agent/sharing-agents/) para más detalles sobre el uso de registros OCI.

## Probar tu configuración

Verifica que tu configuración funcione:

1. Inicia el servidor ACP de Docker Agent utilizando el método configurado en tu editor
2. Envía un prompt de prueba a través de la interfaz de tu editor
3. Comprueba que el agente responde
4. Verifica que las operaciones del sistema de archivos funcionan pidiéndole al agente que lea un archivo

Si el agente se inicia pero no puede acceder a los archivos o realizar otras acciones, verifica lo siguiente:

- El directorio de trabajo en tu editor está configurado correctamente en la raíz de tu proyecto
- La ruta del archivo de configuración del agente es absoluta o relativa al directorio de trabajo
- Tu editor o plugin implementa correctamente las características del protocolo ACP

## ¿Qué sigue?

- Revisa la [referencia de configuración](/ai/docker-agent/reference/config/) para configuraciones avanzadas de agentes
- Explora la [referencia de conjuntos de herramientas (toolsets)](/ai/docker-agent/reference/toolsets/) para saber qué herramientas están disponibles
- Añade [RAG para búsqueda en el código fuente](/ai/docker-agent/rag/) a tu agente
- Consulta la [referencia de CLI](/ai/docker-agent/reference/cli/) para ver todas las opciones de `docker agent serve acp`
- Explora las [configuraciones de ejemplo](https://github.com/docker/docker-agent/tree/main/examples) para inspirarte

