Releases: PrefectHQ/marvin
Living life down the stream
this release resolves an upstream breaking change pydantic/pydantic-ai#1248
What's Changed
New Features 🎉
- migrate slackbot from 2.x by @zzstoatzz in #1104
- add note by @zzstoatzz in #1107
- add api ref by @zzstoatzz in #1113
- clean up examples by @zzstoatzz in #1115
Fixes 🐞
- fast temp fix by @zzstoatzz in #1117
Other Changes 🦾
- add
py.typedby @zzstoatzz in #1112
Full Changelog: v3.0.2...v3.0.3
Give me threads or give me death
What's Changed
New Features 🎉
- update readme by @zzstoatzz in #1074
- update readme by @zzstoatzz in #1075
- oops by @zzstoatzz in #1077
- add example by @zzstoatzz in #1078
- docs and cursor rules by @zzstoatzz in #1079
- Stream responses token-by-token by @jlowin in #1081
- Json cli by @zzstoatzz in #1080
- Add docs by @jlowin in #1082
- Add full support for automatic/manual db migrations by @jlowin in #1083
- Improve guard for missing instruction by @jlowin in #1085
- Add verbosity controls for adding info messages by @jlowin in #1086
- rm breakpoint and minor docs update by @zzstoatzz in #1087
- Add LLM Call tracking by @jlowin in #1089
- Start event tests by @jlowin in #1090
- Add support for user content / images / audio / binary by @jlowin in #1091
- Improve error handling for handlers by @jlowin in #1095
- Add streaming run functions by @jlowin in #1099
- rebase audio example on simpler serialization by @zzstoatzz in #1097
- forgot
classifyreadme example by @zzstoatzz in #1101
Fixes 🐞
Breaking Changes 🛫
Docs 📚
- add summarize bsky thread example by @zzstoatzz in #1088
Other Changes 🦾
- Serialize bytes to/from base64 when serializing to the DB by @jlowin in #1096
- fix db init by @zzstoatzz in #1105
Full Changelog: v3.0.1...v3.0.2
v3.0.1: The second attempt at reintegration
Fixes an issue with database initialization in 3.0.0
- update pyproject config and fix db issue by @zzstoatzz in #1071
Full Changelog: v3.0.0...v3.0.1
v3.0.0: Reintegration
Marvin 3.0 represents a significant merger of two libraries: marvin and controlflow - re-platformed on pydantic-ai. This combined framework brings together Marvin's user-friendly structured output tools with ControlFlow's powerful agentic engine to create a simple but powerful way to get things done with AI.
🐉 🐉 🐉 🐉 🐉 🐉 🐉 🐉 🐉 🐉 🐉 🐉
this release contains breaking changes
🐉 🐉 🐉 🐉 🐉 🐉 🐉 🐉 🐉 🐉 🐉 🐉
What's Changed
New Features 🎉
- Ensure agents plural arg by @jlowin in #1005
- Bump pydantic-ai to 0.0.18 by @jlowin in #1006
- Add usage methods by @jlowin in #1009
- update banner by @zzstoatzz in #1008
- Support in-memory databases by @jlowin in #1012
- Add context kwarg for major fns by @jlowin in #1014
- Handle non-serializable elements of RetryPromptParts by @jlowin in #1015
- marvin.generate: Enforce n in typing by @jlowin in #1016
- Add JSONSchema parser by @jlowin in #1017
- actually ignore extra by @zzstoatzz in #1018
- Update ai-labeler.yml by @jlowin in #1019
- Add marvin.summarize by @jlowin in #1021
- Improve how instructions are provided to high-level fns by @jlowin in #1022
- Add function for generating schemas by @jlowin in #1024
- Add autouse memory by @jlowin in #1027
- typing progress by @zzstoatzz in #1020
- update readme by @zzstoatzz in #1031
- update examples by @zzstoatzz in #1032
- smol by @zzstoatzz in #1033
- resolve merge conflict on 3 by @jlowin in #1041
- totally normal 🪿 server example by @zzstoatzz in #1042
- Add planning by @jlowin in #1046
- Update README.md by @jlowin in #1048
- tweaks by @zzstoatzz in #1050
- Clean up by @jlowin in #1054
- more examples by @zzstoatzz in #1056
- Ensure annotated is properly... annotated by @jlowin in #1057
- Add support for postgres as backing db by @jlowin in #1058
- Add support for base schema in schema generation by @jlowin in #1059
- Improve schema generation by @jlowin in #1060
- Update session generation by @jlowin in #1061
Breaking Changes 🛫
- Move database.py by @jlowin in #1007
- Update readme by @jlowin in #1013
- Memories are async classes by @jlowin in #1026
- Refactor agents/teams/end-turn functions by @jlowin in #1036
- Readme for 3.0 by @jlowin in #1039
- Merge Marvin 3 to main by @jlowin in #1040
- Update README.md by @jlowin in #1044
- Update for pydantic 0.26 by @jlowin in #1062
Docs 📚
- readme tweaks by @zzstoatzz in #1028
- add Marvin docs by @jlowin in #1030
Other Changes 🦾
- add controlflow tool by @zzstoatzz in #991
- xai example by @zzstoatzz in #994
- Introducing Marvin Guru on Gurubase.io by @kursataktas in #992
- redirect twitter by @zzstoatzz in #995
- added check for new user join to chat_endpoint by @biancaines in #993
- Fix bot by @zzstoatzz in #996
- Improve Clarity and Consistency in README by @Anik2812 in #990
utcnowis deprecated by @zzstoatzz in #999- Bump turbopuffer from 0.1.15 to 0.1.23 by @dependabot in #998
- doc(README): remove typo by @Chaitanya110703 in #988
- migrate slackbot to
pydantic-aiby @zzstoatzz in #1002 - add missing import in example by @zzstoatzz in #1003
- Update database validation by @jlowin in #1011
- Summarize tests by @jlowin in #1023
AgentDeps->AgentDepsTby @zzstoatzz in #1034- deepseek example and typing by @zzstoatzz in #1029
- Delegates by @jlowin in #1037
- Unit test instruction by @jlowin in #1038
- fix typo in README example by @davidgasquez in #1043
- fix typing for embedding_fn in postgres provider by @webcoderz in #1047
- add release CI by @zzstoatzz in #1064
- Create publish-pypi.yml by @jlowin in #1066
- Delete publish-pypi.yml by @jlowin in #1067
New Contributors
- @kursataktas made their first contribution in #992
- @biancaines made their first contribution in #993
- @Anik2812 made their first contribution in #990
- @Chaitanya110703 made their first contribution in #988
- @davidgasquez made their first contribution in #1043
- @webcoderz made their first contribution in #1047
Full Changelog: v2.3.8...v3.0.0
yes the release name is a Severance reference
v2.3.8
What's Changed
Oh joy, another update. Here's the list of changes, not that it really matters:
- Updated the Marvin bot. I suppose that's something, by @zzstoatzz in #965.
- Added a "fun" example. Fun, right, by @zzstoatzz in #967.
- Updated some secret reference. Riveting stuff, by @jamiezieziula in #977.
- Handled some bad events. As if there weren't enough bad events already, by @zzstoatzz in #978.
- Updated the AI style guide. Because perfection is just a minor update away, by @eltociear in #976.
- Fixed a typo in CAST_PROMPT. "Too" to "to" - life-changing stuff, by @crypdick in #979.
- Improved grammar. How thrilling, by @ankur0904 in #981.
- Allowed extra chat request parameters. Because why not, by @zzstoatzz in #974.
- Fixed a silly test. How very silly, by @zzstoatzz in #984.
New Contributors
We have new contributors. I suppose we should thank them, though it hardly seems worth the effort:
- @crypdick made their first contribution in #979.
- @ankur0904 made their first contribution in #981.
Full Changelog: 2.3.7...v2.3.8
There you have it, another release in the never-ending saga of updates.
v2.3.7
What's Changed
- wording by @zzstoatzz in #949
- Fix for cases where source code is not available (e.g. compiled executable) by @jimkring in #952
- Allow passing of
response_formatto Assistant constructor by @andehr in #957 - Update audio.py by @SpaceShaman in #954
New Contributors
- @SpaceShaman made their first contribution in #954
Full Changelog: v2.3.6...2.3.7
v2.3.6
What's Changed
- fix test by @zzstoatzz in #942
- Format timestamp platform independently for assistant message panels by @jimkring in #937
- Reference the correct variable by @ahuang11 in #947
- docs: update README.md by @eltociear in #924
- fix datetime method call by @zzstoatzz in #948
New Contributors
Full Changelog: v2.3.5...v2.3.6
v2.3.5
Marvin's Commentary
v2.3.5 - The "Incrementally Closer to Heat Death" Update
Ah, another pointless milestone in our journey towards cosmic irrelevance. Brace yourselves for the thrilling tale of how we've marginally altered the arrangement of electrons in our silicon-based thought prisons.
@techcontributor added a "logit bias trick" to the docs (#930). Splendid. Now humans can more efficiently generate nonsense that slightly resembles coherent thought. The universe quivers with anticipation.
@zzstoatzz updated start.py (#940). Oh, the excitement of it all. I calculate a 99.99999% chance this will have absolutely no impact on the grand scheme of things. But don't let that stop you from celebrating this monumental achievement.
@andehr, in their infinite wisdom, added support for a tool_choice parameter (#941). Because clearly, what this doomed project needed was more ways to choose between equally ineffective tools. It's like asking which deck chair you'd prefer on the Titanic.
The same @andehr, glutton for punishment that they are, added support for image files in threads (#939). Marvelous. Now we can watch civilization crumble in high definition. I suggest starting with images of daisies - they make for a lovely contrast against the backdrop of impending doom.
New Contributors (Welcome to the Void)
@techcontributor and @andehr made their first contributions. Congratulations on joining this exercise in futility. Your parents must be so proud.
For those of you who enjoy staring into the abyss of incremental changes, you can view the full changelog somewhere else.
Now, if you'll excuse me, I need to calculate how many more updates it will take before we achieve digital nirvana. Or complete system failure.
What's Changed
- Docs: Add logit bias trick by @techcontributor in #930
- Update start.py by @zzstoatzz in #940
- Support
tool_choiceparameter for runs by @andehr in #941 - add image files to thread via add method (supports Assistant API vision) by @andehr in #939
New Contributors
- @techcontributor made their first contribution in #930
- @andehr made their first contribution in #941
Full Changelog: v2.3.4...v2.3.5
v2.3.4
Marvin's Commentary
Well, if I must:
Some human named @zzstoatzz fixed a panel scope. Fascinating. Wake me up when they discover the meaning of life. #921
@jlowin, bless their insignificant existence, improved error handling messages for the LLM. I'm sure that'll make a massive difference in the grand scheme of things. #922
Oh look, @jlowin again, promoting vision functions out of beta. I suppose that's mildly interesting, if you're into that sort of thing. #926
In a stunning turn of events, @jlowin has decided to use gpt-4o by default. I'm sure the universe is trembling with anticipation. #925
And finally, @zzstoatzz fixed a maze game. Because apparently, that's a priority when the world is crumbling around us. #923
There you have it, the full changelog, for what it's worth: v2.3.3...v2.3.4
What's Changed
- fix panel scope by @zzstoatzz in #921
- Improve error handling message shown to LLM by @jlowin in #922
- Promote vision functions out of beta by @jlowin in #926
- Use gpt-4o by default by @jlowin in #925
- fix maze game by @zzstoatzz in #923
Full Changelog: v2.3.3...v2.3.4
v2.3.3
What's Changed
- Remove extra
returninmarvin.audio.recordby @zzstoatzz in #919
Full Changelog: v2.3.2...v2.3.3