Skip to content

feat(agents)!: Introduce new Message architecture#1919

Merged
Maria Tigina (tiginamaria) merged 10 commits into
developfrom
tigina/message-refactoring
May 15, 2026
Merged

feat(agents)!: Introduce new Message architecture#1919
Maria Tigina (tiginamaria) merged 10 commits into
developfrom
tigina/message-refactoring

Conversation

@tiginamaria

Copy link
Copy Markdown
Collaborator

BREAKING:

  • All Message and Prompt API

closes KG-689

@tiginamaria Maria Tigina (tiginamaria) force-pushed the tigina/message-refactoring branch 4 times, most recently from dcb2307 to e7277d1 Compare May 6, 2026 12:08
@tiginamaria Maria Tigina (tiginamaria) force-pushed the tigina/message-refactoring branch 2 times, most recently from a4bbaac to fa0a98f Compare May 11, 2026 21:47
@sdubov Sergei Dubov (sdubov) force-pushed the tigina/message-refactoring branch from 4e2bfbf to 352cf81 Compare May 14, 2026 00:41
@sdubov Sergei Dubov (sdubov) marked this pull request as ready for review May 14, 2026 00:41
@croemmich

Copy link
Copy Markdown

This is a very welcome change, thanks all!

It does make me consider the stability of persisted checkpoints however. Currently a checkpoint holds a json serialized list of Message so this will effectively invalidate all previously created checkpoints.

Maybe our use-case is unique, but we allow users to resume a chat of any age, potentially years. While we have separate chat events that are used to hydrate the UI, our agent internally relies on the messageHistory list from the checkpoint for each conversation turn/agent run.

Koog is pre-1.0 and breaking API changes are expected right now, but if a breaking change to the Message interface or anything else in the checkpoint needed to made in the future, would Koog solve for that or should we implement our own persistent layer for checkpoints and message objects to ensure stability?

Thanks!

@sdubov Sergei Dubov (sdubov) force-pushed the tigina/message-refactoring branch from 352cf81 to 1594677 Compare May 14, 2026 09:25
@Ololoshechkin

Copy link
Copy Markdown
Collaborator

Chris Roemmich (@croemmich) Thanks for sharing your feedback and concerns!

We’re planning to release Koog 1.0.0 next week, so this shouldn’t be an issue going forward.

In the meantime, and especially for the first migration, I think the only practical option is to implement a migration tool for messages and checkpoints. We can consider adding such a tool after 1.0, perhaps as an ad hoc solution. Alternatively, you could generate one with AI or implement it manually, whichever you prefer.

Please let me know if it would fit your needs

@croemmich

Copy link
Copy Markdown

Briliantov Vadim (@Ololoshechkin), thanks for the response! We're set to launch our message history feature in a few weeks, so the timing of Koog 1.0.0 is fortunate.

Since we haven't released yet, I don't have any immediate migration needs, I was mostly curious about post v1 plans. I think the ideal solution would be a first-class migration tool if the project introduces breaking changes, as I suspect we wouldn't be the only ones needing to migrate.

Thanks for the hard work towards 1.0.0 and responsiveness to your community, you've hit all three of my major points of feedback on the survey a few months ago!

@sdubov Sergei Dubov (sdubov) force-pushed the tigina/message-refactoring branch 4 times, most recently from 45788f4 to e22b5e8 Compare May 14, 2026 21:26
@sdubov Sergei Dubov (sdubov) force-pushed the tigina/message-refactoring branch 6 times, most recently from 6a5fc86 to 8ddafc4 Compare May 15, 2026 10:09
@tiginamaria Maria Tigina (tiginamaria) force-pushed the tigina/message-refactoring branch 3 times, most recently from e18933c to 934e7ea Compare May 15, 2026 16:56
@tiginamaria Maria Tigina (tiginamaria) merged commit e4f91bf into develop May 15, 2026
28 of 32 checks passed
@tiginamaria Maria Tigina (tiginamaria) deleted the tigina/message-refactoring branch May 15, 2026 21:38
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.

3 participants