Zum Hauptinhalt springen

Überblick

Pi Coding Agent (dessen Befehls- und Konfigurationsverzeichnisname pi ist) ist ein terminal-nativer Open-Source-Coding-Agent (ein Befehlszeilentool) von Earendil Works. Es unterstützt mehrere Modellanbieter, benutzerdefinierte Anbieter und austauschbare Tools und eignet sich daher gut für Codeunterstützung und Aufgabenautomatisierung über die Befehlszeile. Pi unterstützt benutzerdefinierte Modellanbieter und die Anthropic Messages API. Durch die Konfiguration von EvoLink als benutzerdefinierter Anbieter in ~/.pi/agent/models.json können Sie die Claude-Modellfamilie von EvoLink in Pi verwenden und gleichzeitig die vollständigen Agent-Tool-Aufruffunktionen von Pi beibehalten.
Der offizielle Fokus von Pi liegt auf der Terminal-CLI (vier Ausführungsmodi: interaktiv / Drucken / RPC / SDK), und dieser Leitfaden folgt der CLI.

Bevor Sie beginnen

Bevor Sie mit der Konfiguration beginnen, stellen Sie sicher, dass Sie die folgenden Vorbereitungen abgeschlossen haben:

1. Installieren Sie die Pi Coding Agent-CLI

Pi erfordert Node.js ≥ 22.19.0. Überprüfen Sie zunächst Ihre Version mit node -v; Unterhalb dieser Version meldet npm install -g EBADENGINE. Aktualisieren Sie daher zuerst den Knoten.
Pi mit dem Curl-Skript installieren
Vergewissern Sie sich nach Abschluss der Installation, dass der Befehl pi verfügbar ist:
Weitere Installationsmethoden (PowerShell, pnpm, bun usw.) finden Sie auf der Pi-Website und im offiziellen Repository.
  • Melden Sie sich bei der EvoLink-Konsole an.
  • Suchen Sie in der Konsole nach API-Schlüsseln, klicken Sie auf die Schaltfläche „Neuen Schlüssel erstellen“ und kopieren Sie dann den generierten Schlüssel
  • Der API-Schlüssel beginnt normalerweise mit sk-. Bitte bewahren Sie es sicher auf.
Pi definiert Anbieter und Modelle über eine Konfigurationsdatei namens models.json, die sich im Ordner .pi/agent/ in Ihrem Home-Verzeichnis befindet (vollständiger Pfad ~/.pi/agent/models.json). Claude-Modelle verwenden häufig tool_use / tool_result in Pi, daher verwendet dieses Handbuch die Anthropic Messages-kompatible API von EvoLink und konfiguriert sie als benutzerdefinierten Anbieter vom Typ anthropic-messages.
~ steht für Ihr Home-Verzeichnis (/Users/your-username unter macOS, /home/your-username unter Linux). .pi beginnt mit einem Punkt, was es zu einem versteckten Ordner macht, der im Finder/Datei-Explorer standardmäßig nicht angezeigt wird – daher ist es am einfachsten, die folgende Datei über die Befehlszeile zu erstellen. Einfach kopieren und einfügen.
Diese Datei ist standardmäßig nicht vorhanden (der Ordner .pi wird normalerweise erst erstellt, wenn Pi ausgeführt wird), daher müssen Sie sie manuell erstellen. Befolgen Sie diese drei Schritte:
1

Öffnen Sie ein Terminal

  • macOS: Drücken Sie Command + Space, um Spotlight zu öffnen, geben Sie Terminal ein und drücken Sie die Eingabetaste.
  • Windows: Suchen Sie im Startmenü nach PowerShell und öffnen Sie es.
Wenn Sie mit der Befehlszeile noch nicht vertraut sind, lesen Sie zunächst FAQ – Wie öffne ich ein Befehlszeilenterminal?.
2

Erstellen Sie den Konfigurationsordner und eine neue Datei

Fügen Sie den folgenden Befehl in das Terminal ein und drücken Sie die Eingabetaste. Es erstellt automatisch den benötigten Ordner und öffnet ein leeres models.json in einem Texteditor:
Dadurch gelangen Sie zum nano-Editor (ein einfacher Texteditor im Terminal).
3

Fügen Sie die Konfiguration ein und speichern Sie sie

Kopieren Sie die vollständige Konfiguration unten und fügen Sie sie in den Editor ein, den Sie gerade geöffnet haben:
Dann speichern:
  • nano (macOS / Linux): Drücken Sie Control + O, dann die Eingabetaste, um zu speichern, und dann Control + X, um den Vorgang zu beenden.
  • Notepad (Windows): Drücken Sie zum Speichern Control + S und schließen Sie dann das Fenster.
Beschreibungen der Schlüsselfelder (keine überspringen):
  • api: "anthropic-messages" – verwendet die mit Anthropic Messages kompatible Route von EvoLink, sodass Pi das native tool_use/tool_result-Protokoll von Claude verwendet.
  • Legen Sie baseUrl nur auf den Domänenstamm fest https://direct.evolink.ai – fügen Sie /v1 oder /v1/messages nicht manuell hinzu. Pi hängt /v1/messages automatisch an; Durch manuelles Hinzufügen wird der Pfad dupliziert und ein 404 Invalid URL verursacht.
  • authHeader: true ist erforderlich. Das Anthropic SDK von Pi verwendet standardmäßig x-api-key, während /v1/messages von EvoLink Authorization: Bearer <your-key> erwartet. Dieses Feld veranlasst Pi, den korrekten Bearer-Authentifizierungsheader zu senden.
  • apiKey hat zwei Formen – wählen Sie eine aus:
    • Option 1 · Fügen Sie den Schlüssel direkt ein (am einfachsten, gut für den lokalen persönlichen Gebrauch): Ersetzen Sie "$EVOLINK_API_KEY" in der Konfiguration durch Ihren echten Schlüssel, z. B. "apiKey": "sk-your-real-key". In einem Schritt erledigt, keine Umgebungsvariable erforderlich; Der Nachteil ist, dass sich der Schlüssel im Klartext in der Konfigurationsdatei befindet. Geben Sie diese Datei also nicht weiter und übergeben Sie sie nicht an Git.
    • Option 2 · Interpolation von Umgebungsvariablen (sicherer, empfohlen): Lassen Sie "$EVOLINK_API_KEY" unverändert und fügen Sie den echten Schlüssel in eine Umgebungsvariable ein (siehe „Festlegen der API-Schlüssel-Umgebungsvariablen“ unten). Dadurch bleibt der Klartextschlüssel aus der Konfigurationsdatei fern.
    • (Fortgeschritten) Pis apiKey unterstützt auch ${EVOLINK_API_KEY} (Äquivalent; verwenden Sie geschweifte Klammern, um eindeutig zu sein, wenn auf den Variablennamen unmittelbar ein wörtlicher Text folgt) und !command (ein führender ! führt einen Befehl aus und verwendet seine Ausgabe als Schlüssel, zum Beispiel beim Lesen aus einem Passwort-Manager: "!op read 'op://vault/item/credential'"). Wenn Sie im Wert ein Literal **(Fortgeschritten)** Pis apiKeyunterstützt auchEVOLINKAPIKEY(A¨quivalent;verwendenSiegeschweifteKlammern,umeindeutigzusein,wennaufdenVariablennamenunmittelbareinwo¨rtlicherTextfolgt)und!command(einfu¨hrender!fu¨hrteinenBefehlausundverwendetseineAusgabealsSchlu¨ssel,zumBeispielbeimLesenauseinemPasswortManager:"!opreadop://vault/item/credential").WennSieimWerteinLiteraloder!beno¨tigen,maskierenSiedieseals{EVOLINK_API_KEY}` (Äquivalent; verwenden Sie geschweifte Klammern, um eindeutig zu sein, wenn auf den Variablennamen unmittelbar ein wörtlicher Text folgt) und `!command` (ein führender `!` führt einen Befehl aus und verwendet seine Ausgabe als Schlüssel, zum Beispiel beim Lesen aus einem Passwort-Manager: `"!op read 'op://vault/item/credential'"`). Wenn Sie im Wert ein Literal oder `!` benötigen, maskieren Sie diese als `und$!`.
Sie möchten den Schlüssel in der Konfigurationsdatei nicht berühren? Sie können /login auch im interaktiven Modus verwenden, um diesen Anbieter auszuwählen und den Schlüssel in ~/.pi/agent/auth.json zu speichern – die Wirkung ist gleich.

Legen Sie die API-Schlüsselumgebungsvariable fest

Sie benötigen diesen Schritt nur, wenn Sie oben Option 2 (Umgebungsvariableninterpolation) gewählt haben. Wenn Sie Option 1 (Schlüssel direkt einfügen) gewählt haben, befindet sich der Schlüssel bereits in der Konfigurationsdatei – überspringen Sie diesen Abschnitt und fahren Sie direkt mit Schritt 2 fort.
Richten Sie den $EVOLINK_API_KEY, auf den in der obigen Konfiguration verwiesen wird, auf Ihren echten Schlüssel. Nachfolgend finden Sie sowohl die temporäre Version (nur gültig im aktuellen Terminalfenster; verschwindet, sobald Sie es schließen – gut für einen ersten Testlauf) als auch die persistente Version (wird jedes Mal automatisch geladen, wenn Sie ein Terminal öffnen):
Vorübergehend (aktuelles Terminalfenster; geht verloren, wenn es geschlossen wird):
Persistent (in Ihre Shell-Konfigurationsdatei geschrieben; automatisch in jedem neuen Terminal angewendet):
Sie sind sich nicht sicher, welche Shell Sie verwenden? Führen Sie echo $SHELL im Terminal aus. Wenn die Ausgabe zsh enthält, verwenden Sie ~/.zshrc. Wenn es bash enthält, verwenden Sie ~/.bashrc.

Schritt 2: Beginnen Sie mit der Verwendung und überprüfen Sie

1. Wählen Sie ein Modell aus

Führen Sie den folgenden Befehl in Ihrem Terminal aus, um Pi zu starten:
Geben Sie in der Pi-Sitzung /model ein, um die Modellauswahl zu öffnen, und wählen Sie dann das oben konfigurierte EvoLink-Modell aus (z. B. claude-fable-5).

2. Überprüfen Sie die Konfiguration

Nachdem Sie ein Modell ausgewählt haben, geben Sie zunächst eine einfache Eingabeaufforderung ein, um die Modellantwort zu überprüfen:
Pi reagiert normal auf „Wer bist du?“ Geben Sie dann eine Aufgabe ein, die einen Toolaufruf auslöst, um die Fähigkeiten des Agenten zu überprüfen:
Wie Erfolg aussieht:
  • Sie sehen die normale Antwort der KI (einige Textzeilen).
  • Pi kann im zweiten Task das Tool ls aufrufen und weiter antworten.
  • Es gibt keine Fehler wie 401, 404, model_not_found oder Unexpected role "tool".

Fehlerbehebung

Das Folgende ist nach dem tatsächlich angezeigten Fehler geordnet – suchen Sie einfach den passenden Fehler.

Gibt 401 zurück (ungültiger API-Schlüssel)

Mögliche Ursachen:
  • Die Umgebungsvariable wurde nicht wirksam (am häufigsten): Führen Sie test -n "$EVOLINK_API_KEY" && echo "Key loaded" || echo "Key not loaded" im aktuellen Terminal aus. Unter Windows müssen Sie nach der Verwendung von setx das Terminal neu starten.
  • Das Feld apiKey ist falsch: Stellen Sie sicher, dass models.json "$EVOLINK_API_KEY" enthält (das auf die Umgebungsvariable verweist), anstatt den Variablennamen als Literalschlüssel zu behandeln.
  • "authHeader": true fehlt: /v1/messages von EvoLink erfordert ein Bearer-Token. Stellen Sie daher sicher, dass sich dieses Feld in derselben Anbieterkonfiguration wie apiKey befindet.
  • Der Schlüssel selbst ist ungültig oder wurde deaktiviert: Überprüfen Sie ihn in der EvoLink-Konsole.

Gibt 404 Invalid URL zurück

Ursache: Sie haben in baseUrl manuell einen zusätzlichen Pfad hinzugefügt. Pi hängt automatisch /v1/messages an, also ändern Sie baseUrl zurück zum Domänenstamm: https://direct.evolink.ai.

Gibt 404 model_not_found zurück

Ursache: Die Modell-ID ist falsch geschrieben oder das Modell ist nicht aktiviert. Überprüfen Sie, ob id in models.json genau mit dem von der EvoLink-Konsole zurückgegebenen Modellnamen / /v1/models übereinstimmt.

Gibt 400 Unexpected role "tool" zurück

Ursache: Die Konfiguration verwendet immer noch api: "openai-completions" mit einer Basis-URL, die auf /v1 endet. Pi sendet Agent-Tool-Ergebnisse mit role: "tool" von OpenAI, was die aktuelle Claude-kompatible Route nicht akzeptiert. Lösung: Ändern Sie diese drei Anbieterfelder:
Dieses Problem kann mit supportsDeveloperRole oder supportsReasoningEffort nicht behoben werden, da es sich bei der abgelehnten Rolle um die Werkzeugrolle handelt, nicht um die Rolle developer oder einen Argumentationsparameter. Starten Sie nach der Aktualisierung der Konfiguration eine neue Sitzung.

Über die Kosten

Das Feld cost im obigen models.json ist der tatsächliche Preis von EvoLink (ein pauschaler Rabatt von 10 % in USD pro Million Token), den Pi als Referenz bei der Schätzung der Nutzung verwenden kann:
Cache Read ist der Preis, wenn der Cache erreicht wird (ca. 0,1× der Eingabe). Die tatsächlichen Einsparungen hängen von der Cache-Trefferquote ab; Je größer der Kontext, desto weniger stabil sind die Treffer, daher wird der Nutzen abgezinst – betrachten Sie ihn nicht als einen bedingungslos niedrigen Preis.

FAQ

Wie öffne ich ein Befehlszeilenterminal?

  • Option 1: Drücken Sie Command + Space, um Spotlight zu öffnen, geben Sie Terminal ein und drücken Sie die Eingabetaste.
  • Option 2: Gehen Sie zu Anwendungen → Dienstprogramme → Terminal.

1. Warum baseUrl nur auf den Domänenstamm festlegen?

Weil der anthropic-messages-Anbieter von Pi automatisch /v1/messages nach baseUrl anhängt. Durch manuelles Hinzufügen von /v1 oder /v1/messages wird der Pfad dupliziert und 404 Invalid URL zurückgegeben. Verwenden Sie nur https://direct.evolink.ai.

2. Muss ich authHeader: true einstellen?

Ja. Das Anthropic SDK von Pi verwendet standardmäßig x-api-key, während /v1/messages von EvoLink ein Bearer-Token verwendet. authHeader: true lässt Pi Authorization: Bearer <your-key> senden; Wenn Sie es weglassen, kann es zu einem 401 kommen.

3. Warum folgt dieses Handbuch der Terminal-CLI?

Die offizielle Primärform von Pi ist die Terminal-CLI (vier Ausführungsmodi: interaktiv / Drucken / RPC / SDK). Die Konfiguration und Überprüfung der EvoLink-Integration erfolgt vollständig über die CLI, die stabil und zuverlässig ist. Alle Schritte in dieser Anleitung folgen der CLI.

4. Wie vermeide ich, den API-Schlüssel in der Konfiguration im Klartext zu schreiben?

Verwenden Sie die Interpolation von Umgebungsvariablen im Feld apiKey (z. B. "$EVOLINK_API_KEY") und behalten Sie den tatsächlichen Schlüssel in einer Umgebungsvariablen bei. EvoLink unterstützt die gesamte Claude-Familie (es unterstützt auch GPT, Gemini und mehr, die Sie in der Konsole anzeigen können). Für Planung/komplexes Denken wird claude-fable-5 empfohlen; Verwenden Sie für die tägliche Ausführung claude-sonnet-5. Für leichte Aufgaben verwenden Sie claude-haiku-4-5-20251001.

6. Wie überprüfe ich die Nutzung?

Melden Sie sich bei der EvoLink-Konsole an, um das Anforderungsvolumen, den Verbrauch und die Token-Nutzung anzuzeigen.
Weitere Informationen zur Verwendung und Konfiguration finden Sie im offiziellen Pi-Repository.