LLM 0.32 发布:新增推理轨迹、OpenAI Responses、服务器端工具与智能日志
LLM 0.32 是该项目自发布以来最重要的更新,新增推理轨迹显示、服务器端工具支持、内容可寻址日志,并默认使用 GPT-5.6 Luna 模型,标志着 LLM 正演变为一个智能体框架。
LLM 的新版本增加了对推理轨迹、OpenAI Responses、服务器端工具和更智能日志记录的支持。2026 年 8 月 4 日,我发布了 LLM 0.32,这是该项目自首次启动以来最重要的新版本。
新版本支持可见的推理轨迹、服务器端提供商工具、重新设计的内容可寻址 SQLite 日志、新模型,以及由 OpenAI Responses API 启用的新功能。
我还发布了 llm-anthropic、llm-gemini 和 llm-openrouter 插件的新版本,每个插件都有实质性的更新。
LLM CLI 用户的核心功能:现在,针对推理模型运行 LLM 时,其推理轨迹会显示到标准错误输出,这样你就能看到模型在“思考”什么,而不会将这些信息混入可能通过管道传给其他工具的标准输出。添加 -R/--hide-reasoning 参数可关闭此功能。
LLM 开箱即用地支持 GPT-5.6 模型系列,新的默认模型是廉价但功能强大的 GPT-5.6 Luna,用于 llm "prompt" 命令。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 以前要求你创建一个对话,然后一次发送一条消息。这是对 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 工具能够将来自不同来源、不同模型的不同工具以一行命令混合匹配,并且包含一个足够强大的 Python 库来构建像 Datasette Agent 和 llm-coding-agent 这样的系统,这确实很酷。
也许 LLM 的下一个版本会将“智能体”的概念融入核心库。我仍在思考那会是什么样子。
本文为机器翻译辅以 AI 润色,仅供参考。原始事实以原文为准。