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.
これはブループリントの完全なフィールドリファレンスです。ブループリントの概要と、Devin の環境内でどのように機能するかについては、宣言的
環境設定を参照してください。
概要
| Section | 目的 | 実行されるか |
|---|---|---|
initialize | システムツール、言語ランタイム、グローバル CLI をインストールする | はい。各ビルド時に実行されます |
maintenance | プロジェクトの依存関係をインストールし、更新する | はい。ビルド時に実行されます。セッション開始時にエージェントに提示されます (自動実行はされません) 。 |
knowledge | lint、test、build の方法や、その他のプロジェクト固有の情報を Devin に伝える | いいえ。参照情報として提供されます |
initialize はビルド時にのみ実行されます。結果はスナップショットに保存されます。maintenance はビルド時 (initialize の後) に実行されます。各セッションの開始時には、maintenance コマンドは 自動実行されません。代わりに、必要に応じて (たとえば最新のコードを pull した後に) どの依存関係コマンドを実行すべきかをエージェントが把握できるよう、前提情報として提示されます。コマンドは高速で、差分的に実行できるものにしてください。ビルドは ブループリント が変更されたときと、定期的 (約 24 時間ごと) に自動実行されます。
initialize
initialize は、コードの特定の状態に依存しないツールやランタイム (言語ランタイム、システムパッケージ、グローバル CLI など) をインストールする際に利用します。
シンプルな形式
構造化された形式
run を含む 1 つのステップと同等です。
initialize と maintenance の使い分け
initialize に入れるもの | maintenance に入れるもの |
|---|---|
| 言語ランタイムのインストール | npm install / pip install |
システムパッケージ (apt-get) | bundle install |
| グローバル CLI ツール | go mod download |
| 1回限りの設定 | 依存関係キャッシュの更新 |
GitHub Actions (setup-python など) | リポジトリ固有のセットアップスクリプト |
initialize に、コードのロックファイルに追従する依存関係コマンドは maintenance に入れます。
maintenance
maintenance は、コードのクローン後に実行する依存関係のインストールやその他のコマンドに利用します。これらのコマンドはビルド中に実行され、セッション開始時にエージェントにも共有されるため、依存関係が変更された場合はエージェントが再実行できます。npm install、pip install、uv sync などのコマンドはここに含めます。
リポジトリレベルのブループリントでは、
maintenance コマンドはリポジトリのルートディレクトリで実行されます。org レベルのブループリントでは、ホームディレクトリ (~) で実行されます。knowledge
knowledge セクションは実行されません。これは、Devin がプロジェクトで作業する際に参照する情報です。ここでは、lint、テスト、ビルド、その他のプロジェクト固有のワークフローで使用する正しいコマンドを Devin に伝えます。
| Field | Type | Description |
|---|---|---|
name | string | この Knowledge アイテムの識別子 (例: lint、test、build) |
contents | string | コマンド、指示、またはメモを自由形式のテキストで記述 |
name フィールドはラベルです。慣例として、lint、test、build が標準的な名前です。Devin は自身の作業を検証する際に、これらを参照します。任意のカスタム名で、追加の Knowledge アイテムを作成できます。
ステップの種類
initialize または maintenance の各ステップでは、シェルコマンド (run) または GitHub Actions (uses) の 2 種類のいずれかを利用します。
シェルコマンド (run)
| フィールド | 型 | 説明 |
|---|---|---|
name | string (optional) | ステップ用の、人が読んでわかるラベル |
run | string | 実行するシェルコマンド |
env | map (optional) | このステップ用の追加の環境変数 |
- コマンドは bash で実行されます。複数行スクリプト内のいずれかのコマンドが失敗すると、そのステップ全体が直ちに停止します。
- org レベルのブループリントはホームディレクトリ (
~) で実行されます。 - リポジトリレベルのブループリントは、クローンされたリポジトリのルートディレクトリで実行されます。
- 各ステップのタイムアウトは 1 時間です。
- シークレットは自動的に環境変数として利用できます。
GitHub Actions (uses)
| Field | Type | 説明 |
|---|---|---|
name | string (optional) | ステップの表示名 |
uses | string | GitHub Action の参照先 |
with | map (optional) | アクションの入力パラメータ |
env | map (optional) | このステップ用の追加の環境変数 |
github.com/ プレフィックスと @<ref> サフィックスは、どちらも必須です。ref は通常、v5 のようなバージョンタグです。
よく利用されるアクション:
| Action | 目的 | 例 with |
|---|---|---|
github.com/actions/setup-python@v5 | Python をインストール | python-version: "3.12" |
github.com/actions/setup-node@v4 | Node.js をインストール | node-version: "20" |
github.com/actions/setup-go@v5 | Go をインストール | go-version: "1.22" |
github.com/actions/setup-java@v4 | Java/JDK をインストール | java-version: "21", distribution: "temurin" |
github.com/gradle/actions/setup-gradle@v4 | Gradle をインストール | (なし) |
github.com/ruby/setup-ruby@v1 | Ruby をインストール | ruby-version: "3.3" |
with の値の仕組み:
with で渡した値は、GitHub Actions のワークフローと同じ規則に従って、アクションへの入力として与えられます。すべての値は文字列に変換されます。
setup-python は Python の実行ファイルを PATH に追加するため、それ以降のすべてのステップと maintenance で引き続き利用できます。
run と uses: どちらを使うべきか
run を使うのはこんな場合… | uses を使うのはこんな場合… |
|---|---|
システムパッケージをインストールする場合 (apt-get) | 言語ランタイム (Python、Node、Go、Java、Ruby) をセットアップする場合 |
| プロジェクト固有のスクリプトを実行する場合 | 必要な処理に対応する公式の GitHub Action がある場合 |
| ファイルや環境を設定する場合 | バージョン管理やキャッシュを自動で処理したい場合 |
| コマンドがシンプルで自己完結している場合 | GitHub Actions のワークフローでも同じ Action を使う場合 |
uses を使い、それ以外には run を使います。
環境変数とシークレット
ステップごとの環境変数
env フィールドを使って追加の環境変数を定義できます。
ステップ間の環境変数 ($ENVRC)
$ENVRC ファイルに書き込みます。
$ENVRC に書き込まれた変数は自動的にエクスポートされ、後続のすべてのステップおよび Devin セッションで利用できます。これは、GitHub Actions の $GITHUB_ENV と同様の仕組みです。
シークレット
$MY_SECRET) 。
シークレットは、ビルド中に各ステップが実行される前に毎回注入され、さらに 各セッションの開始時にも再度注入されます。シークレット自体はスナップショットイメージから除去されるため、認証情報が保存済みのマシンイメージに埋め込まれることはありません。
- 組織のシークレット: 組織内のすべての ブループリント にあるすべてのステップで、環境変数として利用できます。これらは組織全体のブループリントエディタの Secrets タブで設定します。
- Enterprise のシークレット: 組織のシークレットとマージされます (同名のシークレットが競合した場合は、組織のシークレットが優先されます) 。Enterprise 内のすべての組織で利用できます。
- リポジトリのシークレット: リポジトリごとのファイル
/run/repo_secrets/{owner/repo}/.env.secretsに書き込まれます。ビルド中は、そのリポジトリの ブループリント のステップが実行される前に、リポジトリのシークレットが自動的にsourceされます。セッション時には、Devin がそのリポジトリで作業するときにそれらをsourceします。これらは、リポジトリのブループリントエディタの Secrets タブで設定します。
ビルド専用のシークレット: 「build only」としてマークされたシークレットは、スナップショットのビルド中は利用できますが、スナップショットが保存される前に削除されます。これは、ビルド時にのみ必要な認証情報 (例:
initialize 中に非公開アーティファクトをダウンロードする場合) に利用してください。ファイルの添付
.npmrc、settings.xml、設定ファイルなど) をアップロードできます。アップロードされたファイルは ~/.files/ に書き込まれ、各ファイルのパスを指す環境変数が設定されます。
FILE_ が付きます。
ブループリントのステップでファイルを添付する:
Gitベースのブループリント
Gitベースのブループリントは現在サポートされていません。この機能は近日中に利用可能になる予定です。ブループリントをリポジトリに保存し、変更されると自動的にビルドがトリガーされるようになります。現時点では、UI の 設定 > 環境 > ブループリント からブループリントを設定してください。
完全な例
ブループリントが階層 (enterprise → org → repo) をまたいでどのように組み合わされるか、ビルド ステータス、リポジトリの状態、再ビルドのトリガーになる条件については、宣言的構成ページのビルドと
セッションを参照してください。
