Hi,
I’ve just released the final AI plugin that now complements a trio of some really well designed AI plugins, and this one is called Bubble Agentic AI.
It pretty much turns your backend workflows into tools so they can be executed by the AI automatically. The AI within the plugin decides when to call the tools (your backend workflows) in order to answer questions or complete more complex tasks. It also supports multi-tool calling, meaning multiple backend workflows can be chained and triggered together when needed. For example, if a task would require calling at least three separate workflows before being marked as complete, then it will intelligently execute all three in the correct sequence to complete that task, and there’s no limit to how many can be chained together like this either.
Demo and Instructions:
https://demo-plugins-13689.bubbleapps.io/version-test/bubble_agentic_ai
Plugin:
https://bubble.io/plugin/bubble-agentic-ai-1779033290379x305185967176941600
How it works
When a backend workflow is called, any parameters it has are taken into account and filled in by the AI. If you’ve set up tools before, you’ll know that each tool and its parameters need clear descriptions so the AI knows when and how to use them.
Because tools are just regular backend workflows, there’s nothing new to learn with regards to setting them up. They can do anything a workflow can do, like search your database, run calculations, send emails, create/update records etc. The only extra two extra steps that are required, is that any workflow you want to use has to end with a special prefix (like _agent for example), and every workflow must finish with a ‘Return data from API’ action.
There’s a dedicated action called Generate Tools that connects to your app, reads the swagger file, and builds the tool list for you. Once that’s done, you just need to add the descriptions yourself and paste the finished JSON into the required field within the relevant plugin setting. This is documented in the demo page.
The plugin works with OpenAI, Anthropic, and Gemini, and you can switch between them at any time without touching your workflows. They all handle tool calling really well. Gemini and Anthropic support ‘thinking’ which can be enabled if required. Alongside the normal client-side action there is a server-side ‘Send Message’ action, so the agent can run securely. It accepts and returns the same conversation format, so you can hand a session back and forth between the page and the server.
Other things worth mentioning
- Two authentication modes for tool calls: as the signed-in user, so privacy rules apply, or as admin with an API token.
- A configurable cap on the tool-calling loop, with automatic retries when a tool call fails.
- Extended thinking and reasoning mode on the models that support it.
- Stop a response mid-stream, clear the conversation, or reload a saved conversation from your database.
- Token usage reported both per turn and across the whole session.
- Configurable system prompt, model, and tool-choice behaviour.
- Debug mode that logs the full agent loop, every tool call, and every provider request to the console while you are getting set up.
A note on cost
Worth understanding before you start. A single user message is not necessarily a single AI call. The agent works in a loop, and each pass of that loop is one API call, one to decide what to do, then another after each round of tool results to decide the next step or write the final reply. A plain question with no tools is a single call, a message that uses a tool or two is usually somewhere between two and four. Most tasks settle within three. You can use the plugin without any tools if required.
The tool calls themselves are calls to your own backend workflows, so they use Bubble workload units like any other workflow run would.
On the AI side, the default models (things like gpt-4o-mini) are cheap, and you’re usually looking at a fraction of a cent per message. The per-turn and per-session token states let you keep an eye on it. The things that increase cost are all under your control, so a higher ‘Max turns’ cap allows longer loops, and more ‘Retry attempts’ means more calls when a tool misbehaves. Sensible defaults are set.
I’ll be supporting the plugin, so if you run into anything or have questions, give me a shout.
I hope it is useful!
Paul


