YAML 설정 레퍼런스
Sinaptic® DROID+는 두 가지 유형의 YAML 설정 파일을 사용합니다.
- 메인 설정 (
droid.yaml) — 글로벌 서버, LLM, 보안 및 로깅 설정 - 에이전트 설정 (
configs/agents/*.yaml) — 에이전트별 모델, 페르소나, 도구 및 동작 설정
모든 설정 값은 ${ENV_VAR} 치환을 지원합니다. Sinaptic® DROID+는 시작 시 환경 변수를 해석합니다.
메인 설정 (droid.yaml)
edition (에디션)
| 값 | 설명 |
|---|---|
community | 무료 에디션, 최대 에이전트 2개, RegExp 기반 보안만 제공 (기본값) |
pro | 에이전트 무제한, 전체 SinapticAI 보안 계층 제공 |
enterprise | 멀티테넌시, 컴플라이언스, 고가용성(HA) 제공 |
server (서버)
| 필드 | 타입 | 기본값 | 설명 |
|---|---|---|---|
openai_port | int | 8080 | OpenAI 호환 API 포트 |
management_port | int | 8081 | 관리 API 포트 |
cors_origins | []string | ["*"] | 허용된 CORS 오리진 |
api_key | string | — | 인증을 위한 API 키 (${ENV_VAR} 지원) |
demo_mode | bool | false | 데모 모드 활성화 |
llm
기본 LLM 제공업체 설정입니다.
| 필드 | 타입 | 기본값 | 설명 |
|---|---|---|---|
provider | string | openai | LLM 제공업체 이름 (openai, anthropic, gemini, grok, ollama, lm_studio, llama_cpp) |
base_url | string | https://api.openai.com/v1 | API 베이스 URL |
api_key | string | ${OPENAI_API_KEY} | API 키 (${ENV_VAR} 지원) |
default_model | string | gpt-4o-mini | 기본 모델 이름 |
anthropic
| 필드 | 타입 | 기본값 | 설명 |
|---|---|---|---|
base_url | string | https://api.anthropic.com | Anthropic API 베이스 URL |
api_key | string | ${ANTHROPIC_API_KEY} | API 키 |
gemini
| 필드 | 타입 | 기본값 | 설명 |
|---|---|---|---|
base_url | string | https://generativelanguage.googleapis.com/v1beta | Gemini API 베이스 URL |
api_key | string | ${GEMINI_API_KEY} | API 키 |
grok
| 필드 | 타입 | 기본값 | 설명 |
|---|---|---|---|
base_url | string | https://api.x.ai/v1 | Grok (xAI) API 베이스 URL |
api_key | string | ${GROK_API_KEY} | API 키 |
ollama
| 필드 | 타입 | 기본값 | 설명 |
|---|---|---|---|
base_url | string | http://localhost:11434/v1 | Ollama API 베이스 URL |
lm_studio
| 필드 | 타입 | 기본값 | 설명 |
|---|---|---|---|
base_url | string | http://localhost:1234/v1 | LM Studio API 베이스 URL |
llama_cpp
| 필드 | 타입 | 기본값 | 설명 |
|---|---|---|---|
base_url | string | http://localhost:8080/v1 | llama.cpp 서버 베이스 URL |
embedding (임베딩)
| 필드 | 타입 | 기본값 | 설명 |
|---|---|---|---|
model | string | text-embedding-3-small | 임베딩 모델 이름 |
base_url | string | (llm.base_url 사용) | 임베딩 API 베이스 URL |
api_key | string | (llm.api_key 사용) | 임베딩 API 키 |
sinaptic
SinapticAI 보안 계층 설정입니다.
| 필드 | 타입 | 기본값 | 설명 |
|---|---|---|---|
enabled | bool | true | SinapticAI 보안 스캐닝 활성화 |
mode | string | block | 위협 감지 시 동작: block 또는 log |
log_blocked | bool | true | 차단된 요청 로깅 여부 |
sinaptic.pii
| 필드 | 타입 | 기본값 | 설명 |
|---|---|---|---|
enabled | bool | true | PII(개인 식별 정보) 감지 활성화 |
strategy | string | mask | PII 처리 전략: mask(마스킹) 또는 block(차단) |
mcp
Model Context Protocol (MCP) 도구 서버 설정입니다.
mcp:
servers:
my-server:
command: "npx"
args: ["-y", "@my-org/mcp-server"]
env:
API_KEY: "${MY_API_KEY}"
| 필드 | 타입 | 설명 |
|---|---|---|
servers | map | 명명된 MCP 서버 정의 |
서버별 설정:
| 필드 | 타입 | 설명 |
|---|---|---|
command | string | MCP 서버를 실행할 명령 |
args | []string | 명령 인자 |
env | map[string]string | 서버 프로세스를 위한 환경 변수 |
logging (로깅)
| 필드 | 타입 | 기본값 | 설명 |
|---|---|---|---|
level | string | info | 로그 레벨 (debug, info, warn, error) |
format | string | json | 로그 형식 (json 또는 text) |
audit (감사)
| 필드 | 타입 | 기본값 | 설명 |
|---|---|---|---|
enabled | bool | false | 감사 로그 활성화 |
log_path | string | ./logs/audit | 감사 로그 파일 경로 |
retention_days | int | 30 | 감사 로그 보관 일수 |
branding (브랜딩)
| 필드 | 타입 | 기본값 | 설명 |
|---|---|---|---|
show_badge | bool | (자동) | "Powered by Sinaptic® DROID+" 배지 표시 여부. 자동: community 에디션은 true, pro/enterprise는 false |
최상위 경로
| 필드 | 타입 | 기본값 | 설명 |
|---|---|---|---|
data_dir | string | ./data | 런타임 데이터 디렉토리 (임베딩, 상태 등) |
agents_dir | string | ./configs/agents | 에이전트 YAML 설정이 포함된 디렉토리 |
에이전트 설정 (configs/agents/*.yaml)
최상위 필드
| 필드 | 타입 | 필수 여부 | 기본값 | 설명 |
|---|---|---|---|---|
name | string | 예 | (파일명) | 고유 에이전트 식별자 |
description | string | 아니요 | — | 사람이 읽을 수 있는 설명 |
model | object | 예 | — | LLM 모델 설정 |
personality | string | 예 | — | 에이전트를 위한 시스템 프롬프트 |
agent_type | string | 아니요 | plain | 처리 루프: plain 또는 react |
execution_mode | string | 아니요 | sequential | 도구 실행 방식: sequential 또는 parallel |
chain_of_thought | bool | 아니요 | false | Chain-of-thought 추론 활성화 |
max_iterations | int | 아니요 | 10 | ReAct 루프 최대 반복 횟수 |
tool_timeout | string | 아니요 | 30s | 도구 호출의 기본 타임아웃 |
model
| 필드 | 타입 | 기본값 | 설명 |
|---|---|---|---|
name | string | — | 모델 이름 (예: gpt-4o, claude-sonnet-4-20250514) |
base_url | string | (메인 설정에서 상속) | LLM API 베이스 URL 오버라이드 |
api_key | string | (메인 설정에서 상속) | API 키 오버라이드 |
max_tokens | int | 1024 | 응답 최대 토큰 수 |
temperature | float | 0.7 | 샘플링 온도 (0-2) |
memory.short_term (단기 메모리)
| 필드 | 타입 | 기본값 | 설명 |
|---|---|---|---|
max_messages | int | 50 | 슬라이딩 윈도우 방식의 대화 기록 크기 |
rag
| 필드 | 타입 | 기본값 | 설명 |
|---|---|---|---|
enabled | bool | false | RAG(검색 증강 생성) 활성화 |
top_k | int | 3 | 검색할 청크 개수 |
min_score | float | 0.7 | 최소 유사도 점수 임계값 |
도구 (tools)
도구 설정 배열입니다.
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
name | string | 예 | 도구 식별자 |
description | string | 아니요 | 도구 설명 (LLM에게 표시됨) |
type | string | 예 | 도구 유형: mcp, rest_api |
url | string | rest_api | 엔드포인트 URL |
method | string | rest_api | HTTP 메서드 (GET, POST, PUT, DELETE) |
headers | map | rest_api | HTTP 헤더 |
timeout | string | rest_api | 요청 타임아웃 (예: 10s) |
pipeline (파이프라인)
멀티 LLM 파이프라인 단계입니다(선택 사항). 정의된 경우 요청이 각 단계를 순차적으로 통과합니다.
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
name | string | 예 | 단계 식별자 |
model | object | 예 | 이 단계를 위한 모델 설정 |
personality | string | 예 | 이 단계를 위한 시스템 프롬프트 |
spawns (스폰)
에이전트 간 호출(A2A) 설정입니다.
| 필드 | 타입 | 기본값 | 설명 |
|---|---|---|---|
max_spawns | int | 5 | 요청당 최대 서브 에이전트 호출 횟수 (0 = 무제한) |
max_tokens_per_spawn | int | 4096 | 스폰된 호출당 토큰 예산 |
max_depth | int | 3 | 최대 재귀 깊이 |
allowed_agents | []string | [] (전체) | 스폰 가능한 에이전트 화이트리스트 |
spawn_timeout_secs | int | 60 | 스폰된 호출당 타임아웃(초) |
rate_limit (요청 속도 제한)
| 필드 | 타입 | 기본값 | 설명 |
|---|---|---|---|
requests_per_minute | int | 0 (무제한) | 분당 최대 요청 횟수 |
sinaptic
에이전트별 SinapticAI 설정 오버라이드입니다.
| 필드 | 타입 | 기본값 | 설명 |
|---|---|---|---|
enabled | bool | (글로벌 설정 상속) | 글로벌 SinapticAI 활성화 플래그 오버라이드 |
전체 예시
droid.yaml
edition: community
server:
openai_port: 8080
management_port: 8081
cors_origins: ["*"]
llm:
provider: openai
base_url: https://api.openai.com/v1
api_key: ${OPENAI_API_KEY}
default_model: gpt-4o-mini
anthropic:
api_key: ${ANTHROPIC_API_KEY}
embedding:
model: text-embedding-3-small
sinaptic:
enabled: true
mode: block
pii:
enabled: true
strategy: mask
log_blocked: true
logging:
level: info
format: json
audit:
enabled: false
log_path: ./logs/audit
retention_days: 30
data_dir: ./data
agents_dir: ./configs/agents
configs/agents/support-bot.yaml
name: support-bot
description: RAG 및 도구를 사용하는 고객 지원 에이전트
model:
name: gpt-4o
max_tokens: 2048
temperature: 0.5
personality: |
당신은 유능한 고객 지원 에이전트입니다.
항상 정중하고 간결하며 정확하게 답변하세요.
agent_type: react
execution_mode: parallel
chain_of_thought: true
max_iterations: 5
tool_timeout: 15s
memory:
short_term:
max_messages: 100
rag:
enabled: true
top_k: 5
min_score: 0.6
tools:
- name: lookup-order
type: rest_api
description: 주문 ID로 주문 상태를 조회합니다.
url: https://api.example.com/orders/${order_id}
method: GET
headers:
Authorization: "Bearer ${INTERNAL_API_KEY}"
timeout: 10s
rate_limit:
requests_per_minute: 60
spawns:
max_spawns: 3
max_depth: 2
allowed_agents: ["billing-agent", "shipping-agent"]