> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Crear un agente ACP personalizado

> Crea un agente personalizado que se ejecute dentro de Devin Desktop mediante el Agent Client Protocol.

Esta página explica lo que necesitas implementar para crear un agente [ACP](/es/desktop/acp) personalizado que funcione con Devin Desktop.

Para consultar la especificación completa del protocolo, visita [agentclientprotocol.com](https://agentclientprotocol.com/). Hay bibliotecas cliente oficiales disponibles para [Rust](https://agentclientprotocol.com/libraries/rust), [TypeScript](https://agentclientprotocol.com/libraries/typescript), [Python](https://agentclientprotocol.com/libraries/python), [Kotlin](https://agentclientprotocol.com/libraries/kotlin) y [Java](https://agentclientprotocol.com/libraries/java).

<div id="basics">
  ## Conceptos básicos
</div>

Los agentes de ACP se ejecutan como subprocesos locales que Devin Desktop inicia bajo demanda. Toda la comunicación se realiza mediante JSON-RPC a través de stdio.

<div id="methods-you-must-implement">
  ### Métodos que debes implementar
</div>

Como mínimo, tu agente debe manejar estos métodos de Devin Desktop:

* [`initialize`](https://agentclientprotocol.com/protocol/initialization) — Negocia la versión del protocolo, anuncia las capacidades de tu agente y devuelve información del agente (nombre, versión).
* [`session/new`](https://agentclientprotocol.com/protocol/session-setup) — Crea una nueva sesión para un directorio de trabajo y devuelve un ID de sesión. Devin Desktop pasa el `cwd` y cualquier servidor MCP configurado.
* [`session/prompt`](https://agentclientprotocol.com/protocol/prompt-turn) — Recibe un mensaje del usuario, procesa el turno de prompt y devuelve un `stopReason` al finalizar.
* [`session/cancel`](https://agentclientprotocol.com/protocol/prompt-turn) — Cancela cualquier trabajo en curso de una sesión cuando el usuario la cancela.

<div id="prompt-turn-lifecycle">
  ### Ciclo de vida de un turno de prompt
</div>

Durante un turno `session/prompt`, tu agente envía actualizaciones a Devin Desktop como notificaciones JSON-RPC:

* `session/update` con `agent_message_chunk` para transmitir en streaming el texto del asistente.
* `session/update` con `tool_call` y `tool_call_update` para mostrar las invocaciones de herramientas y su estado en la interfaz de Devin Desktop.
* `session/request_permission` para pedirle al usuario autorización antes de ejecutar una invocación de herramienta sensible.
* `session/update` con `plan` si tu agente mantiene un [plan de agente](https://agentclientprotocol.com/protocol/agent-plan).

El turno termina cuando tu agente devuelve una respuesta `session/prompt` con un `stopReason` (p. ej., `end_turn`, `cancelled`, `max_tokens`).

<div id="testing">
  ## Pruebas
</div>

Para probar tu agente con Devin Desktop:

1. Agrega una entrada para tu agente en tu [configuración del registro local](/es/desktop/acp#local-registry-config), haciendo que `cmd` apunte a la ruta del binario de tu agente local (o de un script intermedio).
2. Haz cambios en tu agente y vuelve a compilar según sea necesario.
3. Ejecuta `Reload ACP Connections` desde la Command Palette para cargar la versión más reciente; no es necesario reiniciar Devin Desktop entre iteraciones.

<div id="limitations">
  ## Limitaciones
</div>

Actualmente, Devin Desktop no admite todas las partes de la especificación ACP. Estas son las principales diferencias que debes tener en cuenta al crear un agente para Devin Desktop:

* **Los modos de sesión no son compatibles.** Los [modos de sesión](https://agentclientprotocol.com/protocol/session-modes) no se exponen en la interfaz de Devin Desktop. Si tu agente necesita permitir que los usuarios elijan entre distintos modos (p. ej., plan / compilación / revisión), expónlos en su lugar como una [opción de configuración de sesión](https://agentclientprotocol.com/protocol/session-config-options) con la categoría `"mode"`.
* **Las capacidades de terminal no se exponen.** Devin Desktop no anuncia [capacidades de terminal](https://agentclientprotocol.com/protocol/terminals), por lo que los agentes no pueden crear terminales en la interfaz de Devin Desktop. Los agentes deben ejecutar comandos en su propio subproceso y reenviar la salida mediante actualizaciones de `tool_call`.
