なぜ APC Agent は model: inherit をデフォルトにすべきなのか
APC agent ファイルは、軽量でポータブル(移植可能)であるとき、最も効果的に機能します。
最善のデフォルト設定は model: inherit を使用することです。特定のモデルを使用するのは、プロジェクトが必要とする場合に限ってください。このルールを守ることで、ファイルをクリーンに保つことができます。リポジトリはプロジェクトの契約(contract)を保持し、ランタイムがモデルの選択を行います。
APC agent は、agent ファイル内の「ペルソナ」です。名前、役割、スキルを定義します。ランタイムスタック全体をハードコードすべきではありません。また、特定のベンダーをデフォルトとして強制すべきでもありません。agent はペルソナを記述し、ランタイムにその役割を任せるべきなのです。
なぜ model: inherit が優れているのか:
- ポータビリティ:今日は APX を使い、明日は Cursor や Claude Code を使うかもしれません。継承(Inheritance)を利用することで、agent はあらゆるツール間で動作可能になります。
- ノイズの削減:すべてのファイルにモデルをハードコードすると、ファイルが煩雑になります。
- より優れた分離:APC は agent が「何であるか」を定義し、ランタイムはそれが「どのように動作するか」を定義します。
- セットアップの簡略化:チームメンバーは agent ファイルを変更することなく、リポジトリをクローンしてすぐに実行できます。
特定のモデルを使用すべき場合:
プロジェクトがそれに依存している場合にのみ、特定のプロバイダーとモデル ID を使用してください。例:
- 単純な要約のための、軽量なローカルモデル。
- 特定のツール使用プロファイルのための、特定のモデル。
- テストフィクスチャのための、予測可能なエンジン。
モデルを固定(pin)する前に、以下のテストを行ってください:
- そのモデルはプロジェクトの契約(contract)の一部ですか? ならば、固定してください。
- そのモデルは単なるローカルなランタイムの選択ですか? ならば、
model: inheritを使用してください。 - その値は機密情報、あるいはマシン固有のものですか? ならば、ランタイム設定に保持してください。
マシンではなく、agent を記述してください。そうすることで、agent ファイルが特定の環境に縛られることなく、有用であり続けることができます。
Source: https://dev.to/agentprojectcontext/why-apc-agents-should-default-to-model-inherit-1jih
Optional learning community: https://t.me/GyaanSetuAi