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.
Dies ist die vollständige Feldreferenz für Blueprints. Eine Einführung in Blueprints und ihre Rolle in Devins Umgebung finden Sie unter Deklarative
Umgebungskonfiguration.
Überblick
| Abschnitt | Zweck | Ausgeführt? |
|---|---|---|
initialize | System-Tools, Sprachlaufzeiten und globale CLIs installieren | Ja, bei jedem Build |
maintenance | Projektabhängigkeiten installieren und aktualisieren | Ja, bei Builds. Dem Agenten zu Sitzungsbeginn als Kontext angezeigt (wird nicht automatisch ausgeführt). |
knowledge | Devin Anweisungen zum Linten, Testen und Bauen sowie weitere projektspezifische Informationen geben | Nein, nur als Referenz |
initialize wird nur bei Builds ausgeführt. Die Ergebnisse werden im Snapshot gespeichert. maintenance wird bei Builds (nach initialize) ausgeführt. Zu Beginn jeder Sitzung werden maintenance-Befehle nicht automatisch ausgeführt — stattdessen werden sie dem Agenten als Kontext angezeigt, damit er weiß, welche Befehle für Abhängigkeiten bei Bedarf ausgeführt werden müssen (z. B. nach dem Abrufen des neuesten Codes). Die Befehle sollten weiterhin schnell und inkrementell sein. Builds werden automatisch ausgeführt, wenn sich Ihr Blueprint ändert, und außerdem regelmäßig (ca. alle 24 Stunden).
initialize
initialize, um Tools und Laufzeitumgebungen zu installieren, die nicht vom konkreten Zustand deines Codes abhängen: Laufzeitumgebungen für Programmiersprachen, Systempakete, globale CLIs.
Einfache Form
Strukturierte Form
run.
Wann initialize statt maintenance verwenden
In initialize | In maintenance einfügen |
|---|---|
| Installation der Laufzeitumgebung | npm install / pip install |
Systempakete (apt-get) | bundle install |
| Globale CLI-Tools | go mod download |
| Einmalige Konfiguration | Updates des Abhängigkeits-Caches |
GitHub Actions (setup-python, etc.) | Repo-spezifische Setup-Skripte |
initialize; Abhängigkeitsbefehle, die sich an den Lock-Dateien Ihres Codes orientieren, gehören in maintenance.
maintenance
maintenance für die Installation von Abhängigkeiten und andere Befehle, die nach dem Klonen Ihres Codes ausgeführt werden sollen. Diese Befehle werden während Builds ausgeführt und dem Agenten zu Beginn der Sitzung angezeigt, damit er sie erneut ausführen kann, wenn sich Abhängigkeiten geändert haben. Hierhin gehören npm install, pip install, uv sync und ähnliche Befehle.
Für Blueprints auf Repo-Ebene werden
maintenance-Befehle im Root-Verzeichnis des Repos ausgeführt. Für Blueprints auf Org-Ebene werden sie im Home-Verzeichnis (~) ausgeführt.knowledge
knowledge wird nicht ausgeführt. Er enthält Referenzinformationen, die Devin bei der Arbeit an Ihrem Projekt verwendet. Hier geben Sie Devin die richtigen Befehle für Linting, Tests, Builds und andere projektspezifische Workflows an.
| Feld | Typ | Beschreibung |
|---|---|---|
name | string | Bezeichner für diesen Knowledge-Eintrag (z. B. lint, test, build) |
contents | string | Freitext mit Befehlen, Anweisungen oder Hinweisen |
name ist eine Bezeichnung. Üblicherweise sind lint, test und build die Standardnamen. Bei der Überprüfung seiner Arbeit greift Devin auf diese zurück. Sie können beliebige zusätzliche Knowledge-Einträge mit benutzerdefinierten Namen hinzufügen:
Schritttypen
initialize oder maintenance gehört zu einem von zwei Typen: Shell-Befehle (run) oder GitHub Actions (uses).
Shell-Befehle (run)
| Feld | Typ | Beschreibung |
|---|---|---|
name | string (optional) | Menschenlesbare Bezeichnung für den Schritt |
run | string | Auszuführende Shell-Befehle |
env | map (optional) | Zusätzliche Umgebungsvariablen für diesen Schritt |
- Befehle werden in bash ausgeführt. Wenn in einem mehrzeiligen Skript ein Befehl fehlschlägt, wird der gesamte Schritt sofort abgebrochen.
- Blueprints auf Org-Ebene werden im Home-Verzeichnis (
~) ausgeführt. - Blueprints auf Repo-Ebene werden im Root-Verzeichnis des geklonten Repositorys ausgeführt.
- Jeder Schritt hat ein Timeout von 1 Stunde.
- Secrets sind automatisch als Umgebungsvariablen verfügbar.
GitHub Actions (uses)
| Feld | Typ | Beschreibung |
|---|---|---|
name | string (optional) | Menschenlesbare Bezeichnung für den Schritt |
uses | string | Referenz auf eine GitHub Action |
with | map (optional) | Eingabeparameter für die Action |
env | map (optional) | Zusätzliche Umgebungsvariablen für diesen Schritt |
github.com/ und das Suffix @<ref> sind beide erforderlich. Die Referenz ist in der Regel ein Versions-Tag wie v5.
Häufig verwendete Actions:
| Action | Zweck | Beispiel für with |
|---|---|---|
github.com/actions/setup-python@v5 | Python installieren | python-version: "3.12" |
github.com/actions/setup-node@v4 | Node.js installieren | node-version: "20" |
github.com/actions/setup-go@v5 | Go installieren | go-version: "1.22" |
github.com/actions/setup-java@v4 | Java/JDK installieren | java-version: "21", distribution: "temurin" |
github.com/gradle/actions/setup-gradle@v4 | Gradle installieren | (keine) |
github.com/ruby/setup-ruby@v1 | Ruby installieren | ruby-version: "3.3" |
with-Werte:
Werte, die über with übergeben werden, werden der Action als Eingaben übergeben und folgen dabei denselben Konventionen wie in GitHub-Actions-Workflows. Alle Werte werden in Zeichenfolgen umgewandelt.
setup-python die Python-Binärdatei zu PATH hinzu, sodass sie in allen späteren Schritten und in maintenance verfügbar bleibt.
run vs. uses: wann Sie was verwenden sollten
run verwenden, wenn… | uses verwenden, wenn… |
|---|---|
Systempakete installiert werden (apt-get) | Laufzeitumgebungen für Programmiersprachen eingerichtet werden (Python, Node, Go, Java, Ruby) |
| projektspezifische Skripte ausgeführt werden | es eine offizielle GitHub Action für Ihre Anforderungen gibt |
| Dateien oder die Umgebung konfiguriert werden | Sie automatische Versionsverwaltung und Caching nutzen möchten |
| der Befehl einfach und in sich abgeschlossen ist | Sie dieselbe Action in einem GitHub-Actions-Workflow verwenden würden |
uses für Laufzeitumgebungen von Programmiersprachen und run für alles andere.
Umgebungsvariablen und Secrets
Umgebungsvariablen pro Schritt
env zusätzliche Umgebungsvariablen definieren:
Schrittübergreifende Umgebungsvariablen ($ENVRC)
$ENVRC:
$ENVRC geschriebene Variablen werden automatisch exportiert und stehen in allen nachfolgenden Schritten sowie in der Devin-Sitzung zur Verfügung. Das funktioniert ähnlich wie $GITHUB_ENV in GitHub Actions.
Secrets
$MY_SECRET).
Secrets werden vor jedem Schritt während Builds eingefügt und zu Beginn jeder Sitzung erneut eingefügt. Aus dem Snapshot-Image selbst werden sie entfernt, sodass Zugangsdaten niemals in gespeicherte Maschinenabbilder eingebettet sind.
- Organisations-Secrets: Als Umgebungsvariablen in jedem Schritt aller Blueprints in der org verfügbar. Konfigurieren Sie diese im Secrets-Tab des Editors für das organisationsweite Blueprint.
- Enterprise-Secrets: Werden mit org-Secrets zusammengeführt (bei Namenskonflikten haben org-Secrets Vorrang). In allen orgs im Enterprise verfügbar.
- Repository-Secrets: Werden in eine Repo-spezifische Datei unter
/run/repo_secrets/{owner/repo}/.env.secretsgeschrieben. Während Builds werden Repo-Secrets automatisch geladen, bevor die Blueprint-Schritte dieses Repos ausgeführt werden. Während Sitzungen lädt Devin sie, wenn im Repo gearbeitet wird. Konfigurieren Sie diese im Secrets-Tab des Blueprint-Editors des Repositorys.
Nur-Build-Secrets: Secrets, die als “build only” markiert sind, sind während Snapshot-Builds verfügbar, werden aber entfernt, bevor der Snapshot gespeichert wird. Verwenden Sie diese für Zugangsdaten, die nur während des Builds benötigt werden (z. B. zum Herunterladen privater Artefakte während
initialize).Dateianhänge
.npmrc, settings.xml oder Konfigurationsdateien) über den Blueprint-Editor hochladen. Hochgeladene Dateien werden unter ~/.files/ abgelegt, und es wird eine Umgebungsvariable gesetzt, die auf den Pfad der jeweiligen Datei verweist:
FILE_ versehen werden.
Verwenden Sie Dateianhänge in Ihren Blueprint-Schritten:
Git-basierte Blueprints
Git-basierte Blueprints werden derzeit nicht unterstützt. Diese Funktion ist in Kürze verfügbar. Sie können Blueprints in Ihrem Repository speichern und Builds automatisch auslösen lassen, wenn sich diese ändern. Konfigurieren Sie Blueprints bis dahin über die UI unter Settings > Environment > Blueprints.
Vollständiges Beispiel
Informationen dazu, wie Blueprints über verschiedene Ebenen hinweg zusammenwirken (enterprise → org → repo), zu Build-Status, Repository-Zuständen und dazu, was einen erneuten Build auslöst, finden Sie unter Builds und Sitzungen auf der Seite zur deklarativen Konfiguration.
