tools.toolSearch에 의존하지 않습니다.
OpenClaw 실행에 활성화하면 모델은 기본적으로 하나의 tool_search_code 도구를
받습니다. 이 도구는 격리된 Node 하위 프로세스에서 openclaw.tools 브리지를 통해
짧은 JavaScript 본문을 실행합니다.
턴 실행 방식
계획 시점에 OpenClaw 내장 러너는 해당 실행의 유효 카탈로그를 빌드합니다.- 에이전트, 프로필, 샌드박스, 세션의 활성 도구 정책을 확인합니다.
- 사용 가능한 OpenClaw 및 Plugin 도구를 나열합니다.
- 세션 MCP 런타임을 통해 사용 가능한 MCP 도구를 나열합니다.
- 현재 실행에 제공된 사용 가능한 클라이언트 도구를 추가합니다.
- 검색용 간결한 설명자를 인덱싱합니다.
- OpenClaw 코드 브리지, 구조화된 대체 도구, 또는 간결한 디렉터리 표면을 모델에 노출합니다.
openclaw.tools.call(...)은 브리지를 건너 Gateway로 다시 들어가며, 여기서
일반 정책, 승인, 훅, 로깅, 결과 처리가 그대로 적용됩니다.
모드
tools.toolSearch에는 모델에 노출되는 세 가지 모드가 있습니다.
code: 기본 간결한 JavaScript 브리지인tool_search_code를 노출합니다.tools: 코드를 받아서는 안 되는 공급자를 위해tool_search,tool_describe,tool_call을 일반 구조화된 도구로 노출합니다.directory: 모든 전체 스키마 없이 도구 이름을 봐야 하는 공급자를 위해 사용 가능한 도구 이름과 설명의 제한된 프롬프트 디렉터리와 함께tool_search,tool_describe,tool_call을 노출합니다. OpenClaw는 현재 턴에 가능성이 높거나 필요한 소규모 제한된 도구 스키마 집합도 직접 노출할 수 있습니다.
code 모드는 카탈로그
Compaction 전에 tools로 대체됩니다. directory 모드에서는 클라이언트 제공 도구가
현재 실행에 직접 표시된 상태로 유지되며, OpenClaw 도구, Plugin 도구, MCP 도구는
디렉터리 카탈로그 뒤로 압축될 수 있습니다. 정확한 숨겨진
디렉터리 이름에 대한 직접 호출은 실행 전에 동일한 승인된 카탈로그에서 하이드레이션됩니다.
모든 모드는 실험적입니다. 작은 OpenClaw 도구
카탈로그에는 직접 도구 노출을 선호하고, Codex 하네스 실행에는 Codex 네이티브 안정 표면을 선호하세요.
별도의 소스 선택 설정은 없습니다. 도구 검색이 활성화되면
카탈로그에는 일반 정책 필터링 후 사용 가능한 OpenClaw, MCP, 클라이언트 도구가 포함됩니다.
존재 이유
대규모 카탈로그는 유용하지만 비용이 큽니다. 모든 도구 스키마를 모델에 보내면 요청이 커지고, 계획이 느려지며, 우발적인 도구 선택이 증가합니다. 도구 검색은 형태를 바꿉니다.- 직접 도구: 모델은 첫 토큰 전에 선택된 모든 스키마를 봅니다
- 도구 검색 코드 모드: 모델은 하나의 간결한 코드 도구와 짧은 API 계약을 봅니다
- 도구 검색 도구 모드: 모델은 세 개의 간결한 구조화된 대체 도구를 봅니다
- 도구 검색 디렉터리 모드: 모델은 제한된 디렉터리와 검색/설명/호출 제어, 그리고 가능성이 높거나 필요한 소규모 제한된 스키마 집합을 봅니다
- 턴 중: 모델은 필요에 따라 남은 스키마를 로드할 수 있습니다
API
openclaw.tools.search(query, options?)
현재 실행의 유효 카탈로그를 검색합니다. 결과는 간결하며
프롬프트 컨텍스트에 다시 넣어도 안전합니다.
openclaw.tools.describe(id)
정확한 입력 스키마를 포함하여 검색 결과 하나의 전체 메타데이터를 로드합니다.
openclaw.tools.call(id, args)
선택한 도구를 OpenClaw를 통해 호출합니다.
tool_searchtool_describetool_call
tool_searchtool_describetool_call
tool_search를 사용해 찾으세요. 모델이
정확한 숨겨진 디렉터리 도구 이름을 직접 요청하면 OpenClaw는
일반 실행 전에 승인된 카탈로그에서 이를 하이드레이션합니다.
디렉터리 모드 클라이언트 도구 이름은 OpenClaw, Plugin, MCP
도구 이름과 충돌해서는 안 됩니다. 정확한 지연 디스패치가 해당 이름을 사용하기 때문입니다.
런타임 경계
코드 브리지는 수명이 짧은 Node 하위 프로세스에서 실행됩니다. 하위 프로세스는 Node 권한 모드가 활성화된 상태, 빈 환경, 파일 시스템 또는 네트워크 권한 없음, 하위 프로세스 또는 워커 권한 없음으로 시작됩니다. OpenClaw는 부모 프로세스 벽시계 제한 시간을 강제하고, 비동기 연속 후를 포함해 시간 초과 시 하위 프로세스를 종료합니다. 런타임은 다음만 노출합니다.console.log,console.warn,console.erroropenclaw.tools.searchopenclaw.tools.describeopenclaw.tools.call
- 도구 허용 및 거부 정책
- 에이전트별 및 샌드박스별 도구 제한
- 채널/런타임 도구 정책
- 승인 훅
- Plugin
before_tool_call훅 - 세션 ID, 로그, 텔레메트리
설정
기본 코드 브리지로 OpenClaw 실행에 도구 검색을 활성화합니다.프롬프트와 텔레메트리
도구 검색은 직접 도구 노출과 비교할 수 있도록 충분한 텔레메트리를 기록합니다.- 하네스에 전송된 직렬화된 도구 및 프롬프트 총 바이트
- 카탈로그 크기와 소스 분포
- 검색, 설명, 호출 횟수
- OpenClaw를 통해 실행된 최종 도구 호출
- 선택된 도구 ID와 소스
- 모델이 처음에 본 도구 스키마 수
- 수행한 검색 및 설명 작업 수
- 호출된 최종 도구
- 결과가 OpenClaw, MCP, 또는 클라이언트 도구에서 왔는지 여부
E2E 검증
QA Lab Gateway 시나리오는 OpenClaw 런타임을 사용해 두 경로를 모두 증명합니다.- 직접 모드가 가짜 Plugin 도구를 호출할 수 있습니다.
- 도구 검색이 동일한 가짜 Plugin 도구를 호출할 수 있습니다.
- 직접 모드는 가짜 Plugin 도구 스키마를 공급자에 직접 노출합니다.
- 도구 검색은 간결한 브리지만 노출합니다.
- 대규모 가짜 카탈로그의 경우 도구 검색 요청 페이로드가 더 작습니다.
- 세션 로그에 예상 도구 호출 횟수와 브리지된 호출 텔레메트리가 표시됩니다.
실패 동작
도구 검색은 닫힌 방식으로 실패해야 합니다.- 도구가 유효 정책에 없으면 검색은 해당 도구를 반환하지 않아야 합니다
- 선택한 도구를 사용할 수 없게 되면
tool_call은 실패해야 합니다 - 정책 또는 승인이 실행을 차단하면 호출 결과는 이를 우회하지 않고 해당 차단을 보고해야 합니다
- 코드 브리지가 격리된 런타임을 만들 수 없으면 해당 배포에
mode: "tools"를 사용하거나 도구 검색을 비활성화하세요