Skip to content

feat(embabel): Embabel AgentPlatform Integration [Tracking Issue]Β #311

@jwijgerd

Description

@jwijgerd

Embabel AgentPlatform Integration

Replaces: #304 (please close that issue)
Incorporates changes from: PR #303 β€” architect review decisions

πŸ“‹ Full plan: plans/embabel-integration-plan.md
πŸ“‹ Deferred: Incremental Agent Task Processing (extracted to separate plan)

This is the tracking issue for integrating the Embabel AgentPlatform into the Akces agentic aggregate runtime. The integration connects the existing agentic module (main/agentic) with the Embabel Agent Framework, enabling AI-powered GOAP-based planning, LLM reasoning, and tool use within the command processing flow.

Key areas:

  • Extend @AgenticAggregateInfo with agentHandledCommands, agentHandledEvents, agentProducedErrors
  • Inject AgentPlatform into the runtime and create agentic handler adapters (no AgentTask/AgenticProcessHandler β€” deferred)
  • Build reusable Embabel Goals, Actions, and Conditions (@EmbabelComponent)
  • Wire everything into AgenticAggregatePartition with transactional boundaries
  • Delete StoreMemoryCommand/ForgetMemoryCommand (memory management moves entirely to Embabel Actions)
  • Comprehensive testing (split by phase: unit tests for Phase 2, wiring tests for Phase 1, integration tests for Phase 4)

Changes from Architect Review (PR #303)

  1. AgentTask, AgenticProcessHandler, proceedAgentTasks() β€” extracted to separate plan; removed from all issues
  2. EmitDomainEventsAction (3.3) β€” REMOVED; AgentProcessResultTranslator collects DomainEvents from Blackboard directly
  3. ManageKnowledgeGoal (3.9) β€” REMOVED; redundant with LearnFromProcessGoal
  4. Memory commands β€” StoreMemoryCommand/ForgetMemoryCommand marked for deletion; capacity enforcement moves to agent
  5. Agent-handled commands cannot create state β€” isCreate() always false; deterministic @CommandHandler(create=true) required
  6. Concrete goal selection per adapter β€” AgenticCommandHandlerFunctionAdapter β†’ ProcessCommandGoal, AgenticEventHandlerFunctionAdapter β†’ ReactToExternalEventGoal
  7. Transactional boundaries (new section 4.4) β€” tick-to-completion loop inside Kafka transaction; increased transaction.timeout.ms
  8. Section 1.4 (Expose Memories) β€” moved into adapter apply() method
  9. LearnFromProcessGoal β€” now responsible for memory capacity enforcement (replaces enforceMemorySlidingWindow())
  10. Testing split β€” 5.1 Phase 2 unit tests β†’ 5.2 Phase 1 wiring tests β†’ 5.3 test fixtures β†’ 5.4 Phase 4 integration tests

Phase Overview and Dependency Graph

Phase 1 + Annotation Extensions: Foundation & Metadata
        β”‚
        β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
        β–Ό                      β–Ό
Phase 2: Akces Embabel     Phase 3: Platform Development
  Component (Goals,          Goals, Actions, Conditions
  Actions, Conditions)
        β”‚                      β”‚
        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                   β”‚
                   β–Ό
        Phase 4: AgenticAggregatePartition
                 Integration
                   β”‚
                   β–Ό
           Phase 5: Testing

Note on implementation order (from plan):

  • Phase 1 + Annotation Extensions must be completed first β€” all other phases depend on these foundations.
  • Phase 2 and Phase 3 can be implemented concurrently after Phase 1 + Annotation Extensions.
  • Phase 4 requires Phase 2 and Phase 3 to be completed.
  • Phase 5 requires Phase 4 to be completed (full integration testing).

Issues

Phase Issue Replaces Can Start After Blocks
Phase 1 + Annotation Extensions #312 #305 β€” Phase 2, Phase 3, Phase 4, Phase 5
Phase 2: Akces Embabel Component #313 #306 Phase 1 + Annotations Phase 4
Phase 3: Platform Development Goals #314 #307 Phase 1 + Annotations Phase 4
Phase 4: Partition Integration #315 #308 Phase 2 + Phase 3 Phase 5
Phase 5: Testing #316 #309 Phase 4 β€”

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions