Full-Code · Agent SDKsactive

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

Links: homepage docs repo

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 —

Neighbourhood

Click any neighbour to follow the lineage. Scroll to zoom, drag to pan.