qwen-agent について
qwen-agent は、範囲が明確で単独に完結する作業を、ヘッドレス Claude Code 内で動く Qwen モデルに委任するスキルです。プロンプトの作成、コンテキスト量の管理、実行、結果の検証方法を説明します。
主な機能
- 01単純で独立した作業の委任
- 02claude-9arm 経由で Qwen を実行
- 03自立したプロンプトと合格基準を指定
- 04コンテキストウィンドウに合わせた分割
- 05委任結果の検証
活用シーン
- 01指定ファイルの未使用インポートを削除
- 02独立した小規模編集を並行実行
- 03明確な成果基準を添えて作業を委任
- 04低コストモデルの出力を確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ thananon/ 9arm-skills --skill qwen-agentインストール後、Claude Code で/qwen-agentを入力して読み込まれたか確認します。
詳細
qwen-agent
委任単純で独立したタスクを、ヘッドレスの Claude Code インスタンス(claude-9arm)内で動作する Qwen モデルに任せます。Claude の高コストな推論は、それが必要な作業のために温存できます。
コマンド
claude-9arm は、9arm ゲートウェイ経由で claude --model qwen3.6-35b-a3b を実行するシェルエイリアスです。-p を使ってヘッドレスで実行します。
claude-9arm -p "<self-contained task prompt>" --allowedTools Bash Read Edit Write Glob Grep
- これがデフォルトの呼び出し方法です。 フラグのリストによって、プロンプトなしでサブエージェントが使用できるツールを限定するため、単純な作業を無人で完了できます。これを指定しないと、最初の編集やコマンドで承認待ちになり、サブエージェントが停止します。
- エイリアスには
--allowedTools '*'が含まれていますが、Claude Code は警告(Wildcard tool name "*" is not supported)を出して黙って無視します。この警告は想定どおりで、問題ありません。追加で指定した--allowedToolsが有効になります。 - 編集のみでリスクの低いタスクでは、代わりに
--permission-mode acceptEditsを使うこともできます(ファイル編集は自動で承認されますが、Bash では引き続き確認を求められます。検証・ビルド・テストの実行には使わないでください)。
タスクプロンプトの作成(最も重要な手順)
qwen サブエージェントは、この会話のコンテキストをまったく持っていません。曖昧なプロンプトが、失敗の最大の原因です。プロンプトはすべて単独で理解できるものにしてください。
- 入力ファイルと出力ファイルはすべて絶対パスで指定します(
foo.tsではなく/Users/tpatinya/proj/src/foo.ts)。 - 入力、出力、受け入れ基準を明確にします。変更内容と、何をもって「完了」とするかを指定します。
- 「先ほど話したファイル」「上記」や以前のやり取りへの参照は避けてください。
- qwen は能力はあるものの、指示を文字どおりに受け取るジュニアとして扱います。手順を具体的に説明し、範囲を絞ってください。
悪い例:clean up the imports
良い例:In /Users/tpatinya/proj/src/api.ts, remove unused imports and sort the remaining import statements alphabetically. Do not change any other code. Confirm the file still parses.
コンテキストウィンドウに注意する(128k)
Qwen のコンテキストウィンドウは 128k トークンで、Claude よりかなり小さいです。プロンプト、読み込むすべてのファイル、推論、編集を含む作業全体を、この範囲内に収める必要があります。単純な作業かどうかだけでなく、モデルに適した規模にタスクを調整してください。
- 委任する前に、必要な容量を見積もります。読み込み・オープン・書き込みが必要なファイルのバイト数を合計し、4 で割ると、おおよそのトークン数になります。1 つのタスクで大きなファイルや多数のファイルを一度に扱う場合、収まりません。
- 大きな作業は、範囲を限定した独立した単位に分割します。たとえば、1 回の実行につき 1 ファイル(または小さなファイルを数個)、1 ディレクトリ、1 つのログ区間などです。分割したタスクは、別々の
claude-9arm呼び出しとして実行します(フォアグラウンド、または「結果の受け取り」セクションにあるバックグラウンド並列実行)。 - 不要なものを読み込ませないでください。 必要なファイルやパスを正確に指定し、「リポジトリ全体をスキャンする」よう指示したり、大きなディレクトリツリー全体を読ませたりしないでください。
- 検証時に、編集が途中で切れている、後半の指示が無視されている、作業対象として指示したファイルが要約から抜けている、といったコンテキスト不足の兆候に注意してください。通常はタスクが容量を超えています。より小さく分割して再試行してください。
作業の性質上、適切に分割できず(正しく処理するためにコードベース全体のコンテキストが必要な場合)、それは qwen に任せるべきタスクではないということです。自分で対応してください。
作業ディレクトリ
Bash ツールでは呼び出しのたびに cd がリセットされ、cd && は権限確認を引き起こすことがあります。現在の作業ディレクトリに依存しないでください。
- プロンプトに絶対パスを記載するか、
--add-dir /abs/pathを渡して、サブエージェントにディレクトリへのアクセスを許可します。
結果の受け取り
-
デフォルト(テキスト): qwen の最終メッセージが標準出力に表示されるので、そのまま読みます。
-
結果を解析する場合:
--output-format jsonを追加し、resultフィールドを取り出します。 -
バックグラウンド/並列実行(複数のタスクを同時に実行する場合): ログにリダイレクトし、Bash ツールで
run_in_background: trueを指定して実行します。完了後にログを読みます。claude-9arm -p "<task>" --allowedTools Bash Read Edit Write Glob Grep > /tmp/qwen-<label>.log 2>&1
独立したタスクは、それぞれ別のバックグラウンド実行として起動し、完了したら各ログを回収します。関連のない単純な作業を 2 件以上委任するときに使います。
ワークフローのチェックリスト
- タスクが単純でリスクの低いものか確認します(説明を参照)。設計上の判断が必要な場合や、このチャットのコンテキストが必要な場合は、自分で対応し、委任しないでください。
- qwen の128k のコンテキストウィンドウに収まることを確認します。ファイルの規模を見積もり、大きな作業はファイルまたはディレクトリ単位で上限を設けて分割してください(「コンテキストウィンドウに注意」を参照)。
- 絶対パスと受け入れ条件を含む、完全に自己完結したプロンプトを作成します。
claude-9arm -p "..." --allowedTools Bash Read Edit Write Glob Grepを(フォアグラウンドで)実行するか、並列ジョブの場合はバックグラウンドでリダイレクトします。- 出力を自分で検証します。qwen は安価ですが、信頼性は劣ります。成功を報告する前に、ファイルや結果が受け入れ条件を実際に満たしていることを確認してください。
初回のみの設定(任意。繰り返し表示されるプロンプトを省略できます)
委任した実行時に毎回表示される権限プロンプトを省略するには、コマンドの Bash 許可ルールを追加します(update-config スキルを使うか、設定を編集します)。
{ "permissions": { "allow": ["Bash(claude-9arm:*)"] } }
委任しないケース
アーキテクチャや設計、推論が必要なデバッグ、セキュリティ上重要な変更、この会話のコンテキストが必要なもの、または安価なモデルによる編集ミスの発見に大きなコストがかかるタスクは委任しないでください。迷った場合は、自分で対応してください。