Jason (AgentSpeak interpreter)
Type: full-code · Vendor: Jason / AgentSpeak community (R. Bordini, J. Hubner et al.) · Language: Java · License: LGPL-3.0 · Status: active · Status in practice: mature · First released: 2007
Jason is an interpreter for an extended AgentSpeak that runs BDI agents with explicit beliefs, goals, and plans, and supports building distributed multi-agent systems with speech-act communication.
Description. Jason implements the operational semantics of AgentSpeak(L), the canonical BDI agent language. An agent holds a belief base, adopts goals, and commits to plans (intentions), reasoning by reconciling the three over a reasoning cycle. Jason multi-agent systems can be distributed over a network and exchange messages through speech-act based inter-agent communication. It is a long-standing, maintained implementation of the BDI architecture rather than an LLM-era reinterpretation.
Agent loop shape. Each Jason agent runs a reasoning cycle: it perceives the environment to update its belief base, processes received messages, selects an applicable plan for a triggering event (a new belief or goal), and executes one step of a committed intention. Plans are reactive — triggered by events and goals — and multiple agents run concurrently, exchanging speech-act messages across a possibly distributed system.
Primary use cases
- building BDI cognitive agents with explicit beliefs, goals, and plans
- distributed multi-agent systems
- speech-act based agent communication
- research and teaching of agent-oriented programming
Key concepts
- Belief base → bdi-agent (docs) — The set of facts (and their annotations recording the information source) that an agent holds true about its world and itself, revised by perception and by received messages on each reasoning cycle.
- Plan → bdi-agent (docs) — A reactive rule of the form triggering-event : context <- body that an agent selects and runs when a matching event (a new belief or goal) occurs, becoming a committed intention while it executes.
- Internal action (docs) — A user-extensible operation, written in Java, that a plan body can invoke for behaviour outside AgentSpeak itself, giving the interpreter a customisation surface for perception, belief revision, and acting.
- .send / performative → performative-message (docs) — The communication action that sends a message to another agent tagged with an illocutionary force (tell, achieve, askone, and other KQML-like performatives) that fixes how the receiver acts on the content.
Patterns this full-code implements —
- ★★BDI Agent
Jason is a maintained interpreter for AgentSpeak, the canonical BDI agent language: agents hold an explicit belief base, adopt desires/goals, and commit to intentions (plans), reasoning by reconcilin…
- ★Inter-Agent Communication
Jason provides speech-act based messaging between agents, with belief annotations recording the information source, and a multi-agent system can run distributed across a network so agents exchange ta…
- ★★Performative Message
Inter-agent messages in Jason carry an explicit illocutionary force (a KQML-like performative such as tell, achieve, or askone) that determines how the receiver treats the content, so a sender's inte…
Neighbourhood
Click any neighbour to follow the lineage. Scroll to zoom, drag to pan.