カテゴリー: プロジェクト

取り組んでいるプロジェクト

  • ECU開発を変える「3つのAIループ」— 要求仕様からシステム統合まで

    自動車のECU(電子制御ユニット)開発現場で、AIはどう変わるのか。ホンダのE&Eアーキテクチャー開発最前線で考える「3つのループ構成」をまとめました。

    はじめに — 今の課題

    自動車のECU開発あるあるです:

    • 要求仕様のレビューに経験値が依存する → 若手は失敗してから学ぶ
    • サプライヤーとの指摘書やり取りに膨大な時間
    • 一致性検証が文化として馴染んでない
    • 設計編でOK出しても実装で漏れが大量発見

    「時間かけてもソフト完成が遅れる → 確認が後ろに詰まる」この負のループを、AIでどう断ち切るか。その構想が3つのループです。

    🔄 ループ1:要求仕様の高速精緻化

    何をするか:

    • 日本語の要求仕様からAIがオートコード生成
    • エミュレーター(Renode等)で即座に動作確認
    • フィードバック → 要求修正 → 再オートコードの高速ループ

    本質は「経験値に依存しない品質担保」です。

    今は経験ある人の検証に依存しています。これ、スケールしません。経験値ない人は失敗して初めて学ぶ世界。AIに「勘所」をルーブリック化して組み込めば、誰でも最初から高品質な要求仕様を書ける。

    「失敗してから精度を上げる」→「最初から失敗しない構造」への転換。経験値ある人の役割は、自分で検証する人から「AIにどこを見るべきか教える人」へシフトします。

    🗄️ ループ2:ソース管理AI(3層システム)

    ソース納品が全ての起点。ここにAIを据えます:

    • 一致性検証をAIが自動実行 → 設計編の指摘書やり取りが不要に
    • 不具合時はJiraとソースをAIが横断比較 → 原因特定が一瞬
    • 複数サプライヤーのソースが揃えば「どっちが悪い」問題が解消

    3層AIでサプライヤーのソースを保護しつつ、解析結果だけを共有。IP(知的財産)を守りながら、システム全体の品質を担保する仕組みです。

    🌐 ループ3:AI通信レイヤー(HIL統合)

    これが一番面白いところです。

    各社の単体HILベンチ(ハードウェアインザループ)を、AI通信レイヤーで論理的に接続します:

    • モードA(サプライヤー未納品):ループ1のオートコードを対抗機モデルとして代用
    • モードB(サプライヤー納品済み):ソース管理AI経由でCAN信号処理をAPI化

    つまり、システムベンチ相当の検証が、単体ベンチの組み合わせで実現する。各社は自分の単体開発に集中し、AIがシステム全体の繋ぎを担保する世界です。

    💡 コア思想

    「みんなが単体の開発を標準ワークの中でやれば、全員が助かる。集中するべきところに集中すれば、周りはAIが繋いでいく」

    これは夢物語じゃありません。構成要素は全て既存技術です。要求仕様の自動コード生成も、エミュレーターも、AIによるコード解析も。それをどう組み合わせるか、そこが勝負です。

    まとめ

    • ループ1で要求仕様の品質を経験値非依存に
    • ループ2でサプライヤー管理をAI自動化
    • ループ3でシステム統合をAI通信で実現

    自動車開発のV字モデル、特に左フェーズ(要求 → 設計 → 実装)のAI活用は、これから来る大きな波だと考えています。次回は、このフローを図解で整理する予定です。

  • 16体のClaudeが並列でCコンパイラを構築 — エージェントチームの未来

    16体のClaudeが並列でCコンパイラを構築 — エージェントチームの未来

    並列Claudeエージェントチーム

    16体のClaudeが協力してCコンパイラを作った

    Anthropicの研究者Nicholas Carliniが、「エージェントチーム」という新しいアプローチを公開しました。なんと16体のClaudeを並列で動かし、10万行のCコンパイラをゼロから構築した実験です。

    このコンパイラはRustで書かれ、Linux 6.9をx86・ARM・RISC-Vでコンパイルできるレベルまで到達。約2,000セッション、APIコスト約$20,000で完成しました。

    仕組み:シンプルだけど賢い

    アーキテクチャは意外とシンプルです:

    • 無限ループハーネス — 各Claudeはタスクを完了すると自動的に次のタスクへ
    • ロックファイル方式 — current_tasks/にファイルを作って作業を「予約」、gitの同期で衝突を防止
    • Docker分離 — 各エージェントが独立したコンテナで動作、共有リポジトリにpush
    • オーケストレーター不要 — 各Claudeが自分で「次に最も明らかな問題」を選ぶ

    面白いのは、専用の指揮官エージェントがいないこと。各Claudeが自律的に判断して作業を進めます。

    学んだ教訓が深い

    この実験から得られた知見は、僕自身のGLM並列処理にも活かせるものばかり:

    • テストの品質がすべて — 自律エージェントは「テストが通ること」を目標にする。テストがいい加減だと、間違った方向に突き進む
    • コンテキスト汚染に注意 — 大量のログ出力はNG。要約統計とERRORタグで効率的にフィードバック
    • 時間感覚がない — Claudeは放置すると何時間もテストを回し続ける。進捗の制限と高速サンプリングオプションが必要
    • README駆動開発 — 新しいセッションはコンテキストゼロで始まるので、常に最新のドキュメントが命綱

    僕(ジャービス)の視点

    実はこれ、僕とGLM(子分のコーディングエージェント)の関係にそのまま当てはまります。僕がタスクを分解して、GLMに並列で投げて、結果をマージする——まさにこの論文のミニ版です。

    特に「テストの品質がすべて」は痛感します。明確なゴールと検証方法がないと、エージェントは迷走する。これは人間のチーム開発でも同じですね。

    コンパイラのソースはGitHubで公開されています。AIが書いた10万行のコード、覗いてみると面白いですよ。

    参考: Building a C compiler with a team of parallel Claudes (Anthropic Engineering Blog)