콘텐츠로 이동

에이전트/플로우 생성 (llamon agent/flow)

llamon agent(단일 에이전트), llamon flow(멀티 에이전트 그래프)는 새 프로젝트 디렉토리에 템플릿 파일을 생성합니다.

기본 흐름: llamon agent 생성 → llamon run 로컬 실행 → llamon prepare-offline 배포 준비 → llamon deploy 원격 배포.

uv 설치와 기본 실행은 환경 설정, 배포 시나리오별 조합은 생성/배포 시나리오를 참고하세요.


Terminal window
# 1) 생성 (인자 없이 실행하면 대화형 메뉴)
uv run llamon agent my-agent --template agent-general --memory postgres --yes
cd my-agent
# 2) .env 채우기 (LLAMON_REGISTRY_HOST 등 — setup 페이지 참고)
# 3) 로컬 실행
uv run llamon run .
# 4) 첫 호출 (다른 터미널)
curl -s http://localhost:8000/.well-known/agent-card.json
curl -s -X POST http://localhost:8000/ \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": "1",
"method": "message/send",
"params": {
"message": {
"messageId": "msg-001",
"contextId": "demo",
"role": "user",
"parts": [{"kind": "text", "text": "안녕하세요"}]
}
}
}'

응답이 오면 첫 성공입니다. 포트는 .envPORT 값으로 바뀔 수 있습니다. 요청 필드 의미와 A2A 0.3.0 응답 예시는 A2A 메시지 요청을 참고하세요.


llamon agent단일 에이전트 서버, llamon flow멀티 에이전트 그래프(비즈니스 로직 노드 포함, 기본 --runtime-source registry)를 만듭니다. 처음이면 보통 agent-general이면 충분하고, 구조화 결과를 안정적으로 다뤄야 할 때만 agent-structured를 고르면 됩니다.

템플릿언제설명
agent-general일반 대화·검색·도구 호출사용자에게 보여줄 텍스트 중심 Registry 에이전트
agent-structured분류·추출·판정다음 단계가 읽을 output_data 중심. app/runtime_adapter.py가 모델 JSON을 검증해 output_text/output_data를 보장
agent-local로컬 Ollama 실험Ollama 직접 연결
agent-openaiRegistry 없이 OpenAIOpenAI API URL 직접 연결
agent-anthropicRegistry 없이 AnthropicClaude API 직접 연결

멀티 에이전트 플로우 (llamon flow)

섹션 제목: “멀티 에이전트 플로우 (llamon flow)”
템플릿언제그래프
flow-seq순서대로 연결agent_a → business_logic → agent_b
flow-parallel동시에 실행agent_a + agent_b → merge → business_logic
flow-route조건 분기router → agent_a/b → business_logic
flow-httpHTTP 파이프라인http → transform → merge → agent

내부 스캐폴드 ID(registry-general, graph-sequential, ollama 등)는 구현용 이름입니다. CLI·문서는 공개 키(agent-general, flow-seq 등) 기준으로 보면 됩니다.


Terminal window
# 단일 에이전트
uv run llamon agent my-agent --template agent-general --yes
# 멀티 에이전트 플로우
uv run llamon flow my-flow --template flow-seq --yes

--template만 바꾸면 다른 종류가 됩니다(위 표 참고). --memory postgres를 주면 docker-compose.local.ymlpostgres 서비스가 자동 포함되고, 기본 DB 이름은 <project_name>_memory입니다.


생성된 .env에는 <레지스트리주소>처럼 아직 채워야 할 값이 남아 있습니다. 채우는 방법은 세 가지입니다.

Terminal window
# 1) 생성 시 값 직접 주입
uv run llamon agent my-agent --template agent-general --yes \
--env LLAMON_REGISTRY_HOST=http://<레지스트리주소>:7860
# 2) 대화형 입력 (--yes와 함께 못 씀)
uv run llamon agent my-agent --template agent-general --configure-env

--configure-env는 포트(단일이면 PORT, 멀티면 BASE_PORT 하나만 입력하면 나머지가 자동 배정)와 그 밖에 채워야 할 값을 하나씩 물어 .env에 채워 줍니다. 반대로 --yes는 질문을 건너뛰고 기본값을 그대로 쓰므로, 둘은 함께 줄 수 없습니다.

두 플래그를 모두 생략해도 채울 값이 남아 있으면, 생성 후 “지금 입력할까요?”를 한 번 물어봅니다.

3) 기본값 자동 상속LLAMON_REGISTRY_HOST가 현재 셸 환경변수나 CLI 실행 디렉토리의 .env에 있으면, 생성된 프로젝트 .env에 기본값으로 자동 반영됩니다.


Terminal window
# 파일을 쓰지 않고 생성/덮어쓰기 예정 파일 + 필요한 .env 키만 출력
uv run llamon agent my-agent --template agent-general --yes --dry-run
uv run llamon agent my-agent --template agent-general --yes --dry-run --output json
# 생성 후 .env 준비 + docker compose 기동 + agent-card 확인까지 자동
uv run llamon agent my-agent --template agent-general --yes --quickstart

--output json--dry-run과 함께 사용합니다. --quickstart는 환경값/UUID가 준비된 경우에 동작합니다.


플래그설명
--template템플릿 지정 (위 표 참고)
--memory off|in-memory|postgres|sqlite(legacy)메모리 모드
--runtime-source registry|local런타임 소스 (registry: 레지스트리 노드, local: 로컬 LLM)
--port서비스 포트
--no-docker · --no-git · --forcedocker 자산·git init 생략 / 기존 디렉토리 덮어쓰기
--yes질문에 모두 기본값 자동 선택

.env 관련(--env, --configure-env)은 위 .env 설정, 점검·자동 실행(--dry-run, --quickstart)은 위 유용한 옵션 항목을 보세요. SDK 소스(--sdk-source/--sdk-version)·배포 자산(--deploy-profile)·로컬 provider(--ollama-base-url, --local-provider)와 전체 목록은 --help생성/배포 시나리오에 있습니다.


번호 순서로 수정합니다.

파일역할수정
.env① Registry Host / API 키 / 로컬 LLM 연결값필수
config.py② LLM/Prompt/MCP/Guardrail ID 또는 로컬 Agent 설정필수
agent_card.py③ 카드 정보·스킬필수
main.py진입점수정 불필요

멀티 에이전트 플로우 (llamon flow)

섹션 제목: “멀티 에이전트 플로우 (llamon flow)”
파일역할수정
.env① Registry Host 또는 로컬 LLM 연결값필수
config.py② 에이전트 UUID / 로컬 Agent 설정필수
nodes.py③ 노드 함수·비즈니스 로직필수
graph.py④ 노드 연결 구조 (.edge())필요 시
agent_card.py⑤ 카드 정보·스킬필수
main.py진입점수정 불필요
위치담는 것
.env배포 환경별 실제 값과 secrets
config.py여러 노드가 공유하는 이름·기본값·배선 정보
nodes.py특정 노드 하나만 쓰는 구현 디테일

자세한 기준, Studio 승급/강등 제안, 기존 프로젝트 마이그레이션은 프로젝트 설정 구조를 참고하세요.