Descripción general
Pi Coding Agent (cuyo nombre de directorio de configuración y comando espi) es un agente de codificación nativo de terminal (una herramienta de línea de comandos) de código abierto de Earendil Works. Admite múltiples proveedores de modelos, proveedores personalizados y herramientas conectables, lo que lo hace ideal para asistencia de código y automatización de tareas desde la línea de comandos.
Pi admite proveedores de modelos personalizados y la API Anthropic Messages. Al configurar EvoLink como proveedor personalizado en ~/.pi/agent/models.json, puede utilizar la familia de modelos Claude de EvoLink en Pi y al mismo tiempo conservar las capacidades completas de llamada de herramientas de agentes de Pi.
El enfoque oficial de Pi es la CLI de terminal (cuatro modos de ejecución: interactivo/impresión/RPC/SDK), y esta guía sigue la CLI.
Antes de comenzar
Antes de comenzar la configuración, asegúrese de haber completado los siguientes preparativos:1. Instale la CLI del agente de codificación Pi
Pi requiere Node.js ≥ 22.19.0. Primero verifique su versión con
node -v; debajo de esta versión, npm install -g informará EBADENGINE, por lo que primero actualice Node.- guión de rizo
- npm

pi esté disponible:
2. Obtenga una clave API de EvoLink
- Inicie sesión en la consola EvoLink
- Busque las claves API en la consola, haga clic en el botón “Crear nueva clave” y luego copie la clave generada.
- La clave API normalmente comienza con
sk-. Por favor mantenlo a salvo.
Paso 1: configurar el proveedor de EvoLink
Pi define proveedores y modelos a través de un archivo de configuración llamadomodels.json, ubicado en la carpeta .pi/agent/ dentro de su directorio de inicio (ruta completa ~/.pi/agent/models.json). Los modelos Claude utilizan con frecuencia tool_use / tool_result en Pi, por lo que esta guía utiliza la API compatible con Anthropic Messages de EvoLink y la configura como un proveedor personalizado de tipo anthropic-messages.
~ significa su directorio de inicio (/Users/your-username en macOS, /home/your-username en Linux). .pi comienza con un punto, lo que la convierte en una carpeta oculta que Finder/Explorador de archivos no mostrará de forma predeterminada, por lo que la forma más sencilla de crear el archivo a continuación es mediante la línea de comando. Simplemente copie y pegue..pi generalmente no se crea hasta que se ejecuta Pi), por lo que debe crearlo manualmente. Siga estos tres pasos:
1
abrir una terminal
- macOS: presione
Command + Spacepara abrir Spotlight, escribaTerminaly presione Entrar. - Windows: busque
PowerShellen el menú Inicio y ábralo.
2
Cree la carpeta de configuración y un nuevo archivo.
Pegue el siguiente comando en la terminal y presione Enter. Crea automáticamente la carpeta necesaria y abre un Esto lo llevará al editor
models.json vacío en un editor de texto:- macOS/Linux
- Windows (PowerShell)
nano (un editor de texto simple dentro de la terminal).3
Pega la configuración y guarda
Copie la configuración completa a continuación y péguela en el editor que acaba de abrir:Luego guarda:
- nano (macOS/Linux): Presione
Control + O, luego Intro para guardar y luegoControl + Xpara salir. - Bloc de notas (Windows): presione
Control + Spara guardar y luego cierre la ventana.
api: "anthropic-messages": utiliza la ruta compatible con Anthropic Messages de EvoLink, por lo que Pi utiliza el protocolo nativotool_use/tool_resultde Claude.- Establezca
baseUrlsolo en la raíz del dominiohttps://direct.evolink.ai: no agregue manualmente/v1o/v1/messages. Pi agrega/v1/messagesautomáticamente; agregarlo manualmente duplica la ruta y provoca un404 Invalid URL. - Se requiere
authHeader: true. El SDK Anthropic de Pi usax-api-keyde forma predeterminada, mientras que/v1/messagesde EvoLink esperaAuthorization: Bearer <your-key>. Este campo hace que Pi envíe el encabezado de autenticación de portador correcto. apiKeytiene dos formularios: elige uno:- Opción 1 · Pegue la clave directamente (la más simple, buena para uso personal local): reemplace
"$EVOLINK_API_KEY"en la configuración con su clave real, p.e."apiKey": "sk-your-real-key". Hecho en un solo paso, no se necesita ninguna variable de entorno; La desventaja es que la clave se encuentra en texto sin formato en el archivo de configuración, así que no comparta este archivo ni lo envíe a Git. - Opción 2 · Interpolación de variables de entorno (más segura, recomendada): mantenga
"$EVOLINK_API_KEY"como está y coloque la clave real en una variable de entorno (consulte “Establecer la variable de entorno de clave API” a continuación). Esto mantiene la clave de texto plano fuera del archivo de configuración. - (Avanzado)
apiKeyde Pi también admite${EVOLINK_API_KEY}(equivalente; use llaves para eliminar la ambigüedad cuando el nombre de la variable va inmediatamente seguido de texto literal) y!command(un!inicial ejecuta un comando y usa su salida como clave, por ejemplo leyendo desde un administrador de contraseñas:"!op read 'op://vault/item/credential'"). Si necesita un literal**(Avanzado)**apiKeyde Pi también admitey$!`.
- Opción 1 · Pegue la clave directamente (la más simple, buena para uso personal local): reemplace
¿No quieres tocar la tecla en el archivo de configuración? También puede usar
/login en modo interactivo para seleccionar este proveedor y almacenar la clave en ~/.pi/agent/auth.json; el efecto es equivalente.Establecer la variable de entorno de la clave API
Solo necesita este paso si eligió Opción 2 (interpolación de variables de entorno) arriba. Si elige Opción 1 (pegue la clave directamente), la clave ya está en el archivo de configuración; omita esta sección y vaya directamente al Paso 2.
$EVOLINK_API_KEY al que se hace referencia en la configuración anterior a su clave real. A continuación se muestran la versión temporal (solo válida en la ventana de terminal actual; desaparece una vez que la cierras, buena para una primera ejecución de prueba) y la versión persistente (se carga automáticamente cada vez que abres una terminal):
- macOS/Linux
- Windows (PowerShell)
Temporal (ventana de terminal actual; se pierde cuando se cierra):Persistente (escrito en su archivo de configuración de shell; se aplica automáticamente en cada nueva terminal):
¿No estás seguro de qué shell estás usando? Ejecute
echo $SHELL en la terminal; si la salida contiene zsh, use ~/.zshrc; si contiene bash, utilice ~/.bashrc.Paso 2: comience a usar y verifique
1. Seleccione un modelo
Ejecute el siguiente comando en su terminal para iniciar Pi:/model para abrir el selector de modelo, luego elija el modelo EvoLink configurado anteriormente (como claude-fable-5).
2. Verificar la configuración
Después de seleccionar un modelo, primero ingrese un mensaje simple para verificar la respuesta del modelo:
- Verá la respuesta normal de la IA (unas pocas líneas de texto).
- Pi puede llamar a la herramienta
lsen la segunda tarea y continuar respondiendo. - No hay errores como
401,404,model_not_foundoUnexpected role "tool".
Solución de problemas
Lo siguiente está organizado por el error real que ves; simplemente busca el que coincida.Devuelve 401 (clave API no válida)
- La variable de entorno no tuvo efecto (lo más común): ejecute
test -n "$EVOLINK_API_KEY" && echo "Key loaded" || echo "Key not loaded"en la terminal actual; en Windows, debe reiniciar el terminal después de usarsetx. - El campo
apiKeyes incorrecto: confirme quemodels.jsoncontiene"$EVOLINK_API_KEY"(que hace referencia a la variable de entorno), en lugar de tratar el nombre de la variable como una clave literal. - Falta
"authHeader": true:/v1/messagesde EvoLink requiere un token de portador, así que confirme que este campo esté dentro de la misma configuración de proveedor queapiKey. - La clave en sí no es válida o ha sido deshabilitada: verifíquela en la consola EvoLink.
Devuelve 404 Invalid URL
baseUrl. Pi agrega automáticamente /v1/messages, así que cambie baseUrl nuevamente a la raíz del dominio: https://direct.evolink.ai.
Devuelve 404 model_not_found
id en models.json coincida exactamente con el nombre del modelo devuelto por la consola EvoLink//v1/models.
Devuelve 400 Unexpected role "tool"
api: "openai-completions" con una URL base que termina en /v1. Pi envía los resultados de la herramienta del agente con role: "tool" de OpenAI, que la ruta actual compatible con Claude no acepta.
Solución: cambie estos tres campos de proveedor:
supportsDeveloperRole o supportsReasoningEffort, porque el rol rechazado es el rol de herramienta, no el rol developer o un parámetro de razonamiento. Inicie una nueva sesión después de actualizar la configuración.
Acerca del costo
El campocost en models.json arriba es el precio real de EvoLink (un descuento fijo del 10%, en USD por millón de tokens), para que Pi lo use como referencia al estimar el uso:
La lectura de caché es el precio cuando se alcanza el caché (aproximadamente 0,1 veces la entrada). Los ahorros reales dependen de la tasa de aciertos de la caché; cuanto más amplio es el contexto, menos estables son los impactos, por lo que el beneficio se descuenta; no lo trate como un precio bajo incondicional.
Preguntas frecuentes
¿Cómo abro una terminal de línea de comandos?
- macos
- ventanas
- linux
- Opción 1: presione
Command + Spacepara abrir Spotlight, escribaTerminaly presione Entrar. - Opción 2: Vaya a Aplicaciones → Utilidades → Terminal.
1. ¿Por qué configurar baseUrl solo en la raíz del dominio?
Porque el proveedor anthropic-messages de Pi agrega automáticamente /v1/messages después de baseUrl. Agregar /v1 o /v1/messages duplica manualmente la ruta y devuelve 404 Invalid URL. Utilice únicamente https://direct.evolink.ai.
2. ¿Necesito configurar authHeader: true?
Sí. El SDK Anthropic de Pi usa x-api-key de forma predeterminada, mientras que el /v1/messages de EvoLink usa un token de portador. authHeader: true hace que Pi envíe Authorization: Bearer <your-key>; omitirlo puede causar un 401.
3. ¿Por qué esta guía sigue la CLI del terminal?
La forma principal oficial de Pi es terminal CLI (cuatro modos de ejecución: interactivo/impresión/RPC/SDK). La configuración y verificación de la integración de EvoLink se realiza en la CLI, que es estable y confiable. Todos los pasos de esta guía siguen la CLI.4. ¿Cómo evito escribir la clave API en texto plano en la configuración?
Utilice la interpolación de variables de entorno en el campoapiKey (como "$EVOLINK_API_KEY"), manteniendo la clave real en una variable de entorno.
5. ¿Qué modelos comunes admite EvoLink?
EvoLink es compatible con toda la familia Claude (también es compatible con GPT, Gemini y más, que puedes ver en la consola). Para planificación/razonamiento complejo, se recomiendaclaude-fable-5; para la ejecución diaria, utilice claude-sonnet-5; para tareas ligeras, utilice claude-haiku-4-5-20251001.
