AIとの開発で一番変えたことは一つのチャットで作り続けないことだった

AIにアプリを作ってもらい始めた頃は、一つのチャットで何でもやっていました。質問して、作ってもらって、動くか確認して、うまくいかなければ修正を頼んで。また分からないことが出てきたら、そのまま同じチャットで聞くという感じです。
そうやって進めていると、途中で伝えた指示が抜けたり、話がかみ合わなくなったりするんですよね。当時はなぜそうなるのか分からず、修正するたびに自分も混乱していました。
家計簿を完成させるまでにいろいろやり方を変えたんですが、一番効いたのは工程ごとにチャットを分けることでした。今では常識となりつつあるようなことでも当時はその当たり前すらわかっていないスタートだったということですね。
今回は、そのときに変えたことと、今ローカルAIで試している進め方について書いてみたいと思います。
ChatGPTに移ってからも一度は頓挫しかけた
バイブコーディングの最初はAntigravityでした。まだGoogleのGeminiが最強だと疑っていなかったころにAI Proプランに年間契約で入っていたんですね。せっかく加入しているなら何か作ろうと思い、手動でやりくりしていた家計簿を何とかしようと思って、これぐらいなら簡単に作れるっしょって感じで作り始めてみたんですね。
そしたらどうでしょう。なんとなくそれっぽいものができたのですが、ちゃんと動かない、いくら修正指示を出しても何度もやり直し、挙句さらに挙動が変になるみたいなことがあり、これはやめておこうとなったわけですね。
そしてその後にSakana ChatのFuguに出会って、フロンティアモデルのすごさを思い知ったんです。これだったらちゃんと作れるかもと思い、ChatGPTとClaudeのどっちを使うか色々調べて、ChatGPTの方が使いやすそうということでChatGPTのPlusプランに加入しました。
そこからCodexで家計簿づくりをやり直したんですが、結構出だしは順調でモックまでは作れたので、後はもう細かく実装していくだけだ!と思ったんです。実際そうは問屋が卸してくれません。
当時は、AIに渡す会話や資料、いわゆるコンテキストをどう扱えばいいのか、そこまでよく分かっていませんでした。同じチャットでやり取りを続ければ、そのまま最後まで作れると思っていたんですね。
するとどうでしょう、使用量はみるみる減っていくけど、まったく進捗が上がらないという何とも奇妙な状況に陥っていました。なので、途中でルールを変えてみたり、設定を変えてみたり色々やった結果、進捗状況がぐちゃぐちゃになり、言うことは聞かないし、進捗も上がらない、これ完全に終わったなとその時は思いました。その時は仕組みまでちゃんと調べたわけではないんですが、このまま同じやり方で続けるのは難しそうだなと思いました。
そこから、チャットを分けること、次へ渡す内容を資料としてまとめることを徐々に覚えていきました。といってもこれは自ら編み出したというわけではなく、YouTubeで開発手法をみて、見よう見まねで徐々にやり方を変えていったという感じでした。
作業が一区切りついたらチャットも分ける
そこで、作業が一区切りついたら次のチャットへ移るようにしました。今の作業が終わって、次の工程に進むならチャットも変えるという感じです。このやり方が自分には合っているなと思いました。
そもそもこのぐらいの時期から作業をまとめ指示する上位モデルと実際に指示する下位モデルみたいな方法でなるべく不要なコンテキストを持たせないというやり方をしていってました。サブエージェントの使われ方がいまいち納得いかなかったので、実質人力サブエージェントを行っていたということですね。
今は工程ごとに資料のフォルダも分けています。こうしておくと、どの資料を見てほしいのか、何の作業をしてほしいのか、自分からも頼みやすいんですよね。このルールを忘れて指示してしまった後もすべての作業が終わった後に資料の整理整頓を行わせるようにしていたりもします。
一見無駄とも思えるようなことも意外とやってみると効果的なこともあったので、一つのチャットで延々と修正していた頃に比べると、かなりプロジェクトを進めやすくなりました。
今ローカルAIで試している工程の分け方
今ローカルAIで開発を試すときは、こんな感じで工程を分けています。
- 要件定義で、何を作りたいかを整理する。
- 基本設計をまとめる。
- 実装に入る前に、作業をタスクへ分割する。
- 分割したタスクを実装する。
- テスト項目を作り、確認する作業も分ける。
- テストを実施する。
工程と工程の間では、高性能なモデルに少しずつレビューしてもらっています。進め方がおかしくなっていないか見てもらって、必要なら直してから続きを頼む感じです。
これは今ローカルAIで試しているやり方で、家計簿を作り始めたときからここまでできていたわけではありません。チャットや工程を分けると進めやすかったので、少しずつこの形になってきました。
途中の確認はChatGPTにも頼んでいる
ChatGPTの高性能なモデルだと、ここまで細かく工程を分けなくても進められるなとは感じています。ただ、ずっと使っているとレートリミットが気になるんですよね。
なので、作業はローカルAIで進めて、工程ごとの確認やレビューはChatGPTの高性能なモデルに頼むという分担を試しています。自分の感覚では途中で見てもらった方ができあがるものも安定する感じがします。
実装そのものはローカルAIでもいけそうな手応えがあるんですが、その前後の難しい判断はまだChatGPTの高性能なモデルを頼りたいところです。そもそも私がアプリ畑の人ではないので開発手法がいまいち理解できていないからそうなるのかもしれませんが。
とはいえ、これで日常の開発を安定して任せられるようになったかというと、まだそこまではいっていません。モデルの癖もありますし、周りの仕組みも含めて試しているところです。
モデルが変わったときの差もかなり大きかった
ここまで進め方の話をしてきましたが、それだけでうまくいくようになったかというと、そうでもないんですよね。
正直、ChatGPTの新型モデルであるGPT-6のAstraが使えるようになったときの方が、変化は大きく感じました。やれることが一気に変わったな、フェーズ変わったよなという印象があります。
ただ、今のやり方を当時知っていれば、その前に使っていたGPT-5.6 Solでも完成させられただろうなとも思います。同じ条件でもう一回作り直したわけではないので、今振り返っての感想ですけどね。少なくとも完成間際まではGPT-5.6 Solを利用していたので、使い方さえちゃんとしていれば完成していたと思っています。
モデルがよくなったこともありますし、自分も頼み方や引き継ぎ方を少しずつ覚えたので、その両方があって完成までいけたんだと思います。
ローカルAIの挙動はまだまだ気になる
これは私の使い方がいまいちなのかはわかりませんが、ローカルAIモデルを使っていると、同じような処理をずーっと繰り替えている感じに見える時があります。実際にそうなっているところを目撃し、処理を止めることも多いです。そうなったらモデルを変えてみて様子を見る感じなんですね。こういうところはローカルAIモデルのいいところだったりするかもしれませんね。
頼んだ役割がうまくできなければ、別のモデルに変えたりもしています。実際にQwen3.8は純正モデルから派生モデルに入れ替えまくってたりしますね。他にも出力する文章を短くするスキルを使ってみたり、AIを動かす周りの仕組み、いわゆるハーネスの設定を見直したりもしているところです。
工程を分けたらあとはお任せというところまではまだいかず、返ってきた内容や動き方を見て調整する手間はまだまだ残っています。
それでも、何が起きているのか分からないまま同じチャットで修正していた頃よりは、次に何を試すか考えやすくなりました。今はChatGPTにブログの記事作成やネタ探しをしてもらったりしているのですが、このやり方をローカルAIモデルでブログを書くときの補助や情報収集にも使いたいなと画策しています。
最後に家計簿で減らせた手作業については「AIでの開発に一度挫折した私が家計簿の手作業を減らすまで」、ローカルAIの環境については「RyzenのローカルAIサーバーを買った理由と使って分かった難しさ」にまとめています。よかったら読んで見てみてください。


Discussion
No comments yet