# /logs

`/logs` スキルはAIによるログフェッチャーです。探しているものを説明すると、エージェントが適切なPodを見つけ、適切な時間ウィンドウを選択し、最適なgrepフィルターを使用して重要な行のみをフェッチします。

ログを効率的にフェッチするため、このスキルはエージェントに[Kubetail](https://github.com/kubetail-org/kubetail)の使用方法を教えます。KubetailはRust製のクラスターエージェント（AIエージェントではなく従来のK8sエージェント）を各Nodeで実行し、クライアント側ではなくクラスター側でフィルタリングを実行します。これにより、ギガバイトのデータを先に送り返すことなく、多数のPodや長時間ウィンドウを素早く検索することが実用的になります。

ストリームはあなたとエージェントの両方が同時にアタッチしている **tmux** ウィンドウ内で実行されます。エージェントはペインを読み取って質問に答え、あなたはリアルタイムでスクロール、検索、またはライブテールの監視を続けることができます。

```text
/logs                                     # prompts for a target
/logs api                                 # recent logs from the api workload
/logs errors from the last hour on api    # natural-language scoping
/logs checkout for "timeout" in last 15m
```

自然言語スコープ（Namespace、ラベルセレクター、ワークロード名、時間ウィンドウ、grepパターン）がサポートされています（[概要](/ja/reference/skills/overview/)を参照）。エージェントはあなたの説明を適切なKubetailクエリに変換します。

:::caution[セキュリティ]
コンテナログには機密データ — Secret、トークン、リクエストボディ、PII — が含まれることがよくあります。ペインに表示されるものはすべてエージェントに読み取られ、モデルに送信される可能性があります。クエリは狭い範囲に絞り（特定のワークロード、短い時間ウィンドウ、ターゲットを絞ったgrep）、事後フィルタリングに依存するよりもソースでの削除を優先してください。完全な信頼モデルについては[セキュリティ](/ja/concepts/security/)を参照してください。
:::

---

## 要件

- `tmux` がエージェントの `$PATH` で利用可能である必要があります。これなしではスキルは実行されません。
- Kubetailがクラスターにインストールされている必要があります。インストールされていない場合、スキルはKubetailのHelmチャートを使用してインストールすることを提案します（手動パスについては[インストールガイド](https://docs.kubetail.com/guides/cluster/installation)を参照）。

---

## エージェントがログセッションを開く方法

エージェントがターゲットを解決しKubetailクエリを構築すると：

1. わかりやすい名前（例：`kstack-logs-api-server`）で切り離されたtmuxセッションを開始します。
2. デスクトップ上で新しいターミナルウィンドウを開いてそのセッションにアタッチしようとします — ストリームがあなたの前に表示されます。
3. チャットに正確な `tmux attach` コマンドを出力します。任意のターミナルから手動で接続できます（SSH経由、リモートエディター、またはウィンドウの起動が失敗した場合に便利）。

```text
Session ready.
  Target: pod/api-5f9c-bnt4m (container: server)
  tmux:   tmux attach -t kstack-logs-api-server
```

あなたとエージェントは同じペインを共有します。エージェントはトークン消費を抑えてウィンドウを読み取るため、最新の出力に追いつくよう促す必要があるかもしれません。セッションの終了をエージェントに指示すると、基礎となるテールを停止してtmuxセッションをkillします。

---

## エージェントへの指示

スキルはストリームを開くだけでなく、動作についてエージェントに指示します。

- ユーザーの説明を実行可能な最も狭いKubetailクエリ（特定のワークロード、短い時間ウィンドウ、ターゲットを絞ったgrep）に変換し、ストリーム開始前にユーザーがさらに絞り込めるよう解決されたクエリを表示します。
- tmuxペインからトークン消費を抑えて読み取ります。無断で大きなバッファを再読み取りするのではなく、ユーザーにスクロールを促します。
- ログ内容は機密性が高い可能性があるものとして扱います — ユーザーが明示的に要求しない限り、トークン、リクエストボディ、またはPIIに見える行をチャットにエコーバックしません。
- ユーザーがログの根本原因コンテキストを必要とする場合は [`/investigate`](/ja/reference/skills/investigate/) に、ログパターンがリソーススパイクと相関する場合は [`/metrics`](/ja/reference/skills/metrics/) に渡します。
- ユーザーが終了を合図したら、テールを停止してtmuxセッションをkillします。

---

## オプション

<dl>
  <dt>`--attach`</dt>
  <dd>新しいセッションを開始する代わりに、既存のkstack tmuxセッションにエージェントをアタッチします。</dd>

  <dt>`--detach`</dt>
  <dd>切り離された状態で新しいセッションを開始します — ターミナルウィンドウは開かれません。手動でアタッチしてください。</dd>
</dl>

[概要](/ja/reference/skills/overview/)のグローバルフラグも適用されます。