# A2A-domain **Repository Path**: qfmx/a2a-domain ## Basic Information - **Project Name**: A2A-domain - **Description**: A2A domain - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-03 - **Last Updated**: 2026-08-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # A2A Domain Platform 基于 DDD 与六边形架构实现的 A2A(Agent-to-Agent)领域平台。目前已完成工程基础设施和 Agent Directory 纵向切片,支持 Agent 注册、AgentCard 发布、当前版本查询以及按技能和 MIME 类型发现 Agent。 ## 当前进度 - 阶段 0:统一语言、上下文边界、状态机和关键架构决策。 - 阶段 1:Maven 多模块工程、依赖约束、基础类型、Outbox 和 ArchUnit 基线。 - 阶段 2:Agent、AgentCard、AgentSkill 领域模型及注册、发布、查询、发现链路。 - 阶段 3 及以后:Task Collaboration、流式通知、IAM、可观测性与生产化,尚待开发。 详细计划参见 [DDD 领域模块开发计划](docs/ddd-development-plan.md)。 ## 架构 依赖方向遵循: ```text Trigger -> API -> Case -> Domain <- Infrastructure ^ | Types App 负责依赖装配和应用启动 ``` | 模块 | 职责 | | --- | --- | | `a2a-types` | 跨上下文基础类型、领域异常和事件接口 | | `a2a-domain` | 聚合、实体、值对象、领域规则和 Repository Port | | `a2a-api` | 请求及响应契约 DTO | | `a2a-case` | 应用用例、事务边界和 DTO 映射 | | `a2a-infrastructure` | JDBC Repository、DAO、PO、Flyway 迁移和 Outbox | | `a2a-trigger` | HTTP Controller 与异常转换 | | `a2a-app` | Spring Boot 启动、配置和依赖装配 | Domain 模块不依赖 Spring、JDBC 或 HTTP 框架;架构约束由 Maven Enforcer 和 ArchUnit 自动验证。 ## 技术基线 - Java 17+ - Maven 3.6.3+ - Spring Boot 4.1.0 - Spring JDBC - Flyway 12.11.0 - H2(本地开发及测试) - JUnit 5、ArchUnit ## 构建与运行 执行全量编译、单元测试、数据库迁移测试和架构测试: ```shell mvn clean verify ``` 安装全部模块并启动应用: ```shell mvn clean install mvn -f a2a-app/pom.xml spring-boot:run ``` 应用默认监听 `http://localhost:8080`,使用 PostgreSQL 兼容模式的内存 H2 数据库;应用重启后数据会清空。 ## Agent Directory API | 方法 | 路径 | 用途 | | --- | --- | --- | | `POST` | `/api/agents` | 注册 Agent | | `POST` | `/api/agents/{agentId}/cards` | 发布 AgentCard | | `GET` | `/api/agents/{agentId}/cards/current` | 查询当前已发布 Card | | `GET` | `/.well-known/agent-card.json?agentId={agentId}` | 通过 well-known 路径查询 Card | | `GET` | `/api/agents/discover` | 按 `skillId`、`tag`、`inputMode`、`outputMode` 发现 Agent | 注册示例: ```shell curl -X POST http://localhost:8080/api/agents \ -H "Content-Type: application/json" \ -d '{"agentId":"weather-agent"}' ``` ## 文档 - [核心概念概览](docs/1.md) - [AgentCard](docs/2.md) - [Task](docs/3.md) - [Artifact](docs/4.md) - [Message](docs/5.md) - [Part](docs/6.md) - [统一领域语言](docs/domain/ubiquitous-language.md) - [上下文契约](docs/domain/context-contracts.md) - [Task 状态机](docs/domain/task-state-machine.md) - [架构决策记录](docs/adr/) ## 质量状态 最近一次 `mvn clean verify` 已通过全部 8 个 Maven 模块和 17 个测试,覆盖领域规则、应用用例、Repository、Flyway 迁移、HTTP、Spring 应用上下文及架构依赖约束。