1. 閑古鳥ラジオ
  2. #55:AIにコミットメッセージを..
#55:AIにコミットメッセージを書かせたい話
2026-08-31 17:10

#55:AIにコミットメッセージを書かせたい話

第55回目の閑古鳥ラジオは、AIにコミットメッセージを書かせたい話をしました

目次: エディタ何使ってる? / VSCode と Zed / Generate Commit Message ボタン / custom endpoint を持ち込むといけるぜ


Fix 方法

1. https://code.visualstudio.com/docs/agent-customization/language-models#_add-a-custom-endpoint-model を参考に custom endpoint を設定

2. `chat.utilitySmallModel` に custom endpoint を指定


▼ 閑古鳥ラジオとは
関東でソフトウェアエンジニアをしているかんべとおおもりがざっくばらんに話す雑談Podcastです。

週一配信。めざせ100回!

感想

まだ感想はありません。最初の1件を書きましょう!

サマリー

今回の閑古鳥ラジオでは、AIにコミットメッセージを書かせる方法について話しました。VSCodeのコミットメッセージ生成機能に不具合があり、カスタムインストラクションを設定すると生成できなくなる問題が発生しています。この問題を解決するには、カスタムエンドポイントを設定し、任意のLLMモデルを利用する方法が紹介されました。AIにコミットメッセージを書かせることで、コミットの単位を適切に分割する助けにもなるという利点も語られました。

00:09
スピーカー 1
はい、どうもかんべです。
スピーカー 2
大森です。かんべと大森の閑古鳥ラジオ始まります。 このポッドキャストは、友人2人がダラッと話す雑談ポッドキャストです。よろしくお願いします。
スピーカー 1
よろしくお願いします。
開発環境とエディタについて
スピーカー 1
はい、ということで、久々の技術会というところで、先週ですね、自分が社内のLT会でちょっと話した内容、最近困って解決したよって内容を、なんか共有して話していけたらなと思っているんですけれども、大森さん普段開発、コーディングしてるかどうかという話と、コーディングのエディターとかって何使ってるとかってありますか?
スピーカー 2
開発は、Zってやつ使ってますね。
スピーカー 1
あ、Z。はいはいはい。
スピーカー 2
ZED。
スピーカー 1
はいはいはい。
スピーカー 2
ラストで書かれてて、すごい起動が早いんですよね。
なんかVSコードとか使って、いろんなエクステンション入れまくって起動がしぬほど遅くなるみたいなのがあるあるだと思うんですけど、
一通りの開発ができた上で、悪いっていうのが好きで、AI時代、コードはあんま書かないけど、読みたいっていう時に便利です。
スピーカー 1
エクステンションは特に入れられるとか、Zのエクステンションが結構しっかりしてるんですか?
スピーカー 2
Zの、なんかデフォルトで入ってるやつで結構十分って感じですね。
メインで書く。自分は5とかタイプスクリプトを書くんですけど、その辺であればもう純正、最初から入ってるやつで結構うまいこといくっていう感じでございます。
スピーカー 1
なるほど。そもそもエクステンション何入れてるもんでも結構あるかなと思うんですけど。
スピーカー 2
いやーありますよね。人ごとに結構好みがある気がする。
スピーカー 1
自分は今、画面共有見たら全然入ってなかったわ。こんだけすぎるな。ほぼ何も入ってない。
スピーカー 2
それでも知らんもんあるな。ノードってなんだ?
スピーカー 1
ノード、この色ですね。今自分のVS Codeの中にいるとこの色合いが。
スピーカー 2
君のVS Codeが今シェアされてるんですけど。
スピーカー 1
これがVS Codeの色合い。カラーテーマですね、これ。
分かんない。なんかVS CodeのPDF表記とハイライト。これ家なんであれですね。あんまり開発みたいなことしてないから。
でもこれですね。トレーニングスペースが全格とか入ってますね、WSLの中に。
ASTROとか何やってるか分かりやすいんですけど。スペルチェッカーとかここら辺かね。入ってるっていう話なんですけど。
ZEDの人はちょっとあんまりためにならないかなと思うんですけど。自分はVS Codeよく使っていますと。
結構使ってる方いるかなと思っていて。
AIによるコミットメッセージ生成の現状と課題
スピーカー 1
あと最近はもうAIにコミットを書かせる。コミットって皆さんどこで書いてますっていうのがあって。
スピーカー 2
もうAIがコミットしてますよ。
スピーカー 1
AIがコミットするっていうと、例えばVS Codeの場合はここからスキルみたいなの作って、コミットのスキル作って、コミットのときはこのスキル叩くよみたいなことを結構やるかなと思って。
もう多分そういう世の中になってるんですよね、基本的には。
なんでかというと、AIが勝手にコミットするのもいいけど、自分なりにコミットはこういうものだみたいなルールがあったときは、ゲネレートスキルとかでコミットのスキルを作りましょうみたいな。
スピーカー 2
リポジトリごととかチームごととかでコミットの流儀みたいなのがあるだろうから、それをスキルとして固めてっていうのはありますね。
スピーカー 1
皆さんもこれを使ってるかなと思うんですけど、基本は古き良き人間なので、まだそんな新しいのに慣れていないので、ここですね。
VS CodeのソースコントロールのGitの画面。
左側にGitの見える画面になるけど、このGitの上の画面にGenerate CommitMessageっていうボタンがあるんですよ。
自分これでコミットを生成してるんですね。
スピーカー 2
コミットを生成とかコミットメッセージを作っている。
スピーカー 1
コミットっていうメッセージですね。
ここは、ただここ、自分なりに書きたい場合は、セッティングスの画面って開いたら大森さんも見えている。
スピーカー 2
見えてますよ。
VS Codeのセッティングス、JSONが見えている。
スピーカー 1
VS Codeのセッティングスの画面のGitHub Copilot Chat CommitMessage Generation Instructionsに書くとコミットメッセージが生成できますよっていう記事が調べるとたくさん出てくるんですね。
システムプロンプトみたいな感じで守らせることができるよっていうことですかね。
スピーカー 1
そうそう。
出てくるんですけど、これ、一周が生えてまして、5月から不具合でコミットメッセージが生成できないっていう。
ここに記載があるとコミットメッセージが生成できないんですよ。
スピーカー 1
今ボタンを押してみたんですけど、生成できないじゃないですか。基本的にこのJSONのPMPが更新されてるんだけど、生成できないと。
スピーカー 2
インストラクションに何か書いてるとコミットメッセージの生成ができない。
スピーカー 1
なんで、ここを全部消して、これもいらんね、ごめんなさい。
こうしてあげて、こうするとたぶん生成ができますね。
インストラクションのコードをコメントアウトすることでいけます。
スピーカー 1
これ5月から言われていて、5月からの不具合で報告されてるのに、誰もここを直さないと。
コミットメッセージ生成不具合の原因と解決策
スピーカー 1
なぜかっていうと、大西さんもさっき言うように、世の中はもうスキルで書いちゃう。
AIのキャットに書かせちゃうので、このボタンを押してる人がほぼいない。
このVS Codeなのにも関わらずですよ。
VS Codeの隠されたボタンじゃないんですよね。
このコミットってところの見やすいところにあるはずのボタン。
一番表面に出てるはずのボタンなのにも関わらず、
それを設定を変えてる人も少ないかもしれないですけど、
設定を書き換えたっていう人の中では使われないっていうのが。
最近気づいたことっていうか、最近の悩みでして。
スピーカー 2
悩み、はい。
スピーカー 1
悩みですね。ここのボタンでコミットしてるのにコミットができないと困ったと。
確かに困りますね。
何が悪かったかっていうと、
VS Codeのここのコミットを行うAIのモデルが埋めれるんですよね。
設定のUtility Small Modelっていうので決まるらしいんですよ。
スピーカー 2
JSONでいじれると。
スピーカー 1
これデフォルトっていうのになってるんですけど、
このどうやらデフォルトが結構厳しい設定になってると。
スピーカー 2
厳しいって何が厳しいんですか?
スピーカー 1
なんかフィードバックループみたいな変な値が入らないようにするみたいなAIの機構があるじゃないですか。
何ていうの。名前が。
スピーカー 2
ガードレールかな。
スピーカー 1
ガードレール的なのが厳しくなっていて、
インストラクションにほとんどの文章を書くと大体ガードレールに引っかかって、
生成できなくなるっていう。
スピーカー 2
なるほど。インストラクションに入れるとそのガイドラインみたいなやつが、
何を入れようがガードレールに弾かれるせいで何も出てこないっていうのが起きてることなんですね。
スピーカー 1
はい。いろんな人が日本語もできないし英語もできないしアラビア語もできないと。
空盛りなら行けたよみたいな。意味ないがみたいなね。
設定に入れたいけどどうしたらいいっていう一瞬に空文字を順序すると通りましたみたいなのが来るみたいな。
スピーカー 1
困っちゃってたんですね。これ困ってるんですけど、
これどうしたらいいかっていうのが最近もう一個GitHubコパイロットで、
保管だったらそんな昔からできるかって話ではあるかもしれないけど、
スピーカー 1
カスタムエンドポイントをようやく持ち込めるようになったんですよね。
モデルでいろいろモデルを選べるんですけど、
その中でカスタムエンドポイントみたいなのを設定できるようになったんですよ。
これで例えばローカルのLLMだったりとか、
あとは家だと会社がある使ってるエンドポイントに対して、
LightLLMを返してオープンAI風にプロキッシュさせたものをここに読ませるみたいなことができるようになったんですね。
こんな感じで。
スピーカー 2
していしてい。
スピーカー 1
そうして指定してあげて、ネームとかURLとか指定してあげると。
カスタムエンドポイントを持ち込むと、さっきのセッティングスの
ユーティリティスモールモデルからカスタムエンドポイントが選べるようになるんですね。
スピーカー 1
デフォルトしか選べないはずで、それ以上選べるのには契約が違うのかな。
有料版のものしかデフォルト以外選べないみたいな設定になってるのが、
プルダウンにカスタムエンドポイントが入るようになるんですよ。
それを増やすことによって、カスタムエンドポイントに対して
コミット生成をさせることができるようになるっていうのが最近気づいたことで。
気づいたっていうか。
なるほど。
スピーカー 2
公式のモデルだとダメだから、他の任意のモデルで大丈夫そうなモデルを使うことで、
その機能が復活するということですね。
スピーカー 1
そうですね、はい。
スピーカー 2
いい話。
スピーカー 1
いい話というか、これを多分やってる人は誰もいなくて。
書いとけばいいじゃん。一周に。
スピーカー 1
一周に書かないといけない。カスタムエンドポイントを持ち込むとできるよみたいな。
書いてあるといいんですけど。
カスタムエンドポイントを持ちることってあんまないと思っていて、普段。
会社がカスタムエンドポイントで叩けるAPIがあるから、使ってみるかって使ってるだけで。
個人で使う場合は、もうGitHubコパイロットダメだからコーデックスで書こうみたいな感じでコーデックスで書いてるので。
もう誰も使ってないことではあるんですけど、最近そういうのでコミットを書くようにしてるっていうのと、
AIにコミットメッセージを書かせるメリットと現状
これ何がいいかっていうとあれですね、コミットをAIに書かせることによって、
スピーカー 1
適切なコミットの単位で分けてくれるからいいかなと思ってて。
すごいデカい。
スピーカー 2
それってそうなんですか?
スピーカー 1
クソデカコミット。ステージの内容を読んでくれるので。
スピーカー 2
ステージするのは人間の仕事ではないんですか?
スピーカー 1
ステージするのが人間の仕事なんですけど、ここでコミットを作ったときに、
人間の仕事かわかんないけど、適当に作ってステージングさせたときに、
今言うと1行なんですけど、クソデカ内容をコミットすると何行かに分かれるんですよ。
AIが生成する文章が。
その時点でこのコミットはデカすぎるなっていうのが判断できるので、
短く分けるみたいなことをやってたりしますね。
でもそういうのも全部スキル図に書いて、全部AIに任せろって話もありつつ、
スピーカー 1
全部AIに任せていなかったりするので、任せてる内容と任せてない内容があったりするので、
ここも使いつつで両極端で最近自分は書いてるかなとは思ってますね。
なるほど。
やっぱりもう全部フルAI。
スピーカー 2
フルAIですね。
コードを読むのにソースコントロールとかから、何だろう、作文を見るよとかは稀にやりますけど、
別にそこから手ではやらないな。
スピーカー 1
もうここで直す時も全部書いちゃう。
ここで直してって言っちゃう。
スピーカー 2
直してって言うし、これでコミットしてって言うしですかね。
スピーカー 1
そうですよね。世の中はそういう世の中になってるので、
3ヶ月もこんな分かりやすいデフォルトの設定をちょっと書き換えて動かないっていうものが放置されてるっていう現状なんでしょうね。
もう誰もコードを書いてないんだなっていう、自分の手でコミットしてる人間。
自分の手でもないですよね、これは。
AIにコミットメッセージを書かしているので。
どちらかというとコミットメッセージはAIに書かせてるんですけど、自分の手でコミットをしてる。
コミットを単語してコミットしてる人間がもういないんだろうなっていうのは感じますね、最近。
そういう世の中になってしまいました。
スピーカー 2
そうですね。いろいろありますね。
まとめと今後の展望
いろいろあります。というのが今回のお話でした。
スピーカー 1
みなさんはスキル図で書かせましょうと言いつつ、手で温かくコミットしつつ、コミットメッセージはちょっと生成がめんどくさいぞっていうと、こういう方法もありますっていうのを紹介したので、どっかでブログに書いたりか、Issueにコメントしたりとかしないとなーって思ってる、今日この頃です。
せめてIssueにコメントしてあげたら何人かは救われると思うんで。
やってみてください。
スピーカー 1
お願いします。
誰が見てるかわかんないけどね。
スピーカー 2
見てるでしょ。だってけっこうDuplicateのIssue作られてるから、みんな困ってはいるんだと思うけどね。
スピーカー 1
まあ、確かに。
スピーカー 2
日本人も困ってるし、チェコの人も困ってるし。
スピーカー 1
でも、2dayagozにIssueが作られてる。
本当だ。なんか毎回みんながBugFixって言ってるけど、直したりはしてないんだな。
スピーカー 1
なるほど。
スピーカー 2
お願いします。
スピーカー 1
以上です。
スピーカー 2
という感じで、1回15分ぐらいですかね。ゆるゆる雑談していければと思います。
じゃあ今回はこれで終わります。ありがとうございました。
スピーカー 1
ありがとうございました。
17:10

コメント

スクロール