自作のコーディングエージェントの紹介
Qwen3-30B-A3B(ローカル実行)を使って、自分専用の“外注プログラマー”を作ってみました。
この記事では、その仕組みと実例を通して、GitHubベースでのAI自動実装の可能性を探ります。
✅ 自動でPull Requestまで作ってくれる
✅ 指示はGitHub IssueでOK
✅ プログラマーの「相方」として機能する
生成AIとコード管理がどのように融合できるのか興味がある方は、ぜひ読み進めてください。
ちなみに、下記はこの仕組みで作ったブロック崩しゲーム。ちゃんと遊べます。
https://notfolder.github.io/coding_agent_sample/breaking_blocks.html
機械学習のプログラムもいけちゃう。
簡単な指示からPull Requestでの実装変更までちゃんとできます。
実際の動作
1. GitHub IssueからHello Worldを自動生成してみる
GitHubでIssueを作ってCoding Agent
というラベルをつけるとコーディングエージェントが見つけてくれて開発を始めます。
↓コーディングエージェントがcoding agent
ラベルを見つけて処理(アサインで動く様にしたい。。。)
色々考えて、処理できたらお知らせしてくれます。
(ラベルもcoding agent done
に自動で変更)
↓
def main():
print("hello world")
if __name__ == "__main__":
main()
ちゃんとお願い通りにできてますね。
エージェントなので、issueベースで勝手に動きます。
VScodeのCopilotとかRoo code、Claude Codeの様にエディタの前でAIと相談して作るというよりは、
外注さんにissueをアサインして「作っといて〜」って言うイメージ。
https://github.com/notfolder/coding_agent_sample/issues/1
2. 既存コードの自動改修とPull Request生成
次はもうちょっと複雑なこと。先ほどと同じ様にissueを作成して、下記内容にしてcoding agent
ラベルを振ってほっておく。ほったらかし開発。買い物にでも行くか。
1. 下記の変更をするためにブランチを作成して
2. ```hello_wolrd.py```ファイルを読み込んで現在のコードを理解して
3. ```hello_wolrd.py```ファイルを変更して、scikit-learnのirisデータセットを分類する関数を作ってmain関数から呼び出す様にして
4. プルリクエストを作成して
↓買い物から帰ってくるとちゃんとブランチを切ってPullRequestが作成されている
うーん。。惜しい。分類しているけど、評価もして欲しかった。
下記コメントを追加して再ラベル。
1. このブランチのhello_wolrd.pyを読んで現在のコードを理解して
2. モデルを作るだけではなくて、性能評価をする様に変更して
3. このブランチ上で変更をコミットして
↓そしてまたほったらかし
ちゃんとPullRequest上で修正できた!(ちゃんとレビューしなくてもなんとなく意図を汲んでくれるのが良い)
https://github.com/notfolder/coding_agent_sample/issues/3
(一回変更前のshaを提示忘れてエラーになっているけど、自分でファイル読み直してshaを提示してます!すご!)
https://github.com/notfolder/coding_agent_sample/pull/5
システム構成・フロー図
システム構成図
フロー図
番外編
ブロック崩しも作ってもらいました。
1. 仕様を検討
ブラウザで動くブロック崩しを作りたいです。
1. breaking_blocksというブランチを作って
2. ブランチ上で```breaking_blocks.md```というファイルを作って、ブラウザで動くブロック崩しの仕様を検討してください
できるだけ詳細に、誤解が発生しない様な仕様書を作成して
3. pull requestを作って
pull request上で少々修正をしてもらい、マージ。
ここらへん、プログラマーの相方に依頼して、チェックしてマージする流れそのままで開発が進んじゃう。
https://github.com/notfolder/coding_agent_sample/issues/6
https://github.com/notfolder/coding_agent_sample/pull/8
2. 検討した仕様を元に実装
別issueで下記をお願い。上記でできた仕様を少し手直ししてお願いしました。
https://github.com/notfolder/coding_agent_sample/issues/9
最初はちゃんとプルリクエスト作って修正してもらおうと思ったのですが、苦戦していたので、
直接仕様を明示して作成してもらいました。
実際に動作させたプロジェクト
https://github.com/notfolder/coding_agent_sample
ここで実際に動いた状態を見るとができます。
今後の展望と課題
- テストの自動化:Pull Request後のテスト実行・結果の収集も自動化したいが、対象範囲やmockの扱いが課題。
- MCPサーバーの強化:現在は限定的なツール呼び出しに留まっているが、fetchやweb検索ツールの統合を検討中。
- 社内展開に向けて:ユーザー別の認証情報管理、キューイングが課題。RabbitMQをベースにしたJob Queue設計が有力。
最後に
この仕組みは下記記事の続きです。
GitHub Copilot Coding AgentをローカルLLMで再現してみた(無料・ローカル)
下記も参考にどうぞ。
MacBook Air 32GBでローカルLLMによるコード生成を評価してみた(2025/04 最終稿:Qwen3-30B-A3Bのlmxが最強)