# ElGraph v0.3.0 - Table of Contents

> Graph-first agent framework on the BEAM — durable execution, HITL, time-travel, checkpoints, agents, and bidirectional MCP. No Python.

## Pages

- [Overview](readme.md)
- [License](license.md)

## Modules

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

- Exceptions
  - [ElGraph.ActionError](ElGraph.ActionError.md): Action 실행 실패. 그래프 노드로 실행 중이면 `{:node_crashed, node, %__MODULE__{}}`로 나타난다.
  - [ElGraph.CompileError](ElGraph.CompileError.md): 그래프 정의가 유효하지 않을 때 `ElGraph.compile/2`에서 발생한다.
  - [ElGraph.LLMError](ElGraph.LLMError.md): LLM 호출 실패. agent 노드를 crash시키므로 노드 `retry:` 정책과 결합된다.
  - [ElGraph.SubgraphError](ElGraph.SubgraphError.md): 서브그래프 노드의 내부 실행이 `{:ok, _}`로 끝나지 않았을 때 발생한다.

