A follow-up to 1.0.0-preview focused on finishing the 1.0 API cleanup. All previously deprecated APIs are now gone, the graph DSL's node names are settled, and a few late-breaking event/augmenter bugs from the preview window are fixed.
Bug Fixes
LLMCallFailedContext.eventTypereportedLLMCallStarting: The failed-call event context advertised the wrong lifecycle type, so listeners filtering byeventTypesaw failures as starts. Now correctly emitsLLMCallFailed(#2037, KG-845).LLMCallFailedEventmissing from remote event serialization: The event wasn't registered in the polymorphic feature-message module, so it never made it across the trace transport. Added registration plus trace-format branches for the previously missingLLMStreamingandSubgraphExecutionevents (#2024, KG-844).PromptAugmenterimplementations after theMessage/MessagePartrefactor:SystemPromptAugmenter,UserPromptAugmenter, andAgentcorePromptAugmenternow append a newMessagePartto an existingMessageinstead of constructing a fresh message, and share a commonSECTION_SEPARATORconstant for consistent layout (#2039).
Breaking Changes
-
All
@DeprecatedAPIs removed (#2001). The 1.0 line carries no deprecated surface. Notable removals:- Event handlers:
Deprecated*EventHandlerContextclasses (agent, LLM, node, tool, strategy) and the oldStrategyEventContext. Use the currentAIAgentPipelineAPI/AIAgentGraphPipelineAPI/AIAgentPlannerPipelineAPIevent contexts. - Pipeline: the old
AIAgentPipeline/AIAgentPipelineImplare gone; surviving APIs live onAIAgentPipelineAPI/AIAgentGraphPipeline/AIAgentPlannerPipeline. - Agent / strategy / DSL: deprecated members on
AIAgentService,AIAgentTool,GraphAIAgent,AIAgentContext,AIAgentGraphContext,AIAgentGraphStrategy,AIAgentNode,AIAgentNodeDelegate,AIAgentParallelNodesMergeContext,AIAgentSubgraphBuilder, and the deprecatedAIAgentConfigconstructors. - Tools: deprecated entry points on
Tool,SimpleTool,ToolArgs,ToolResult, plusReceivedToolResultlegacy fields. - Persistence: typo-spelling fix —
PersistencyStorageProvider/FilePersistencyStorageProvider/JVMFilePersistencyStorageProviderrenamed toPersistence*(update imports). DeprecatedPersistencefeature shims,PersistenceFeatureConfigmembers, and the H2/SQLCheckpoint*BackwardCompatibilityTestpaths are removed.AgentCheckpointDatalegacy fields are gone. - Executors: deprecated members on
DefaultMultiLLMPromptExecutor,SingleLLMPromptExecutor, and the JVMSimplePromptExecutorsshims. - MCP: deprecated overloads on
McpServerandMcpToolRegistryProvider. - Models:
AnthropicModels.Haiku_3andBedrockModels.AnthropicClaude3Haiku, plus deprecated Google and DeepSeek model entries. - Spring autoconfig: deprecated members on the Anthropic / DeepSeek / Google / Mistral / Ollama / OpenAI / OpenRouter auto-configurations.
- RAG / utilities: deprecated members on
SearchStorage,EmbeddingStorage,ModelInfo,DummyAIAgentContext.
- Event handlers:
-
Graph DSL node names settled (#2035). The
WithUserTextsuffix introduced in1.0.0-previewis gone —String-input nodes recover their original names, and theMessage.User-input variants move to aSendMessage*prefix:nodeLLMRequestWithUserText→nodeLLMRequest(takesString); theMessage.Useroverload from preview is nownodeLLMSendMessage.- Same pattern for the other variants:
nodeLLMRequestOnlyCallingTools,nodeLLMRequestWithoutTools,nodeLLMRequestForceOneTool,nodeLLMRequestMultipleChoices,nodeLLMRequestStreaming,nodeLLMRequestStructured— theString-input forms keep these names;Message.User-input forms are renamed tonodeLLMSendMessage*. nodeExecuteToolsnow returnsReceivedToolResults(previously namednodeExecuteToolsAndGetResults). The oldnodeExecuteToolsthat wrote results back into the LLM session and returnedMessage.Useris removed — connect the newnodeExecuteToolsdirectly tonodeLLMSendMessage/nodeLLMSendToolResults*instead.- New
nodeLLMModerateText(name, moderatingModel, includeCurrentPrompt)accepts plainStringinput alongside the existingnodeLLMModerateMessage(Message.User).
-
Promptclass moved out of thedslpackage (#2022).ai.koog.prompt.dsl.Promptis nowai.koog.prompt.Prompt. Theprompt { ... }DSL builder stays inai.koog.prompt.dsl— only the type import changes. -
Dependency ABI cleanup (#2007).
oshai.kotlin.loggingis no longer in the:prompt-executor-clientspublic API (api→implementation). Consumers that importedKLoggertransitively must add their ownimplementation(libs.oshai.kotlin.logging).oshai-loggingupgraded7.0.7→8.0.01— 8.x has API refactors; update yourKLoggerusage if affected.ktor.server.sseis no longer transitively exposed by:agents-features-tokenizer/:agents-features-trace. Depend on it directly if you used it through these modules.- Internal:
ktor33.2.2→3.3.3,kotlinx-io0.7.0→0.9.0.android.useAndroidX=trueis now enabled (required byokhttp-androidtransitive from ktor 3.3.3).