Package Map¶
Top-Level Layout¶
src/domain_agent/ reusable generic package
domain/ core domain model
application/ ports, DTOs, use cases
adapters/ inbound/outbound adapters
orchestration/langgraph/ LangGraph workflow assembly
examples/autonomous_digest/ autonomous digest demo app
examples/operational_change/ operational change demo app
examples/mock_api/ mock API demo app
tests/ generic package tests
docs/ project documentation
src/domain_agent¶
domain¶
핵심 도메인 모델이 있습니다.
src/domain_agent/domain/models.py
주요 타입:
RequestRequestStatusRiskLevelProposalReviewDecisionAgentPlanPlannedActionActionReviewDecisionPlanReviewResult
이 파일은 "도메인 중심 agent에서 무엇이 유효한 상태인가"를 정의합니다. 현재 기본 예제는 review capability를 포함합니다.
더 자세한 설명: - Domain Model
application¶
외부 세계와 맞닿는 계약, DTO, use case가 있습니다.
src/domain_agent/application/ports.pysrc/domain_agent/application/dto.pysrc/domain_agent/application/use_cases.py
읽는 기준:
ports.py: 어떤 의존성을 교체할 수 있는지dto.py: workflow와 사람 검토 사이에 어떤 payload가 오가는지use_cases.py: workflow를 어떻게 실행하고 interrupt를 어떻게 resume하는지
orchestration/langgraph¶
LangGraph graph와 node가 있습니다.
src/domain_agent/orchestration/langgraph/graph.pysrc/domain_agent/orchestration/langgraph/state.pysrc/domain_agent/orchestration/langgraph/nodes/deterministic.pysrc/domain_agent/orchestration/langgraph/nodes/llm.py
이 레이어는 "무슨 순서로 실행되는가"를 담당하는 LangGraph orchestration입니다.
adapters/outbound¶
외부 시스템 쪽으로 나가는 outbound adapter입니다.
src/domain_agent/adapters/outbound/in_memory.py
역할:
- in-memory repository
- deterministic context/proposal/planner
- in-memory tools
- static review handler
adapters/inbound¶
실제로 사용자가 진입하는 inbound adapter입니다.
src/domain_agent/adapters/inbound/cli_demo.pysrc/domain_agent/adapters/inbound/cli_review.pysrc/domain_agent/adapters/inbound/cli_graph.py
Example Apps¶
examples/operational_change¶
의도: - generic 코어 위에 운영 변경 도메인을 올리는 예
핵심 파일:
- examples/operational_change/operational_change_demo/models.py
- examples/operational_change/operational_change_demo/adapters.py
- examples/operational_change/operational_change_demo/bootstrap.py
examples/autonomous_digest¶
의도: - human review 없이도 같은 core workflow를 사용할 수 있음을 보여주는 예
핵심 파일:
- examples/autonomous_digest/autonomous_digest_demo/models.py
- examples/autonomous_digest/autonomous_digest_demo/adapters.py
- examples/autonomous_digest/autonomous_digest_demo/bootstrap.py
examples/mock_api¶
의도: - fake API를 가진 시나리오에서 generic 코어를 쓰는 예
핵심 파일:
- examples/mock_api/mock_api_demo/models.py
- examples/mock_api/mock_api_demo/client.py
- examples/mock_api/mock_api_demo/adapters.py
- examples/mock_api/mock_api_demo/bootstrap.py
Test Layout¶
generic package tests:
- tests/unit
- tests/integration
example app tests:
- examples/autonomous_digest/tests
- examples/operational_change/tests
- examples/mock_api/tests
Practical Reading Advice¶
코드를 읽을 때 "어디가 프레임워크이고 어디가 비즈니스 의미인지"가 섞여 보이면, 아래처럼 나눠서 보면 됩니다.
- 비즈니스 의미:
domain - 외부 교체 가능 지점:
application/ports.py - workflow 제어 흐름:
orchestration/langgraph - 실제 실행용 입구:
adapters/inbound - 샘플 도메인:
examples/*
Related Docs¶
Code References¶
src/domain_agent/domain/models.pydocs/domain-model.mdsrc/domain_agent/application/ports.pysrc/domain_agent/application/dto.pysrc/domain_agent/application/use_cases.pysrc/domain_agent/orchestration/langgraph/graph.pysrc/domain_agent/orchestration/langgraph/state.pysrc/domain_agent/orchestration/langgraph/nodes/deterministic.pysrc/domain_agent/orchestration/langgraph/nodes/llm.pysrc/domain_agent/adapters/outbound/in_memory.pysrc/domain_agent/adapters/inbound/cli_demo.pysrc/domain_agent/adapters/inbound/cli_review.pysrc/domain_agent/adapters/inbound/cli_graph.pyexamples/operational_change/operational_change_demo/models.pyexamples/operational_change/operational_change_demo/adapters.pyexamples/operational_change/operational_change_demo/bootstrap.pyexamples/autonomous_digest/autonomous_digest_demo/models.pyexamples/autonomous_digest/autonomous_digest_demo/adapters.pyexamples/autonomous_digest/autonomous_digest_demo/bootstrap.pyexamples/mock_api/mock_api_demo/models.pyexamples/mock_api/mock_api_demo/client.pyexamples/mock_api/mock_api_demo/adapters.pyexamples/mock_api/mock_api_demo/bootstrap.py