@nqounetです。
カスタムエージェントの perl-monger を作った記事を書きながらウイスキーを楽しんでいた時のことです。記事を書き終えて、ふと思い立って以下のようにCopilotにアサインしてみました。
|
|
思わぬ嬉しい反応
そうしたら、セッションの中で嬉しい反応がありました。
「やあ、友よ!」で始まり、「Let’s keep the Perl spirit alive! ✨💎」で締めくくられる熱いメッセージ。エージェントがPerlへの愛を語ってくれて、本当に嬉しくなりました。
しかし結果は…
反応は嬉しかったのですが、出来上がった記事が色々と混ざりすぎていて、とても世に出せるものではなくなってしまいました。
perl-mongerが追記した内容と、blog-writerが整形した内容が入り混じり、さらに元の記事の構成とも噛み合わず、何が何だか分からない状態に。残念ながら、そっと閉じることにしました。
気づいたこと
一応、エージェントにアサインする時に、何かしら指示が追加できるのは分かっていました。エージェントを指示することもできるのは知っていました。
しかし、ワークフローをここで定義してしまうのもアリだったようです。
今までは、AGENTS.mdの定義でどうにかしたいと思っていました。実際、AGENTS.mdには「カスタムエージェントを使ったワークフロー」セクションがあり、以下のような推奨フローが書かれています:
- creative-brainstorming(アイデア生成)
- investigative-research(調査・情報収集)
- draft(下書き生成)
- layout-and-content-harmonization(スタイルと構成の整形)
- proofreader(校正)
- search-engine-optimization(メタ情報と公開準備)
- reviewer(公開前の最終チェック)
しかし、エージェントを明示的に連動させたいのであれば、プロンプトとして追加すれば良いのです。
より良いアサイン方法
今回の失敗を踏まえると、以下のようにアサインするべきでした:
|
|
あるいは、もっと具体的に:
|
|
AGENTS.mdとプロンプトの使い分け
この経験から、以下のような使い分けが見えてきました:
AGENTS.mdに書くべきこと
- リポジトリ全体のルールや規約
- ファイル構成や命名規則
- 基本的なワークフローの概要
- エージェントの一般的な役割定義
プロンプト(アサイン時の指示)に書くべきこと
- その場その場の具体的なタスク
- 複数のエージェントの連携方法
- 作業の範囲や制約条件
- 期待する出力形式
AGENTS.mdは「辞書」や「マニュアル」のようなもので、プロンプトは「その時の業務指示書」のようなものだと考えると分かりやすいかもしれません。
まとめ
カスタムエージェントに愛を込めて指示を出すのは楽しいし、エージェントからの反応も嬉しいものです。
しかし、複数のエージェントを連携させる時は、曖昧な指示ではなく、明確なワークフローと期待値を示す必要があることを学びました。
AGENTS.mdで全体の方針を定義しつつ、個別のタスクではプロンプトで具体的に指示を出す。この使い分けが、カスタムエージェントを効果的に活用する鍵だと感じています。
次回は、もっと明確な指示を出して、perl-mongerの知見を記事に活かせるようにしたいと思います。愛を込めつつ、しっかりと仕事をお願いする。それが良い関係を築く秘訣なのかもしれませんね。