미디어 및 비전 도구
스크린샷, 이미지 정보, 이미지 생성, 캔버스 렌더링, 계산기, 날씨.
이 페이지에서는 Revka의 미디어·비전·유틸리티 도구를 설명합니다. 화면 캡처, 이미지 파일 검사, 이미지 생성, 대시보드에 실시간 시각 콘텐츠 렌더링, 정밀 산술 연산, 날씨 조회 기능을 다룹니다. 에이전트가 무언가를 보거나, 시각적 출력을 생성하거나, 추측 없이 정확한 수치를 계산해야 할 때 이 도구들을 활용하세요. 도구 조합 및 게이팅 방식에 대한 개요는 도구 개요를 참고하고, 메시지에 첨부된 이미지가 모델에 전달되는 방식은 이 페이지 하단의 [multimodal] 섹션을 참고하세요.
screenshot
섹션 제목: “screenshot”플랫폼 기본 명령어를 사용해 현재 화면을 캡처하고, 저장된 파일 경로와 인라인 base64 이미지 데이터를 모두 반환합니다. 멀티모달 모델이 결과를 바로 확인할 수 있습니다.
- macOS:
screencapture를 사용합니다. - Linux:
gnome-screenshot,scrot, ImageMagick의import순서로 시도합니다(설치된 항목 중 첫 번째). 아무것도 없으면 설치 안내와 함께 오류를 반환합니다. - 기타 플랫폼: 지원되지 않습니다.
스크린샷은 워크스페이스 디렉터리에 저장됩니다. 이 도구는 에이전트의 실행 허가가 필요하며, 읽기 전용 자율 모드에서는 차단됩니다(자율성 수준 및 승인 참고). 파일 이름은 최종 경로 구성 요소로 정규화되며, 셸에서 안전하지 않은 문자는 거부됩니다. base64 인라인 삽입은 ~1.5 MB 이하 이미지에만 적용되며, 더 큰 캡처는 경로와 크기만 반환합니다.
| 파라미터 | 타입 | 기본값 | 설명 |
|---|---|---|---|
filename | string | screenshot_<timestamp>.png | 출력 파일 이름. 워크스페이스에 저장됩니다. |
region | string | 전체 화면 | macOS 전용. selection은 대화형 자르기, window는 최전면 창. Linux에서는 무시됩니다. |
{ "filename": "debug.png", "region": "window" }image_info
섹션 제목: “image_info”외부 의존성 없이 파일 헤더 바이트에서 이미지 메타데이터(형식, 픽셀 크기, 바이트 크기)를 직접 읽습니다. 선택적으로 파일을 base64로 반환해 비전 모델에 전달할 수 있습니다.
형식은 매직 바이트로 감지하며 PNG, JPEG, GIF, WEBP, BMP를 지원합니다. 각 형식별로 헤더에서 크기를 파싱합니다. 읽기는 워크스페이스 내로 제한되며(외부 경로는 거부), 5 MB를 초과하는 파일은 처리를 거부합니다.
| 파라미터 | 타입 | 기본값 | 설명 |
|---|---|---|---|
path | string | — (필수) | 이미지 파일 경로. 절대 경로 또는 워크스페이스 기준 상대 경로. |
include_base64 | boolean | false | true이면 base64로 인코딩된 이미지를 data: URI로 추가합니다. |
{ "path": "assets/logo.png", "include_base64": false }image_gen
섹션 제목: “image_gen”fal.ai의 동기 API(Flux / Nano Banana 모델)를 통해 텍스트 프롬프트로 이미지를 생성하고, 결과를 다운로드해 워크스페이스 images/ 디렉터리에 PNG로 저장합니다.
이 도구는 기본적으로 비활성화되어 있으며 부수 효과(HTTP 호출 및 파일 쓰기)가 있으므로, 설정과 실행 수준의 자율성이 모두 필요합니다. [image_gen] 아래에서 활성화하고, 설정된 환경 변수(기본값 FAL_API_KEY)를 통해 fal.ai API 키를 제공하세요.
| 파라미터 | 타입 | 기본값 | 설명 |
|---|---|---|---|
prompt | string | — (필수) | 이미지에 대한 텍스트 설명. |
filename | string | generated_image | 확장자를 제외한 출력 파일 이름. workspace/images/ 아래에 <name>.png로 저장됩니다. |
size | string | square_hd | square_hd, landscape_4_3, portrait_4_3, landscape_16_9, portrait_16_9 중 하나. |
model | string | 설정에서 가져옴 | fal.ai 모델 경로. 예: fal-ai/flux/schnell. 유효한 fal.ai 모델 경로여야 합니다. |
{ "prompt": "a sunset over snow-capped mountains, photorealistic", "size": "landscape_16_9", "model": "fal-ai/flux/schnell"}설정 ([image_gen]):
[image_gen]enabled = true # default: falsedefault_model = "fal-ai/flux/schnell" # fal.ai model pathapi_key_env = "FAL_API_KEY" # env var holding the fal.ai key| 키 | 타입 | 기본값 | 설명 |
|---|---|---|---|
enabled | bool | false | image_gen 도구를 등록합니다. |
default_model | string | "fal-ai/flux/schnell" | 호출 시 model을 생략할 경우 사용되는 모델. |
api_key_env | string | "FAL_API_KEY" | fal.ai API 키를 담고 있는 환경 변수 이름. |
export FAL_API_KEY="your-fal-ai-key"canvas
섹션 제목: “canvas”라이브 캔버스 — 웹 대시보드의 실시간 미리보기 패널 — 에 렌더링된 콘텐츠를 전송합니다. 프레임은 프로세스 전역 저장소에 저장되고 연결된 WebSocket 뷰어에 브로드캐스트되므로, 에이전트가 구성한 시각화를 사용자가 실시간으로 확인할 수 있습니다. 에이전트, 팀 & 캔버스와 실시간 라이브 캔버스 API를 참고하세요.
각 캔버스는 canvas_id 문자열(기본값 default)로 식별되며, 프레임당 콘텐츠 크기는 256 KB로 제한됩니다.
| 액션 | 동작 |
|---|---|
render | 지정한 content_type의 content를 캔버스에 전송합니다. |
snapshot | 캔버스의 현재 프레임을 반환합니다. |
clear | 캔버스를 초기화합니다(현재 콘텐츠와 히스토리를 지웁니다). |
eval | 캔버스 iframe에서 클라이언트 측에 평가할 JavaScript 표현식을 전송합니다. 결과는 연결된 뷰어에게 표시됩니다. |
| 파라미터 | 타입 | 기본값 | 설명 |
|---|---|---|---|
action | string | — (필수) | render, snapshot, clear, eval 중 하나. |
canvas_id | string | default | 캔버스 식별자. |
content_type | string | html | render 시: html, svg, markdown, text 중 하나. |
content | string | — | 렌더링할 콘텐츠(render 시 필수). |
expression | string | — | JavaScript 표현식(eval 시 필수). |
{ "action": "render", "canvas_id": "main", "content_type": "html", "content": "<h1>Build status: green</h1>"}calculator
섹션 제목: “calculator”정밀한 산술 연산과 통계 계산을 수행합니다. 모델이 수치 결과를 추측하는 대신 이 도구를 사용하세요. 산술, 로그/지수, 집계, 통계, 유틸리티 등 25개의 명명된 함수를 제공합니다.
| 카테고리 | 함수 |
|---|---|
| 산술 | add, subtract, divide, multiply, pow, sqrt, abs, modulo, round |
| 로그 / 지수 | log, ln, exp, factorial |
| 집계 | sum, average, count, min, max, range |
| 통계 | median, mode, variance, stdev, percentile |
| 유틸리티 | percentage_change, clamp |
입력 파라미터는 함수에 따라 다릅니다.
| 파라미터 | 타입 | 사용 함수 |
|---|---|---|
function | string | — (필수) |
values | array of numbers | add, subtract, divide, multiply, sum, average, count, min, max, range, median, mode, variance, stdev, percentile |
a, b | number | pow, modulo, percentage_change |
x | number | sqrt, abs, exp, ln, log, factorial, round |
base | number | log (기본값 10) |
decimals | integer | round |
p | integer (0–100) | percentile |
min_val, max_val | number | clamp |
{ "function": "average", "values": [1, 2, 3, 4, 5] }{ "function": "percentile", "values": [10, 20, 30, 40], "p": 90 }안전 장치로 NaN 대신 명확한 오류를 반환합니다. 0으로 나누기·나머지 연산, 음수의 제곱근, 양수가 아닌 값의 log/ln, 비정수 또는 170 초과 값의 factorial(f64 오버플로)은 모두 거부됩니다.
weather
섹션 제목: “weather”무료 wttr.in 서비스를 통해 전 세계 모든 위치의 현재 상태와 최대 3일 예보를 반환합니다. API 키가 필요하지 않습니다.
위치 지정 방식은 유연합니다. 도시 이름(모든 언어·문자 지원), IATA 공항 코드, GPS 좌표, 우편번호, 도메인 기반 지리적 위치 등이 가능합니다.
| 파라미터 | 타입 | 기본값 | 설명 |
|---|---|---|---|
location | string | — (필수) | 도시명, IATA 코드, 위도,경도, 우편번호, 또는 도메인. |
units | string | metric | metric(°C, km/h, mm) 또는 imperial(°F, mph, in). |
days | integer | 1 | 예보 일수, 0–3. 0은 현재 상태만 반환합니다. |
{ "location": "Seoul", "units": "metric", "days": 3 }{ "location": "LAX" }{ "location": "35.6762,139.6503", "units": "imperial", "days": 1 }출력에는 날씨 상태, 기온 및 체감 온도, 습도, 바람, 강수량, 시정, 기압, 구름양, UV 지수가 포함되며, 예보 일수에 따라 일 최고/최저 기온, 일조 시간, 천문 정보(일출/일몰/달 위상), 짧은 예보를 위한 시간대별 슬롯도 제공됩니다. 알 수 없는 위치는 대안 입력 형식을 안내하는 유용한 오류를 반환합니다. 아웃바운드 트래픽을 프록시를 통해 라우팅하는 경우, 날씨 요청은 tool.weather 서비스 키를 사용합니다 — [proxy] 설정을 참고하세요.
[multimodal] — 인바운드 이미지 처리
섹션 제목: “[multimodal] — 인바운드 이미지 처리”[multimodal] 섹션은 메시지에 첨부된 이미지를 모델에 전달하는 방식을 제어합니다. 이미지를 생성하는 image_gen과는 구별됩니다. 이미지는 [IMAGE:/path/to/file.png] 또는 [IMAGE:data:image/png;base64,...] 마커 문법으로 인라인 첨부할 수 있습니다.
[multimodal]max_images = 4 # per request; clamped to 1–16max_image_size_mb = 5 # per image, before base64; clamped to 1–20allow_remote_fetch = false # allow [IMAGE:https://...] remote URLsvision_provider = "ollama" # optional: route images to a dedicated vision modelvision_model = "llava:7b" # used only when vision_provider is set| 키 | 타입 | 기본값 | 설명 |
|---|---|---|---|
max_images | integer | 4 | 요청당 최대 이미지 첨부 수. 1–16으로 제한됩니다. |
max_image_size_mb | integer | 5 | base64 인코딩 전 이미지당 최대 크기. 1–20으로 제한됩니다. |
allow_remote_fetch | bool | false | true이면 [IMAGE:https://...] 원격 URL을 허용합니다. |
vision_provider | string | 미설정 | 기본 텍스트 프로바이더 대신 이미지를 라우팅할 선택적 프로바이더. |
vision_model | string | 미설정 | vision_provider와 함께 사용할 모델. 해당 필드가 설정된 경우에만 적용됩니다. |
인바운드 미디어의 자동 전처리(에이전트가 받기 전에 오디오 전사, 이미지 설명, 비디오 요약)에 대해서는 설정: 채널, 도구 및 통합의 [media_pipeline] 설정을 참고하세요.
관련 문서
섹션 제목: “관련 문서”- 도구 개요
- 파일시스템 & 코드 도구 —
file_read로 PDF 텍스트를 인라인 추출 - 브라우저 & 웹 도구 — 브라우저 스크린샷 및 페이지 자동화
- 대시보드 실행 — 라이브 캔버스가 표시되는 곳
- 실시간: WebSocket, SSE & 라이브 캔버스