Refactor Agent Runtime: General-purpose LLM Request Service
BREAKING: Introduces new LLM Request/Response pattern for CSR agents Major Changes: - Add new SystemMessage types: SmtyLlmRequest, SmtyLlmResponse - Extend SystemMessage entity with callback and audit fields: * parentSystemMessageId - Links Response → Request * callbackServiceName - Service to call when LLM completes * callbackParameters - JSON params for callback * sourceTypeEnumId/sourceId - Audit trail (Order, CommEvent, etc.) * llmResponse - Raw response stored for debugging New Services: - AgentServices.process#LLMRequest: General-purpose async LLM service * Any trigger (SECA, UI, Order, etc.) can call this * Creates SmtyLlmRequest SystemMessage * Triggers async processing via poller * Validates callback service exists before creating task Refactored Services: - AgentServices.run#AgentTaskTurn: Universal agent processor * Supports both SmtyAgentTask (legacy) and SmtyLlmRequest (new) * ALWAYS provides MCP tools to LLM (for CSR agent pattern) * Creates SmtyLlmResponse and calls callback for new pattern * Maintains backward compatibility with SmtyAgentTask - AgentServices.callback#CommunicationEvent: Saves LLM responses to conversation * Callback service for CommunicationEvent-triggered requests * Maintains conversation thread via rootCommEventId Updated SECA: - AgentTriggerOnCommunication now calls AgentServices.process#LLMRequest * Uses callback pattern instead of direct SystemMessage creation * Enables full audit trail via SystemMessage RequestResponse Benefits: - General-purpose: Any trigger can request LLM processing (orders, inventory, support, etc.) - Traceability: Full audit trail via linked SystemMessages - RBAC: Agent impersonates users, respects permissions - Same UX: Agent uses same screens humans use (via MCP tools) - Flexible: Different callbacks handle responses differently
Showing
4 changed files
with
39 additions
and
7 deletions
This diff is collapsed.
Click to expand it.
-
Please register or sign in to post a comment