Features · Agentic Framework

The BESSER Agentic Framework.

Model, build, and deploy AI agents the BESSER way: low-code, open source, and LLM-agnostic. The Agentic Framework (BAF) brings agents into the same model-driven workflow you already use.

Prefer to watch? Jump to the walkthrough
editor.besser-pearl.org
BESSER agent state machine model
Define the agent as a state machine model — states, transitions, and behaviours.
Capabilities

Everything you need to build an agent.

From a model-driven definition to a deployed, LLM-powered agent — extensible and LLM-agnostic along the way.

Model to agent

Your model becomes your agent.

The BESSER agent generator takes your model and produces the full agent implementation — states, transitions, LLM wiring, and runtime — ready to run. Prefer to go lower-level? The BAF Python SDK lets you write and extend agent code directly, with the same primitives under the hood.

editor.besser-pearl.org
BESSER agent state machine model
Agent model designed with the BESSER Web Modeling Editor.
Python
agents/travel_assistant.py
from besser.agent.core.agent import Agent
from baf.nlp.llm.llm_openai_api import LLMOpenAI

agent = Agent("travel-assistant")
agent.load_properties('config.yaml')
llm = LLMOpenAI(agent, 'gpt-5o-mini', {})

greet  = agent.new_state("greet",  initial=True)
handle = agent.new_state("handle")

help_intent = agent.new_intent("help", [
    "I need help with {topic}",
    "Can you help me with {topic}?",
])

@greet.body
def greet_user(session):
    session.reply("Hi! What can I help you with today?")

greet.when_intent_matched(help_intent).go_to(handle)

@handle.body
def handle_request(session):
    response = session.llm.predict(session.event.message)
    session.reply(response)

handle.go_to(greet)

agent.run()

Generated agent code for the model, ready to be executed.

Walkthrough

Watch it end to end

Model an agent, wire up tools and LLMs, and deploy it — in one short take.

BAF — model → deploy

Define agents as models

Describe an agent the same way you model the rest of your system: its states, the transitions between them, and how it should behave in each. There is no separate agent codebase to maintain, the model is the source of truth, and BESSER turns it into a running agent.

  • States and transitions, not boilerplate
  • One model-driven workflow end to end
  • The model is the source of truth
Read the docs

LLM-agnostic

Your agent logic should not be tied to one provider. Plug in the language models you prefer, local or hosted, and swap them without rewriting how your agents think and act. Whether you reach for a hosted API or run a model on your own hardware, your agent logic stays the same.

  • Use local or hosted models
  • Swap providers without rewrites
  • No vendor lock-in
Read more

Tools, skills & workspaces

Three primitives power the plan → act → observe loop: tools let the LLM call your code, skills shape how it thinks, and workspaces give it direct access to your files.

  • Tools: any Python callable, auto-wired to function calling
  • Skills: reusable markdown prompts — personas, policies, playbooks
  • Workspaces: let the LLM read and edit your files on demand
Read more

Simulate before you ship

The online editor lets you run your agent as you model it. Watch each state activate in real time, spot unexpected transitions or dead ends, and fix them immediately — all without leaving the canvas. Export and deploy only once you are satisfied.

  • Live state-machine visualization during a real conversation
  • Catch flaws early — fix and re-run in the same session
  • Export and deploy only when the agent is validated

Multi-agent & A2A

Real problems often need more than one agent. BESSER lets you model several agents and the way they hand work between one another. Agent-to-agent (A2A) interoperability is built in, so your agents can talk to each other — and to compatible external agents — over a shared protocol.

  • Compose multiple collaborating agents
  • Built-in agent-to-agent (A2A) protocol
  • Interoperate with external agents
Read more

Ground your agent in real data

Agents that can only reason about their training data quickly hit a wall. BAF gives you three complementary ways to bring real-world knowledge in: semantic search over your own documents, natural-language queries against a relational database, and on-demand web crawling.