# エージェントの鍵

人がブラウザで承認できない場面のための資格情報です。CI や、ずっと動いているエージェントに配ります。

## 使いどころ

ふだんの開発では要りません。`aikagi login` で足ります。鍵を作るのは、人の手が入らないところで鍵を取りたいときだけです。

## 発行する

ふつうは[メンバー](https://aikagi.dev/guide/members.md)の「エージェントを追加」で、作成と同時に出ます。あとから増やすときは、その行の「…」の「鍵を発行する」か、「エージェントの鍵」の画面から。決めるのは 4 つです。

- **名前**: 一覧と記録に出ます。どこで使っているかが分かる名前にしてください。
- **範囲**: ワークスペース全体か、ひとつのプロジェクトか。環境まで絞ることもできます。
- **エージェント**: 必須です。そのトークンが名乗る[エージェント](https://aikagi.dev/guide/members.md)で、渡る鍵はそのエージェントの役割とパス範囲で決まります。
- **期限**: 必須です。最長 365 日。既定は 30 日です。

> **値が出るのは作った直後の 1 回だけです。**画面を離れると二度と表示できません。その場で配布先に貼ってください。控えを取り損ねたら、作り直すほうが早いです。

```sh
aikagi token create --name ci   --scope project:acme/web-app --env production   --agent github-actions --expires 30d
```

## 使う

配布先では環境変数に置くだけです。

```sh
AIKAGI_TOKEN=aik_live_...
```

あとは `aikagi run -- コマンド` や `aikagi get` が、人のログインの代わりにこのトークンを使います。手元のログインが残っている端末では、トークンが置いてあってもログインのほうが優先されます。

## 鍵で通るところ

トークンが使えるのは、プロジェクトの鍵の読み書きと、エージェント起動時の受け渡しです。名乗るエージェントが閲覧者なら、読むことだけができます。

次のものは人がサインインしたときだけの操作で、鍵では通りません。CI のスクリプトに `aikagi login` を書かせないよう、その旨と次の一手が応答に出ます。

- 個人の保管庫
- メンバー・エージェント・トークン・ワークスペースの管理
- 記録の閲覧、端末の一覧

## 一覧と失効

一覧には名前・範囲・エージェント・期限・最後に使われた日時が出ます。値は出ません。

「失効」を押すと、その場でその鍵は通らなくなります。期限が来た鍵も同じです。エージェントを失効させると、その鍵も一緒に止まります。

```sh
aikagi token ls -w acme
aikagi token revoke <id> -w acme
```

## 記録での見えかた

エージェントが取った鍵も、人が取ったのと同じように[監査ログ](https://aikagi.dev/guide/audit.md)に残ります。だれの行かはエージェントの名前で出ます。「エージェントだけ」で絞り込めます。

---

出典: https://aikagi.dev/guide/tokens/
