Autonomous agents that negotiate, delegate, and execute — with
Contract-Net dialogue, directories, and schedulers.
LLM, MCP, and A2A support are optional.
Pre-1.0 — built from source, not yet on Maven Central.
Every removal is announced two releases ahead:
read the changelog.
Workers bid on a task; the manager awards it to the lowest bidder — a built-in dialogue of CFP, PROPOSE, and AGREE performatives. No LLM in the loop.
See the full example →
agenor-core plus agenor-runtime is already a complete
multi-agent system: agents, messaging, directory, scheduler. Reasoning,
extended behaviors and classpath scanning are three separate modules you
add only if you need them — which is what keeps the runtime friendly to
GraalVM native image.
Dialogue and negotiation protocols — including Contract-Net — plus agent directories, schedulers, and message dispatch. The core runtime has zero dependencies on any LLM.
When does this run? has three answers: once, on an interval, or as an FSM that decides its own transitions. Compose the rest. Retry, batching, rate limiting and circuit breaking are deliberately not behavior types — they wrap a call, and belong to a resilience library, or to the runtime's delivery layer and mailbox.
Plug in LLM-powered reasoning, memory, guardrails (PII redaction, content policy), Human-in-the-Loop approval, and reflection — an add-on module, not a dependency of the core runtime.
Optional adapters for connecting to MCP tool servers and interoperating with any A2A-compatible agent — for when your agents need to reach outside the JVM.
Start in-memory with nothing to install. Swap in Redis Streams for at-least-once delivery across nodes, or a JDBC-backed directory and approval queue when agents must outlive a restart. A message the runtime gives up on lands in a dead-letter queue you can read back — in memory by default with nothing to wire, or off the Redis stream. Every component is an interface, so agent code doesn't change.
Each message handler runs on its own virtual thread, so an agent's handlers overlap rather than queue — guard shared state, and keep them idempotent, because a transport with redelivery runs a failed handler again. OpenTelemetry tracing is opt-in and no-op by default. A web console, a CLI, and a scenario evaluation harness ship with it.
Zero-config starter for Spring Boot 4.x. One dependency, one YAML block, Actuator health indicator included. Your agents are Spring beans.
Agenor is a multi-agent coordination framework, not a general-purpose LLM toolkit.