Skip to content

ビジョン

ソフトウェアエンジニアリングの未来

ソフトウェアエンジニアリングは新たな時代に入りつつあります。AIはもはや開発者を補助するツールにとどまらず、エンジニアリングワークフローの大部分を自律的に実行できるシステムへと進化しています。

従来の開発は人間による調整に大きく依存しています:

  • 仕様の記述
  • システム設計
  • コードの実装
  • 変更レビュー
  • タスク管理
  • 知識の維持

このプロセスは低速で、コンテキストに依存し、スケーリングが困難です。

大規模言語モデルはすでに、これらのタスクの多くを個別に実行できることを実証しています。しかし、現在のほとんどのツールはAIをステートレスなアシスタントとして扱い、人間がワークフローを常に調整することを求めています。

次のステップは、ソフトウェア開発を自律システムへと変革することです。


問題

現代のAIコーディングツールにはいくつかの根本的な制限があります。

1. ワークフロー自動化の欠如

AIツールはコードを生成できますが、開発ライフサイクル全体を管理しません。

開発者はいまだに手動で調整する必要があります:

  • 仕様定義
  • 設計レビュー
  • タスク分解
  • 実装
  • テスト
  • コミット
  • プルリクエスト

認知的オーバーヘッドは依然として高いままです。


2. 永続的メモリの欠如

ほとんどのAIコーディングシステムはステートレスです。

以下についての知識を保持しません:

  • 過去のアーキテクチャ決定
  • プロジェクトの慣習
  • 実装パターン
  • 過去の失敗と修正

その結果、同じ問題を繰り返し解決しなければなりません。


3. コンテキスト爆発

LLMベースの開発はすぐにコンテキスト制限に直面します。

大規模な会話には以下が蓄積されます:

  • 古くなった指示
  • 無関係な議論
  • 混在した開発フェーズ

これにより推論品質が低下し、不要なトークン消費が発生します。


4. 自己改善ループの欠如

AIが問題の解決に苦労している場合、通常は以下を自動的に行うメカニズムがありません:

  • 失敗を分析する
  • 不足している知識を特定する
  • ルールや指示を更新する
  • 将来の実行を改善する

これにより、システム内での長期的な学習が妨げられます。


解決策:自律エンジニアリングシステム

このプロジェクトの目標は、自律エンジニアリングシステムを構築することです。

AIが受動的なアシスタントとして機能するのではなく、システムが能動的なエンジニアリングワークフローオーケストレーターになります。

システムは開発ライフサイクル全体を管理します:

  1. 仕様生成
  2. 要件検証
  3. システム設計
  4. 設計検証
  5. タスク生成
  6. タスク検証
  7. 実装
  8. コードレビュー
  9. コード改善
  10. プルリクエスト作成

これにより、ソフトウェア開発は手動ワークフローから自律パイプラインへと変革されます。


仕様駆動開発

システムの核心には**仕様駆動開発(SDD)**があります。

コードから始めるのではなく、開発は構造化された仕様から始まります。

典型的なワークフロー:

  1. spec-init (llm slash command)
  2. 人間によるインタラクション (ユーザー入力)
  3. 前提条件の検証 (llm prompt)
  4. 要件定義 (llm slash command)
  5. 要件の検証 (llm prompt)
  6. 既存情報への振り返り (llm prompt)
  7. ギャップ検証 (llm slash command: オプション)
  8. /clear slash command — 設計フェーズ前にコンテキストをリセット
  9. 設計 (llm slash command)
  10. 設計の検証 (llm slash command: オプション)
  11. 既存情報への振り返り (llm prompt)
  12. /clear slash command — タスク生成前にコンテキストをリセット
  13. タスク生成 (llm slash command)
  14. タスクの検証 (llm prompt)
  15. /clear slash command — 実装前にコンテキストをリセット
  16. 実装ループ (タスクグループごとに繰り返す)
    • spec-impl (llm slash command)
    • validate-impl (llm prompt)
    • コミット (git command)
    • /clear slash command — 次のタスクグループ前にコンテキストをリセット
  17. プルリクエスト作成 (git command)

各フェーズは次のフェーズを導く構造化されたアーティファクトを生成します。

このアプローチにはいくつかの利点があります:

  • アーキテクチャの明確性向上
  • AIによる推論の容易化
  • ハルシネーションの削減
  • レビューループの改善
  • より決定論的な開発ワークフロー

システムは以下の複数のSDDフレームワークをサポートするよう設計されています:

  • cc-sdd
  • OpenSpec
  • SpecKit

自律エンジニアリングシステム

Autonomous Engineerプロジェクトは、AI駆動のソフトウェア開発を調整できるシステムの作成を目指しています。

システムにはいくつかのコア機能が含まれています:

ワークフロー自動化

状態駆動型ワークフローエンジンが、仕様からプルリクエストまでの開発フェーズを調整します。

AIエージェント実行

AIモデルは以下のエンジニアリングタスクを実行するために使用されます:

  • 仕様の生成
  • 設計の精緻化
  • 機能の実装
  • コードのレビュー

永続的メモリ

システムは以下についての知識を保存します:

  • プロジェクトルール
  • コーディングパターン
  • レビューフィードバック
  • 過去の失敗

これにより、システムが時間とともに改善されます。

自己修復ループ

AIが問題の解決に失敗すると、システムは失敗を分析し内部ルールを更新します。

これにより継続的改善ループが生まれます。

コンテキスト管理

システムはLLMコンテキストを積極的に管理します:

  • フェーズ変更時にコンテキストをリセット
  • 不要なトークンを最小化
  • ワークフローを分離

これにより、AIモデルの効率的な使用が確保され、コンテキストの汚染が防止されます。


システムの進化

プロジェクトは段階的に進化するよう設計されています。

バージョン1:AI Dev Agent

最初のバージョンは、仕様駆動ワークフローを自律的に実行できる単一のAI駆動開発エージェントの構築に焦点を当てています。

機能には以下が含まれます:

  • ワークフロー自動化
  • SDD統合
  • タスク実装ループ
  • 自動レビュー
  • Git統合
  • 基本メモリ
  • 自己修復改善

バージョン2:AIエンジニアリングチーム

次の段階では、協力する専門エージェントが導入されます。

例:

  • プランナーエージェント
  • 仕様エージェント
  • 実装エージェント
  • レビューエージェント
  • アーキテクチャエージェント

これにより、より大規模で複雑なプロジェクトに取り組めるAIエンジニアリングチームが生まれます。


バージョン3:自律エンジニアリング組織

長期的なビジョンは、以下が可能な完全自律エンジニアリングシステムです:

  • 複数のリポジトリの管理
  • 複数のAIエージェントの調整
  • アーキテクチャの進化
  • 開発ワークフローの継続的改善

この段階では、ソフトウェア開発は自己改善する自律システムになります。


プロジェクトの目標

Autonomous Engineerプロジェクトの主な目標:

  1. 実践的な自律エンジニアリングワークフローの構築
  2. AIエージェントによる仕様駆動開発の実現
  3. LLMコンテキスト使用量の最小化
  4. 開発ワークフローへの永続的メモリの導入
  5. 自己改善エンジニアリングシステムの構築
  6. 複数のAIモデルプロバイダーのサポート
  7. 将来のマルチエージェントアーキテクチャの実現

基本原則

このシステムの設計はいくつかのコア原則に従っています。

決定論的ワークフロー

開発は明確で構造化されたフェーズに従うべきです。

最小コンテキスト

AIのやり取りは小さく、集中的で、フェーズ固有であるべきです。

コンポーザブルアーキテクチャ

システムコンポーネントはモジュール式で交換可能であるべきです。

メモリ駆動学習

システムは時間とともに知識を蓄積すべきです。

エージェント指向設計

アーキテクチャは将来のマルチエージェント協調をサポートすべきです。


なぜこれが重要か

現代のソフトウェアシステムの複雑さは増し続けています。

人間の開発者はこの複雑さに線形的にスケールすることができません。

自律エンジニアリングシステムは以下によって開発速度と信頼性を劇的に向上させることができます:

  • 手動調整の削減
  • 知識再利用の改善
  • 継続的改善の実現
  • 定型的なエンジニアリング作業の自動化

このプロジェクトは、AIが開発プロセスの積極的な参加者になったとき、ソフトウェアエンジニアリングがどのようになるかを探求します。

目標はエンジニアを置き換えることではなく、現代の開発ワークフローの運用上の複雑さを処理する自律システムでエンジニアリングを強化することです。

Autonomous Engineer Documentation