LLMを使ってソフトウェアを書く方法
概要
- プログラミング自体よりも、ものづくりへの情熱
- **LLM(大規模言語モデル)**の進化で制作速度と品質が向上
- 複数モデルとエージェントを組み合わせた独自ワークフロー
- コード品質の向上と保守性の維持
- 具体的なプロジェクト例と実践的な開発手法の共有
プログラミングの喜びよりも「ものづくり」
- LLMの進化により、プログラミングそのものよりも「作ること」への情熱を再認識
- プログラミングは手段であり、目的は「新しいものを生み出すこと」
- LLMを活用して、短期間で多くのプロジェクトを実現
- 未知のフロンティアを切り拓く興奮
- ワークフローの詳細解説と実際のコーディングセッションの共有
LLM活用によるメリット
- Codex 5.2やOpus 4.6の登場で、低いバグ率と高い信頼性を実現
- コードの保守性が向上し、長期間の開発でも品質を維持
- エンジニアリングスキルの変化
- コードの正確な記述力よりも、システム設計力や選択力が重要
- 知らない技術領域(例:モバイルアプリ)では依然として難しさが残る
- LLMとの対話方法によって成果に大きな差
- モデルの進化で、今後はさらに人間の介在が減る可能性
LLMで作ったプロジェクト例
- Stavrobot
- OpenClawの代替となるセキュリティ重視のLLMパーソナルアシスタント
- カレンダー管理、リマインダー、研究補助など多機能
- 個人ニーズに最適化されたアシスタント体験
- Middle
- 音声メモの録音・文字起こし・Webhook送信が可能なペンダント型デバイス
- 常時利用可能・高信頼性・操作の手軽さ
- Sleight of hand
- 不規則な秒針の動きを持つアート性の高い掛け時計
- 複数のモードで観察者の感覚に揺さぶり
- Pine Town
- 無限キャンバス上のマルチプレイヤーお絵描き空間
- 多様なユーザー作品が生まれる遊び場
開発ハーネスと必要な機能
- OpenCodeを主に利用、Piなど他の選択肢も
- 必要な機能
- 複数社のモデル利用(例:Claude Code, Codex CLI, Gemini CLIは制限あり)
- エージェント同士の自律的な呼び出し
- セッション管理やワークツリー管理などの補助機能
- 理由
- 異なるモデル間でのコードレビューによる品質向上
- 各モデルの強み・弱みを適材適所で活用
- エージェント同士の連携による作業効率化
ワークフローの構成
- アーキテクト・開発者・レビュワーの複数エージェント体制
- 各エージェントはOpenCodeのスキルファイルで動作指示を明示
- アーキテクト(例:Claude Opus 4.6)
- 唯一の対話相手であり、最強モデルを選定
- 目標・制約・トレードオフを徹底議論
- 詳細な設計プランを策定し、納得できるまでやり取り
- **最終承認(approved)**まで実装開始しない
- 開発者・レビュワー
- 設計プランに基づきコード作成・レビュー
- モデルごとに役割や得意分野を分担
まとめ
- LLMの活用で、ものづくりのスピードと品質が飛躍的に向上
- エンジニアリングの本質は「設計力」と「適切な意思決定」
- 複数モデル・エージェント連携による新しい開発スタイル
- 自分のやり方を見つけることの重要性
- 今後のLLM進化によるさらなる可能性