決定論的 vs 確率的コード生成:BunのVibe-Coded Rust変換がレッドフラグを引き起こす理由

Noah Hall氏は、The Tech Enablerへの寄稿で、決定論的コード生成と確率的コード生成の間に明確な線引きを行っている。彼はBunによる最近のvibe-codedな100万行のコードベースのZigからRustへの変換を戒めの話として取り上げている。彼の核心的な主張は、決定論的システムは一貫性のあるレビュー可能な結果を生み出すが、LLMは不確実性をもたらし、コードレビューを大規模に行うことを不可能にするというものだ。
決定論的コード生成
Hall氏は確立された決定論的ツールを挙げている:Python 2→3移行のためのPythonの2to3、Elm、PureScript、TypeScriptなど常に同じJavaScriptを生成するトランスパイラ。彼自身の言語DerwはJavaScript、TypeScript、または英語を出力でき、TeganはJavaScriptまたはGoを出力、MojieはJavaScript、Python、または英語を対象としている。すべてASTからASTへの変換に基づいており、同じ入力に対して常に同じ出力が得られる。一貫性が重要な理由:「バグが一貫していれば修正できる。バグが一貫していなければ、修正は指数関数的に困難になる。」
確率的コード生成
LLMは実行ごとに出力が変化する——時にはA、時にはB。Hall氏は3年前にパロディとしてneuro-lingoを作成した。人間は関数シグネチャとコメントのみを書き、LLMがコンパイルのたびに実装を新たに生成する。例:
function add(a: number, b: number): number {
// Add two numbers together
}
function main() {
// Print "Hello World" to the console
// Print the result of add(2, 3)
}「neuro-lingoがコンパイルされるたびに、コードはLLMによって新たに生成される。毎回少しずつ異なる。時にはバグが混入する。時にはきれいでシンプルだ。時には混沌としている。」Hall氏は、完全にAI駆動のコードフローはまさにこれを行っているが、人間の責任のもとで本番環境にリリースしていると主張する。
「テストがある」という誤謬
テストだけでは品質を保証できない。Hall氏はSQLiteを最もテストされたコードベースとして挙げている。Cコード155.8 KSLOCに対してテストコード92,053.1 KSLOC(590倍)。100%のブランチカバレッジ、数百万のテストケース、広範なテストハーネスにもかかわらず、SQLiteは依然として人間のレビューに依存している。「人間が9日間で100万行の変更をレビューすることは不可能だ。Bunはmasterにマージしたコードをレビューしていない。」
Hall氏は、決定論的コード生成であっても検証が必要であり、確率的生成は行数に比例してリスクを生み出すと結論付けている。ソース記事では各例についてさらに深く掘り下げている。
📖 全文を読む: HN AI Agents
👀 See Also

AIを禁止する代わりに、教授が学生と授業の契約書を作成
ある科学教授は、AIを完全に禁止するのではなく、学生との間で許容されるAI利用を定義するクラスルーム契約を作成しました。この契約は透明性、帰属、説明責任をカバーしています。

NYTマガジン、小規模ビジネスでのOpenClaw実用事例を取材 — Redditから共有されたギフト記事
New York Times Magazineの記事で、OpenClawのユーザーがビジネスでのAIエージェント活用について語っています。元々はRedditの投稿から始まりました。無料ギフトリンク付き。

OpenClaw開発者、Driftwatch V3ビルド中にコンテキスト圧縮の問題を報告
OpenClawの開発者がDriftwatch V3ビルドのスプリント2〜4を完了しましたが、コンテキスト圧縮の問題によりAIエージェントのメモリがセッション中に消去され、スプリントの要約を使用した手動介入による進捗の復元が必要となりました。

OpenClawユーザーがOpenRouter経由で1億4300万トークンを94ドルで処理したと報告
RedditユーザーがOpenClawマルチエージェントパイプラインを実行し、1億4300万トークンを94.16ドルで処理。OpenRouter経由のルーティングと特定の設定最適化により、約0.66ドル/100万トークンのコストを達成。