OpenCode のコマンド、スキル、エージェントの違いは何ですか?

Reddit の opencodeCLI コミュニティより:Commands, skills, and agents in OpenCode: what’s the difference?

スキルを使用するには、明示的に「use xyz skill」と言うことができます。

また、スキルはリファレンスドキュメントではないと言えます。どちらかというとSOPドキュメントに近いです。例えば、スキルにユニットテストの作成方法を入れることはできません。いや、入れることはできますが、効果的ではありません。しかし、gh cli経由でpull requestを作成する方法をスキルに入れることはできます(個人的には、私はmcpダイエット中です。cliの使い方に関するスキルを作成するだけです。デフォルトでは、必要な場合や明示的に呼び出されない限り、contextに追加されません)。

リファレンスドキュメントが必要な場合は、AGENTS.md(または他のinstructionsドキュメント)に入れるか、globをサポートするopencode-rules pluginを使用できます(つまり、*.controller.tsを見ると、そのドキュメントをactivateできることがわかります)。

また、追加情報として:

• commandsにはautocompleteがあります。/と入力すると、利用可能なすべてのcommandsが表示されます。何があるか確認しやすくなります。スキルの場合は、利用可能なスキルをリストするようにpromptする必要があり、tokenを使用します(あるいは、opencodeのconfigを確認して目視で確認するだけです) • commandsには$1、$2、$3などのパラメータを持たせることができます • スキルは組み合わせ可能です。例えば、1つのpromptでtdd skillとsecurity skillを使用できます。しかし、1つのpromptで/tddと/securityを実行することはできません • 個人的には、スキルがcommandにもなり得るし、その逆もあり得るケースが多々あると感じています。そのような場合、ロジックはスキルに入れます。そしてcommandでは、「use xyz skill. $ARGUMENTS」のように記述します • agentsとsubagentsは、system promptsを定義できるため強力です • subagentsは独自のcontextを持ちます。これは素晴らしいことです。なぜなら、context windowを消費すればするほど、modelは賢くなくなるからです。したがって、最小限のsubagentは最高の知能で動作します!欠点は、各subagentが同じcontextをloadする必要がある可能性があることです(つまり、すべてがAGENTS.mdを読み取る)ので、より多くのtokenを消費します • agentsはsubagentsをorchestrate(統制)できます • conditionalsやloopsを含むworkflowを実行したい場合は、おそらく独自のagentを作成する必要があります • agentsとsubagentsは、あるmodel(例:GPT-5.2)に別のmodelの作業(例:Opus 4.5)をreviewさせることで、human-in-the-loopの関与を減らすための優れた方法です

Tech