AI機能:自動検証によるランタイムコード生成

AI Functionsは、Strands Agents SDK上に構築されたStrands Labsの新プロジェクトで、継続的な自動検証を伴う実行時AIコード生成を可能にします。人間が統合するためのテキストを生成するだけでなく、呼び出し時にアプリケーション内で実行されるコードを生成し、DataFrame、Pydanticモデル、データベース接続などのネイティブなPythonオブジェクトを返します。
AI Functionsの仕組み
中核となる抽象化は@ai_functionデコレータです。実装コードの代わりに自然言語の仕様をdocstringに記述したPython関数を作成します。関数が呼び出されると、デコレータが呼び出しを傍受し、docstringからプロンプトを構築(引数を置換)、LLMに送信し、生成されたコードをPythonプロセス内で実行し、結果をネイティブオブジェクトとして返します。
以下はソースからの基本的な例です:
from ai_functions import ai_function
@ai_function
def translate_text(text: str, lang: str) -> str:
"""
以下のテキストを指定言語に翻訳します:{lang}。
{text}
"""
result = translate_text("The quarterly results exceeded expectations.", lang="French")
重要な差別化要素:自動検証
重要な機能は事後条件です。これは正しい出力がどのようなものかを定義するプレーンなPythonアサーションです。これらはデプロイ前だけでなく、すべての関数呼び出しで実行されます。検証が失敗すると、システムはエラーをフィードバックとして自動的に再試行します。人間は生成されたコードを検査せず、事後条件が毎回検証を処理します。
Software 3.1の概念
この記事は、Andrej Karpathyのフレームワーク(Software 3.0は「人間がプロンプトし、LLMが生成し、人間が検証」)からの進化として「Software 3.1」と位置付けています。AI Functionsは「人間が仕様を定義し、LLMが生成・実行し、機械が検証する(実行時に)」を表します。実行モデルは根本的に異なります:LLMは人間が統合するためのテキストを生成するのではなく、アプリケーション内で直接実行されるコードを生成します。
これにより、3つの側面が同時に変化します:AIがソフトウェアのどこに適合するか(開発時だけでなく実行時)、何を生成するか(シリアライズされたテキストではなくメソッドを呼び出せるライブオブジェクト)、どのように信頼するか(一度限りの人間のレビューではなく継続的な自動検証)。
📖 完全なソースを読む: HN AI Agents
👀 See Also

SkyClaw: Rustベースの自律型AIエージェントランタイム
SkyClawはRustで構築された自律AIエージェントランタイムで、7.1MBのバイナリサイズ、14MBのアイドル時RAM使用量、1秒未満の起動時間を実現しています。自律性、堅牢性、そして残酷な効率性を含む5つのエンジニアリング原則に基づいて動作します。

Claude向けオープンソースSQLiteベース永続メモリシステム
開発者が、Claudeのセッションからチェックポイントで知識を抽出し、SQLiteに保存し、新しいセッションで再構築して会話間のコンテキストを維持する、GPLライセンスのローカルシステム「memchat」をリリースしました。

bunx ccusage によると18,450ドルのクレジットが消失 — フラットプランがコストを吸収
r/ClaudeAIのユーザーがbunx ccusageを実行し、月額€400の定額プランで5月に$18,450相当のクレジットを使用したことを発見 — 入力2億4800万トークン、出力4200万トークン、キャッシュリード込みで217億トークン。

Constrails:AIエージェント向け早期アルファ版外部ガバナンスレイヤー
Constrailsは、AIエージェント向けの外部ランタイムガバナンスレイヤーであり、エージェントとそのツールの間に制御層を配置することで、機能チェック、リスクスコアリング、ポリシー評価、監査ログ記録を実装します。この初期アルファ版プロジェクトは、制御をエージェント自体の外部に移すことで安全性の問題に対処することを目指しています。