Cloudflare は Workers プラットフォーム向けの OAuth プロバイダーライブラリをリリースしたが、これは主に Claude AI を使用して書かれたものであり、ソフトウェア開発における人工知能の役割について激しい議論を巻き起こしている。 Cloudflare のリードエンジニアである Kenton Varda 氏が主導したこのプロジェクトは、主に AI の支援によって構築された本格的なセキュリティライブラリの最初の主要な例の一つである。
このライブラリは Cloudflare Workers 向けに OAuth 2.1 標準を実装しているが、注目すべきはその機能だけではない。それがどのように作られたかである。自らを元 AI 懐疑論者と称する Varda 氏は、慎重なプロンプトと反復的な改良を通じて、コードの大部分を生成するために Claude Sonnet 3.7 を使用した。透明性のため、プロンプトと AI とのやり取りを含む開発プロセス全体が、プロジェクトのコミット履歴に記録されている。
主要技術詳細
- プラットフォーム: Cloudflare Workers
- 実装標準: OAuth 2.1
- プログラミング言語: TypeScript/JavaScript
- リポジトリ:完全なコミット履歴を持つオープンソース
- セキュリティレビュー: RFC 相互参照検証完了
専門家の監督は依然として重要
AI の印象的な出力にもかかわらず、このプロジェクトは開発プロセス全体を通じて広範囲にわたる人間の専門知識を必要とした。 Varda 氏と彼のチームはすべてのコード行を徹底的にレビューし、実装を関連する RFC と照合し、AI が単独では解決できなかったいくつかのバグを手動で修正した。あるコミットメッセージには次のように記されている:「 Claude は前のコミットでバグがあった。バグを修正するために何度もプロンプトしたが、間違ったことを続けていた」。
この経験は、現在の AI コーディングツールの重要な制限を浮き彫りにしている。それらは洗練されたコードを生成できるが、エラーが導入されると、デバッグや複雑な問題解決にしばしば苦労する。開発チームは、既存のコンテキスト内で AI の間違いを修正しようとするよりも、最初から会話を再開する方がしばしば効果的であることを発見した。
観察された AI の限界
- 複雑な問題のデバッグ:手動での介入が必要
- コンテキストの保持: Claude は複数回の反復処理後にコンテキストを失う
- 新規問題の解決:標準的な実装よりも効果が低い
- コードのリファクタリング:既存の複雑なコードベースに対する能力が限定的
コミュニティの反応は AI の役割について分裂
この発表により、開発者コミュニティは明確な陣営に分かれた。支持者は、これを経験豊富なエンジニアによって適切に監督された場合、AI が開発を大幅に加速できることの証明と見ている。 Varda 氏は、このプロジェクトが AI の支援により数日で完了したと推定しており、手作業で書いた場合に必要だったであろう数週間または数ヶ月と比較している。
しかし、懐疑論者はソフトウェア業界への広範囲な影響について懸念を提起している。雇用機会の減少の可能性を心配する者もいれば、AI 生成コードが生産性の錯覚を生み出すのではないかと疑問視する者もいる。批判者は、必要な広範囲なレビュープロセスが実際には従来のコーディング方法と比較して開発を遅らせる可能性があると主張している。
「すべての行が徹底的にレビューされ、それらの RFC に関する以前の経験を持つセキュリティ専門家によって関連する RFC と照合された。私は自分の懐疑論を検証しようとしていた。結果的に自分が間違っていたことを証明することになった」
開発期間の比較
- AI 支援による開発:数日
- 手動開発の推定期間:数週間から数ヶ月
- 使用した AI モデル: Claude Sonnet 3.7
- 開発コスト:2桁の USD
AI 支援開発の限界
このプロジェクトは、現在の AI コーディング能力の強みと弱みの両方を明らかにした。AI は OAuth のような十分に文書化された標準の実装において優秀であった(広範囲な訓練データが存在する場合)が、新しい問題や複雑なデバッグシナリオでは苦労した。 Varda 氏は、特に既存の複雑なコードベースのリファクタリングにおいて、Workers Runtime 自体で作業する際には AI の支援があまり効果的でなかったと述べた。
このプロジェクトの成功は、いくつかの要因に大きく依存しているようである:明確に定義された仕様(OAuth 標準)、広範囲な訓練データの利用可能性、そして最も重要なのは、プロセス全体を通じた専門的な人間の監督である。これは、AI 支援コーディングが完全に新しいソリューションを作成するよりも、確立されたパターンを実装する際に最も効果的である可能性を示唆している。
ソフトウェア開発への将来的な影響
Cloudflare の実験は、AI がソフトウェア開発の実践をどのように再構築するかの一端を示している。エンジニアを完全に置き換えるのではなく、この技術は人間がアーキテクチャ、設計決定、品質保証に集中している間に、日常的な実装タスクを処理できる洗練されたツールに進化しているようである。
成功と失敗の両方を記録したプロジェクトの透明性は、同様のアプローチを検討している他のチームにとって貴重な洞察を提供している。それは、AI が特定のタイプの開発作業を大幅に加速できる一方で、特に認証ライブラリのようなセキュリティクリティカルなコンポーネントにおいて、出力を指導し、レビューし、検証する経験豊富なエンジニアの必要性が依然として最重要であることを実証している。
AI コーディングツールが改善し続ける中、 Cloudflare OAuth ライブラリは、特にセキュリティと信頼性が譲れない要件であるプロジェクトにおいて、AI 支援ソフトウェア開発のベストプラクティスを確立するための重要なケーススタディとして機能するかもしれない。
参考: Commits