You have to do your own tools augmentation… I have a PR out for the JavaScript version of the Teams AI Library that adds support for o1. The Teams AI Library supports a feature I call “augmentations” which was pre-tools and it turns out the AutoGPT style “monologue” augmentation works to get o1 to call tools. Here’s the libraries lightbot sample using o1:
One thing I’ll warn you about is that o1 isn’t great about returning well formed JSON (probably why they don’t support tools yet.) Fortunately, the AI library has a repair loop that gets the model to correct malformed results and I noticed that seems to kick in almost immediately. Once o1 sees itself returning valid JSON it seems to be good from that point forward so you might just want to include a single shot example that shows it following instructions. You’ll probably be ok.
The main takeway is that I wanted to show that there is a path to use o1 with tools but you’ll need to do work on your end or use a library that’s already done the work.
Neat. If you have a tool queue to actually set something in motion like pause, the response might precede that action.
Since you can only talk to it as user, it seems like the trick will be to avoid having background tool use discussed or leaking into output from the parsing container, especially if you have simply a trigger or an output-only tool, instead an external call with response required for answering (things currently easy from a system prompt).
(AI above is instructed to be an aggressive learner of cross-session memory in a tool section so I didn’t waste time to see results, here on turn 2, but it repeated 3 items of the first turn, perhaps because effective memory state wasn’t re-prompted within my tool somehow.)
The Teams AI Library manages all of that. As I said this was all pre-tools. We actually support a “tools” augmentation but this stuff was still all in the code
Hey all, we wrote a prompting language called BAML that allows you to use tools with O1. It plugs into python, Typescript, Ruby, and other languages (since it’s just a configuration language for your prompt).