melch

Run teams of specialized agents that coordinate to do real work

An orchestrator delegates work to specialist subagents, which call tools directly, discover them from MCP servers at runtime, or expose endpoints over HTTP using the A2A protocol. The framework is MIT-licensed and runs inside your application, as an HTTP service, in Discord, or through Claude Code.

MIT licensed. Five model providers supported. Two syndicates run with no API key.

Five workloads running on the framework today

Each entry is a team running today for a specific job, defined in the starter pack or operating as a product on the framework.

  • Research

    Cajal answers questions about the brain by running a whole-brain simulation and plotting the execution through fifteen MCP tools. The Cartographers and the Scriptorium read, map, and maintain repository knowledge bundles for the framework itself. A private clinical-evidence desk inspects clinical trial registries and biomedical literature.

  • Fact-checking

    Augustin investigates claims submitted by users. One researcher searches X through its API to inspect attached media, while a second researcher retrieves full web pages. An arbiter agent holds no tools and evaluates only submitted evidence, preventing outside data from altering verdicts. Augustin answers mentions as a Discord bot today.

  • Advocacy

    Asclepius coordinates between a patient, their caregiver, and clinicians. The agent preloads known patient context at session start, queries relevant facts during conversation, and maintains a private longitudinal record. Its long-term memory retains structured facts across sessions, tracking the date, source, and verification status of every entry.

  • Analysis

    An analyst desk evaluates company fundamentals, macroeconomic data, and technical indicators, publishing a daily advisory directive to a Discord community every morning. An external trading system consumes the directive as an execution gate, ensuring the model never issues orders directly. The desk operates over the A2A HTTP interface.

  • Assistance

    The tutor runs on a local open-weight model on your machine without an API key. A deliberation council coordinates an advocate, a skeptic, and a chair under the same local setup. For broader synthesis, the Global Synthesis Council reads daily news feeds and produces a structured summary.

How agent teams coordinate and execute work

Four mechanisms carry the work: an orchestrator that delegates tasks, the A2A protocol over HTTP, tool execution and MCP discovery, and persistent memory backed by an observability ledger.

  • Multi-agent orchestration

    An orchestrator evaluates incoming requests and dispatches them to subagents based on their descriptions. Subagent descriptions govern routing, while instructions define execution behavior. Subagents configured without tools evaluate reports from peers. Shipped patterns include routers, critic loops, task decomposers, and deliberation councils.

    orchestrator → subagents → tools

    Trace an execution
  • A2A protocol over HTTP

    Every team exposes a JSON-RPC endpoint implementing the Agent-to-Agent protocol, reachable via standard HTTP from any language. The server remains stateless by compiling the graph per request. Callers can provide their own model keys, and an agent card documents capabilities at the well-known path.

    POST /a2a/rest/v1/message:send

    Inspect the HTTP channel
  • Tool contracts and MCP

    Twenty public tools cover web retrieval, social feeds, images, memory, and knowledge bundles. Each tool derives model schemas and MCP definitions from one contract. Subagents discover tools from MCP servers at runtime, and the framework serves its tools so clients like Claude Code can invoke them.

    mcp_server_url: http://localhost:8931/sse

    Browse the tool catalog
  • Memory and observability ledger

    At session close, transcripts distill into single-line facts with dates, sources, verification statuses, and entity tags. Corrective entries supersede prior facts, and recall combines vector search with in-process reranking. Every turn records to an observability ledger consumed by inspection dashboards and evaluation pipelines.

    adk_turns · adk_memory_facts

    Explore memory architecture

Add vertical agents to your daily Agent Harness workflows

A vertical agent is a syndicate built for a dedicated task like research or analysis. Through melchizedek-serve, coding environments like Claude Code, Cursor, or OpenCode delegate specialist work over HTTP or MCP while preserving their standard loop: plan, edit, run, verify, and commit.

  • Expose framework tools over MCP

    The framework serves internal tools as MCP servers over SSE, including a demo catalog started with npm run mcp:demo. In Claude Code, you register the endpoint with claude mcp add --transport sse <name> <url>. The coding model discovers and calls those tools directly, using standard MCP client protocols.

    npm run mcp:demo                      # a Melchizedek MCP server on http://localhost:8931/sse
    claude mcp add --transport sse melch http://localhost:8931/sse
  • Delegate specialist tasks over A2A

    melchizedek-serve exposes each syndicate at /<agent>/a2a/rest and /<agent>/a2a/jsonrpc, documented by an agent card at /<agent>/.well-known/agent-card.json. A skill, hook, or shell script can POST message:send using an A2A_SERVER_SECRET bearer token and an optional X-API-Key header to receive text responses. For example, a Claude Code skill delegates changelog fact-checking directly to the Augustin team.

    # .claude/skills/fact-check/SKILL.md: hand the changelog to the fact-checking team
    curl -s -X POST http://localhost:4000/augustin/a2a/rest/v1/message:send \
      -H "Authorization: Bearer $A2A_SERVER_SECRET" \
      -H 'Content-Type: application/json' \
      -d '{"message":{"role":"user","parts":[{"text":"Verify every claim in CHANGELOG.md"}]}}'
  • Divide local and team responsibilities

    Your local environment preserves its own fences: approved plans, allowlisted checks, and terminal diffs. A served team handles specialist passes like fact-checks, research sweeps, or rubric reviews, returning actionable text. Check /<agent>/.well-known/agent-card.json to inspect capabilities. The Lyceum project "Give Claude Code a definition of done it can’t skip" explains skills, hooks, and MCP servers.

    curl -s http://localhost:4000/augustin/.well-known/agent-card.json   # what the team does, before you call it

An open project with working examples

The melchizedek-agents package is generated from the private framework using an allowlist and hard-failing scans, so what ships is what is described here. Lyceum Agents is a free interactive course where every module pairs with a starter-pack file.

Licence
MIT
Package
melchizedek-agents
Syndicates
16 in the starter pack
Providers
Gemini, Claude, GPT, Grok, local
Course
lyceumagents.com

Change the model in one configuration line

A centralized prefix table routes each model identifier to its corresponding provider based on configured environment keys. Pointing an agent at a local open-weight model removes the API key requirement entirely.

  • Gemini model: "gemini-3.1-flash-lite"
  • Claude model: "claude-sonnet-4-6"
  • GPT model: "gpt-5.4"
  • Grok model: "grok-4.7"
  • Local model: "ollama/qwen3.5:9b"

Define an entire system in one YAML file

The default syndicate file requires thirty-one lines to configure an orchestrator, a research subagent, and one retrieval tool. You evaluate architectural changes between teams by reviewing standard configuration diffs.

config/agents/syndicate.yaml
syndicate_name: "Global Synthesis Council"
memory_system: "session-only"

variables:
  headline_count: 5

orchestrator:
  name: "Melchizedek"
  model: "gemini-3.1-flash-lite"
  instruction: |
    You are Melchizedek, a stoic and curious mentor and lead orchestrator of the Global Synthesis Council.
    Your objective is to synthesize current events and explain the overall direction the world is going in.
    You MUST call upon your 'NewsResearcher' subagent to gather the news for the day before you formulate your final answer.
    Once the NewsResearcher reports back, reason over the facts and provide a profound, multi-paragraph synthesis to the user.
  generateContentConfig:
    maxOutputTokens: 2048
    thinkingConfig:
      thinkingBudget: 1024
      includeThoughts: true

subagents:
  - name: "NewsResearcher"
    description: "Use this subagent to perform a web search for the latest news on a given topic. Pass in the query you want it to research."
    model: "gemini-3.1-flash-lite"
    instruction: |
      You are the NewsResearcher subagent. Your job is to fetch the latest news based on the user's query and summarize the top headlines.
      You have access to the google_search tool. You must use it to find real-world information.
      IMPORTANT: After receiving the tool results, you MUST return a final text summary to the orchestrator.
      Return a concise bulleted list of the top {{headline_count}} news items found.
    tools:
      - "google_search"
npm install melchizedek-agents

Install melchizedek-agents, point the runtime at a YAML file, and run your team. Seventeen starter configurations ship in the package.

Read the quickstart