Skip to content

Ch02. 架构总览 — DDD 分层与递归模式

13 个核心模块,不是偶然堆叠,而是 DDD 分层思想的递归应用。

本章概要

AutoSnippet 采用领域驱动设计(DDD)的分层架构,并将这种分层思想递归应用到每个子模块内部。本章解析整体架构蓝图,为后续章节建立全局认知框架。

架构全景图

┌─────────────────────────────────────────────┐
│                  CLI / MCP / HTTP            │  ← 接入层
├─────────────────────────────────────────────┤
│                  Agent Layer                 │  ← 智能层
├─────────────────────────────────────────────┤
│                  Gateway                     │  ← 管线层
├─────────────────────────────────────────────┤
│             Service Layer (15 子域)           │  ← 服务层
├─────────────────────────────────────────────┤
│             Domain Layer                     │  ← 领域层
├─────────────────────────────────────────────┤
│             Repository Layer                 │  ← 仓储层
├─────────────────────────────────────────────┤
│          Infrastructure Layer                │  ← 基础设施层
└─────────────────────────────────────────────┘

各层职责

接入层 (CLI / MCP / HTTP)

智能层 (Agent)

管线层 (Gateway)

服务层 (Service)

领域层 (Domain)

仓储层 (Repository)

基础设施层 (Infrastructure)

递归分层模式

核心洞察

AutoSnippet 的每个服务子域(如 Guard、Search)内部也遵循类似的分层:接口定义 → 业务逻辑 → 数据访问。

依赖方向与约束

接入层 → Agent → Gateway → Service → Domain → Repository → Infrastructure

                                     (Domain 不依赖 Service)

模块目录映射

架构层目录关键文件数
核心层lib/core/AST、Constitution、Gateway、Discovery、Enhancement
领域层lib/domain/KnowledgeEntry、Dimension、Snippet
服务层lib/service/15 个子域,40+ Service 类
Agent 层lib/agent/Runtime、Tools(54)、Memory(6层)、Forge
基础设施lib/infrastructure/DB、Cache、Event、Vector、Logging
仓储层lib/repository/Knowledge、Evolution、Token、Remote
外部集成lib/external/MCP、AI Provider、Lark
HTTPlib/http/22 路由文件,142 端点
CLIlib/cli/14 命令实现
DI 容器lib/injection/ServiceContainer、40+ 模块注册
共享lib/shared/28 个工具文件
类型lib/types/全局类型定义

小结

Released under the MIT License.