# エージェント

エージェントとは、セッションハーネスが実行するMarkdownファイルです。マニフェストはエージェントのアクセス権限のみを管理します。

Canonical page: https://beeuni.ai/docs/ja/project/agents

エージェントは、ハーネスが
[セッション](/docs/ja/work/sessions)でどのように動作するかを定義するMarkdownファイルです。このページでは、エージェントファイルとスキル、セッションがエージェントを選ぶ仕組みについて説明します。

<a id="a-harness-runs-every-session"></a>

## ハーネスが各セッションを実行する

セッションでは、1つのエージェントハーネスが実行されます。標準ハーネス（デフォルト）または実験的ハーネスです。
[ハーネス](/docs/ja/work/harnesses)では、プロジェクトでの選択方法と、それぞれがサポートする機能を説明しています。

どちらも、プロジェクトのエージェントを`agents/`から、スキルを`skills/`から読み込みます。
標準ハーネスは、`harnesses/opencode/`から標準ハーネス専用のファイルも読み込みます。実験的ハーネスは、`harnesses/pi/`から独自のファイルを読み込みます。

2026-09より前に作成されたプロジェクトでは、エージェントとスキルは`.beeuni/opencode/`に保存されています。Beeuniは両方の構成を読み取ります。

<a id="an-agent-is-two-files"></a>

## エージェントは2つのファイルで構成される

各エージェントには2つの要素があります。

- **動作** — デフォルトでは`agents/<name>.md`のMarkdownファイルです。フロントマターでモデル、モード、権限ルールを設定します。本文はシステムプロンプトです。
- **ガバナンス** — `beeuni.yaml`の`agents`マップにある、エージェント名をキーとするエントリです。コネクタ、シークレット、スキル、アプリ、Beeuni権限、[ツール](/docs/ja/project/tools#who-may-use-which-tool)など、エージェントがアクセスできる対象を設定します。`file`フィールドで動作ファイルを指定します。
  このマップは、[`imports:`](/docs/ja/project/manifest#imports)でマニフェストに指定したファイルに置けます。`default_agent`は`beeuni.yaml`に置きます。

マニフェストでは、プロンプトやモードは設定しません。`.md`ファイルでは、プラットフォームへのアクセス権限は設定しません。ガバナンスの全フィールドについては、[マニフェストのリファレンス](/docs/ja/project/manifest)を参照してください。

<a id="where-the-agent-file-lives"></a>

### エージェントファイルの保存場所

```yaml
agents:
  support:
    file: agents/support.md
```

- `file`はリポジトリ相対パスです。末尾は`.md`でなければなりません。
- `/`で始めることはできません。また、`.`または`..`セグメントを含めることもできません。
- `file`がない場合、Beeuniはまず`agents/<name>.md`、次に`.beeuni/opencode/agents/<name>.md`を読み込みます。
- ダッシュボードで`.md`を持つエージェントを保存すると、そのパスを指定した`file`が書き込まれます。
- APIでは`file`を変更できません。エージェントを移動するには、`.md`を移動し、同じコミットで`beeuni.yaml`内の`file`を更新してください。

パスの全ルールについては、[マニフェストのリファレンス](/docs/ja/project/manifest#the-agent-file)を参照してください。

<a id="governance-is-deny-by-default"></a>

## ガバナンスはデフォルトでアクセスを拒否する

`connectors`、`secrets`、`skills`、`apps`、`beeuni_permissions`のキーを持たないエージェントには、それぞれのアクセス権限が付与されません。`apps`には、アプリの利用が制限または非公開の場合に、エージェントが開ける[Beeuniアプリ](/docs/ja/feature-flags/apps#agents-and-apps)が列挙されます。この許可は2つのバインディングのうちの2つ目です。エージェントは`service_account`プリンシパルとしてのロール（上限）も持ち、セッションで実行できるのは両方で許可された操作のみです。[エージェントの権限](/docs/ja/project/permissions)および[1つの語彙、2つのバインディング](/docs/ja/accounts#one-vocabulary-two-bindings)を参照してください。すべてのアクセス権限を付与するにはフィールドを`all`に設定し、個別に付与するには名前を指定します。`beeuni.yaml`内の`default_agent`は、エージェントを指定せずにリクエストしたとき、セッションで起動するエージェントを示します。

各アクセス許可は、ダッシュボードの Customize → Agents → 対象のエージェントから設定します。Accessレールにあるアクセス許可セットごとのページ（Skills、Connectors、Secrets、Apps、Beeuni permissions）で設定できます。または、CLIで`beeuni agents scope <agent>`（`--secrets`、`--connectors`、`--apps`）を使って設定できます。Appsページは、プロジェクトで[Apps](/docs/ja/feature-flags/apps)機能フラグが有効な場合にのみ表示されます。どの方法でも、`beeuni.yaml`に同じ`agents.<name>`ブロックが書き込まれます。

レガシーな`beeuni.toml`（v1）プロジェクトでは、エージェントはマップではなく配列に列挙され、デフォルトでフルアクセスが付与されます。アクセスを制限するには、個別のアクセス許可を設定してください。[マニフェストのリファレンス](/docs/ja/project/manifest)を参照してください。

<a id="skills-give-an-agent-know-how"></a>

## スキルでエージェントにノウハウを与える

スキルは、`skills/<name>/SKILL.md`にあるMarkdownファイルです。
ハーネスは必要に応じてスキルを読み込みます。Beeuniがすべてのプロンプトにスキル本文を挿入することはありません。標準ハーネスでは、エージェントが`skill`ツールを呼び出します。実験的ハーネスでは、システムプロンプトに各スキルの名前と説明が列挙され、エージェントがファイルを読み込みます。`beeuni.yaml`内のエージェントの`skills`アクセス許可によって、読み込めるスキルが決まります。

<a id="how-a-session-picks-its-agent"></a>

## セッションがエージェントを選ぶ仕組み

セッションの作成時に`agent_name`を指定できます。Beeuniは、そのエージェントをセッションで起動します。`agent_name`を省略した場合は、プロジェクトの`default_agent`が使われます。
デフォルトのエージェントは、ダッシュボード、API、またはSDKから設定できます。どの方法でも`beeuni.yaml`に`default_agent`を書き込み、プロジェクトのデフォルトブランチに変更をコミットします。

エージェントは、誰が実行しても、自身の上限ロール内で付与されたBeeuni権限を使って動作します。セッションを開始しても、エージェントにあなた自身のロールが貸与されることはありません。[エージェントの権限](/docs/ja/project/permissions)を参照してください。

新規または変更されたエージェントとスキルが今後のセッションで使われるのは、[変更リクエスト](/docs/ja/work/change-requests)がそれらをデフォルトブランチにマージした後です。エージェントが外部ツールを使うには、事前に接続してください。[コネクタ](/docs/ja/connect/connectors)を参照してください。
