# 指示、承認、設定

文章の好みを設定し、アシスタントが確認を求めるタイミングを選び、再利用できるプロジェクトのルールを設定します。

アシスタントに文章の好みをはっきり伝え、変更の扱い方を選びます。指示は、してほしい作業を説明するものです。どのツール操作を進めてよいかは、承認の設定で決まります。

![設定 → AI アシスタント → 指示。既定のモデルを設定し、指示を書いてから、「指示を保存」を押します。PDF ページの取り込みの設定はテキスト欄の下にあります。](https://cdn.oleafly.com/images/screenshots/desktop/docs/settings-instructions-dark-window-v2.png#view=519,89,883,724)

## 既定のチャットモデル

**設定 → AI アシスタント → 指示**を開きます。 **既定のチャットモデル**を選ぶと、新しいチャットで使うモデルを設定できます。一覧には、設定済みのプロバイダで有効にしたモデルが並びます。個々の会話の中でモデルを変えることもできます。

## カスタム指示

**カスタム指示**に好みを入力して、 **指示を保存**をクリックします。研究原稿の出発点として使いやすい例を示します。

```text title="執筆指示の例"
Use British English and preserve the terminology already used in the paper.
Keep citation keys, labels, equations, and numerical results unchanged unless
I explicitly ask you to edit them.
When a statement needs evidence, mark it for a source check. Do not invent
references or results.
Explain substantive changes briefly so I can review them.
```

指示は、プロジェクトの説明全体を繰り返さなくても修正の方向を示せる程度に、具体的に書いてください。アシスタントの組み込みの動作を補うもので、ツールの権限は変わりません。

## 指示を保存

編集したら**指示を保存**をクリックします。 **保存しました**の表示で、保存されたことを確認できます。この欄の未保存の編集は、新しい既定にはなりません。

## AI による PDF ページの取り込みを許可

**AI による PDF ページの取り込みを許可**をオンにすると、アシスタントが画像対応のモデルで描画済みのページを確認できます。`verify_pdf_pages` ツールは、レイアウトの確認のために、コンパイル済みのページをラスタライズします。ページの画像を設定済みのプロバイダに送りたくない場合は、このコントロールをオフにします。

## ツールの一覧を確認する

指示タブの**アシスタントが現在使えるツール**を展開します。アシスタントにできる作業を確認し、セクションのコンパイル、PDF の確認、未解決の参照の検出といった成果を依頼します。

## ペルソナ

![設定 → AI アシスタント → ペルソナ。「ペルソナを作成」は一覧の上にあり、編集と削除のボタンは各ペルソナの横にあります。](https://cdn.oleafly.com/images/screenshots/desktop/docs/settings-personas-dark-window-v2.png#view=519,89,883,902)

ペルソナは、名前を付けた指示のプリセットです。 **設定 → AI アシスタント → ペルソナ**で作成し、特定の種類の作業のときにチャットの入力欄で選びます。たとえば、簡潔な校正用のペルソナと、査読者用のペルソナを別々に用意できます。

ペルソナを有効にすると、既定のカスタム指示の文章の代わりに、そのペルソナの指示プリセットが会話に使われます。ペルソナにも必要な常設の好みは、そのペルソナに含めてください。ペルソナが変えるのは方針だけで、ツールの権限は与えません。

## 承認モードを選ぶ

![メッセージ欄の下の承認メニューを開きます。選択中のモードにはチェックマークが付きます。プロジェクトに使うポリシーを選んでください。](https://cdn.oleafly.com/images/screenshots/desktop/docs/llama-approval-menu-dark-window-v2.png#view=1448,770,465,305)

チャットの入力欄にある承認の選択を使います。選んだ内容は、現在のプロジェクトに保存されます。

| モード | 動作 |
|---|---|
| **承認を求める** | 読み取りに分類されるツールは実行でき、それ以外の操作は先に確認します |
| **自動で承認する** | 読み取りとネットワークのツールは実行でき、ファイルの変更とシェルコマンドは先に確認します |
| **フルアクセス** | ツールの操作は承認の確認なしで進められます。ただし `deny` ルールで禁止されたツールは除きます |
| **カスタム** | 保存された `allow` と `deny` のルールが適用され、ルールのないツールには標準のリスク判定が使われます |

**自動で承認する**が既定です。ツールによっては、操作の中に独自のチェックがあります。コンパイルや PDF の確認は、ソースファイルの書き込みやシェルコマンドの実行とは別に扱われます。

## 提案された操作を承認する

承認カードでツール名と提案された操作を確認します。承認するとその操作が実行され、拒否すると提案された変更は適用されません。求められた操作が広すぎる場合は、範囲を絞った指示で会話を続けます。

## このプロジェクトでは常に許可

**カスタム**モードでは、承認の確認にある**このプロジェクトでは常に許可**を使って、そのツールのルールを保存できます。ルールが次の実行に影響すると期待する場合は、選択中のモードを確認してください。

## ルールを確認する、削除する

プロジェクトを開いた状態で**設定 → AI アシスタント → プロバイダとキー**に移動し、 **ツールの承認**までスクロールします。各行に、ツール名と、常に許可か常に拒否かが表示されます。ルールを削除すると、カスタムモードでそのツールには標準のリスク判定が使われるようになります。

## approvals.toml を編集する

**ツールの承認**の下にある**承認ルールのファイル**で、`~/.oleafly/approvals.toml` を編集します。 **再読み込み**で現在のファイルを読み直し、 **変更を破棄**で未保存の編集を捨て、 **例を挿入**でサンプルの設定から始められます。 **このファイルの仕組み**では形式を説明し、開いているプロジェクトの ID を表示します。保存すると、適用する前に TOML が検証され、ルールは次のツール呼び出しから適用されます。

ファイルには、モードのテーブルと、表示名ではなく**プロジェクトのフォルダ ID** をキーにしたツールルールのテーブルがあります。

```toml title="~/.oleafly/approvals.toml"
["$approval_modes"]
"my-project-folder-id" = "custom"

["my-project-folder-id"]
write_file = "allow"
replace_in_file = "allow"
run_command = "deny"
delete_file = "deny"
```

`my-project-folder-id` は、実際のプロジェクトのフォルダ ID に置き換えてください。プロジェクトの ID は、`~/.oleafly/projects` 以下のフォルダ名です。モードの値は `ask-for-approval`、`approve-for-me`、`full-access`、`custom` です。記載のないプロジェクトでは「自動で承認する」が使われます。ツールルールの値は `allow` と `deny` です。`deny` のルールは、フルアクセスを含むすべてのモードで適用されるため、拒否されたツールは実行されません。`allow` のルールが適用されるのは、カスタムモードだけです。ルールのないツールには、通常のリスク判定が使われます。

`#` で始まるコメントは、設定から保存しても残ります。ただし、承認カードで**このプロジェクトでは常に許可**を選ぶと、コメントなしでファイルが書き直されます。

ツール名は、一覧にある正確な名前を使ってください。よく使う名前には、`write_file`、`replace_in_file`、`create_file`、`rename_file`、`delete_file`、`run_command`、`compile`、`insert_figure`、`set_main_doc` があります。

## どの設定ファイルを使うか

| ファイル | 用途 |
|---|---|
| `~/.oleafly/config.json` | アプリの設定。設定画面から管理します |
| `~/.oleafly/approvals.toml` | プロジェクトごとの承認モードと、ツールごとのルール |
| `~/.oleafly/agent.toml` | マルチエージェントの上限と指示（上級者向け） |
| 外部エージェントの設定（例: `~/.codex/config.toml`） | そのエージェント自身の設定と MCP 接続 |

Oleafly は、これらすべての設定に 1 つの `config.toml` を使うことはありません。プロバイダのキーやアプリの設定には、設定画面を使ってください。認証情報は、暗号化された別の保存領域に入ります。アプリの設定全体を、短いサンプルで置き換えないでください。

## agent.toml を設定する

上級者は `~/.oleafly/agent.toml` を作成して、アシスタントのマルチエージェントの設定を調整できます。これらの設定は Oleafly 自身のエージェントランタイムを制御するもので、接続した CLI エージェントの設定とは別です。

```toml title="~/.oleafly/agent.toml"
maxAgentDepth = 2
maxConcurrentSubagents = 8
minWaitTimeoutMs = 1000
maxWaitTimeoutMs = 300000
defaultWaitTimeoutMs = 120000
waitAgentEnabled = true

usageHintText = """
Delegate independent checks with clear scopes. Keep writing decisions with
the parent agent, and close completed agents when their work is collected.
"""

subagentDeveloperInstructions = """
Work only on the assigned task. Report the files and evidence you inspected.
Do not spawn additional agents.
"""
```

### maxAgentDepth

入れ子の深さを制限します。既定値は `2` で、実行の子エージェントはそれ以上委任しません。受け付ける最小値は `1` です。

### maxConcurrentSubagents

セッション内で同時に動くサブエージェントの数を制限します。既定値は `8`、最小値は `1` です。エージェントを増やすと、モデルの使用量が増えることがあります。実際に独立して進められる作業のときだけ、上限を上げてください。

### minWaitTimeoutMs

エージェントの待機時間の下限をミリ秒で設定します。既定値は `1000` です。

### maxWaitTimeoutMs

エージェントの待機時間の上限を設定します。既定値は `300000` で、5 分です。最小値以上に保たれます。

### defaultWaitTimeoutMs

既定の待機時間を設定します。既定値は `120000` で、2 分です。値は、設定した最小値と最大値の範囲内に収められます。

### waitAgentEnabled

wait-agent 機能を使えるかどうかを制御します。既定値は `true` です。

### usageHintText

親エージェントに、委任の指針を渡します。上の例では、既定の指針を独自の文章に置き換えています。

### subagentDeveloperInstructions

子エージェントに指示を渡します。担当範囲、報告に求める内容、さらに委任してよいかどうかを書くのに使います。

ランタイムは、`max_agent_depth` のようなこれらのキーのスネークケース版も受け付けます。省略した項目には既定値が使われます。ファイルがない場合や形式が正しくない場合は既定値に戻るため、構文をよく確認し、設定を変更したら新しい実行を始めてください。

## 小さな作業でルールを試す

1. 練習用のプロジェクトを開き、 **承認を求める**を選びます。
2. 次のように依頼します。「メインドキュメントを読んで、よりわかりやすいタイトルを提案してください。ファイルを変更する前に確認してください。」
3. 提案された変更を確認し、承認または拒否します。
4. カスタムモードに切り替える前に、設定で保存済みのルールを確認します。
5. 編集を始める前に複数のステップについて合意したいときは、[プランモード](/docs/ai-chat/#plan-before-editing)を使います。

Oleafly の MCP 経由で接続する外部のアシスタントには、別に設定する [MCP サーバーのポリシー](/docs/mcp/#approvals-and-safety)が使われます。
