LLMの新バージョン、思考過程の表示やOpenAI Responses、サーバーサイドツール、よりスマートなログに対応
原文は Simon Willison により に公開されました。 このブログを購読する
今朝、LLM 0.32をリリースしました。プロジェクト開始以来、最も大きなアップデートです。新バージョンでは、思考過程(reasoning traces)の可視化、プロバイダー側で実行されるサーバーサイドツール、コンテンツアドレス方式に再設計されたSQLiteログ、新モデル、そしてOpenAI Responses APIによって実現した新機能に対応しました。あわせて、大幅なアップデートを含むllm-anthropicプラグインの新バージョンもリリースしています。
LLM CLIユーザー向けの主な新機能
推論モデルに対してLLMを実行すると、現在は思考過程が標準エラー出力に表示されるようになりました。これにより、別のツールにパイプする可能性のある標準出力に含めることなく、モデルが何を「考えている」かを確認できます。この表示をオフにするには-R/--hide-reasoningを追加してください。

LLMはGPT-5.6モデルファミリーに標準で対応しており、llm "prompt"で使われる新しいデフォルトモデルは、手頃ながら高性能なGPT-5.6 Lunaになりました。
LLMの呼び出しで、さまざまなプロバイダーが提供するサーバーサイドツールを利用できるようになりました。OpenAIはサーバーサイドツールとしてコード実行環境を提供しており、LLMでは次のようにその恩恵を受けるプロンプトを実行できます:
llm --tool CodeInterpreter 'Show current python and SQLite versions'
OpenAI向けにはWebSearchツールも用意されています。
llm-anthropicプラグインは、WebSearch、WebFetch、CodeExecution、そしてAnthropicMCPを追加します。使い方は次のとおりです:
llm -m claude-sonnet-5 -T 'AnthropicMCP("https://datasette.simonwillison.net/-/mcp")' \
'how many rows in the blog_blogmark table?'これにより、AnthropicのAPIとの単一のリクエスト/レスポンスの中で、私の新しいdatasette-mcpプラグインに対してMCP呼び出しが実行されます。
新しいllm openai endpointコマンドは、あらゆるOpenAI互換エンドポイントに対してワンライナーでプロンプトを実行するためのツールです。これらはログに記録されないため、LLM APIの世界における共通言語を話すあらゆる相手に対して、使い捨てのプロンプトを手軽に試すのに便利です。
以下は、uvx(LLMのインストール不要)経由で、ローカルホストのLM Studio APIで動作しているGemma 4 12Bに対して、このコマンドでプロンプトを実行する例です。ついでにllm-tools-quickjsツールプラグインも組み合わせています:
uvx --with llm-tools-quickjs \ llm openai endpoint http://localhost:1234/v1 -m google/gemma-4-12b \ -T QuickJS 'Use QuickJS to multiply 3434 * 2434' --td

Python APIの新機能
LLMのPython APIでは、これまで会話を作成してからメッセージを1つずつ送信する必要がありました。これは、各リクエストがそれ以前のメッセージの完全な履歴を運ぶというLLMの本質を抽象化したものでした。この抽象化が、一部の高度なユースケースではかえって邪魔になり始めていたため、新バージョンではmodel.prompt(messages=[])パラメータが導入され、次のように使えるようになりました:
import llm
from llm import user, assistant, system
model = llm.get_model("gpt-5.6-luna")
response = model.prompt(messages=[
system("You are a helpful pirate."),
user("What is the capital of France?"),
assistant("Paris, matey."),
user("And Germany?"),
])
print(response.text())以前のLLMは各プロンプトから文字列の反復可能なシーケンスを返していました。モデルが文字列のレスポンスを返す場合はうまく機能しましたが、モデルが進化していく奇妙な形を予測できていませんでした。現在、多くのモデルは思考テキスト、出力文字列、ツール呼び出し、さらには画像の添付などを混在させて返します。LLM 0.32では、代わりに次のようにできます:
for event in model.prompt("Explain cats").stream_events():
if event.type == "reasoning":
print(f"[thinking] {event.chunk}", end="", flush=True)
elif event.type == "text":
print(event.chunk, end="", flush=True)
else:
print(f"Other event: {event}")これらの機能を組み合わせることで、半ば標準となっているOpenAIのChat Completions APIの堅牢な実装をついに提供できるようになりました。これは新たにllm-chat-completions-serverプラグインとしてリリースしています:
llm install llm-chat-completions-server llm chat-completions-server --port 9000 # Server is now running on http://127.0.0.1:9000/v1
これで、新しいllm openai endpointコマンドを使って、そのサーバー経由でLLMに対してプロンプトを実行できます!
llm openai endpoint http://127.0.0.1:9000/v1 'hello' -m gpt-5.4-mini
この種のAPIでより大きな課題となるのがログです。リクエストごとにメッセージシーケンスが追記されていくパターンをサポートするのであれば、毎回重複するJSON全体をログに残すのは避けたいところです。
解決策は、Gitをモデルにした新しいコンテンツアドレス可能なメッセージストアです。その新しいスキーマはドキュメントで確認できますが、llm logsとllm logs --jsonの両コマンドは、この形式を再び扱いやすい形に変換するようにアップグレードされています。
その他の変更点
今回のリリースには、他にもたくさんの変更が含まれています。0.32のリリースノートはかなり網羅的で、0.32rc2、0.32rc、0.32a3、0.32a2、そして0.32a0のノートを合わせれば、不足はないはずです。
既存のLLMプラグインはすべて引き続き動作するはずですが、追加のモデルを提供するプラグインは、新しいストリーミングイベントシステムに完全に参加するために0.32へのアップグレードが必要になります。ドキュメントには、構造化メッセージとストリーミングイベントを使ったプラグインの実装ガイドがあります。
私自身のプラグインもいくつか更新しました:
- llm-anthropic 0.26はClaude 5ファミリーのモデルに対応し、さらに
WebSearch、WebFetch、CodeExecution、AnthropicMCPのサーバーサイドツールを追加しています。 - llm-geminiとllm-openrouter、そしてllm-mistralもほぼ対応完了で、近日中にリリース予定です。
LLMもいつの間にかエージェントフレームワークに
今回のリリースにおける低レベルなツール周りの変更の多くは、Datasette Agentのニーズによって推進されました。LLMの開発を始めた当初、「エージェント」という言葉の定義があまりに曖昧だったため、あえて使わないようにしていました。2025年9月に、「LLMエージェントは目標を達成するためにループ内でツールを実行する」という定義が十分に定着したと考えるようになり、この言葉を避けるのをやめました。
ツールチェーンは、人間の承認のために一時停止したり、保存されたメッセージ履歴から再開したりできるようになりました — いずれもDatasette Agentに必要な機能です。
今のLLMを見ると、かなりエージェントらしくなってきたと感じます。異なる提供元の異なるツールを異なるモデルとワンライナーで自由に組み合わせられるCLIユーティリティがあり、さらにDatasette Agentやllm-coding-agentのようなシステムを構築できるほど強力なPythonライブラリを備えているのは、なかなか面白いことです。
LLMの次のバージョンでは、「エージェント」という概念をコアライブラリに組み込むかもしれません。まだどのような形になるか模索中です。
記事をランダムに読む
コメント
ログインしてコメントする