refactor(agents)!: move goap and llm-based planners to a new module#1997
Merged
antoniibelyshev merged 7 commits intoMay 14, 2026
Merged
Conversation
3442bf8 to
f1d1ca0
Compare
Amaneusz
reviewed
May 13, 2026
Collaborator
Amaneusz
left a comment
There was a problem hiding this comment.
This is a solid piece of work 💪
I see two things that block the merge as of this moment:
- Failing build
:agents:agents-features:agents-features-acp:checkSplitPackages- I haven't looked into it yet tbh - Referencing non existing
JavaTypedAIAgentPlannertype in examples
Besides that:
- I added few minor comments, none of them is blocking
- I would edit
BREAKINGsection in PR description:- Existing imports of
ai.koog.agents.planner.goap.*andai.koog.agents.planner.llm.*now
require a newagents-plannermodule dependency - number of generics needed by
AIAgentPlanner(andJava...) increased from 2 to 4 - migth be worth mentioning here if someone had their custom strategy AIAgentPlannerStrategyconstructor changed - it's a public class, worth noting- removal of
AIAgentPlannerStrategymethods:builder(name)andgoap(...), also top levelAIAgentPlannerStrategy(...)factory function andPlannerAIAgent.builder()
- Existing imports of
14a22d3 to
2b20f55
Compare
2b20f55 to
4a933a0
Compare
bbfff6e to
04e51bc
Compare
Amaneusz
approved these changes
May 14, 2026
Collaborator
Amaneusz
left a comment
There was a problem hiding this comment.
LGTM!
As discussed on call:
- no-arg constructors for
AIAgentPlannerandJavAIAgentPlannersilenty disable users from serialization-based features (ie persistence) - a KDoc might be valuable, otherwise we accept the risk that we think is negligible - examples for
sping-aiwill become stale as they reference an old version ofAIAgentPlannerthat accepts 2 generics instead of 4 - we are fine with this as examples refer strictly to 0.8 version and might be upgraded later on if necessary
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Created
agents:agents:plannersmodule, movedGOAPPlannerandSimpleLLMPlannerto the new module. Also made adjustments to the planners structure:initializeStateandprovideOutputfromAIAgentPlannerStrategytoAIAgentPlannerAIAgentPlannerStrategyBuilderin favor of `AIAgentPlannerStrategy.create(name, planner) since none other configurable parameters are available.PlannerAIAgent.builder()in favor of configuring planner agents usingAIAgent.builder().plannerStrategy(...)...BREAKING:
agents:agents-plannerAIAgentPlannerandJavaAIAgentPlannerabstract classes now have two additional abstract methods:initializeStateandprovideOutput.AIAgentPlannerStrategynow does not acceptinitializeStateandprovideOutputas parameters to the constructor:AIAgentPlannerStrategy(name, planner), plus a convenience methodAIAgentPlannerStrategy.create(name, planner)for java.AIAgentPlannerStrategy.builder()andAIAgentPlannerStrategy.goap()are now removed.