Skill = Agent + Workflow
2024年12月19日、Anthropicは『Building effective agents』という記事を公開した。
この文章では、Agentic System(エージェント型システム)をWorkflow(ワークフロー)とAgent(AIエージェント)の2種類に分け、それぞれの技術的アプローチの適用場面も明確に示している。
- Workflow:定義が明確なタスクに、予測可能性と一貫性を与える。
- Agent:必要な手順数が予測しにくく、固定ルートを事前設定できないオープンな問題に用いる。
当時は n8n や dify といったツールが急拡大していた時期で、記事で挙げられた5大Workflowパターンは、これらのツールの活用シーンと強く合致していた。
記事の内容を見ると、この2つの技術的アプローチは明確に切り分けられており、同時にAgent構築モデルのシンプルさと強力さが肯定されていた。
その2か月後、AnthropicはClaude Codeを公開した。
その後しばらくの間、Agentは広く普及した。しかしWorkflowの開発思想は消えず、むしろAgentと融合し、Anthropicが打ち出した次の概念であるSkillへとつながっていった。
Skillの核心思想(詳しくは私の12月28日の投稿を参照)については、ここではあえて掘り下げない。今日は主に、Anthropicのこの記事で述べられたWorkflowの適用場面を一緒に振り返る。読み終えれば、これらこそがSkillを書くときに不可欠な基底ロジックだと分かるはずだ。
1. Prompt Chaining(プロンプト連鎖)
思想:タスクを連続したステップに分解し、各ステップの出力を次のステップの入力にする。
適用対象:固定されたサブタスクへ明確に分解できるあらゆるケース。
活用シーン:先にマーケティング文案を生成し、その後ほかの言語へ翻訳する。先に文書のアウトラインを書き、要件適合を確認してから本文を書く。
2. Routing(ルーティング)
思想:入力を分類し、それぞれ異なる専門タスクへ振り分ける。
適用対象:分類カテゴリが明確で、カテゴリごとに異なる処理方式が必要な場合。
活用シーン:カスタマーサポートで一般的な質問、返金依頼、技術サポートを別々のフローに振り分ける。
3. Parallelization(並列化)
思想:タスクを独立したサブタスクに分けて同時実行する、または同じタスクを複数回実行して結果を集約する。
適用対象:サブタスクの並列化で高速化できる場合、または複数視点で精度を高めたい場合。
活用シーン:コードレビューで複数のプロンプトが異なる観点から脆弱性をチェックする。あるモデルがユーザー問い合わせを処理し、別のモデルが同時に不適切コンテンツを検査する。
4. Orchestrator-Workers(オーケストレーター・ワーカー)
思想:中央のLLMがタスクを動的に分解し、Worker LLMへ割り当て、最後に結果を統合する。
適用対象:どのサブタスクが必要になるか事前に予測できない複雑なタスク。
活用シーン:コード修正で複数ファイルを変更する必要があり、毎回、変更対象のファイル数や内容が不確定なケース。
5. Evaluator-Optimizer(評価者・最適化者)
思想:1つのLLMが結果を生成し、別のLLMが評価とフィードバックを行い、反復的に最適化する。
適用対象:評価基準が明確で、反復によって目に見える改善が得られる場合。
活用シーン:文芸翻訳の細部の磨き込み。複雑な検索タスクで複数ラウンドの検索と分析が必要なケース。
この記事の公開から10か月後、Claude CodeにおけるSkillが正式に公開された。
ここから見えてくるのは、Workflowの開発思想はAgentに淘汰されたのではなく、内部に取り込まれたという事実だ。
Workflowは制約を提供し、Agentは推論を提供する。この二つが一体化し、誰もが構築できるSkillへと変わった。
ツールは変わっても、複雑な世界を分解するロジックは決して古びない。
