Mistral's models seem to do something really strange if you allow for
`tool_choice` to be anything but `any`. They start putting the tool call
inside the `content` instead of an actual tool call. This means that I
need this `stop` mechanism using a tool call instead because I cannot
trust the model to do it by itself.
I quite like this model though, it's cheap, it's fast and it's open
source. And all the answers are pretty good!
This is pretty nice. We can now have agents spawn other agents and
actually get super cool functionality from it.
The pattern might be a little fragile.
Still not super sure how to represent these agents in code.
It doesn't make the most amount of sense to keep them in structs. A
curried function is more like it, with system prompt and tooling.
Maybe that's what I'll end up doing.