What's Changed
- feat: add "anthropic" cache strategy to bypass model ID check by @kevmyung in #1808
- feat: serialize tool results as JSON when possible by @clareliguori in #1752
- fix: summary manager using structured output by @pgrayy in #1805
- feat(mcp): expose server instructions from InitializeResult on MCPClient by @ShotaroKataoka in #1814
- fix: added LANGFUSE_BASE_URL check for additinoal attribute by @poshinchen in #1826
- feat(session): add dirty flag to skip unnecessary agent state persistence by @Unshure in #1803
- feat: add public tool_spec setter by @mkmeral in #1822
- feat: add CancellationToken for graceful agent execution cancellation by @jgoyani1 in #1772
- feat(session): optimize session manager initialization by @Unshure in #1829
- fix(mistral): report usage metrics in streaming mode by @jackatorcflo in #1697
- fix(openai_responses): use output_text for assistant messages in multi-turn conversations by @giulio-leone in #1851
- feat(hooks): add resume flag to AfterInvocationEvent by @mkmeral in #1767
- fix: place cache point on last user message instead of assistant by @kevmyung in #1821
- feat(skills): add agent skills as a plugin by @mkmeral in #1755
- feat(steering): move steering from experimental to production by @dbschmigelski in #1853
- fix: break circular references so Agent cleanup doesn't hang with MCPClient by @dbschmigelski in #1830
- fix: Set is_new_session = False at the end of each initialize* method by @mehtarac in #1859
New Contributors
- @ShotaroKataoka made their first contribution in #1814
- @jgoyani1 made their first contribution in #1772
- @jackatorcflo made their first contribution in #1697
- @giulio-leone made their first contribution in #1851
Full Changelog: v1.29.0...v1.30.0