ai_fn is just a specific way to use Marvin's Bot abstraction, which is one of the few abstractions Marvin offers
but a couple differences I notice off the bat between ai_fn and com2fun:
- marvin uses pydantic for parsing LLM to result types
- you can pass plugins/personality/instructions to the underlying bot via the @ai_fn decorator kwargs
- (unless I'm missing a dataclass version of this in com2fun) marvin can parse output into arbitrary pydantic types like this example https://github.com/PrefectHQ/marvin/issues/106#issuecomment-...