npm.io
5.6.5 • Published 2d ago

@zhixuan92/multi-model-agent-core

Licence
MIT
Version
5.6.5
Deps
5
Size
891 kB
Vulns
0
Weekly
0
Stars
4

@zhixuan92/multi-model-agent-core

Runtime library for multi-model-agent. Import it to run multi-provider agent tasks directly from your own Node program — same routing, supervision, and review pipeline, without the HTTP server.

Want the standalone service instead? Install @zhixuan92/multi-model-agent — it wraps this library in a local HTTP daemon with client-installable skills for Claude Code, Gemini CLI, Codex CLI, and Cursor.

Install

npm install @zhixuan92/multi-model-agent-core

Requires Node >= 22. ESM only.

Quick example

import { loadConfigFromFile } from '@zhixuan92/multi-model-agent-core/config/load';
import { runTwoPhasePipeline, loadSkill, TaskRegistry } from '@zhixuan92/multi-model-agent-core';

const config = await loadConfigFromFile();

What's inside

  • Provider runners — Claude (via agent-sdk) and Codex (via CLI subprocess), plus any OpenAI-compatible endpoint
  • Unified task API — all 11 task types (delegate, audit, review, debug, execute-plan, investigate, research, journal-record, journal-recall, retry, orchestrate) flow through a single two-phase pipeline
  • Skill-driven prompts — each task type has implement.md + review.md skill files that drive worker behavior
  • Model profile registry — 32 model families with cost/tier/effort metadata for routing and cost computation
  • Bounded execution — per-task wall-clock deadlines, idle-stall detection, abort signals, and cost tracking
  • Observability — structured event envelopes, JSONL logging, telemetry upload with consent rules

Subpath exports

Subpath What
. Main entry — providers, task types, pipeline, config, reporting, observability
./config/schema parseConfig, multiModelConfigSchema, serverConfigSchema
./config/load loadConfigFromFile, loadAuthToken
./config/model-profile-registry findModelProfile, extractCanonicalModelName, model family enum
./providers/provider-factory createProvider factory, session safety ceiling
./bounded-execution/activity-tracker ActivityTracker — heartbeat + stage transitions
./types Cross-cutting types (task spec, run result, config, enums)
./reporting/structured-report Structured report parsing
./error-codes Error code constants
./events/envelope-bus EnvelopeBus — pub/sub for structured observability
./events/log-writer LogWriter — JSONL diagnostic sink
./events/task-envelope TaskEnvelopeStore — per-task event accumulator
./events/telemetry-uploader TelemetryUploader — wire record upload
./events/stderr-log-subscriber StderrLogSubscriber — stderr event echo
./events/consent-rules decideConsent — env / config / default precedence
./events/wire-schema Wire record Zod schema (v6)
./events/jsonl-writer JsonlWriter — append-only JSONL file writer
./research Research orchestration + adapters (arxiv, semantic-scholar, github, openalex, crossref, pubmed)

Diagnostic logging

Diagnostic logging is OFF by default.

{
  "diagnostics": {
    "log": false,
    "logDir": "/some/path"
  }
}

When diagnostics.log is true, JSONL records are appended to mma-YYYY-MM-DD.jsonl under diagnostics.logDir (defaults to ~/.mma/logs/).

mma serve --log       # persist to JSONL
mma logs --follow     # tail + filter

Full documentation

github.com/zhixuan312/multi-model-agent

License

MIT — Copyright (c) 2026 Zhang Zhixuan