Skip to content

feat: Phase 4 — BOM and Integration (akces-agentic module)#297

Merged
jwijgerd merged 3 commits into
mainfrom
copilot/add-akces-agentic-to-bom
Apr 6, 2026
Merged

feat: Phase 4 — BOM and Integration (akces-agentic module)#297
jwijgerd merged 3 commits into
mainfrom
copilot/add-akces-agentic-to-bom

Conversation

Copilot AI commented Apr 6, 2026

Copy link
Copy Markdown
Contributor

Integrates the akces-agentic module into the build system, BOM, and documentation tooling. Extends the EventCatalog annotation processor to generate documentation for @AgenticAggregateInfo-annotated aggregates.

BOM

  • Added akces-agentic to bom/pom.xml managed dependencies (main/pom.xml already included the module from Phase 2/3)

EventCatalog Annotation Processor

  • Added @AgenticAggregateInfo to @SupportedAnnotationTypes and a dedicated processing pipeline (agenticAggregateCache, processAgenticAggregateInfoAnnotations())
  • generateCatalogEntries() emits service docs for agentic aggregates with type: Singleton in the MDX frontmatter and pre-populates built-in memory commands/events (StoreMemory, ForgetMemory, MemoryStored, MemoryRevoked)
  • ServiceTemplateGenerator.ServiceMetadata gains an optional type field; a 9-arg convenience constructor keeps all existing call sites unchanged

Generated service index for an agentic aggregate:

---
id: MyAssistant
version: 1.0.0
name: MyAssistant
summary: My AI Assistant AgenticAggregate
type: Singleton
owners:
    - framework-developers
receives:
  - id: StoreMemory
    version: 1.0.0
  - id: ForgetMemory
    version: 1.0.0
sends:
  - id: MemoryStored
    version: 1.0.0
  - id: MemoryRevoked
    version: 1.0.0
...

Documentation

  • README.md: Added AgenticAggregates to Core Concepts; added agentic module to Architecture section with links to new docs
  • FRAMEWORK_OVERVIEW.md (new): Full architecture reference — module table, all core concepts, and a dedicated AgenticAggregates section (comparison table vs regular aggregates, annotation, state interface contract, built-in commands/events, sliding-window eviction, external event subscription behaviour)
  • SERVICES.md (new): Kubernetes CRD reference for all four service types (Aggregate, CommandService, QueryService, AgenticAggregate), including AgenticAggregateSpec and SidecarSpec field tables and a worked example deploying an AgenticAggregate with a GitHub MCP Server sidecar

Copilot AI linked an issue Apr 6, 2026 that may be closed by this pull request
7 tasks
Copilot AI and others added 2 commits April 6, 2026 17:17
…EventCatalogProcessor for AgenticAggregateInfo, add documentation

Agent-Logs-Url: https://github.com/elasticsoftwarefoundation/akces-framework/sessions/17cce424-6599-41b4-b234-27b320166042

Co-authored-by: jwijgerd <914840+jwijgerd@users.noreply.github.com>
Copilot AI changed the title [WIP] Integrate akces-agentic module into BOM and update documentation feat: Phase 4 — BOM and Integration (akces-agentic module) Apr 6, 2026
Copilot AI requested a review from jwijgerd April 6, 2026 17:21
@jwijgerd
jwijgerd marked this pull request as ready for review April 6, 2026 18:10
Copilot AI review requested due to automatic review settings April 6, 2026 18:10
@jwijgerd
jwijgerd merged commit 7a1b2f2 into main Apr 6, 2026
9 checks passed
@jwijgerd
jwijgerd deleted the copilot/add-akces-agentic-to-bom branch April 6, 2026 18:13

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Integrates the new akces-agentic module into the framework’s build/documentation ecosystem and extends the akces-eventcatalog annotation processor to generate EventCatalog service docs for @AgenticAggregateInfo-annotated aggregates.

Changes:

  • Add akces-agentic to the framework BOM for dependency management.
  • Extend the EventCatalog annotation processor + templates to emit “Singleton”-typed service pages for agentic aggregates (including built-in memory messages).
  • Add/expand top-level docs (FRAMEWORK_OVERVIEW.md, SERVICES.md) and update README.md to include AgenticAggregates.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
SERVICES.md New Kubernetes CRD reference including AgenticAggregate and sidecar examples.
README.md Adds AgenticAggregates to core concepts and lists the agentic module.
main/eventcatalog/src/test/java/.../EventCatalogProcessorTest.java Adds a processor test for @AgenticAggregateInfo service doc generation.
main/eventcatalog/src/main/java/.../ServiceTemplateGenerator.java Adds optional type frontmatter support for service docs.
main/eventcatalog/src/main/java/.../EventCatalogProcessor.java Adds @AgenticAggregateInfo support and generates agentic aggregate service docs.
FRAMEWORK_OVERVIEW.md New architecture overview with an AgenticAggregates section and comparisons.
bom/pom.xml Adds akces-agentic as a managed dependency.

Comment on lines +698 to +706
Stream.concat(
builtInReceives.stream(),
agenticHandledCommands.getOrDefault(agenticInfo, Collections.emptySet()).stream()
.map(typeElement -> typeElement.getAnnotation(CommandInfo.class))
.filter(Objects::nonNull)
.map(annotation -> new ServiceTemplateGenerator.Message(
annotation.type(),
annotation.version() + ".0.0"))
).toList(),

Copilot AI Apr 6, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

agenticHandledCommands / agenticProducedEvents are referenced when generating AgenticAggregate service docs, but these maps are never populated (handler matching + relationship building only populates the non-agentic aggregate maps). As a result, agentic service docs will always list only the built-in memory messages and omit any custom commands/events declared by the agentic aggregate. Extend the handler matching and relationship-building pipeline to also collect handled commands/events (and produced/error events) for agentic aggregates, or remove these fields if intentionally unsupported.

Copilot uses AI. Check for mistakes.
Comment on lines +998 to +1004
@AgenticAggregateInfo(
value = "Assistant",
stateClass = AssistantState.class,
description = "AI Assistant AgenticAggregate",
maxMemories = 50)
@SuppressWarnings("unused")
public final class Assistant implements AgenticAggregate<AssistantState> {

Copilot AI Apr 6, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This new test only validates that the built-in memory messages and type: Singleton appear in the generated service doc; it doesn’t exercise the newly added (but currently non-functional) path for including an agentic aggregate’s own handled commands/events or produced events. Add a test case where the agentic aggregate contains at least one @CommandHandler with produces (and corresponding @CommandInfo / @DomainEventInfo types) and assert those IDs appear in the generated MDX so regressions are caught.

Copilot generated this review using guidance from repository custom instructions.
Comment thread FRAMEWORK_OVERVIEW.md
| External events | Via `@EventBridgeHandler` | Listens to **all** partitions directly |
| GDPR/PII | Supported | Not supported (agent memory is not PII) |
| Annotation | `@AggregateInfo` | `@AgenticAggregateInfo` |
| Kubernetes CRD | `AggregateService` | `AgenticAggregate` (short name `aag`) |

Copilot AI Apr 6, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The CRD kind for standard aggregates is Aggregate (short name agg), not AggregateService (see operator CRD annotations and generated CRD YAML). Update this row to avoid misleading deployment/docs references.

Suggested change
| Kubernetes CRD | `AggregateService` | `AgenticAggregate` (short name `aag`) |
| Kubernetes CRD | `Aggregate` (short name `agg`) | `AgenticAggregate` (short name `aag`) |

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(agentic): Phase 4 — BOM and Integration

3 participants