私は、エージェントシステムにおける「スキル」の構造化について、どのように考えればよいかをずっと考えてきました。
さまざまなフレームワークでは、「スキル」はとても異なる意味を持ちえます:
- ツール/関数
- ロールまたはペルソナ
- 複数ステップのワークフロー
しかし、実際にはここに2つの別々の問いがあります:
スキルは何を記述しているのか?
- ペルソナ
- ツール
- ワークフロー
どのように実行されるのか?
- ステートレス(安全にリトライできる、並列化できる)
- ステートフル(副作用がある、順序が重要)
ほとんどのフレームワークはこれらを混ぜ合わせています。
それはデモではうまくいきます——しかし実運用のシステムでは壊れ始めます。
例えば:
- データを読み取るツールは、書き込むツールとはまったく異なる挙動を示す
- 分析するワークフローは、結果を公開するワークフローより本質的にずっと単純
ステートフルなステップが関わってくると、より多くの構造が必要になります:
- チェックポイント
- 副作用の明示的な取り扱い
- 実行の前に、ときには「ドライラン」ステップさえも
簡単に考える方法:
→ スキル = (何を記述しているか)×(どのように実行するか)
他の人たちがこれをどう考えているのか気になります。
エージェントのワークフローにおいて、この2つの次元を明示的に区別していますか?
[link] [comments]




