워크플로우
자연스러운 한국어 대화로 재사용 가능한 Minara 자동화를 구축합니다. 재시도+피드백 방식의 작성 흐름이 저장된 워크플로우를 실행 가능한 상태로 유지합니다.
워크플로우는 자연스러운 한국어로 채팅하며 구축하는 재사용 가능한 Minara 자동화입니다. Agent가 사용자의 프롬프트를 바탕 으로 워크플로우 정의(단계, 트리거, 알림 채널)를 작성하고, 사 용자는 채팅 패널에서 그 과정을 실시간으로 지켜보며, 초안이 검증을 통과하면 캔버스가 업데이트됩니다.
워크플로우로 다음과 같은 작업을 수행할 수 있습니다.
- 가격(BTC, AAPL, EUR/USD, …)을 감시하고 임계값을 넘으면 알림.
- 지갑, Polymarket 트레이더, 또는 온체인 이벤트를 모니터링하 여 규칙에 부합하는 활동이 발생하면 알림.
- 포트폴리오에 대한 일간 / 주간 / cron 스케줄 브리프 실행.
- 거래 주문(표준 미리보기→확인 게이트 포함. 조용한 자금 이동 은 없음).
워크플로우 구축
진입점은 두 가지입니다.
- 랜딩 페이지 폼. 자연어 설명을 붙여넣고 제출하면 Agent가 워크플로우를 작성하고 성공 시 저장합니다.
- 워크플로우 상세 채팅 패널. 기존 워크플로우를 열어 변경 사항을 설명합니다("알림 뒤에 이메일 send_message 추가", "시 간별을 일별 스케줄로 변경"). Agent가 정의를 다시 작성합니다.
두 경우 모두 채팅 화면이 작업 로그를 실시간으로 스트리밍합니 다. 각 단계의 원시 JSON이 모델이 입력하는 대로 표시되고, 단 계의 필수 필드가 모두 채워지는 순간 정규 카드로 접힙니다. 캔 버스가 변경되는 것은 Agent의 초안이 검증을 통과했을 때뿐입니 다.
Agent가 틀렸을 때의 동작
워크플로우 작성 서브 Agent는 요청당 최대 3회 시도합니다.
첫 번째 초안이 깨진 참조(존재하지 않는 단계를 가리키는
next), 필수 필드 누락(tool 없는 tool_call), 또는 파싱
할 수 없는 조건식을 포함하고 있으면, 구조 검증기가 이를 잡아
내고, 채팅 패널은 깨진 초안을 Attempt 1 · fixed K issues
요약으로 접고, 그 아래에 새로운 Attempt 2 ▪ ●●● building… 섹션을 엽니다.
접힌 시도는 삭제되지 않습니다. 펼치면 Agent가 시도한 내용과 이를 실패시킨 구조화된 오류 목록을 볼 수 있습니다. 활성 뷰를 어지럽히지 않고 실수를 감사할 수 있습니다.
재시도 중에 절대 일어나지 않는 세 가지.
- 캔버스가 깨진 초안으로부터 업데이트되지 않는다. 캔버스
의 진실은
workflow.commit이벤트이며, 검증을 통과한 시 도에서만 발생합니다. 중간의workflow.patch이벤트는 미 리보기이며, 캔버스는 이를 무시합니다. - 폐기된 시도가 카드로 채팅 패널에 도달하지 않는다. 서브 Agent는 각 시도의 이벤트를 서버 측에서 버퍼링하고, 검증에 실패하면 버퍼를 폐기합니다. 검증을 통과한 시도의 카드만 채팅 히스토리에 남습니다.
- 저장된 워크플로우 정의가 깨진 형태가 되지 않는다. 3회 시도가 모두 실패하면, 게이트웨이는 롤백 이벤트를 발행하고 영구 저장을 건너뜁니다. 기존 정의는 그대로 유지됩니다.
캔버스 위의 툴바는 현재 단계를 반영합니다. 시도 1에서는 Drafting…, 재시도가 시작되면 Retrying, attempt N of 3…, 검증된 초안 저장 중에는 Saving…. 채팅이 완료될 때까 지 Run / Schedule / Publish는 비활성 상태로 유지됩니다.
기존 워크플로우 편집
Refine 흐름은 기존 매개변수를 보존합니다. Agent는 메시지에서
변경을 요청한 필드만 건드립니다. 토큰 주소, webhook ID, 사용
자 정의 인자 값, 변경되지 않은 단계의 조건식은 그대로 통과합
니다. 알림 채널 전환을 요청해도, tool_call 단계의 주소가
부수 효과로 다시 쓰여지지 않습니다.
요청이 실행 가능한 워크플로우를 구축하는 데 Agent가 필요로 하는 매개변수를 누락한 경우(지정하지 않은 체인, 연결되지 않 은 provider 등), Agent는 추측 대신 무엇이 누락되었는지 묻는 짧은 어시스턴트 메시지를 반환합니다. 조용한 영-주소 자리 표 시자도, "말하지 않았으니 ETH로 기본 설정"과 같은 깜짝 동작도 없습니다.
스트리밍 중 새로고침
refine 스트리밍 중에 채팅 패널을 새로 고치면 진행 중인 세션 에 다시 연결되고 이미 도착한 이벤트를 재생합니다. 접힌 시도 섹션은 라이브로 본 것과 같은 모양으로 다시 로드됩니다. 작업 로그 스켈레톤은 기반의 refine이 어느 시도의 중간이더라도, 채 팅 히스토리 로드가 완료되는 순간 사라집니다.
순차 실행 모델
모든 워크플로우는 순차적으로 실행됩니다. 배열 형식의
next도, 네이티브 fan-out도, 병렬 분기도 없습니다. Agent에
게 "알림 후 Telegram과 이메일을 보내라"고 요청하면,
notify_tg → notify_email로 체이닝합니다. 체이닝된 두
send_message 단계 사이의 지연은 실제로 1초 미만이며, 사용
자 관점에서는 병렬과 구별되지 않습니다.
이것은 의도적입니다. fan-out 시맨틱은 모니터링 워크플로우에
이중 발사 버그를 도입합니다(가격 모니터 webhook이 하락 중에
두 번 발사되면, 병렬 분기가 있는 워크플로우는 buy를 두 번
호출하게 됩니다). 순차 모델 + 자금 이동 단계의 포지션 체크
가드가 장애 모드를 단순하게 유지합니다.