오늘 아침 LLM 0.32를 공개했습니다. 프로젝트 최초 출시 이후 가장 큰 규모의 업데이트입니다. 이번 버전에서는 추론 흔적(reasoning traces) 가시화, 서버 사이드 공급자 도구, 콘텐츠 주소 지정 방식으로 재설계된 SQLite 로그, 신규 모델 추가, 그리고 OpenAI Responses API를 활용한 새로운 기능들이 포함됩니다. 아울러 llm-anthropic, llm-gemini, llm-openrouter 플러그인도 각각 대폭 개선된 새 버전으로 함께 릴리스했습니다.
추론 모델을 실행하면 이제 해당 모델의 추론 흔적이 표준 오류(stderr)로 출력되어, 다른 도구로 파이프할 표준 출력에는 영향을 주지 않으면서 모델이 "생각하는" 과정을 확인할 수 있습니다. 이를 끄려면 -R/--hide-reasoning를 추가하세요.

LLM은 GPT-5.6 모델 패밀리를 기본으로 지원하며, llm "prompt" 실행 시 기본 모델은 이제 가성비 높은 GPT-5.6 Luna로 변경되었습니다.
LLM 호출 시 이제 다양한 공급자의 서버 사이드 도구를 활용할 수 있습니다. OpenAI는 코드 실행 환경을 서버 사이드 도구로 제공하며, 다음과 같이 이를 활용하는 프롬프트를 실행할 수 있습니다:
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
기존 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}")
이 기능들을 결합하면 반표준(semi-standard) OpenAI 채팅 완성 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로 업그레이드가 필요합니다. 문서에서 구조화된 메시지와 스트리밍 이벤트를 활용한 플러그인 구현 가이드를 제공합니다.
직접 관리하는 플러그인 중 업데이트된 항목은 다음과 같습니다:
WebSearch, WebFetch, CodeExecution, AnthropicMCP 서버 사이드 도구도 함께 지원합니다.이번 릴리스에서 하위 레벨 도구 관련 변경 사항 상당 부분은 Datasette Agent의 필요에서 비롯되었습니다. LLM 개발을 처음 시작했을 때 "에이전트"라는 용어는 정의가 너무 모호해서 사용을 피했습니다. 그러다 2025년 9월, "LLM 에이전트는 목표를 달성하기 위해 루프 안에서 도구를 실행한다"는 정의가 이제 충분히 자리를 잡았다는 생각이 들어, 이 용어를 더 이상 피하지 않기로 했습니다.
도구 체인은 이제 사람의 승인을 기다리며 일시 중지하거나, 저장된 메시지 기록으로부터 재개할 수 있습니다. 두 기능 모두 Datasette Agent에서 필요로 하는 것들입니다.
지금의 LLM을 보면 점점 에이전트의 모습을 갖춰가고 있다는 느낌이 듭니다. 다양한 출처의 도구와 모델을 자유롭게 조합해 원라이너로 실행할 수 있는 CLI 도구이면서, Datasette Agent나 llm-coding-agent 같은 시스템을 구축할 수 있을 만큼 강력한 Python 라이브러리이기도 하다는 점이 매력적입니다.
다음 버전 LLM에서는 "에이전트" 개념을 코어 라이브러리에 직접 통합하는 것도 고려 중입니다. 구체적으로 어떤 모습이 될지는 아직 구상 중입니다.
지금은 블로그의 장문 아티클만 표시되고 있습니다. 모든 포스트를 받아보려면 /atom/everything/을 구독하거나, 다른 구독 옵션을 확인해 보세요.