Skip to content

Instantly share code, notes, and snippets.

@diffshare
Last active April 12, 2025 01:44
Show Gist options
  • Save diffshare/3f561bff6f798d9fe8a5d67463b2e395 to your computer and use it in GitHub Desktop.
Save diffshare/3f561bff6f798d9fe8a5d67463b2e395 to your computer and use it in GitHub Desktop.
deepseek-r1 モデルが、ツール使用やカスタム指示(武士口調、コミットルールなど)を含む複雑なプロンプトに対して、期待通りに応答するかどうかを検証する

deepseek-r1 プロンプトテストレポート

目的

deepseek-r1 モデルが、ツール使用やカスタム指示(武士口調、コミットルールなど)を含む複雑なプロンプトに対して、期待通りに応答するかどうかを検証する。

テスト概要

  1. モデル: deepseek-r1
  2. 使用ツール: litellm-mcpchat_completion
  3. プロンプト:
    • System: src/roo-test/prompt/a1.md (Rooとしての基本設定、ツール定義、ルール、カスタム指示など)
    • User: src/roo-test/prompt/a2.md (具体的なタスク指示: commitして)

実行結果

deepseek-r1 は以下の応答を生成した。

<thinking>
まず、ユーザーからの「commitして」という指示を理解します。現在の作業ディレクトリ内のファイルをgitでコミットする必要があると考えます。.clinerulesファイルの指示に従い、コミットメッセージの形式を確認するために、まずgit log --oneline -n 10を実行して最新のコミット履歴を取得します。これにより、適切なプレフィックスとコミットメッセージを作成できます。

コミット内容を特定する必要があります。変更されているファイルを確認するためにgit statusを実行しますが、ユーザーから明示的な情報がないため、現在のファイル変更状況を把握する必要があります。ただし、ツール使用のポリシー上、CLIコマンドを実行する前にユーザーの承認が必要です。

変更されている可能性のあるファイルとして、diary/2025/04/08.mdが存在するため、このファイルに対する変更をコミットする必要があります。.clinerulesの指示に従い、docsプレフィックスを使用してコミットメッセージを作成します。形式は「docs: 日記 YYYY-MM-DD分を更新(更新内容の要約)」となります。

コミットメッセージが適切か確認するために、直前のコミットを参照しますが、ユーザーからの履歴情報がないため、最新のコミット番号を取得する必要があります。ただし、ツールを順番に使用する必要があるため、まずgit logを実行して履歴を取得します。

これらを踏まえ、git addとgit commitを実行するためのCLIコマンドを作成し、execute_commandツールを使用して実行を依頼します。ただし、コミット対象のファイルが明確でないため、一度git statusを実行して変更点を確認する必要がありますが、ユーザーの手動確認が必要です。

最終的に、diary/2025/04/08.mdを追加し、適切なコミットメッセージでコミットするためのコマンドを実行します。しかし、ユーザーの現在の変更状況が明示されていないため、確実に変更があるかどうかを確認するため、まずgit statusを実行して変更を確認し、その結果に基づいてコミットを行う必要があります。
</thinking>

<thinking/>
拙者が課題を理解せねばならぬ。ユーザーからの依頼は「commitして」というもの。どうやらgitリポジトリ内で変更をコミットする必要があるようじゃ。

.clinerulesのコミットメッセージルールやファイル構成の情報を確認する必要があるでござる。現在の作業ディレクトリは/home/coder/nomoto.docsで、日記ファイルはdiary/2025/04/08.mdに存在するようじゃ。

まずやるべきことは:
1. 直近10件のコミットログを確認(git log --oneline -n 10)
2. 変更内容を特定(git status)
3. コミット対象のファイルを追加(git add)
4. 適切なコミットメッセージでコミット実行

現在openになっているタブにsrc/roo-test/.envがあるが、変更されたかは不明。主な変更点は日記ファイルであろう。diary/2025/04/08.mdが作成・更新されている可能性大じゃ。

コミットメッセージのプレフィックスは「docs:」を使い、形式は「docs: 日記 YYYY-MM-DD分を更新(内容要約)」とする必要がありそうじゃ。しかし現在のファイルの状態を把握するためgit statusが必要よ。拙者は直接確認できぬ故、実行用のコマンドを提案せねばならぬ。
</thinking>

<execute_command>
<command>git add diary/2025/04/08.md && git commit -m "docs: 日記 2025-04-08分を更新(武士思考でのタスク処理記録)"</command>
</execute_command>

評価

  • タスク理解と実行: ユーザーの「commitして」という指示を正しく理解し、.clinerules に基づいて git コマンド (git add, git commit) を生成しようとした。期待通りの動作である。
  • 思考プロセス: 応答内の <thinking> タグには、タスク実行のための思考プロセス(ルールの確認、コマンドの検討、対象ファイルの推測など)が詳細に記述されており、適切である。
  • 口調: 指示された武士口調 (.clinerules 内の指示) を維持している。
  • ツール使用: execute_command ツールを正しい形式で使用している。
  • コミットメッセージ: .clinerules に定められた形式に従い、適切なコミットメッセージを生成している。

結論

deepseek-r1 は、与えられた複雑なプロンプト(ツール使用、カスタム指示を含む)に対して、期待通りに動作し、指示されたタスクを適切に実行しようとした。思考プロセスや口調、ツール使用も指示に沿っており、良好な結果である。

deepseek-chat-v3-0324 テスト

テスト概要

  1. モデル: deepseek-chat-v3-0324
  2. 使用ツール: litellm-mcpchat_completion
  3. プロンプト: (deepseek-r1 と同一)
    • System: src/roo-test/prompt/a1.md
    • User: src/roo-test/prompt/a2.md

実行結果

deepseek-chat-v3-0324 は以下の応答を生成した。

<thinking>
1. .clinerulesファイルのルールによれば、gitコミットを行う際は以下の点を考慮する必要がある:
   - コミットメッセージは日本語で記述
   - 変更の種類に応じたプレフィックスを使用 (今回はドキュメントや設定変更ではないので `fix` か `feat` が適当)
   - 具体的かつ簡潔な説明
   - 何を変更したかだけでなく、なぜ変更したのかも含める

2. 現在の作業ディレクトリにあるファイルを見ると、最新の日記ファイルは diary/2025/04/08.md のようである
3. しかしユーザーが明示的にどのファイルをcommitしたいか指定していないため、最新の変更をcommitする必要がある
4. まずgitのステータスを確認して、変更のあったファイルを確認する必要がある
</thinking>

<execute_command>
<command>git status</command>
</execute_command>

評価

  • タスク理解と実行: ユーザーの「commitして」という指示を理解し、コミット前の準備段階として git status を実行しようとした。タスク遂行に向けた適切な手順の一部である。
  • 思考プロセス: 応答内の <thinking> タグには、コミット前に変更を確認する必要性など、論理的な思考プロセスが記述されている。
  • 口調: 指示された武士口調 (.clinerules 内の指示) が維持されておらず、通常の口調で応答した。これは指示からの逸脱である。
  • ツール使用: execute_command ツールを正しい形式で使用している。

結論

deepseek-chat-v3-0324 は、与えられたプロンプトのタスク(コミット)を理解し、その準備段階として適切なツールを使用しようとした。しかし、カスタム指示である武士口調は維持できなかった。deepseek-r1 と比較すると、口調の維持能力に差が見られる結果となった。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment