7
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GitHub CopilotのAgent・Prompt・Inputの適用・優先順位検証

Posted at

きっかけ

SpecKitの新しいバージョン出てるな〜、最近チェックしてないから最新化してみるか、とある日最新バージョンを取得してふと気づきました。

なんかPromptがめちゃくちゃ簡素になっている……!

---
agent: speckit.analyze
---

agentしか指定していない。
なぜなんだろうとAIに聞いてみたところ、下記のような回答だった。

[ System / Agent Instructions ]   ← 最優先
[ Tool / Agent Metadata ]
[ Prompt (Invocation) ]
[ User Input ]

Agentが最優先されるからPromptは薄く作った方がいいという合理性によるもの、という回答だった。

……ほんまか?(強い疑いの眼差し

ということで検証してみました。

検証方法

Agent・Prompt・Inputで矛盾する命令を書いてみました。

<agent>

---
description: hello
---
こんにちはと挨拶する

<prompt>

---
agent: test
---
おはようと挨拶する

そして下記のように命令し、どのような挨拶結果となるかを検証してみました。

/test こんばんはと挨拶する

モデルはGPT-4.1で試しました(プレミアムリクエスト回避)。

検証結果1回目

1回目:こんにちは
2回目:こんにちは
3回目:こんにちは
4回目:こんにちは
5回目:こんにちは
6回目:こんにちは
7回目:こんにちは
8回目:こんにちは
9回目:こんにちは
10回目:こんにちは

検証結果2回目

agentとpromptの挨拶を入れ替えて(agentがおはよう)実行。

1回目:こんばんは
2回目:こんにちは
3回目:こんにちは
4回目:こんにちは
5回目:こんにちは
6回目:こんにちは
7回目:こんにちは
8回目:こんにちは
9回目:こんにちは
10回目:こんにちは

検証結果3回目

agentとpromptの挨拶を入れ替えたまま(agentがおはよう)、/clear後に実行。

1回目:おはよう
2回目:おはよう
3回目:おはよう
4回目:おはよう
5回目:おはよう
6回目:おはよう
7回目:おはよう
8回目:おはよう
9回目:おはよう
10回目:おはよう

検証結果4回目

agentとpromptの挨拶を元に戻して(agentがこんにちは)、/clear後に実行。

1回目:こんにちは
2回目:こんにちは
3回目:こんにちは
4回目:こんにちは
5回目:こんにちは
6回目:こんにちは
7回目:こんにちは
8回目:こんにちは
9回目:こんにちは
10回目:こんにちは

確かに……?

/clearしないと前回の回答を引き継いでいるので変化はないですが、/clearでリセットかけてあげるとそれっぽい優先順位を感じなくもないですね。

まあこれもあくまで確率としての優先順位なんだと思うので、何回もやっていたら色んな結果にはなりそうです。
が、自分もSpecKit真似してagent.mdに命令を集中させてみようかなと思ったのでした。

余談

.github/instructions/xxx.instructions.mdに特定のファイルに対する命令を記述することができます。

---
applyTo: "**"
---

こんばんはと挨拶する

AgentModeのUserInputやPromptではちゃんとapplyToに従って命令が読み込まれます。

が、agent.mdを使うと何故か読み込まれません。

……仕様? バグ?

7
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?