도구
도구 (Tools)
도구는 에이전트가 세상과 상호작용할 수 있게 해줘요 — 파일을 읽고, 명령을 실행하고, 웹을 검색하고, 데이터베이스를 질의하는 등.
출처: 문서
본문
도구는 어떻게 동작하나 (How Tools Work)
에이전트가 어떤 동작을 수행해야 할 때 도구 호출(tool call)을 해요. Docker Agent 런타임이 도구를 실행하고 그 결과를 에이전트에게 돌려주며, 에이전트는 그것을 사용해 작업을 계속해요.
- 에이전트가 사용자 메시지를 받음
- 에이전트가 도구를 사용해야 한다고 결정 (예: 파일 읽기)
- Docker Agent가 도구를 실행하고 결과 반환
- 에이전트가 결과를 통합하고 응답
Note 도구 확인 (Tool Confirmation) 기본적으로 Docker Agent는 부작용이 있는 도구(셸 명령, 파일 쓰기)를 실행하기 전에 사용자 확인을 요청해요.
--yolo를 사용하면 모든 도구 호출을 자동 승인해요.
내장 도구 (Built-in Tools)
Docker Agent는 외부 의존성이 필요 없는 여러 내장 도구를 제공해요. 각각은 에이전트의 toolsets 목록에 type 을 추가해 활성화해요:
| Tool | Description |
|---|---|
| Filesystem | 파일과 디렉터리 읽기, 쓰기, 나열, 검색, 탐색 |
| Shell | 셸 명령을 동기적으로 실행 |
| Background Jobs | 오래 실행되는 셸 명령을 실행하고 관리 |
| Think | 계획과 의사 결정을 위한 단계별 추론 스크래치패드 |
| Todo | 복잡한 다단계 워크플로를 위한 작업 목록 관리 |
| Tasks | 세션 간 공유되는 영구 작업 데이터베이스 |
| Memory | SQLite로 지원되는 영구 키-값 저장소 |
| Fetch | HTTP/HTTPS URL에서 콘텐츠 읽기 (GET만) |
| Script | 커스텀 셸 스크립트를 이름 있는 도구로 정의 |
| LSP | 코드 인텔리전스를 위해 Language Server Protocol 서버에 연결 |
| API | 코드를 작성하지 않고 HTTP API를 호출하는 커스텀 도구 생성 |
| OpenAPI | OpenAPI 3.x 문서에서 도구 생성 |
| RAG | 인덱스된 소스에 대한 검색 증강 생성(reterieval-augmented generation) |
| Model Picker | 에이전트가 턴마다 여러 모델 중 고르게 함 |
| User Prompt | 사용자에게 질문하고 대화형 입력 수집 |
| Open URL | 사용자의 기본 브라우저에서 고정 URL 열기 |
| Transfer Task | 하위 에이전트에게 작업 위임 (sub_agents 로 자동 활성화) |
| Background Agents | 하위 에이전트에게 작업을 동시에 디스패치 |
| Handoff | 같은 구성의 다른 로컬 에이전트에게 대화 넘기기 (handoffs: 로 자동 활성화) |
| A2A | Agent-to-Agent 프로토콜로 원격 에이전트에 연결 |
| MCP Catalog | Docker MCP Catalog에서 원격 MCP 서버를 온디맨드로 발견하고 활성화 |
| Git | 읽기 전용 git 저장소 검사 |
| Scheduler | 특정 시간 또는 반복 간격으로 실행할 지침 스케줄 |
| Webhook | Slack, Discord, Telegram, IFTTT 등으로의 외부 알림 |
| Plan | 다중 에이전트 협업을 위한 공유 영구 스크래치패드 |
| Session Plan | draft/review/execute 워크플로를 위한 세션별 계획 추적기 |
| Session Context | 이전 세션을 컨텍스트로 참조 |
MCP 도구 (MCP Tools)
Docker Agent는 에이전트를 외부 도구로 확장하기 위해 Model Context Protocol (MCP)을 지원해요. MCP 도구를 연결하는 세 가지 방법이 있어요:
- Docker MCP (권장) — MCP Gateway를 통해 Docker 컨테이너에서 MCP 서버 실행. Docker MCP Catalog 탐색.
- Local MCP (stdio) — MCP 서버를 stdin/stdout으로 통신하는 로컬 프로세스로 실행.
- Remote MCP (Streamable HTTP / SSE) — 네트워크에서 실행 중인 MCP 서버에 연결. Remote MCP Servers 참고.
toolsets:
- type: mcp
ref: docker:duckduckgo
전체 MCP 구성 참조는 Tool Config 참고.
Tip 참고 (See also) 전체 구성 참조는 Tool Config 참고.