SoloFlow: 인지 메모리, 규율 기반 라우팅 및 자동 기술 진화를 통한 구조화된 AI 워크플로우
요약
SoloFlow는 인지 메모리, 규율 기반 라우팅, 자동 기술 진화 기술을 통해 복잡한 AI 에이전트 워크플로우를 구조화하는 프레임워크입니다. 관찰 가능성 부재와 기억 상실 문제를 해결하여 신뢰할 수 있는 다단계 AI 작업을 지원합니다.
핵심 포인트
- 에빙하우스 망각 곡선을 적용한 3계층 메모리 시스템 제공
- 작업 복잡도에 따른 4단계 자동 라우팅(quick/deep/visual/ultrabrain)
- 관찰 및 패키징을 통한 자동 기술 진화(Skill Evolution) 메커니즘
- DAG와 FSM을 결합하여 병렬 및 순차 실행의 신뢰성 확보
- 의존성 없는 순수 Python 기반의 경량 프레임워크
인지 메모리 (cognitive memory), 규율 인식 라우팅 (discipline-aware routing), 그리고 자동 기술 진화 (automatic skill evolution)를 통해 혼란스러운 다단계 AI 작업을 구조화되고 관찰 가능하며 재시도 가능한 워크플로우 (workflows)로 전환하세요.
AI 에이전트 (AI Agents)는 예측 가능한 방식으로 실패합니다:
| 문제 | SoloFlow 솔루션 |
|---|---|
| 관찰 가능성 (Observability) 부재 — 8단계 체인이 5단계에서 실패해도 추적이나 재개가 불가능함 | 추적 시스템 (Trace System) — 중첩된 스팬 (nested spans), 토큰 추적, JSON 내보내기 |
| 기억 상실 에이전트 (Amnesiac Agents) — 모든 호출이 제로 상태에서 시작됨 | 에빙하우스 메모리 (Ebbinghaus Memory) — 망각 곡선이 적용된 3계층 메모리 |
| 일률적인 방식 (One-Size-Fits-All) — 단순한 작업에 과도한 추론 자원을 낭비함 | 규율 라우팅 (Discipline Routing) — quick/deep/visual/ultrabrain으로 자동 분류 |
| 학습 능력 부재 — 반복되는 패턴이 수동 상태로 유지됨 | 기술 진화 (Skill Evolution) — 관찰 → 탐지 → 패키징 → 설치 |
표현력(DAG) + 엄격함(FSM) = 신뢰성
- 위상 정렬 (topological sorting)을 위한 Kahn 알고리즘
- 가능한 경우 병렬 실행 (Parallel execution), 필요한 경우 순차 실행 (sequential)
- 지수 백오프 (exponential backoff)를 적용한 자동 재시도
R(t) = base × e^(-t / stability)
작업 메모리 (Working Memory)— 현재 컨텍스트를 위한 LRU 캐시
일화적 메모리 (Episodic Memory)— 이벤트 이력을 위한 SQLite + FTS5
의미론적 메모리 (Semantic Memory)— 패턴 추출 및 템플릿 저장
에빙하우스 망각 곡선 (Ebbinghaus Forgetting Curve)— 자동 메모리 공고화 (memory consolidation)
quick (~2s) → deep (~30s) → visual (~30s) → ultrabrain (~120s)
- 복잡도에 따른 작업 자동 분류
- 적절한 에이전트 규율 (agent discipline)로 라우팅
- 불확실할 경우 기본값으로 폴백 (Fallback)
observe → fingerprint → detect → package → install
수동적 관찰 (Passive observation) via hermes.on("tool_call")
- 이벤트 훅 (event hooks)
- 다단계 워크플로우 집계 (Multi-step workflow aggregation) — 연속적인 도구 호출 (tool calls)을 자동으로 그룹화
- 풍부한 단계 설명 (Rich step descriptions) — 주요 인자 (args)를 사람이 읽을 수 있는 단계로 추출
- 4차원 품질 점수 (4-dimension quality scoring) — 신뢰성, 효율성, 성숙도, 재사용성
- 자동 생성 (Auto-generate) —
SKILL.md+plugin.py를 생성하여~/.hermes/skills/에 설치
git clone https://github.com/SonicBotMan/SoloFlow.git
cd SoloFlow
# 순수 Python, 의존성 없음 (zero dependencies)
import asyncio
from pathlib import Path
from hermes_plugin.store.sqlite_store import SQLiteStore
...
SoloFlow는 워크플로우 (workflows)를 모니터링하고 재사용 가능한 기술 (skills)을 자동으로 생성하는 Hermes 플러그인을 포함하고 있습니다.
bash install.sh
또는 수동으로 설치:
cp plugins/soloflow.py ~/.hermes/plugins/
cp -r skills/meta/soloflow ~/.hermes/skills/meta/
cp -r evolution ~/.hermes/plugins/
...
tool_call 이벤트 → WorkflowBuilder (집계) → PatternDetector (지문 인식)
↓
패턴 (2회 이상 발생)
...
WorkflowBuilder는 연속적인 tool_call 이벤트를 다단계 워크플로우 (multi-step workflows)로 축적합니다 (60초간 유휴 상태 시 자동 플러시 (auto-flush)).
PatternDetector는 워크플로우 구조 (단계 이름 + 엣지 (edges) + 도구 (tools))의 지문 (fingerprint)을 생성하고 동일한 실행을 그룹화합니다.
SkillPackager는 풍부한 단계 설명을 포함한 Hermes 네이티브 SKILL.md 및 plugin.py를 생성합니다.
QualityScorer는 신뢰성 (reliability), 효율성 (efficiency), 성숙도 (maturity), 재사용성 (reusability)의 4가지 차원에서 기술을 평가합니다.
| 명령어 | 설명 |
|---|---|
/soloflow begin [name] | 워크플로우 시작 표시 |
/soloflow end [name] | 워크플로우 종료 표시 및 패턴 기록 |
/soloflow propose | 세션 분석 및 최상위 기술 제안 |
/soloflow generate [name] | 기술 생성 및 설치 |
/soloflow list | 감지된 패턴 목록 표시 |
/soloflow skills | 생성된 기술 목록 표시 |
/soloflow status | 추적 상태 표시 |
/soloflow queue | 대기 중인 제안 표시 |
/soloflow clear | 세션 로그 삭제 |
Hermes에게 자연스럽게 말하세요 — 명령어가 필요 없습니다:
"이것을 기술로 저장해줘"
"이걸 어떻게 하는지 기억해둬"
"이 워크플로우를 재사용 가능한 기술로 바꿔줘"
"난 항상 이걸 수동으로 해..."
"이걸 자동화하자"
DAG 엔진을 통해 워크플로우가 완료되면, SoloFlow는 실행 데이터를 PatternDetector에 자동으로 전달합니다:
from hermes_plugin.services.workflow_service import WorkflowService
ws = WorkflowService(store)
ws.set_on_complete(lambda wf_id, success, duration, wf_def: ...)
...
AI 에이전트 (AI agents)와의 통합을 위한 5가지 MCP 도구:
| 도구 (Tool) | 설명 (Description) |
|---|---|
soloflow_create | 단계 (steps) 및 DAG 엣지 (edges)를 포함한 새로운 워크플로우 (workflow) 생성 |
soloflow_run | DAG 병렬성 (parallelism)을 활용한 워크플로우 실행 |
soloflow_status | 워크플로우 상태 및 진행 상황 조회 |
soloflow_list | 선택적 상태 필터 (state filter)를 적용한 워크플로우 목록 나열 |
soloflow_cancel | 실행 중인 워크플로우 취소 |
# config.yaml
tools:
mcp:
...
중첩된 스팬 (nested spans)을 통해 모든 워크플로우 실행을 추적합니다:
from trace.collector import TraceCollector
from trace.exporter import TraceExporter
from trace.span import SpanStatus, TokenUsage
...
자동 통합 (automatic consolidation) 기능이 포함된 메모리 시스템:
from memory.forgetting.consolidation import MemoryConsolidator
consolidator = MemoryConsolidator(db_path=Path("memory.db"))
await consolidator.add_memory(
...
민감한 워크플로우 단계를 위한 승인 시스템 (Approval system):
from hermes_plugin.human import HumanApprovalManager
manager = HumanApprovalManager()
request = manager.create_request(
...
역할 기반 권한 (Role-based permissions), 감사 로깅 (audit logging) 및 정책 집행 (policy enforcement):
from hermes_plugin.governance import GovernanceManager, Permission
governance = GovernanceManager()
governance.grant_permission("user_1", Permission.EXECUTE)
...
SoloFlow/
├── hermes-plugin/ # 핵심 엔진 (Core engine)
│ ├── core/ # DAG + FSM
...
| 계층 (Layer) | 구성 요소 (Component) | 상태 (Status) |
|---|---|---|
| T | MCP 도구 계층 (MCP Tool Layer) | ✅ 5개 도구 |
| C | 에빙하우스 메모리 (Ebbinghaus Memory) + 컨텍스트 제공자 (Context Providers) | ✅ 망각 곡선 (Forgetting curve) + 플러그형 컨텍스트 (pluggable context) |
| L | DAG + FSM 엔진 + 파이프라인 (Pipeline) | ✅ 핵심 (Core) + Haystack 스타일 구성 요소 |
| O | 추적 시스템 (Trace System) + 훅 (Hooks) | ✅ 중첩된 스팬 (Nested spans) + 생명주기 훅 (lifecycle hooks) |
| V | 품질 점수 산정기 (Quality Scorer) + 출력 검증 (Output Validation) | ✅ 4차원 점수 산정 (4-dimension scoring) + 타입 지정 계약 (typed contracts) |
| E | 실행 (Execution) + 디스패치 (Dispatch) + 핸드오프 (Handoff) | ✅ 하위 에이전트 디스패치 (Sub-agent dispatch) + 제어권 이전 (control transfer) |
| G | 거버넌스 (Governance) + 역할 (Roles) + 세션 (Session) + 경계 (Boundary) | ✅ 역할 권한 (Role permissions) + 세션 관리 (session mgmt) |
커버리지 (Coverage): 7/7 계층 (100%)
# 모든 테스트 실행
python3.11 -m pytest tests/ -v
# 특정 모듈 실행
...
68개 테스트, 모두 통과.
가이드라인은 CONTRIBUTING.md를 참조하세요.
MIT License - LICENSE 참조
- LangGraph, AutoGen, 그리고 Agent Harness Engineering 연구에서 영감을 받았습니다.
- AI Agent 커뮤니티를 위해 ❤️를 담아 제작되었습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Coding Assistants의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기