
AIエージェントPulumi Neoを使ってみた
AIエージェントPulumi Neoが発表されました。
Pulumi Neoとは
Pulumi Neoは、Pulumi Cloud上で動作するAIエージェントです。
以下のページで説明されています。
ページ内の動画からデモも確認できます。
デモでは、AWS LambdaのEoLのメールをPulumi Neoに渡してGitHub上のコードから影響範囲の理解・コードの変更・Pull Requestの作成までの流れが紹介されていました。
やってみた
チャットしてみる
Pulumi Cloudにログインします。
アカウントがない場合は、作成します。
ログインすると早速Pulumi Neoのチャット画面が表示されました。
候補に表示された「最も規模の大きい 3 つのプロジェクトのリソース数はいくつですか?」を選択してみました。
以下の回答が帰ってきました。
ちなみに日本語で聞いたら日本語で答えてくれました。
AWSリソースをデプロイしてみる
ここからはAWSリソースのデプロイを通して、Pulumi Neoを使っていきたいと思います。
AWS用のTypeScriptプロジェクトテンプレートを使って新しいPulumiプロジェクトを作成します
pulumi new aws-typescript
以下のようにファイルが作成されます。
tree -L 1
.
├── index.ts
├── node_modules
├── package-lock.json
├── package.json
├── Pulumi.dev.yaml
├── Pulumi.yaml
├── README.md
└── tsconfig.json
index.ts
にはS3バケットが定義されました。
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
import * as awsx from "@pulumi/awsx";
// Create an AWS resource (S3 Bucket)
const bucket = new aws.s3.Bucket("my-bucket");
// Export the name of the bucket
export const bucketName = bucket.id;
リソースをデプロイしてみます。
pulumi up
Previewing update (dev)
View in Browser (Ctrl+O): https://app.pulumi.com/hoge-org/hoge-project/dev/previews/d0515df1-d8f6-4d1c-9304-3b00f4fcad1e
Type Name Plan Info
+ pulumi:pulumi:Stack first-project-dev create
└─ pulumi:providers:aws default_7_7_0 1 error
Diagnostics:
pulumi:providers:aws (default_7_7_0):
error: pulumi:providers:aws resource 'default_7_7_0' has a problem: No valid credential sources found.
Please see https://www.pulumi.com/registry/packages/aws/installation-configuration/ for more information about providing credentials.
NEW: You can use Pulumi ESC to set up dynamic credentials with AWS OIDC to ensure the correct and valid credentials are used.
Learn more: https://www.pulumi.com/registry/packages/aws/installation-configuration/#dynamically-generate-credentials-via-pulumi-esc
[Pulumi Copilot] Would you like help with these diagnostics?
https://app.pulumi.com/hoge-org/first-project/dev/previews/d0515df1-d8f6-4d1c-9304-3b00f4fcad1e?explainFailure
Resources:
+ 1 to create
AWSの認証情報が見つからずエラーになっています。
[Pulumi Copilot] Would you like help with these diagnostics?
のリンクを開いてみます。
Pulumi Cloudが開いて、Pulumi Neoが解決方法を回答してくれていました。
指示通り、AWS認証情報セットした後にpulumi up
を実行しました。
export AWS_ACCESS_KEY_ID="<AWS_ACCESS_KEY_ID>"
export AWS_SECRET_ACCESS_KEY="<AWS_SECRET_ACCESS_KEY>"
export AWS_SESSION_TOKEN="<AWS_SESSION_TOKEN>"
pulumi up
デプロイが成功しました。
作成されたリソースについて確認してみました。
Pulumi Neo Tasksを使ってみる
Pulumi Cloud上からNeo Tasksを実行できます。
これを使うことで、GitHubリポジトリ上のコードを使って質問に回答したり、実装を行ってPull Requestを出したりできます。
S3バケットの数を確認してみます。
実装を頼んでみます。Neo Tasksで以下を依頼しました。
S3バケットmy-bucket2を作成してください
作業計画を提案してくれました。問題ないため、Yes
を選択します。
コードを実装して、pulumi preview
(ドライラン)を実行してよいか確認されました。
コードの内容が問題なかったため、承認します。
ここでは、私の方でPulumi Cloudの設定が不足していたため失敗しています。本来ならドライランの結果が表示されるはずです。
Pull Requestの作成を行ってくれました。
Pulumi Cloud上でPull Request作成まで完結するの良いですね。
おわりに
Pulumi NeoはPulumiのワークフローに統合されたAIエージェントで、以下のような機能を提供します:
- Pulumiプロジェクトに関する質問への回答
- エラー診断とトラブルシューティングの支援
- コードの実装からPull Request作成までの自動化
特にNeo Tasksを使った実装の自動化は強力で、自然言語での指示からコード生成、プレビュー、Pull Request作成まで一気通貫で実行できます。Pulumiを使ったインフラ管理の効率化に大きく貢献しそうです。