mothermachine /mothermachine

Browse / Agent infrastructure

EDDI

Config-driven server that runs AI agents from versioned JSON, driven by MCP, REST or A2A.

AdaptableOperable ProductAPI / service Hybrid JavaTypeScript MCP server A2A Protocol License: Apache-2.0

A Java and Quarkus server that runs AI agents defined in versioned JSON configuration: behavior rules, LLM tasks, HTTP calls and output templates. It adds multi-agent group discussions, persistent user memory, schedules and human approval gates, with a built-in admin dashboard and chat UI. The open source is Apache-2.0 and self-hosted with Docker or Helm; EDDI Solutions sells managed plans with no published prices.

Alternative to Dify, n8n, Flowise

Use it when
  • I want agents defined in versioned config that my coding agent can create and deploy over MCP instead of writing framework code
  • I need agents that stop for human approval and keep an audit trail in a self-hosted deployment
  • I want several agents to debate a question and hand back a synthesized answer
  • I want my agents to call agents on other platforms over A2A and to answer those platforms too
Gotchas
  • Infrastructure-grade: a Java 25 server plus MongoDB or PostgreSQL, with optional Keycloak and NATS for authentication and clustering
  • The shipped default has OIDC off, so no endpoint needs a token, A2A JSON-RPC included; the compose files bind to 127.0.0.1, so turn authentication on before exposing it
  • A2A agents are opt-in: set a2aEnabled per agent. eddi.a2a.enabled is on by default but only switches the endpoints
  • The root Agent Card describes only the first A2A-enabled agent; other agents use /a2a/agents/{agentId}/.well-known/agent-card.json
  • A2A ListTasks, SubscribeToTask, push notifications and the extended card are refused, and clustered deployments need a shared IA2ATaskStore
  • Set EDDI_VAULT_MASTER_KEY or secret references such as ${vault:name} fail; store provider keys there, not in agent JSON
  • Most creating MCP tools are not idempotent: after a transport error, check with a list tool before retrying or you get a duplicate

Last activity Nov 3, 2026. Fit: adaptable 3, operable 3.

Editions

Open source · Free open source

  • Clonegit clone https://github.com/labsai/EDDI
  • ImageContainer
  • Installcurl -fsSL https://raw.githubusercontent.com/labsai/EDDI/main/install.sh | bash

EDDI Solutions managed plans · Free closed source

For agents: JSON · Markdown

Adaptable: what is yours to change

Make it yours

Config only20 things to edit

Agent behavior is versioned JSON: behavior rules, LLM tasks with their system prompts, HTTP calls and output templates. These documents live in the database and are edited in the Manager, over REST or MCP, or moved as ZIP exports, so there is no single file in the repo to change; docs/agent-configs/ holds a reference set. Group templates in src/main/resources/group-templates set discussion formats, and the eddi.branding.* properties set the product name, colors and logo. Any property can be set as an env var by uppercasing it and replacing every non-alphanumeric character with an underscore; a misspelled variable is silently ignored.

Env vars
EDDI_BRANDING_PRODUCT_NAME EDDI_DATASTORE_TYPE EDDI_VAULT_MASTER_KEY EDDI_PORT EDDI_BIND EDDI_SECURITY_ALLOW_UNAUTHENTICATED EDDI_MCP_ALLOW_UNAUTHENTICATED EDDI_SECRETSTORE_ALLOW_UNAUTHENTICATED EDDI_A2A_ENABLED EDDI_A2A_BASE_URL QUARKUS_OIDC_TENANT_ENABLED QUARKUS_OIDC_AUTH_SERVER_URL
Config files
src/main/resources/application.properties .env.example docker-compose.yml helm/eddi/values.yaml src/main/resources/group-templates/research-pod.json src/main/resources/group-templates/decision-board.json src/main/resources/llm/openai-compatible-providers.json docs/agent-configs/rule-based-reference/
Prompt files
none
Accounts you need
An LLM provider account, unless you run a local model through Ollama or Jlama

Source

Operable: what an agent can drive

Interface

OfficialMCP serverpublished by the builderremote or local

How an agent can drive an Operable Listing, in five levels: native (built for the agent as the primary interface), official (the Builder ships an agent interface), wrapped (a third party wraps the software's API), config (an agent can only drive it by editing files), gui (screen control only). An interface is official only when it is published by the same organization that ships the software. GUI-level Listings are allowed and sorted last.

Docs
github.com/labsai/EDDI/blob/main/docs/mcp-server.md
Tools
96 MCP server tools built-in web search, calculator, web scraper, PDF reader, weather and user memory tools HTTP calls, MCP servers and A2A agents as tools

A2A Protocol

Supportedpublished by the builder

Role
Other agents can call it. Calls other agents
Version
1.0
Bindings
JSONRPC
Agent Card
/.well-known/agent-card.json on each deployment
Source
github.com/labsai/EDDI/blob/main/docs/a2a-protocol.md
src/main/java/ai/labs/eddi/engine/a2a/ serves Agent Cards and SendMessage over JSONRPC at version 1.0 with 0.3 and legacy dialects, and modules/llm/impl/A2AToolProviderManager.java fetches peer cards and sends SendMessage, message/send or tasks/send, wired into AgentOrchestrator; the Builder applies no experimental label and the same files are in the 6.6.0 tag.

Reach describes the interface above, not A2A.

Reach

Partial coverage. 8 of 10 jobs reachable through the stated interface.

JobThrough the interfaceEvidence
Create, change and deploy agentsReachablesetup_agent, create_api_agent, update_resource, apply_agent_changes and deploy_agent in docs/mcp-server.md; the approval gate cannot be set through create_api_agent
Talk to deployed agents and route by intentReachabletalk_to_agent, chat_with_agent, chat_managed and discover_agents in docs/mcp-server.md
Run multi-agent group discussionsReachable18 group tools, including create_group, discuss_with_group and create_group_from_template
Schedule cron jobs and heartbeatsReachablecreate_schedule, fire_schedule_now and retry_failed_schedule in docs/mcp-server.md
Review human approvalsReachable10 HITL tools, including list_pending_approvals, resume_conversation and approve_group_phase
Read and write persistent user memoryReachable8 memory tools in McpMemoryTools, including upsert_user_memory and search_user_memories
Erase and export a user's data for GDPRReachabledelete_user_data and export_user_data in McpGdprTools
Read audit trails and pipeline logsReachableread_audit_trail and read_agent_logs; unscoped log reads require eddi-admin
Create knowledge bases and ingest documents for RAGNot reachabledocs/mcp-server.md: read_resource reads rag, which has no create, update or delete case; ingestion is REST and Manager only (docs/rag.md)
Manage the secrets vault, import agents and sync instancesNot reachableMcpToolFilter.MCP_TOOLS lists no vault, agent import or agent sync tool; these are REST and Manager features

Code stack

Languages
JavaTypeScript
Frameworks
QuarkusLangChain4jReact
Package manager
maven
Database
MongoDBPostgreSQL
Hosting target
DockerKubernetes (Helm)OpenShift
Built
Mixed (recorded, never ranked)

Model stack

Providers
OpenAIAnthropicGoogle GeminiMistral AIAzure OpenAIAmazon BedrockOracle GenAIGoogle Vertex AIOllamaJlamaHugging Faceany OpenAI-compatible endpoint
Models
claude-sonnet-4-6 is the setup_agent default
Keys you need
EDDI_VAULT_MASTER_KEY
Prompts live in
systemMessage in each LLM task configuration, stored in the database prompt snippets referenced as {snippets.name} integrations/claude-plugin/skills/

Skills

A Claude Code plugin with two skills that drive the MCP tools: eddi for using agents and eddi-admin for building and operating them. A separate .claude/skills/ship-pr is contributor tooling.

Kind
bundled
Paths
integrations/claude-plugin/skills/eddi/SKILL.md integrations/claude-plugin/skills/eddi-admin/SKILL.md .claude-plugin/marketplace.json
Install
/plugin marketplace add labsai/EDDI

Evidence and confidence

FieldWhere it was seenConfidence
formFactorQuarkus server exposing REST, MCP and A2A; README calls it middleware, and the Manager and chat UIs are built into the same image70%
executionModelLifecycle pipeline of Input, Parse, Behavior Rules, Actions, Tasks and Output (AGENTS.md) with LLM calls as bounded tasks; rule-based agents run with no model85%
operabilitydocs/mcp-server.md published by labsai; src/main/java/ai/labs/eddi/engine/mcp holds 96 tools, and McpToolContractTest asserts that count95%
effortdocs/configuration-reference.md, docs/white-labeling.md and docs/agent-config-authoring.md; eddi.branding.* and agent JSON change business behavior, not only deployment values80%
editionsLICENSE is Apache-2.0; eddi.solutions/pricing lists Proof of Concept, Professional and Enterprise plans, all 'Contact Us'85%
activeGitHub API: default-branch commit 2026-11-03 (1e8ecd3); release 6.6.0 on 2026-10-20; 389 stars, 129 forks, 84 open issues and pull requests–
provenanceRepo dates from 2016 with human contributors, and now carries AGENTS.md, CLAUDE.md, .cursor, .amazonq and a ship-pr skill for coding agents–
alternativeToThe Builder's eddi.technology/compare page compares EDDI with Dify, n8n and Flowise among others–
a2aRoleServer: RestA2AEndpoint and A2AWireFormat. Client: LlmConfiguration.Task.a2aAgents read by A2AToolProviderManager, which posts through OutboundHttp; covered by A2AToolProviderManagerDialectTest–
reach80%

Open questions

  • Reach and A2A were read from docs and source; EDDI was not run, no MCP tool was called, and no live Agent Card was fetched. eddi.technology returns 404 for an Agent Card, and each deployment serves its own
  • docs/a2a-protocol.md and docs/changelog/2026-10.md say the a2a-sdk 1.2.1 Python client was tested live against a jar; no test in scripts, src/test or .github uses that SDK, so the check cannot be reproduced from the repo
  • EDDI_A2A_ENABLED and EDDI_A2A_BASE_URL are derived from the documented property names by the documented rule; no shipped compose or Helm file uses them
  • Prices for the EDDI Solutions plans are not published
  • formFactor could be web-app, since the Manager is built in; api was chosen because the Builder calls it middleware
  • Compliance claims (GDPR, HIPAA, EU AI Act) and the 20,000+ tests badge are the Builder's and were not checked

Sources