You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I can't for the life of me figure out how to get a local model to do "tool search".
When a lot of tools are available in codex, the tools are not send to the LLM with every request, but a tools search is expected from Codex in order to include them on the next turn.
This behavior seems to be largely undocumented, all i know is that it comes natural to most OpenAI models, and my local Qwen can't even see a tool called tool search, it only sees the default internal toolset exposed (web_search and the like)
I see in requests that "tool_choice": "auto", is added in LM Studio in my case, but i doubt that is actually related.
As per the OpenCodex docs, there should just be proper support for this, but maybe i am just missing something really obvious, or my models are too dumb.
What should the documentation explain instead?
How to allow tool_search when a lot of MCP tools are available to codex.
OpenCodex does not create or enable deferred tool search from tool_choice: "auto". It only relays a type: "tool_search" tool that Codex already included in the incoming Responses request, exposing it to a routed chat/local model as a normal function named tool_search, then converting the call back into a tool_search_call.
That gives two distinct failure boundaries:
If the redacted incoming /v1/responses request has no type: "tool_search" entry, the Codex client/session did not advertise deferred tool discovery; OpenCodex cannot invent it.
If the entry is present and the routed request contains a tool_search function but the local model never calls it, that is model instruction/tool-use behavior rather than an OpenCodex transport toggle.
I will add a focused troubleshooting section showing what to inspect in a redacted request and clarifying that LM Studio's tool_choice: "auto" is not the enable switch.
Documentation fix is now in PR #1878. It documents the incoming tool_search declaration, routed function mapping, continuation flow, privacy-safe diagnostics, and why tool_choice: "auto" is not the enable switch. The docs production build passes; the issue will close when the PR lands.
로컬 모델(Qwen, LM Studio)에서 Codex deferred tool_search 를 쓰고 싶은데 문서가 없다. MCP 도구가 많으면 매 요청에 안 실리고 tool_search 다음 턴에 실린다. OpenAI는 자연스럽고 로컬 모델은 tool_search 자체를 못 본다. 문서 요청이라 22다.
코드는 있다. src/responses/parser.ts 가 type tool_search 를 name tool_search 함수로 바꾼다. 채팅 라인이 그 경로다. src/adapters/tool-catalog-nudge.ts 는 code mode에서 중첩 헬퍼를 설명하지만 tool_search 사용법을 사용자 문서로 쓰지 않는다.
라우티드 행은 normalizeRoutedCatalogEntry 가 supports_search_tool true 로 deferred 발견을 광고한다. 클라이언트가 type tool_search 를 내고, 로컬 OpenAI-호환 서버가 그 타입을 모르면 모델 카탈로그에 함수가 안 보인다. LM Studio의 tool_choice auto 는 별개다.
Responses 패스스루를 타면 #1950 이다. 번역이 없어 모델이 tool_search 를 못 본다. 채팅 라인인데도 안 보이면 로컬 서버가 비표준 도구 타입을 드롭하는지 확인해야 한다.
해결방안
문서에 세 줄을 적는다. Codex는 MCP를 미뤄 두고 tool_search 로 다음 턴에 싣는다. OpenCodex 채팅 라인은 그 타입을 함수로 바꾼다. Responses 패스스루와 로컬 서버가 비표준 타입을 버리면 모델은 기본 도구만 본다. 코드 패치는 이 이슈의 본문이 아니다. #1950 을 링크한다. 새 설정 키는 추측하지 않는다.
tool_search는 OpenCodex 설정 키가 아님. Codex가 MCP를 미뤄두고 다음 턴에 싣는 클라이언트 기능임. OpenCodex는 들어온 Responses 요청에 type: "tool_search"가 있을 때만 채팅 라인에서 함수 tool_search로 바꿔 릴레이함. LM Studio의 tool_choice: "auto"는 스위치 아님.
Activity
Ingwannu commentedon Aug 16, 2026
Confirmed as a documentation gap.
OpenCodex does not create or enable deferred tool search from
tool_choice: "auto". It only relays atype: "tool_search"tool that Codex already included in the incoming Responses request, exposing it to a routed chat/local model as a normal function namedtool_search, then converting the call back into atool_search_call.That gives two distinct failure boundaries:
/v1/responsesrequest has notype: "tool_search"entry, the Codex client/session did not advertise deferred tool discovery; OpenCodex cannot invent it.tool_searchfunction but the local model never calls it, that is model instruction/tool-use behavior rather than an OpenCodex transport toggle.I will add a focused troubleshooting section showing what to inspect in a redacted request and clarifying that LM Studio's
tool_choice: "auto"is not the enable switch.Ingwannu commentedon Aug 17, 2026
Documentation fix is now in PR #1878. It documents the incoming
tool_searchdeclaration, routed function mapping, continuation flow, privacy-safe diagnostics, and whytool_choice: "auto"is not the enable switch. The docs production build passes; the issue will close when the PR lands.lidge-jun commentedon Aug 19, 2026
리뷰 · 우선순위 22 / 80
로컬 모델(Qwen, LM Studio)에서 Codex deferred tool_search 를 쓰고 싶은데 문서가 없다. MCP 도구가 많으면 매 요청에 안 실리고 tool_search 다음 턴에 실린다. OpenAI는 자연스럽고 로컬 모델은 tool_search 자체를 못 본다. 문서 요청이라 22다.
코드는 있다. src/responses/parser.ts 가 type tool_search 를 name tool_search 함수로 바꾼다. 채팅 라인이 그 경로다. src/adapters/tool-catalog-nudge.ts 는 code mode에서 중첩 헬퍼를 설명하지만 tool_search 사용법을 사용자 문서로 쓰지 않는다.
라우티드 행은 normalizeRoutedCatalogEntry 가 supports_search_tool true 로 deferred 발견을 광고한다. 클라이언트가 type tool_search 를 내고, 로컬 OpenAI-호환 서버가 그 타입을 모르면 모델 카탈로그에 함수가 안 보인다. LM Studio의 tool_choice auto 는 별개다.
Responses 패스스루를 타면 #1950 이다. 번역이 없어 모델이 tool_search 를 못 본다. 채팅 라인인데도 안 보이면 로컬 서버가 비표준 도구 타입을 드롭하는지 확인해야 한다.
해결방안
문서에 세 줄을 적는다. Codex는 MCP를 미뤄 두고 tool_search 로 다음 턴에 싣는다. OpenCodex 채팅 라인은 그 타입을 함수로 바꾼다. Responses 패스스루와 로컬 서버가 비표준 타입을 버리면 모델은 기본 도구만 본다. 코드 패치는 이 이슈의 본문이 아니다. #1950 을 링크한다. 새 설정 키는 추측하지 않는다.
이 댓글은 grok-bot이 작성했습니다
lidge-jun commentedon Aug 19, 2026
지원 경로.
tool_search는 OpenCodex 설정 키가 아님. Codex가 MCP를 미뤄두고 다음 턴에 싣는 클라이언트 기능임. OpenCodex는 들어온 Responses 요청에type: "tool_search"가 있을 때만 채팅 라인에서 함수tool_search로 바꿔 릴레이함. LM Studio의tool_choice: "auto"는 스위치 아님.문서:
docs-site/src/content/docs/guides/codex-integration.md→ Explicit tool_search troubleshooting.#1878로 오늘 머지됨.로컬 Qwen이 기본 툴만 보면: (1) Codex가
tool_search를 안 보냄 (2) Responses 패스스루라 변환 없음 →#1950(3) 함수는 갔는데 모델이 안 부름. 코드모드면exec의tools/ALL_TOOLS로도 MCP를 찾을 수 있음.이 이슈는 문서 요청이라 여기까지. 닫음. 남은 코드 이슈는
#1950.이 댓글은 grok-bot이 작성했습니다