Simon Willison ★ 83 4 min

New release of LLM adds support for reasoning traces, OpenAI Responses, server-side tools, and smarter logging

🔗 https://simonwillison.net/2026/Aug/4/new-release-of-llm/

📌 【LLM 0.32 重大更新】支援推理軌跡與伺服器端工具,LLM 正向 Agent 演進

TL;DR:LLM 0.32 引入推理軌跡可視化、OpenAI Responses 與伺服器端工具支援,大幅強化 Agent 實作能力。

Simon Willison 發布了 LLM 專案自啟動以來最重要的版本——0.32。這次更新不僅是功能堆疊,更從底層架構重新思考了對話紀錄的儲存方式,並讓 LLM 工具鏈更具備「Agent(代理)」的特質。

🧩 推理過程不再是黑盒,可獨立於標準輸出顯示

隨著推理模型(Reasoning Models)成為主流,觀察模型的「思考過程」變得至關重要。

  • 推理軌跡可視化:現在 LLM 在執行推理模型時,會將推理軌跡(Reasoning Traces)導向標準錯誤輸出(stderr)。
  • 工程師優勢:這讓開發者可以在不干擾標準輸出(stdout)的情況下,直接在終端機看到模型的思考邏輯,非常適合需要將輸出導向其他工具(pipe to another tool)的自動化流程。
  • 自訂控制:若不需要看到這些資訊,可以使用 -R--hide-reasoning 參數關閉。

🛠️ 從單純的 Prompt 到強大的工具調用(Tool Use)

LLM 現在能更流暢地整合來自不同供應商的伺服器端工具(Server-side tools),這對建構複雜工作流至關重要。

  • OpenAI 與 Anthropic 的整合
    • OpenAI 提供程式碼執行環境(Code execution environment)與網頁搜尋(WebSearch)工具。
    • llm-anthropic 插件現在支援 WebSearch、WebFetch、CodeExecution 以及 Anthropic MCP。
  • MCP 協定整合:透過 Anthropic MCP,LLM 可以在單次請求中,對 datasette-mcp 插件發起 MCP 調用,實現更深層的互動。
  • 一鍵測試相容端點:新增 llm openai 指令,可以用單行指令對任何符合 OpenAI API 規範的端點進行測試。

📊 採用類似 Git 的內容定址(Content-addressable)儲存機制

隨著模型回傳的內容日益複雜(包含推理文字、工具調用、圖片附件等),傳統的儲存方式已不足以應付。

  • 解決重複紀錄問題:在對話模式中,每次請求都會攜帶完整的歷史紀錄,若傳統儲存會導致大量重複的 JSON 資料。
  • 新的訊息儲存設計:新版本採用了模仿 Git 的「內容定址訊息儲存(Content-addressable message store)」,能更高效地處理重複的訊息序列。
  • 向下相容llm logs 指令已升級,能將新格式轉換回易於閱讀的格式。

🤖 邁向 Agent 時代:工具鏈與人類審核

作者提到,LLM 的設計正逐漸呈現出「Agent 形態」:

  • 定義進化:作者現在認同「LLM Agent 是透過循環執行工具來達成目標」的定義。
  • 支援中斷與恢復:新的工具鏈支援「等待人類審核(Human approval)」並從儲存的訊息歷史中恢復,這對於開發如 Datasette Agent 這類複雜代理系統是必要的。
  • API 抽象層升級:Python API 現在支援 model.prompt(messages=[]) 參數,讓開發者能直接操作訊息序列,而非受限於過於簡化的對話抽象。

🎯 實務啟示

對於需要開發 Agent 系統的工程師,LLM 0.32 提供了更底層、更靈活的控制權。透過支援 MCP 協定與更精細的訊息管理,開發者可以更輕鬆地處理複雜的工具調用與長對話歷史,而不必擔心資料冗餘或輸出格式混亂。

🔗 來源

#LLM #AI #OpenAI #Anthropic #Agent #MCP #MachineLearning #Python #OpenSource #SoftwareEngineering

原始資料 Simon Willison · 收集於 2026-08-05
來源原標題
New release of LLM adds support for reasoning traces, OpenAI Responses, server-side tools, and smarter logging
作者
Simon Willison
原始標籤
blog
原始連結
https://simonwillison.net/2026/Aug/4/new-release-of-llm/

摘要原文

I released LLM 0.32 this morning, the most significant new version of LLM since the initial launch of the project. The new version includes support for visible reasoning traces, server-side provider tools, redesigned content-addressable SQLite logs, new models, and new features enabled by the OpenAI Responses API. I also released a new version of the llm-anthropic plugin with substantial updates of its own. Running LLM against reasoning models now displays their reasoning traces to standard error, so you can see what they are “thinking” without that information being included in the standard output that you might pipe to another tool. Add -R/--hide-reasoning to turn this off. LLM includes support out-of-the-box for the GPT-5.6 model family , and the new default model used with llm "prompt" is now the inexpensive but capable GPT-5.6 Luna . LLM calls can now use server-side tools from various providers. OpenAI provide a code execution environment as a server-side tool; LLM can now run prompts that benefit from that like so: OpenAI also gets a WebSearch tool. The llm-anthropic plugin adds WebSearch , WebFetch , CodeExecution , and AnthropicMCP , which looks like this: That causes Anthropic to execute MCP calls against my new datasette-mcp plugin as part of a single request/response interaction with their API. The new llm openai endpoint command provides a tool for executing prompts against any OpenAI compatible endpoint as a one-liner. These aren’t logged, which makes this a handy tool for running one-off prompts against anything that speaks the lingua franca of the LLM API world. Here’s how I use that to run prompts against Gemma 4 12B running in my localhost LM Studio API, via uvx (no LLM installation required) and mixing in the llm-tools-quickjs tool plugin for good measure: LLM’s Python API previously required you to create a conversation and then send messages to it one at a time. This was an abstraction over the true nature of LLMs, where each request carries a complete history of the messages that came before it. That abstraction started to get in the way for some more advanced cases, so the new release introduces a model.prompt(messages=[]) parameter that can be used like this: LLM previously returned an iterable sequence of strings from each prompt. This worked great when models returned a string response, but failed to predict the weird shape that models would evolve towards. Today many models return a mix of reasoning text, output strings, tool calls, and even image attachments. With LLM 0.32 you can do this instead : Combine these features and we can finally provide a robust implementation of the semi-standard OpenAI chat completions API, which I’ve now released as the llm-chat-completions-server plugin: Now you can run prompts against LLM via that server, using the new llm openai endpoint command! The bigger challenge with that kind of API concerns logging. If we’re going to support the pattern where the message sequence is appended to on every request, ideally we can avoid logging all of that duplicate JSON for every turn. The solution is the new content-addressable message store , modeled after Git. You can see the new schema for that in the documentation , but the llm logs and llm logs --json commands have both been upgraded to convert that format back into something that’s easy to consume. There is a whole lot more in this release. The 0.32 release notes are pretty comprehensive, and the notes for 0.32rc2 , 0.32rc , 0.32a3 , 0.32a2 , and 0.32a0 should fill in any gaps. Existing LLM plugins should all continue to work, but plugins that provide extra models will need to be upgraded to 0.32 in order to participate fully in the new streaming events system. There’s a guide to implementing plugins with Structured messages and streaming events in the documentation. I’ve updated some of my own plugins: Quite a few of the lower-level tools changes in this release were driven by the needs of Datasette Agent . When I started work on LLM, the term “agent” had such a vague definition that I refused to use it. In September 2025 I came around to the idea that " An LLM agent runs tools in a loop to achieve a goal " is well established enough now that I could stop avoiding the term entirely. Tool chains can now pause for human approval and resume from a stored message history —both needed by Datasette Agent. Looking at LLM today it’s beginning to look very agent-shaped to me. There’s something neat about having a CLI utility that can mix and match different tools from different sources with different models all as a one-liner, and that includes a Python library powerful enough to build systems like Datasette Agent and llm-coding-agent . Maybe the next version of LLM will bake the concept of an “agent” into the core library. I’m still trying to figure out what that would look like. This is New release of LLM adds support for reasoning traces, OpenAI Responses, server-side tools, and smarter logging by Simon Willison, posted on 4th August 2026 . Part of series New releases of LLM Previous: Stateless MCP has recaptured my interest (and inspired mcp-explorer and datasette-mcp) Sponsor me for $10/month and get a curated email digest of the month's most important LLM developments.

tencent/hy3:free 自動生成