Modules
Graph-first 에이전트 오케스트레이션의 코어: 상태 채널 + 노드 + 엣지로 그래프를
선언하고, superstep 루프로 실행한다. 설계 전문은 docs/SPEC.md.
A2A(Agent2Agent) 프로토콜 매핑 (SPEC §6, 부록 A2A 표).
AG-UI(Agent-User Interaction) 프로토콜 매핑 (트렌드 보고서 Tier 1).
스키마 검증되는 작업 단위 (SPEC §4).
Action 실행 실패. 그래프 노드로 실행 중이면 {:node_crashed, node, %__MODULE__{}}로 나타난다.
에이전트 생성 코드를 격리 실행하는 Action (트렌드 보고서 Tier 3.10).
장수명 에이전트 = 그래프 + 영속 상태 + 메일박스를 가진 GenServer (SPEC §5).
체크포인트 스냅샷 (SPEC §3.5).
체크포인트 영속화 behaviour (SPEC §3.5).
DETS(디스크 ETS) 기반 내구 체크포인터 — 외부 인프라 0의 단일 노드 영속 옵션.
ETS 기반 기본 체크포인터 (SPEC §3.5).
Mnesia 기반 내구 체크포인터 — BEAM 내장 분산 DB. 외부 인프라 0.
모든 체크포인터 어댑터가 통과해야 하는 공유 계약 테스트 (SPEC §3.5, TDD-SPEC §4).
그래프 정의가 유효하지 않을 때 ElGraph.compile/2에서 발생한다.
노드 실행 컨텍스트. 모든 노드는 (state, ctx) 2-인자로 호출된다 (SPEC §3.2).
도그푸딩 데모: ElGraph 문서 Q&A 에이전트의 supervision 트리 (SPEC §8 M3 완료 기준).
도그푸딩 에이전트 1호: 문서 검색 Q&A. ElGraph.Skills.SignalReAct로 재구성됨 (M4).
도그푸딩 툴: ElGraph 자체 문서(docs/*.md)에서 키워드를 검색한다.
도그푸딩 센서: docs/*.md의 총 바이트 크기를 주기 폴링해 변하면 시그널을 낸다.
도그푸딩 에이전트 2호: 툴 없는 순수 변환. ElGraph.Skills.SignalReAct로 재구성됨 (M4).
경량 평가 하네스 (트렌드 보고서 Tier 3.8).
Superstep(Pregel/BSP) 실행 루프 (SPEC §3.4).
그래프 정의 구조체. ElGraph의 빌더 함수로 구성하고 ElGraph.compile/2로 검증한다.
입출력 가드레일 / 정책 계층 (트렌드 보고서 Tier 3.9).
자주 쓰는 PII(개인식별정보) 패턴 라이브러리.
LLM 클라이언트 behaviour (SPEC §4). 코어는 LLM을 모른다 — 어댑터는 이 표면만 구현한다.
Anthropic Messages API 어댑터 (chat/3 비스트리밍 + stream_chat/3 SSE 스트리밍).
Google Gemini generateContent API 어댑터 (chat/3 비스트리밍 + stream_chat/3 SSE 스트리밍).
OpenAI Chat Completions API 어댑터 (chat/3 비스트리밍 + stream_chat/3 SSE 스트리밍).
Server-Sent Events 증분 프레이밍 파서 (LLM 스트리밍, 순수 함수).
스키마 검증 + 오류 피드백 재시도로 LLM에서 구조화 출력을 얻는다 (신뢰성 패턴).
LLM 호출 계측 헬퍼 (관측/Langfuse 연동의 토대).
LLM 호출 실패. agent 노드를 crash시키므로 노드 retry: 정책과 결합된다.
MCP 서버의 툴을 ElGraph 툴로 변환하는 진입점 (SPEC §4).
MCP 클라이언트 behaviour (SPEC §4).
MCP 클라이언트 능력 — sampling / elicitation / roots (SPEC §4, 자주 누락되는 차별점).
MCP 양방향 수신 루프 — 서버 개시 요청(sampling/elicitation/roots)을 SSE로 받아 응답한다.
MCP Streamable HTTP 클라이언트 transport (ElGraph.MCP.Client 구현, SPEC §4).
ElGraph Action을 MCP 서버로 노출하는 순수 JSON-RPC 2.0 디스패치 (SPEC §4).
MCP 서버 stdio transport 바인딩 — ElGraph Action을 CLI MCP 서버로 노출한다.
MCP 서버에서 가져온 툴 (SPEC §4: MCP 툴 → Action 자동 변환).
스코프 기반 장기 기억 (트렌드 보고서 Tier 2.6).
교체 가능한 기억 백엔드 behaviour — "기억 저장 + 의미 검색" 두 동작만 추상화한다.
Mem0 관리형 메모리 REST API 위임 백엔드.
코어 임베더 기반 기억 백엔드 — 외부 의존 0.
Zep temporal knowledge-graph 메모리 위임 백엔드.
텍스트를 벡터로 변환하는 임베더 behaviour.
ElGraph.Memory를 그래프 노드로 끼우는 헬퍼 (트렌드 보고서 Tier 2.6).
컨텍스트 압축 노드 (SPEC §4, M4). 긴 대화의 오래된 메시지를 LLM 요약으로 치환한다.
:telemetry 이벤트 → OpenTelemetry GenAI 시맨틱 규약 매핑 (SPEC §3.7, R5).
멀티 에이전트 오케스트레이션 패턴 템플릿 (SPEC §6, R5; 트렌드 보고서 Tier 2.5).
미리 조립된 그래프 프리셋 — "첫 5분 경험" (SPEC §4, 부록 A-3).
ReAct 프리셋의 노드 구현 (SPEC §4). 모든 노드는 MFA로 그래프에 들어간다.
프로바이더별 동시 실행 제한 세마포어 (SPEC §5).
내장 reducer 모음. ElGraph.state/3의 :reducer 옵션에 MFA로 지정한다.
호출 단위 실행의 프로세스 래퍼 (SPEC §3.4, §3.9).
실행 핸들. ElGraph.Runner.start_run/3이 반환한다.
격리된 코드 실행 behaviour (트렌드 보고서 Tier 3.10).
외부 인터프리터에 위임하는 ElGraph.Sandbox 어댑터.
docker run으로 코드를 격리 실행하는 ElGraph.Sandbox 어댑터.
환경을 감시하고 시그널을 방출하는 프로세스 (SPEC §5).
에이전트 간 메시지 (SPEC §5). CloudEvents 핵심 필드를 따른다.
시그널 라우터/버스 (SPEC §5). 패턴 구독 + fan-out 발행.
:pg 기반 분산 시그널 버스 transport (SPEC §6).
멱등 수신용 경계 있는(bounded) 중복 id 집합 (SPEC §6, at-least-once 안전).
시그널 구동 ReAct Skill (SPEC §5, M4 — 도그푸딩 2표본에서 추출).
thread를 넘는 장기 기억 behaviour (SPEC §6).
ETS 기반 기본 장기 기억 Store (SPEC §6).
모든 Store 어댑터가 통과해야 하는 공유 계약 테스트 (SPEC §6).
서브그래프 노드의 내부 실행이 {:ok, _}로 끝나지 않았을 때 발생한다.
테스트용 스크립트 LLM (테스트 키트, SPEC §7).