コンテンツにスキップ
BeeuniBeeuni
日本語
Esc
↑↓移動↵開く⌘Jプレビュー
このページの内容

ハーネス

1つのセッションでは、標準ハーネス または実験的ハーネスのいずれか1つのエージェントハーネスが実行されます。このページでは、プロジェクトでの選択方法と、それぞれがサポートする機能を説明します。

ハーネスは、セッションのサンドボックス内で動作するエージェントランタイムです。モデルの ループを実行し、ツールを呼び出し、トランスクリプトを生成します。Beeuni には2つあります。 標準ハーネス(デフォルト)と 実験的ハーネス です。1つのセッションで実行されるのは必ず1つだけです。

どちらのハーネスも同じプロジェクトを読み取ります。beeuni.yaml、agents/ のエージェントファイル、 skills/ のスキル、ルートの AGENTS.md、および memory/ です。 クライアント(Web、CLI、TUI、モバイル、SDK)は、同じセッション API を通じて両方を読み取ります。 違いは、以下の マトリックス と、各ハーネスが独自の設定のために読み取るファイルにあります。

セッションがハーネスを選択する方法

Beeuni は、セッションの開始、再起動、または再開時に判断します。実行中のセッションは、その時点までハーネスを維持します。

ルール(上から順に) ハーネス
プロジェクトの llm_gateway フラグがオフ 標準ハーネス
プロジェクトの pi_harness フラグがオン 実験的ハーネス
beeuni.yaml が runtime: pi を設定 実験的ハーネス
その他 標準ハーネス

-実験的ハーネスは Beeuni LLM ゲートウェイ経由でのみモデルを呼び出します。llm_gateway がオフのプロジェクトは、フラグやマニフェストの記述にかかわらず標準ハーネスを起動します。Models を参照してください。

  • runtime は beeuni_version: 2 マニフェストキーです。レガシーの beeuni.toml プロジェクトでは設定できません。マニフェストリファレンス を参照してください。
  • pi_harness はプロジェクトごとの機能フラグで、デフォルトではオフです。機能フラグ を参照してください。

セッションで実行されているハーネスを確認するには、サンドボックスデーモンの GET /beeuni/health の回答にある harness.id を読み取ります。値は opencode または pi です。

各ハーネスがサポートする機能

ハーネスは、GET /beeuni/health の capabilities 配列に、提供するオプションのセッション機能を列挙します。クライアントは、セッションの capabilities に ID がない場合、そのコントロールを非表示にします。SDK での確認は runtimeSupports です。

両方のハーネス

機能 標準ハーネス 実験的ハーネス
チャットターン、ストリーミング、停止 はい はい
エージェント .md:prompt、model、variant、mode、permission、temperature、top_p、steps はい はい。実験的ハーネス は options(プロバイダーオプション)を適用しません。
エージェントごとの ツールアクセス(beeuni.yaml 内の agents.<name>.tools:all、none、リスト、exclude) はい はい
エージェントごとの permission ルールと権限リクエスト はい はい
質問(question ツール) はい はい
プロジェクトのルート AGENTS.md ルールファイル。ルートに AGENTS.md がない場合は CLAUDE.md はい。標準ハーネス は /workspace の親ディレクトリ内のファイルも読み取り、設定リリースの実行中は /workspace も読み取ります。 はい、ルートファイルのみ。これはセッションおよび各サブエージェントのシステムプロンプトの一部です。設定リリースを有効にした場合、実験的ハーネス はリリースのコピーを読み取ります。
サブエージェント(task ツール)、session.subagents はい はい:general、explore(読み取り専用)、および mode: subagent または all を持つ各プロジェクトエージェント。サブエージェントは別のサブエージェントを開始できません。
エージェントの skills 付与を伴うスキル(skills/ と管理対象の beeuni-* スキル) はい。エージェントは skill ツールでスキルを読み込みます。 はい。システムプロンプトに付与された各スキルが列挙され、エージェントがファイルを読み取ります。
Beeuni ツール:web_search、image_search、scrape_webpage、memory、show。beeuni.yaml に tools: キーがない場合は5つすべて、ある場合は beeuni:<name> として列挙されたもの はい はい
プロジェクトツール(beeuni.yaml 内の tools:) はい はい
設定リリース、config.release.v1 はい はい
会話をオンデマンドで、またモデルのコンテキストウィンドウ付近で自動的にコンパクト(要約)する session.compact はい はい。ウィンドウを超過したモデルリクエストはコンパクト化され、1回だけ再試行されます。
プロジェクトのスラッシュコマンド、session.commands はい。標準ハーネス 設定ディレクトリの commands/ から。 はい。実験的ハーネス 設定ディレクトリの prompts/ と実験的ハーネスパッケージ内のプロンプトテンプレートから。実験的ハーネス は標準ハーネスの commands/ を読み取りません。
サンドボックス内のターミナル(PTY) はい はい
bash、read、write、edit、glob、grep ツール、シェル内の シークレット、beeuni CLI はい はい

Beeuni ツールとプロジェクトツールは ハーネス中立 です。サンドボックスデーモンは両方のハーネスに対して、ツールごとに1つのモジュールを実行し、同じ名前、引数、出力を提供します。実験的ハーネス はデーモンのプロセス内で呼び出し、標準ハーネス はデーモンが書き込むプラグイン経由で呼び出します。両方のハーネスが同じリストを取得します。プロジェクトの tools: キーに列挙されていない Beeuni ツールは、どちらでも使用できません。harnesses/opencode/tools/ に Beeuni ツールのコピーが残っているプロジェクトでは、削除するまで標準ハーネス上でそのコピーが有効です。

Web ツールは、両方のハーネスで websearch(web_search、image_search)および webfetch(scrape_webpage)権限キーに従います。標準ハーネス では、ask ルールによって拒否されるため、これらのツールは確認を求められません。実験的ハーネス では、ask ルールによって権限リクエストが発生します。実験的ハーネス でファイルを変更する memory コマンドは edit に従い、view は read に従います。標準ハーネス では memory ルールのみがツールを制御します。

###実験的ハーネスの AGENTS.md

実験的ハーネス はプロジェクトのルート AGENTS.md を、<project_instructions path="AGENTS.md"> という1つのセクションとして、エージェントのプロンプトの後にシステムプロンプトへ追加します。AGENTS.md のないルートでは、標準ハーネス と同様に代わりに CLAUDE.md が使用されます。実験的ハーネス はサブディレクトリや親ディレクトリの AGENTS.md を読み取りません。

  • ソース。 設定リリース がオフの場合、実験的ハーネス は /workspace/AGENTS.md を読み取ります。オンの場合、リリース内のコピーを読み取り、/workspace にあるコピーは決して読み取りません。/workspace の編集は、ベースブランチにマージされてからセッションに反映されます。オンで、提供するリリースがない場合(config.source: image-default)、実験的ハーネス は AGENTS.md を読み取りません。プロジェクトスキルを読み取らない場合と同じです。
  • **タイミング。**実験的ハーネスはランタイム起動時、設定の再読み込み時(新しいリリース、/beeuni/env のプッシュ)、およびリポジトリの更新後にファイルを読み取ります。各ターンの前には読み取りません。新しいリリースは再起動なしで次のターンに反映されます。実行中のターンでは古いファイルが維持されます。
  • スキップ。 空のファイル、通常のファイルではないファイル、リポジトリ外を指すシンボリックリンクは何も追加しません。後者2つの場合、デーモンログに警告が1件書き込まれます。
  • 確認。 デーモンの GET /beeuni/health にある harness.details.agentsMd は、実験的ハーネス が読み込んだファイルを示します。source(release または workspace)、path、bytes、および sha(sha256 の先頭12文字)です。実験的ハーネス が何も読み込まなかった場合は null です。

現時点で標準ハーネスのみ

機能 Capability 標準ハーネス 実験的ハーネス
メッセージまで巻き戻して復元する。編集して再送する場合は巻き戻しを使用します。 session.rewind はい いいえ
MCP サーバー(opencode.jsonc 内の mcp) session.mcp はい いいえ。MCP クライアントなし。コネクター は beeuni connectors CLI 経由で両方のハーネスで動作します。
Todo リスト(todowrite ツール)とプランカード session.todo はい いいえ。プランカードは空のままです。
ハーネス独自のターミナルクライアント(beeuni connect、TUI Alt+o)を接続する session.attach はい いいえ。TUI を参照してください。
ランタイム設定ドキュメント(/global/config) session.config はい いいえ。両方ともエージェントとモデルはプロジェクトから取得します。
メッセージ時点でセッションをフォークする session.fork はい いいえ
ターンとして実行するシェルコマンド session.shell はい いいえ
LLM ゲートウェイを使用しないモデルプロバイダー — はい いいえ。実験的ハーネス では llm_gateway をオンにする必要があります。

実験的ハーネス セッションは、提供していない機能のリクエストに対して 501 feature_not_supported で応答し、存在しないドキュメントには 404 で応答します(/global/config)。リクエストを無視することはありません。

ハーネス設定ファイル

各ハーネスには、そのハーネスだけが読み取るファイル用のディレクトリが1つあります。

標準ハーネス 実験的ハーネス
ディレクトリ harnesses/opencode/、または opencode.config_dir harnesses/pi/、または pi.config_dir
レガシーディレクトリ .beeuni/opencode/ .beeuni/pi/
内容 opencode.jsonc、plugins/、tools/、commands/ settings.json、extensions/、skills/、prompts/
拡張機能 そのディレクトリ内のプラグインと標準ハーネス専用ツール harnesses.pi.packages 内の 実験的ハーネス パッケージ と extensions/ 内の拡張ファイル

実験的ハーネス セッションは opencode.jsonc、plugins/、tools/、commands/ を読み取りません。標準ハーネス セッションは実験的ハーネスディレクトリを読み取りません。両方のハーネスに必要なツールは プロジェクトツール であり、beeuni.yaml で宣言します。どちらのディレクトリ内のファイルでもありません。

実験的ハーネス パッケージは packages から取得します。パッケージは、MCP アダプターや Todo ツールなど、実験的ハーネス にないツールを追加できます。Beeuni はパッケージを読み込みますが、サードパーティ製パッケージをテストすることはありません。

このページは役に立ちましたか?