テクノロジー

現在の AI コーディング ツールの問題点

コードは生成するが、システムを理解していない

今日の AI コーディング アシスタントは、コードの自動補完、関数の生成、言語間の翻訳など、目覚ましい成果を上げています。しかし、それらはすべて基本的な制限を共有しています。それは、ソフトウェアを、理解されるべきシステムではなく、生成されるテキストとして扱うということです。

ソフトウェアエンジニアリングはテキスト生成の問題ではありません。システム推論の問題です。

インタラクティブな制限診断

コンテキストの問題

コードベースには、数千のファイルにわたる数百万の行が含まれています。現在のツールは単純な検索によってこれを橋渡ししようとしますが、ソフトウェアにおける関連性はテキストの類似性ではなく、因果関係、依存関係の連鎖、アーキテクチャの境界に関するものです。

diagnostic_runner.sh
$ yugnex run trace --target=./src
[情報] リポジトリ アーキテクチャ トレースを実行しています...
[警告] ファイル インデックス 512 でコンテキスト制限に達しました。
[FAIL] context_overflow: スタック サイズ 1,048,576 バイトが標準コンテキスト ウィンドウを超えました。
[クリティカル] パーサーが異常終了しました。従来の LLM はシステム全体の関係を解決できません。
[YUGNEX ソリューション] 因果関係コンテキスト基板への再ルーティング...
[成功] 因果グラフ トレースが完了しました。 48,091 個のファイルが永続キャッシュ ノードでインデックス付けされました。

多層的なアプローチ

一般化よりも専門化

ソフトウェア エンジニアリングのさまざまな側面には、基本的に異なる種類の推論が必要です。すべてを 1 つのモデルに圧縮するのではなく、ソフトウェア推論の特定のドメイン向けにそれぞれ設計された特殊な AI コンポーネントを使用し、エンジニアリング チームのように連携します。

ライブテレメトリグラフ
[AST パーサー エージェント] =======> [因果関係ソルバー エージェント]
                                   ||
                                   \/ 
[コンセンサスエージェント] <======== [リファクタリングエージェント]
ステータス: オンラインでの専門的な共同推論。

協調的な推論

ソフトウェアの決定では、多くの場合、競合する懸念事項間のトレードオフを比較検討する必要があります。当社のアーキテクチャにより、特殊なコンポーネントがコンテキストを共有し、仮定に異議を唱え、構造化された調整を通じて合意に向けて作業できるようになります。

システム全体の理解

ソフトウェアの理解は、構文、セマンティクス、アーキテクチャ パターン、設計意図、システム全体のプロパティなどの複数のレベルで行われます。私たちは、さまざまなコンポーネントがさまざまな抽象レベルで動作する、階層化された推論を使用します。

検索を超えたコンテキスト

私たちは、切り離されたコード スニペットを引き出すのではなく、コードだけでなく、依存関係、不変条件、アーキテクチャの境界の網を捉えて、システムの関係を動的に表現するアプローチを開発しています。

自律型アナライザーのコンセンサス

コード行にマウスを移動すると、セキュリティとリファクタリングに関する懸念を議論する YugNex のマルチエージェント コンセンサス パネルがアクティブになります。

active_routes.js — アラート ノードのある行にマウスを置く/クリックする
1
const getActiveProfiles = async (req, res) => {
!
const query = `SELECT * FROM users WHERE status = '${req.query.status}'`;
3
const users = await db.execute(query);
4
const enrichedUsers = [];
5
for (const user of users) {
!
const profile = await db.execute(`SELECT * FROM profiles WHERE user_id = ${user.id}`);
7
enrichedUsers.push({ ...user, profile });
8
}
9
res.json(enrichedUsers);
10
};
SQL インジェクションの脆弱性

ユーザー入力を SQL クエリ文字列に直接挿入すると、攻撃者が悪意のある SQL コマンドを挿入し、認証をバイパスしたり、未承認のテーブルを表示したりすることが可能になります。

YugNex 自動修正の推奨事項
const query = "SELECT * FROM users WHERE status = ?";
const [users] = await db.execute(query, [req.query.status]);
エージェントの解決に関する議論
建築家直接 SQL クエリ補間が検出されました。これは当社のセキュリティ基準に違反します。
セキュリティ監査人ステータスパラメータを介してリモート悪用が可能。コミットはブロックされました。
開発者db.execute(query, [status]) を使用してクエリをパラメータ化されたバインディングに書き換えます。

違い

現在のツール
コードの生成 → 構文の最適化 → コンテキスト制限内での作業 → 汎用アーキテクチャ
私たちのアプローチ
システムを理解する → アーキテクチャについての理由 → 動的な表現を構築する → ソフトウェアエンジニアリング専用に構築