**LLMの制御:実行可能オラクルを使って悪質コードを防止する**

2026/03/27 2:51

**LLMの制御:実行可能オラクルを使って悪質コードを防止する**

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

(以下に日本語訳を記載します)

Improved Summary

Claude や Codex のような LLM コーディングエージェントは、狭い範囲で定義されたタスクに対して高品質のコードを生成できますが、その出力には隠れたミスや最適でない設計が含まれることが多く、追加のチェックなしでは発見しづらいです。この記事は「実行可能オラクル」―ユニットテスト、ファズャー、静的解析器、パフォーマンスプロファイラ、その他ツールを組み合わせたもの ― を提案し、エージェントの自由度を制限し正確性と品質を保証します。

証拠としては、Claude の C コンパイラが GCC のトーチャー・スイートに合格したにも関わらず 34 件のケースで誤コンパイルしていたことがあります。Csmith や YARPGen のようなランダムコードジェネレータを追加すれば、これらのバグを露呈させることができました。同様にオラクル拡張されたパイプラインはデータフロー合成で LLVM を上回り、ファズャーベースのオラクルは手動リファクタリング後に不十分な設計だった JustHTML パーサを修正しました。

オラクルの性質についての主なポイント:

  • 正確性オラクルにはテストスイート、ファズャー、プロパティテスター、ランタイムサニタイザー、静的解析器、リンター、強力な型システム、および形式検証が含まれます。
  • パフォーマンスオラクルは計測装置、プロファイラ、ハードウェアカウンタ、回帰テストを含みます。
    複数のオラクル(例:精度 + 正確性)が組み合わさることで、LLM が不正行為を行いにくい堅牢な指標が作られます。しかし、ソフトウェアアーキテクチャ、モジュラリティ、保守性、重複回避、GUI の洗練度、安全性といった自由度は、実行可能オラクルだけでは制御しにくく、人間による指導的なリファクタリングを必要とすることが多いです。

この記事は理想的な実行可能オブジェクトは高速で決定論的、サンドボックス互換であるべきだと強調し、明確な出力を提供し、問い合わせインターフェースを持ち、十分に文書化されていることが重要です。プレイブックは線形手順を強制し、ハード要件とソフト要件を区別すべきだとも述べています。将来的な課題として、より高速で決定論的、サンドボックス互換のオラクルスイートを開発し、明確なインターフェースと文書化を備えて LLM のコード生成をより信頼性高く導くことが挙げられています。

本文

ゼロ自由度LLMコーディング:実行可能オラクルを用いたアプローチ
ジョン・レゲール – 2026年3月26日


「信頼できないものは全部信用しない」

この時点で、ClaudeやCodexなどのLLMベースのコーディングエージェントを試したほとんどの人は、現在世代のモデルが極めて制限されたタスクに対して超人的な速度で優れた成果を出すことがあるという事実に気づいているでしょう。例えば:

  • コーディングエージェントは大規模かつ難解なAPI(LLVM IR など)を解析し、使えるコードを生成できる。
  • 実際のソフトウェアで非自明なバグを修正し、「そのまま適用可能」な状態にすることがある。

しかし同じツールは、混乱させるような方法で失敗したり、無味乾燥または意味不明なコードを出力したりするケースも頻繁にあります。LLM が何かを悪くやる選択肢を持っている場合、正しい決断が下されるとは信じられません。解決策は明白です:仕事を悪くやる自由度を排除すること。実行可能オラクルはそのためのソフトウェアツールです。


実行可能オラクル

最もシンプルな実行可能オラクルはテストケースですが、たとえ多くのテストケースがあっても弱い場合があります。Claude の C コンパイラを例に取ると、GCC の「トーチャーテストスイート」を通過した後でも、34 個の誤コンパイルバグが残っていました。CsmithYARPGen などのツールを組み込めば、それらのバグは検出されるでしょう。各ツールは暗黙に膨大なテストケース集合をエンコードしているからです。

この記事では、失敗を引き起こす自由度をできるだけ閉じ込めることについて論じます。ゼロ自由度は理想的ですが、それでも良い目標です。


例示シナリオ

シナリオ自由度オラクル結果
Claude の C コンパイラの誤コンパイル正確性Csmith, YARPGenバグ削減
生成コードの品質コード品質命令数オラクル(基準:
gcc -O0
最適化向上
データフロー転送関数精度 & 完全性精度/完全性を測るカスタムCLIツール高品質結果
JustHTML アーキテクチャソフトウェア構造手動リファクタリング + ファズラー + 性能オラクル構造改善

実行可能オラクルはどこで見つかる?

  • 正確性:テストスイート、ファズラー、プロパティベーステスター、ランタイムサニタイズ、静的解析器、リンター、強い型システム、形式検証器。
  • 性能:コンパイラ挿入計測、ランタイム計測、ヒーププロファイラー、ハードウェア性能カウンタ、回帰テストスイート。

これらのツールは LLM に提供されるべきで、フェーズを設けて(まず機能と正確性、次に性能)導入することが考えられます。


強固なメトリクス

LLM に目標を与える際には、システムをゲーム化させないようにしなければなりません。ゲーム化の例は以下の通りです:

  • 面倒なベンチマークを省く。
  • プログラムロジックに特定テストケースを硬直的にハードコーディングする。

複数のオラクルが解決空間を同時に制約すると、操作や不正行為が難しくなる(例:転送関数に対して完全性と精度の両方を要求)。これが「強固なメトリクス」です。


コントロールしにくい自由度

要素理由推奨アプローチ
ソフトウェア構造 / モジュラリティ / 保守性適切な実行可能オラクルが無い。人間の判断が必要プロンプト + 手動リファクタリング
重複 & 不要な複雑さ自動検出が難しい人間監督、スタイルチェッカー等
GUI の洗練度視覚的理解が必要手動介入または既存 UI を模倣
セキュリティファズラーは有効だが暗号不正使用を見逃すこともLLM が生成したコードをセキュリティクリティカルな場面で避ける

実務的考慮事項

理想的な実行可能オラクルは以下の特性を備えるべきです:

  • 高速、決定論的、ローカル、サンドボックス互換。
  • 解釈しやすい(例:コンパイラ警告で正確に行・列が分かる)。
  • 明確な CLI インターフェースを持つ (
    tool --help
    がある)。

LLM へのツール使用手順書を書く際のポイント:

  1. 必須ステップの直線的シーケンス を定義し、逸脱は許可しない。
  2. ハード vs ソフト要件を区別(例:テスト失敗=停止条件、小さな性能低下=容認範囲)。
  3. 異なるオラクルが矛盾したフィードバックを与えた場合の衝突解決方法を説明。

LLM は勤勉です。ツールが欠如または不適切に設定されていると、完全に新規に書き直すか不適切な代替品を使ってしまうことがあります。監視と修正アドバイスは、LLM が安定してツールを利用できるようになるまで不可欠です。


結論

我々の目標は LLM コーディングエージェントにゼロ自由度 を与えることです。これは高い理想ですが達成可能な目標です。制御されない自由度(正確性、性能、セキュリティ、構造など)ごとに、強力な自動オラクルが「フォース関数」として機能し、LLM を従わせます。モジュラリティ、保守性、可読性のような側面を測定・強制できるまで、現在世代の LLM コーディングエージェントが生成するコードは重要用途には適さないと言えます。

私はツールビルダーです。キャリアのほとんどをソフトウェア開発者向けツール作成に費やしてきました。コーディングエージェントと組み合わせたツール中心の工学がいかに強力になるかを知ることで啓示的な経験を得ました。LLM にとって有用なツールは、人間にも同様に有用であり、逆もまた然りです。

同じ日のほかのニュース

一覧に戻る →

2026/03/27 5:53

**Deploytarot.com – デプロイメントのタロットカードリーディング** 「デプロイプロジェクトに対する洞察に満ちた指針を、個別化されたタロットカードリーディングで得ましょう。」

## 日本語訳: 記事では、ソフトウェアデリバリーを一連のタスク、リスク、およびステークホルダーの視点として可視化する比喩的な「カードデッキ」を紹介しています。各カードは、A/Bテスト、AI統合、DB移行、サーバーレス移行などの特定のタスクとアイコンおよび簡潔な説明をペアにします。リスクカードでは、「どの指標が重要かについてゼロコンセンサス」や「カードが見ている」という不確実性を列挙しています。役割カードは、CEO、CISO、CTO、清掃係、クライアント、コンサルタント、請負業者、DBA、データサイエンティスト、デザイナー、DevOpsエンジニア、エンジニアリングマネージャー、人事、インターン、ジュニア開発者、オフショア開発者、プロダクトマネージャー、プロジェクトマネージャー、QAエンジニア、受付係、営業、スクラムマスター、セキュリティエンジニア、シニアデベロッパー、SRE、ステークホルダー、テックリード、VP of Engineering など多岐にわたるステークホルダーの各役割がデプロイメント決定をどのように見ているかを示す一文の逸話を提供します。 物語は「アーケナはあなたのスプリント速度を気にしない」と強調し、代わりに「時折その終点で崖がある」という潜在的な落とし穴をハイライトすることに焦点を当てています。 デッキは各引きごとに新たにシャッフルされますが、「戻ってくると覚えている」と説明され、過去の洞察を保持する動的システムであることを示唆しています。 速度よりもリスク認識を前面に押し出すことで、このモデルは多様な役割間で明確なコミュニケーションと整合性を維持し、よりレジリエントなデリバリープロセスを育むことを奨励します。

2026/03/26 0:46

**2025年に多くの制御室がシー・フロムグリーン(海泡色)を採用した理由は?** | 要因 | なぜ重要だったか | |------|-----------------| | **エルゴノミクス研究** | その年に公開された調査では、海泡色が目の疲労を軽減し、長時間の監視作業中に集中力を向上させることが示されました。 | | **省エネルギー動向** | この色は白や黄よりも自然光を反射しやすく、24時間稼働する環境で人工照明の必要性を低減します。 | | **ブランドアイデンティティ** | いくつかのテック大手が「グリーンファースト」サステナビリティイニシアチブを開始し、その理念に合わせて制御室も再設計されました。 | | **心理的影響** | 緑は落ち着きとバランスに結びついており、オペレーターが重要なシステムを管理する際には不可欠な特性です。 | | **規制ガイドライン** | 新たな安全基準では、状態インジケータの可視性を高めるカラースキームが推奨されており、海泡色は赤警報と衝突せずにその要件を満たしました。 | まとめると、エルゴノミクス科学、省エネルギー政策、企業ブランディング、心理研究、そして更新された規制の融合が、2025年の制御室にとって実用的でストレスの少ない選択肢として海泡色を押し上げました。

## Japanese Translation: 記事は、核施設や工業サイトでよく見られる特徴的な海藻緑色を第二次世界大戦時のファーバー・ビレン(Faber Birren)の産業用カラー安全コードに遡ります。2017年夏、著者はオークリッジのX‑10グラファイト炉(「ファットマン」研究のためにロスアラモスへ輸送されたプルトニウムを生成した24フィート四方のブロック)を訪れ、壁と制御パネルでビレンが推奨するライト/ミディアムグリーンが一貫して使用されていることに注目しました。ビレン(1919–1996)は1944年に国立安全協議会によって承認されたカラーコードを開発し、1948年までに世界中で採用されました。このコードは次のような色から構成されています: - **Fire Red** – 火災防止、緊急停止、可燃液 - **Solar Yellow** – 注意、物理的危険 - **Alert Orange** – 危険機械部品 - **Safety Green** – 救急装置、出口、洗眼ステーション - **Caution Blue** – 非安全通知または故障表示 - **Light Green** – 視覚疲労を軽減する壁色 同じスキームがハンフォードのB‑レイザー制御室にも見られます:下部壁にミディアムグリーン、機械にはミディアムグレー、火災防止にファイヤーレッド、低照度エリアにベージュ、床はライトです。ビレンは、このような機能的カラー使用が明るさを制御し、事故を減らし、メンテナンス基準を向上させ、労働士気を高めると主張しました。 ドイツの「ケルン橋緑(Cologne Bridge Green)」は、橋という工業用途で開発された海藻緑色の別例です。著者はまた、古い自動車部品リストに触発されて「Parts List」というフォントをデザインし、オイル交換待合室の雰囲気を呼び起こすことを目的としています。このフォントは彼女のウェブサイトで入手可能です。彼女はこれら歴史的安全色が今日どのように適用できるかを引き続き探求し、海藻緑の使用を現代施設に拡大する可能性や、「Parts List」フォントを産業美学を捉えるデザインツールとして推進する計画です。

2026/03/24 7:06

**クラウドフレアのGen 13サーバー:** コア数とキャッシュ容量を入れ替えて、パフォーマンスを2倍にしています。

## Japanese Translation: Cloudflare は、AMD EPYC 5th‑Gen「Turin」CPU と Rust ベースのリクエストハンドラ FL2 を搭載した新しい Gen 13 エッジサーバーをデプロイ完了しました。Turin はコア数が倍増(最大 192 コア、Gen 12 の 96 コアに対して)し、Zen 5 により IPC が向上、1 コアあたりの電力消費が約32%削減され、DDR5‑6400 メモリバンド幅をサポートします。チップは全コアで 384 MB の L3 キャッシュしか共有せず、1 コアあたり約 2 MB(Gen 12 の 3D V‑Cache を搭載した場合は 12 MB/コア)です。 元の FL1 ハンドラ(NGINX/LuaJIT)は Turin 上で L3 ミス率が高く、ミスサイクルが約350回に対しヒットは約50回と遅延が増大し、スループット向上にもかかわらずレイテンシが悪化しました。プリフェッチャーの調整、ワーカースケーリング、および NUMA コアアフィニティの最適化を行っても、スループットはわずか 5 % 未満にしか改善されませんでした。FL2 の軽量メモリアクセスパターンはこのボトルネックを解消し、Turin 上で Gen 12 に比べ約 50 % 低いレイテンシ、62 % 高いスループット、および FL1 より CPU あたり 2 倍のリクエスト数を実現します。 Gen 13 が Cloudflare のグローバルエッジネットワーク全体に完全展開されたことで、同社はサーバー数を減らしつつより多くのトラフィックを処理できるようになり、SLA に縛られたレイテンシを維持したままで最大 2 倍のスループットを達成します。これにより、パフォーマンス・ペー・ワットが約 50 % 改善され、ラック単位でのスループットは約 60 % 向上します。結果として CDN とクラウド顧客双方の運用コスト削減とカーボンインパクト低減に寄与します。