메인 콘텐츠로 건너뛰기

도구 및 plugin

에이전트가 텍스트 생성 외에 수행하는 모든 작업은 도구를 통해 이루어집니다. 도구는 에이전트가 파일을 읽고, 명령을 실행하고, 웹을 탐색하고, 메시지를 보내고, 디바이스와 상호작용하는 방식입니다.

도구, Skills, plugin

OpenClaw에는 함께 작동하는 세 개의 계층이 있습니다:
1

도구는 에이전트가 호출하는 것입니다

도구는 에이전트가 호출할 수 있는 타입이 지정된 함수입니다(예: exec, browser, web_search, message). OpenClaw는 내장 도구 집합을 제공하며, plugin은 추가 도구를 등록할 수 있습니다.에이전트는 도구를 모델 API로 전송되는 구조화된 함수 정의로 인식합니다.
2

Skills는 언제, 어떻게 사용할지 에이전트에게 가르칩니다

Skill은 system 프롬프트에 주입되는 마크다운 파일(SKILL.md)입니다. Skills는 에이전트가 도구를 효과적으로 사용할 수 있도록 컨텍스트, 제약 조건, 단계별 안내를 제공합니다. Skills는 워크스페이스, 공유 폴더에 있거나, plugin 내부에 포함되어 제공될 수 있습니다.Skills 참조 | Skills 만들기
3

plugin은 모든 것을 함께 패키징합니다

plugin은 다음 기능 조합 중 무엇이든 등록할 수 있는 패키지입니다: 채널, 모델 공급자, 도구, Skills, 음성, 실시간 전사, 실시간 음성, 미디어 이해, 이미지 생성, 비디오 생성, web fetch, web search 등. 일부 plugin은 코어(OpenClaw와 함께 제공됨)이고, 다른 plugin은 외부(커뮤니티가 npm에 게시)입니다.plugin 설치 및 구성 | 직접 만들기

내장 도구

이 도구들은 OpenClaw와 함께 제공되며 plugin을 설치하지 않아도 사용할 수 있습니다:
도구기능페이지
exec / process셸 명령 실행, 백그라운드 프로세스 관리Exec
code_execution샌드박스된 원격 Python 분석 실행Code Execution
browserChromium 브라우저 제어(탐색, 클릭, 스크린샷)Browser
web_search / x_search / web_fetch웹 검색, X 게시물 검색, 페이지 콘텐츠 가져오기Web
read / write / edit워크스페이스의 파일 I/O
apply_patch여러 청크에 걸친 파일 패치Apply Patch
message모든 채널로 메시지 전송Agent Send
canvas노드 Canvas 제어(present, eval, snapshot)
nodes페어링된 디바이스 탐색 및 대상으로 지정
cron / gateway예약 작업 관리, gateway 검사, 패치, 재시작, 업데이트
image / image_generate이미지 분석 또는 생성
tts일회성 텍스트 음성 변환TTS
sessions_* / subagents / agents_list세션 관리, 상태 확인, 하위 에이전트 오케스트레이션Sub-agents
session_status경량 /status 스타일 읽기 및 세션 모델 재정의Session Tools
이미지 작업에는 분석용 image, 생성 또는 편집용 image_generate를 사용하세요. openai/*, google/*, fal/* 또는 다른 기본이 아닌 이미지 공급자를 대상으로 하는 경우 먼저 해당 공급자의 인증/API 키를 구성하세요. session_status는 sessions 그룹의 경량 상태/읽기 도구입니다. 이 도구는 현재 세션에 대한 /status 스타일 질문에 답변하고, 선택적으로 세션별 모델 재정의를 설정할 수 있으며, model=default는 해당 재정의를 지웁니다. /status와 마찬가지로 최신 전사 usage 항목에서 희소한 토큰/캐시 카운터와 활성 런타임 모델 레이블을 보완할 수 있습니다. gateway는 gateway 작업을 위한 소유자 전용 런타임 도구입니다:
  • 편집 전 하나의 경로 범위 구성 하위 트리를 조회하는 config.schema.lookup
  • 현재 구성 스냅샷 + 해시를 가져오는 config.get
  • 재시작과 함께 부분 구성 업데이트를 수행하는 config.patch
  • 전체 구성을 교체할 때만 사용하는 config.apply
  • 명시적 자체 업데이트 + 재시작을 수행하는 update.run
부분 변경의 경우 config.schema.lookup 다음에 config.patch를 우선 사용하세요. 의도적으로 전체 구성을 교체할 때만 config.apply를 사용하세요. 이 도구는 또한 tools.exec.ask 또는 tools.exec.security 변경을 거부합니다. 레거시 tools.bash.* 별칭은 동일한 보호된 exec 경로로 정규화됩니다.

plugin이 제공하는 도구

plugin은 추가 도구를 등록할 수 있습니다. 몇 가지 예:
  • Lobster — 재개 가능한 승인이 있는 타입 안전 워크플로 런타임
  • LLM Task — 구조화된 출력을 위한 JSON 전용 LLM 단계
  • Diffs — diff 뷰어 및 렌더러
  • OpenProse — 마크다운 우선 워크플로 오케스트레이션

도구 구성

허용 및 거부 목록

구성의 tools.allow / tools.deny를 통해 에이전트가 호출할 수 있는 도구를 제어합니다. 거부는 항상 허용보다 우선합니다.
{
  tools: {
    allow: ["group:fs", "browser", "web_search"],
    deny: ["exec"],
  },
}

도구 프로필

tools.profileallow/deny가 적용되기 전에 기본 허용 목록을 설정합니다. 에이전트별 재정의: agents.list[].tools.profile.
프로필포함 내용
full제한 없음(설정하지 않은 것과 동일)
codinggroup:fs, group:runtime, group:web, group:sessions, group:memory, cron, image, image_generate
messaginggroup:messaging, sessions_list, sessions_history, sessions_send, session_status
minimalsession_status

도구 그룹

허용/거부 목록에서 group:* 축약형을 사용하세요:
그룹도구
group:runtimeexec, process, code_execution (bashexec의 별칭으로 허용됨)
group:fsread, write, edit, apply_patch
group:sessionssessions_list, sessions_history, sessions_send, sessions_spawn, sessions_yield, subagents, session_status
group:memorymemory_search, memory_get
group:webweb_search, x_search, web_fetch
group:uibrowser, canvas
group:automationcron, gateway
group:messagingmessage
group:nodesnodes
group:agentsagents_list
group:mediaimage, image_generate, tts
group:openclaw모든 내장 OpenClaw 도구(plugin 도구 제외)
sessions_history는 제한되고 안전 필터링된 회상 보기를 반환합니다. 이 도구는 thinking 태그, <relevant-memories> 스캐폴딩, 일반 텍스트 도구 호출 XML 페이로드( <tool_call>...</tool_call>, <function_call>...</function_call>, <tool_calls>...</tool_calls>, <function_calls>...</function_calls>, 잘린 도구 호출 블록 포함), 축소된 도구 호출 스캐폴딩, 유출된 ASCII/전각 모델 제어 토큰, 어시스턴트 텍스트의 잘못된 MiniMax 도구 호출 XML을 제거한 다음, 원시 전사 덤프처럼 동작하는 대신 마스킹/잘라내기와 필요 시 과대 행 자리표시자를 적용합니다.

공급자별 제한

전역 기본값을 변경하지 않고 특정 공급자에 대한 도구를 제한하려면 tools.byProvider를 사용하세요:
{
  tools: {
    profile: "coding",
    byProvider: {
      "google-antigravity": { profile: "minimal" },
    },
  },
}