---
title: Agent
order: 4
description: 各ワークスペースの背後で動く推論エンジン。
---

# Agent

**エージェント（agent）** は、ソースを読み、ツールを選び、答えを生み出す推論エンジン
です。Investibook は交換可能な **agent runtime** として別プロセスを駆動します。
OpenCode と Claude は ACP、Pi は JSONL RPC を使います。

## エージェントループ

1. あなたがチャットでメッセージを送る。
2. バックエンドがエージェントとの runtime セッションを開き、メッセージと共にワークスペースの
   ソースをストリームする。
3. エージェントが一連のイベントを発する：
   - `text` —— ストリームされる回答の断片。
   - `thought` —— 内部推論（UI で折りたたみ可能）。
   - `tool` —— ツール / スキル呼び出しと結果。
   - `complete` —— 実行終了。
4. UI が届く順にイベントをレンダリングする。

## runtime の切り替え

チャットで `/agent pi` または `/agent opencode` を実行します。選択内容は現在の
ワークスペースに保存され、次のメッセージから反映されます。

## エージェントが触れるもの

- アクティブなワークスペースの **ソース**（Jira、クラスタ、ファイル）。
- **ビルトインおよび有効化されたスキル**。
- **MCP ツール** —— sources パネルに見える Clinic、Wait、DevOps などのコネクタ。
- **スクリーンショットと PromQL** —— Grafana 画面を撮らせたり、PromQL を実行させたり、
  明示的に依頼できる。

## なぜエージェントを別プロセスにしているのか

別プロセスにすることで、

- エージェントを Investibook バックエンドから独立してアップグレードできる。
- バックエンドは小さく、ステートレスに保たれる。
- ローカル開発でエージェントバイナリ（`opencode` ↔ `claude-code-acp` ↔ `pi`）を、ビルドし直さずに
  切り替えられる。

エージェントバイナリの指定方法は
[How-to → Investibook をローカルで動かす](/docs/how-to/run-locally) を参照してください。
