> ## Documentation Index
> Fetch the complete documentation index at: https://docs.myrmagent.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 동적 작업 흐름

> Code-as-Orchestrator를 사용하여 단일 에이전트 실행의 컨텍스트 제한을 깨뜨립니다.

MyRM Agent의 Dynamic Workflow 엔진은 "단일 문장으로 수백 개의 하위 에이전트를 파견"하여 대규모, 도메인 간 복잡한 작업(예: 전체 저장소 버그 스캐닝, 대규모 코드 마이그레이션, 다각도 심층 연구)을 해결하도록 설계된 3세대 오케스트레이션 레이어입니다.

## 핵심 장점

### 1. 오케스트레이션 유연성: 코드를 오케스트레이터로 활용

우리는 **Code-as-Orchestrator** 패턴을 개척했습니다. LLM은 작업을 기반으로 Python 조정 스크립트를 동적으로 생성하고 PTC(Programmatic Tool Calling) 보안 샌드박스에서 실행합니다. LLM은(는) `for` 루프, `if` 조건부 분기 및 동시 스레드 풀을 자유롭게 사용할 수 있어 정적 DAG(방향성 비순환 그래프) 워크플로를 훨씬 뛰어넘는 유연성을 제공합니다.

### 2. 내결함성 및 지속성: 4계층 내구성 실행

몇 시간이 걸리는 대규모 작업을 실행할 때 네트워크 연결이 끊기거나 컴퓨터가 절전 모드로 전환되면 기존 워크플로가 중단됩니다. MyRM 에이전트는 경쟁업체가 따라올 수 없는 **4계층 지속성**을 제공합니다. (1) `WorkflowEventStore` — 완료된 하위 에이전트 결과를 다시 실행하는 대신 재생하는 SQLite 내구성 실행 캐시입니다. (2) `SubagentCheckpointStorage` — 파일 수준 잠금이 포함된 전체 실행 상태 스냅샷(메시지, 도구 출력, 변수, 진행률), 강제 중지 또는 충돌 후 진정한 **중단점 재개** 가능; (3) 채팅 DB `progressSteps` — 사후 검토를 위한 메시지 메타데이터로 유지되는 모든 도구 실행 단계; (4) `event_log/` — 규정 준수 및 디버깅을 위한 구조화된 JSONL 감사 추적입니다. 네트워크 연결이 끊기거나 서버가 다시 시작되는 경우에도 워크플로는 중단점에서 즉시 복구되어 완료된 하위 작업을 자동으로 건너뛰고 중단된 하위 에이전트를 정확히 중단한 위치에서 다시 시작할 수 있습니다.

### 3. 비용 관리 및 가시성: 더 이상 숨겨진 청구서는 없습니다

수십 명의 하위 에이전트가 백그라운드에서 동시에 토큰을 소각하면 "숨겨진 청구서"가 쉽게 생성될 수 있습니다. 우리는 **5개 계층의 엄격한 예산 제약**(토큰/USD/시간/하위 항목/동시성)을 제공하고 프런트엔드에 **하위 에이전트 대시보드 실시간 토폴로지 트리** 및 **라이브 토큰 주행 거리계**를 제공합니다. 모든 동시 하위 작업의 진행 상황, 소요 시간 및 비용을 명확하게 확인할 수 있습니다. 이벤트 기반 **비활성 프로브**는 하위 에이전트의 진행이 중단되는 시기를 자동으로 감지합니다. 대시보드에 빨간색 경고가 표시되고, IM 알림이 푸시되고, 데스크톱 알림이 실행됩니다. 모두 오버헤드가 없습니다(기존 토큰 사용 이벤트에 피기백하고, 느리지만 작동하는 도구에서 오탐을 방지하기 위해 활성 도구 호출 중 4배의 허용 오차 배율을 적용). 모든 하위 에이전트는 `SUBAGENT_LOG`(라이브 도구 실행 스트림), `FILE_DIFF`(원클릭 되돌리기를 통한 전체 비교 콘텐츠), `SUBAGENT_PROGRESS`(토큰/비용/ETA 카운터) 및 `ARTIFACT_CONTENT`(즉시 푸시되는 생성된 아티팩트)의 네 가지 병렬 채널을 통해 **실시간 작업 증명**을 스트리밍합니다. 따라서 각 하위 에이전트가 수행하는 작업, 변경된 작업, 발생하는 비용 등을 항상 정확히 알 수 있습니다. 대시보드에는 **고급 시각화** 기능도 있습니다. 총 상담원, 활성 수, 실패, 누적 비용 및 모델 분포를 한눈에 보여주는 **헤더 요약**입니다. **정렬 및 필터** 제어(생성 순서, 비용, 기간 또는 상태별로 정렬, 실행 중, 실패 또는 리프 노드로 필터링) 하위 트리 집계 배지\*\*는 모든 분기 노드에 하위 항목 수, 누적 비용 및 토큰 사용량을 표시합니다. 각 하위 에이전트의 실행 범위를 색상으로 구분된 CSS 막대로 렌더링하는 축소 가능한 **Mini Gantt Timeline** — 모두 백엔드 변경 사항이 없고 프롬프트 토큰에 영향이 없는 GUI 기본입니다.

### 4. 이종 모델 앙상블: 지능형 라우팅

동일한 워크플로우 내에서 시스템은 간단한 "데이터 수집" 하위 작업을 저렴하고 매우 빠른 모델(예: DeepSeek V3)에 자동으로 전달하는 동시에 핵심 "논리적 요약" 작업을 가장 강력한 추론 모델(예: Opus/GPT-4o)에 할당합니다. 출력 품질을 보장하는 동시에 운영 비용을 10배\~60배까지 절감하는 데 도움이 됩니다.

### 5. 폐쇄 루프 검증: 물리적 샌드박스 증거

하위 에이전트가 "코드 수정 완료"라고 말하면 시스템은 "읽기 전용 검증자"를 강제로 생성하여 실제로 샌드박스에서 `npm test` 또는 컴파일 명령을 실행합니다. 실제 물리적 실행 성공 증거를 얻은 경우에만 작업이 실제로 완료된 것으로 간주됩니다. 우리는 LLM 환각을 거부하고 절대적으로 신뢰할 수 있는 결과를 제공합니다.

### 6. 백그라운드 작업 자동 깨우기: "완료되었습니까? 다시 보고하세요!"

장기 실행 백그라운드 하위 에이전트(예: 전체 저장소 리팩토링 작업)를 파견하면 기본 에이전트는 그냥 유휴 상태로 있는 것이 아니라 백그라운드 작업이 완료되면 자동으로 깨어나 계속됩니다. **AsyncWakeupHandler** 프로토콜은 하네스 프레임워크와 서버 레이어를 연결합니다. 하위 에이전트가 완료되면 결과가 채팅 기록에 삽입되고 3번의 재시도, 지수 백오프 및 일일 예산 보호를 통해 헤드리스 에이전트 실행이 자동으로 트리거됩니다. MyRM 에이전트는 **Kanban Dispatcher**(하트비트 모니터링, 좀비 감지, 예약된 절전 모드 해제) 및 **6가지 유휴 유지 관리 작업**(메모리 통합, 인지 파생, 컨텍스트 압축 등)과 결합되어 진정한 "fire-and-forget" 자율 작업을 달성합니다. 서버가 다시 시작되면 **OfflineDurableTask**는 데이터베이스 검사점에서 중단된 작업을 자동으로 재개합니다. 귀하가 자리를 비운 동안 백그라운드 작업이 완료되면 **Offline Guardian**은 성공과 실패를 정확하게 구분합니다. 이중 보험 감지(SSE 오류 청크 일치 + 의미론적 오류 플래그)를 통해 오해의 소지가 있는 일반 알림이 아닌 클릭-채팅 링크를 통해 "작업 완료" 또는 "작업 실패"가 표시되도록 보장합니다.

### 7. 선택적 경로 가드: 중요하지 않은 단계에 대한 단계적 저하

복잡한 DAG 계획에서는 모든 단계가 똑같이 중요하지는 않습니다. MyRM 에이전트는 개별 단계 수준에서 **`allow_failure` 선언적 내결함성**을 지원합니다. 모든 단계를 중요하지 않은 단계로 표시하고, 실패하면(3회 자동 재시도 후에도) `failed` 대신 `skipped` 상태로 단계적으로 저하됩니다. 이에 의존하는 다운스트림 단계는 정상적으로 계속 실행되며 전체 작업은 계속 성공할 수 있습니다.

**실제 사례:** 다중 소스 조사 작업에서 하나의 검색 엔진 API은 속도 제한이 있어 실패합니다. 전체 연구를 중단하는 대신 MyRM은 해당 소스를 건너뛰고 나머지 소스를 계속 진행하여 완전한 보고서를 제공합니다. 경쟁 프레임워크는 단일 단계 실패 시 전체 DAG를 중단합니다.

이 기능은 MyRM에만 있습니다. 경쟁 프레임워크(Claude Code, CrewAI, Dify, OpenHands, Hermes)는 DAG 노드 수준 `allow_failure` 선언을 지원하지 않습니다. 결과: 전부 아니면 전무인 경쟁업체에 비해 다단계 워크플로에서 **30% 이상 높은 작업 성공률**.

### 8. 원클릭 작업 흐름 토글: 울트라 모드보다 더 똑똑해졌습니다.

OpenAI의 GPT-5.6 Sol은 4개의 에이전트를 병렬로 실행하는 원클릭 토글인 "울트라 모드"를 도입하여 더 빠른 결과를 위해 더 높은 토큰 비용을 거래했습니다. MyRM의 **WorkflowModeToggle**은 원클릭 활성화와 동등한 기능을 제공하지만 다음과 같은 상당한 이점을 제공합니다.

|                         | OpenAI Ultra                  | MyRM Workflow Mode                                                                 |
| ----------------------- | ----------------------------- | ---------------------------------------------------------------------------------- |
| **Orchestration**       | Fixed 4 parallel agents       | LLM dynamically decides parallelism and strategy                                   |
| **Persistence**         | None                          | 4-layer persistence (SQLite + Checkpoint + Chat DB + JSONL) with breakpoint resume |
| **Cost safety**         | None (3-5x cost, no controls) | Budget fuse-breaker + auto-reset after send                                        |
| **Progress visibility** | Black box                     | 4 SSE event types + categorized progress bars                                      |
| **Result synthesis**    | Simple merge                  | 4-level confidence classification (✅/⚠️/❌/💥)                                      |
| **Orchestration modes** | 1 (fixed parallel)            | 4 primitives (delegate/batch/swarm/workflow)                                       |

실수로 비용이 많이 드는 후속 메시지를 방지하기 위해 전송 후 토글이 자동으로 재설정됩니다. OpenAI Ultra에는 안전 메커니즘이 없습니다.

### 9. 계획 확인: 지출 전 검토

여러 하위 에이전트를 생성하는 동적 워크플로를 실행하기 전에 시스템은 검토를 위해 **실행 계획을 일시 중지하고 표시**합니다. 생성될 하위 에이전트 수, 각 에이전트의 기능, 예상 비용을 정확히 확인한 다음 **확인**, **편집** 또는 **건너뛰기**를 선택하세요.

이는 `PhaseWaiter` 일시 중지/재개 게이트에 의해 구동됩니다. 서버는 전체 계획 미리 보기(하위 에이전트 수, 작업 설명, 일괄 비용 추정)와 함께 SSE `phase=plan_confirm` 이벤트를 생성한 다음 `/agents/plan-confirm-response` 엔드포인트를 통해 응답할 때까지 실행을 일시 중지합니다. 명시적으로 승인할 때까지 하위 에이전트 실행 시 토큰은 소각되지 않습니다.

**중요한 이유:** 경쟁 워크플로 시스템(Claude Code, CrewAI, Dify)은 즉시 실행됩니다. 계획이 잘못되었음을 깨닫는 순간에는 수십 명의 하위 에이전트가 이미 토큰을 소비한 상태입니다. MyRM의 계획 확인은 "내가 이 $2 워크플로를 승인했습니다"와 "내 상담원이 왜 $50를 지출했나요?"의 차이입니다.

`WorkflowRunGuard`(최대 50개의 생성, 동시성 세마포 5)과 결합된 계획 확인은 2계층 안전망을 형성합니다. 구조적 제한은 폭주 실행을 방지하고 사람의 검토는 잘못된 실행을 방지합니다.

### 10. 계획 가드레일: 폭주 계획이 아닌 집중 실행

LLM이 다단계 작업을 계획할 때 두 가지 실패 모드가 일반적입니다. **과잉 계획**(50개 이상의 사소한 계획 항목 생성, 토큰 낭비) 및 **다중 초점 드리프트**(3\~5개 작업을 동시에 "진행 중"으로 표시하고 아무것도 완료하지 않음).

MyRM의 `todo_write` 도구는 코드 수준에서 하드 가드레일을 적용합니다.

* **MAX\_TODOS = 20**: 계획 폭발을 방지합니다. 초과하면 명확한 오류가 LLM을 병합하거나 단순화하도록 안내합니다.
* **단일 in\_progress 적용**: 한 번에 하나의 작업만 적극적으로 작업할 수 있습니다. LLM이 이를 위반하는 경우 시스템은 **지능적으로 수정**(이전 진행 중인 항목을 보류 상태로 되돌리고 최신 항목 유지) 수정 사항을 설명하는 피드백 메모를 제공합니다.
* **거부보다 수정**: 흐름을 방해하는 하드 거부와 달리 지능형 수정은 LLM이 후속 차례에서 자체 수정하도록 가르치는 동시에 작업 흐름을 계속 진행합니다.

이는 프롬프트 수준 제안이 아닌 코드 적용 제약 조건입니다. 어떤 LLM 모델이나 공급자가 사용되는지에 관계없이 동작이 일관됩니다.

### 11. 단일 에이전트 게이트키핑: 기본적으로 단순하고 요청 시 강력함

MyRM은 기본적으로 집중된 단일 에이전트 경험을 제공합니다. `suggestWorkflowMode`은 **기본적으로 꺼져 있습니다**. 시스템은 하나의 에이전트로 대부분의 작업을 자동으로 처리하며 오케스트레이션 오버헤드 없이 빠르고 예측 가능한 응답을 제공합니다. 사용자는 명시적으로 동의하지 않는 한 워크플로 제안을 볼 수 없습니다.

사전 다중 에이전트 제안을 원하는 고급 사용자의 경우 **설정 → 기본 설정 → 고급**에서 단일 토글로 검색 엔진을 활성화할 수 있습니다.

* **제로 LLM 비용**: 검색에서는 쿼리 구조(번호가 매겨진 목록, 병렬 키워드, 다중 목표 마커)에 순수 정규식 기반 점수를 사용합니다.
* **비차단**: 제안은 채팅 스트림에 인라인 카드로 표시됩니다. 현재 응답은 중단되지 않습니다.
* **사용자 제어**: 수락(다음 메시지에 대한 워크플로 활성화), 닫기(카드 숨기기) 또는 토글을 다시 끕니다.
* **보수적 설계**: ComplexityRouter가 작업을 `reasoning` 계층으로 분류하고 분해성 점수가 엄격한 임계값(≥4/7)을 충족하는 경우에만 트리거됩니다.
* **역호환성**: 이전에 설정에 `suggestWorkflowMode: true`을 저장한 기존 사용자는 기본 설정을 유지하며 업그레이드 시 자동 동작 변경이 없습니다.

**단일 에이전트가 먼저인 이유는 무엇입니까?** Bret Taylor(Sierra CEO, 전 Salesforce CEO)는 다음과 같이 설명했습니다. 최고의 다중 에이전트 시스템은 사용자에게 단일 에이전트로 제공됩니다. 다중 에이전트 오케스트레이션은 제품 표면이 아닌 구현 세부 사항입니다. MyRM은 완전한 다중 에이전트 DAG 오케스트레이션 기능을 갖춘 유일한 플랫폼이며 **기본적으로 이를 의도적으로 억제**하여 전문가가 완전한 제어권을 유지하면서 신규 사용자가 가장 간단하고 빠른 경험을 얻을 수 있도록 보장합니다.

Claude Code, OpenClaw, Hermes, DeerFlow, CoPaw 또는 Lobe-Chat을 포함한 경쟁 제품은 구성 가능한 워크플로 모드 제안을 제공하지 않습니다. 그들은 항상 그것을 보여주거나(소음 추가) 전혀 제공하지 않습니다(기회 누락).
