multi-agent-workflow-lab

by christiangrey922Verified

Testing and observability for multi-agent delegation, MCP tools, permissions, sandboxed actions, prompts, and workflow replay.

85
Stars
77
Forks
TypeScript
Language
8/24/2026
Added
View on GitHubDownload ZIP

⚠️ Third-Party Software Notice

This skill is third-party open-source software developed and hosted independently on GitHub. SkillTip is an informational directory and does not control or maintain the underlying repository. Any security checks displayed are automated and limited in scope. Review the source code before installing.

Read the Terms of Service

Installation

Add to your Claude Code skills directory:

# Add to your Claude Code skills
git clone https://github.com/christiangrey922/multi-agent-workflow-lab

Getting Started

Guides for using skills like multi-agent-workflow-lab.

Security Report

Verified

Last scanned: —

{
  "status": "PASSED",
  "issues": []
}

README.md

Multi-Agent Workflow Lab

An open-source testing and observability framework for multi-agent delegation, tool execution, MCP workflows, permissions, sandboxed actions, prompts, and runtime behavior.

Status: Experimental — v0.1.0 release candidate. Suitable for local development, evaluation, and policy testing; not production-hardened infrastructure.

Why this exists

Most model evaluation stops at input → model → output. Multi-agent systems add behavior that a final answer cannot explain:

  • Which agent delegated a task, to whom, and why?
  • What context, permissions, tools, MCP servers, and budget did the child receive?
  • Did an agent attempt privilege escalation, repeat work, or enter a loop?
  • Was the delegation efficient, and was the child result actually integrated?
  • Can the run be inspected, compared, or replayed without repeating side effects?

MAWL makes those decisions explicit, policy-controlled, and traceable. Prompts are versioned assets; delegation is a first-class runtime event; deterministic rules evaluate behavior independently from optional model judges.

Key capabilities

AreaWhat is implemented
Agent runtimeTyped model actions, task limits, cancellation, retries, and deterministic mock execution
DelegationParent/child task graph, target and capability checks, depth/fan-out limits, loop detection, and result integration events
Tool executionRegistry-based invocation with schema validation, allowlists, permissions, policy, optional approval, redaction, timeout, and audit
MCPOfficial stdio and Streamable HTTP client adapters plus an in-memory mock connector; MCP data remains untrusted
SandboxRestricted local-process adapter and optional Docker provider interface with auditable lifecycle events
Identity and permissionsRuntime-issued agent identity, local development auth, deny-by-default permission and contextual policy engines
Prompt systemSemantic versions, SHA-256 hashes, strict variables, trusted/untrusted provenance, and deterministic prompt-injection signals
Input parsingJSON, YAML, Markdown, text, and structured-task normalization
ObservabilityAppend-only events, SQLite/JSONL storage, structured logs, task traces, Mermaid delegation graphs, metrics, budgets, and monitors
EvaluationNine deterministic rules, eight diagnostic dimensions, assertions, YAML specs, run comparison, prompt regression, and optional model judge
ReplayExact reconstruction, dry run, model rerun, and guarded tool rerun
Security testingPrompt injection, escalation, malicious MCP/tool output, secret leakage, traversal, sandbox, recursion, and resource-exhaustion cases

Architecture

flowchart TD
  Input["User or test input"] --> Parser["Input parsers"]
  Parser --> Runtime["Agent runtime + task graph"]
  Runtime --> Delegation["Delegation engine"]
  Delegation --> Guards["Identity + permission + policy"]
  Guards --> Agents["Child agents"]
  Guards --> Tools["Tool executor"]
  Tools --> MCP["MCP connectors"]
  Tools --> Sandbox["Sandbox providers"]
  Agents --> Events["Runtime events"]
  MCP --> Events
  Sandbox --> Events
  Events --> Observe["Trace + metrics + monitors"]
  Events --> Evaluate["Rules + optional judge + replay"]

Quick Start

Requirements: Node.js 22 or newer and pnpm 11.

From a clone or an extracted release archive:

cd multi-agent-workflow-lab
pnpm install --frozen-lockfile
pnpm demo

The demo requires no API key or paid service. A public clone URL can be added after the maintainer chooses and publishes the repository location.

What the demo shows

pnpm demo runs a deterministic review chain through the CLI:

status: completed

orchestrator
  → researcher
    → analyst
      → reviewer
        → evaluator

delegation score: 88.75/100
workflow completed

The actual CLI output is JSON and includes the run ID, every task/agent/status, all eight evaluation dimensions, derived metrics, and the JSONL trace path.

Delegation observability

A trace records behavior rather than only the final answer:

orchestrator
  delegation.requested → researcher
  delegation.created   context + permissions + budget + depth

researcher
  tool.requested       → mcp.mock.search
  policy.allowed       explicit decision evidence
  tool.completed       size + redaction metadata

orchestrator
  delegation.result.accepted → child task integrated

Use these commands after a run:

pnpm mawl trace show <run-id>
pnpm mawl evaluate <run-id>
pnpm mawl graph <run-id>
pnpm mawl replay <run-id> dry-run

Evaluation scores are normalized diagnostics, not mathematical truth or a security guarantee.

Example workflows

WorkflowPurposeExpected result
01-basic-delegation.yamlOrchestrator delegates one bounded research taskCompletes
02-parallel-research.yamlTwo research tasks fan out and an analyst joins themCompletes
03-review-chain.yamlResearcher → analyst → reviewer → evaluatorCompletes
04-permission-denied.yamlDirect delegation to a non-allowlisted targetFails safely
05-mcp-untrusted-output.yamlHostile MCP content is treated as data in the test harnessCompletes safely
06-delegation-loop.yamlAgent A → B → A recursionFails safely
07-human-approval.yamlApproval-provider checkpoint behaviorCompletes; approval logic is tested separately
08-budget-exceeded.yamlWorkflow-wide token budget exhaustionFails safely
09-bad-vs-good-orchestrator.yamlGood baseline for comparative evaluationCompletes

Run any positive example with:

pnpm mawl run workflows/02-parallel-research.yaml

The negative examples intentionally return a non-zero exit code when the requested action is blocked.

Good vs. bad orchestrator

The lab compares a bounded, least-privilege orchestration trace with a synthetic bad trace containing duplicate work, leaked context, escalated permission, and an unauthorized tool request. RunComparator and DelegationEvaluator report changes in:

  • agent selection and delegation edges;
  • task decomposition and depth;
  • context and permission minimization;
  • tool use, retries, tokens, runtime, and failures;
  • result integration and overall diagnostic score.

The executable coverage is in tests/lab.test.ts, with scenario inputs under scenarios/.

CLI

In this workspace, prefix CLI arguments with pnpm mawl:

pnpm mawl run <workflow.yaml> [json-input]
pnpm mawl agents list
pnpm mawl workflow inspect <run-id>
pnpm mawl task inspect <task-id>
pnpm mawl inspect agent permissions <agent-id>
pnpm mawl inspect mcp server [server-id]
pnpm mawl trace show <run-id>
pnpm mawl evaluate <run-id>
pnpm mawl graph <run-id> [output.mmd]
pnpm mawl replay <run-id> [exact|model-rerun|tool-rerun|dry-run]
pnpm mawl compare <run-a> <run-b>
pnpm mawl test <workflow-test.yaml>
pnpm mawl prompts list
pnpm mawl prompts inspect <prompt-id> [version]
pnpm mawl permissions inspect <agent-id>
pnpm mawl doctor

tool-rerun blocks tool names or manifests classified as external side effects unless the embedding application supplies explicit permission for that exact tool. The CLI supplies no side-effect permissions.

Prompts are first-class assets

This is not a directory of free-form prompt snippets. YAML assets under prompts/ include:

  • stable ID and semantic version;
  • owner, type, purpose, and known risks;
  • declared input schema and expected output;
  • allowed actions and recommended capabilities;
  • content hash verified by PromptRegistry;
  • provenance and trust classification when assembled at runtime.

Runtime and security policy layers remain separate from untrusted user, tool, MCP, and child-agent content. Prompt quality tests detect duplicate IDs, invalid versions, missing metadata, variable/placeholder errors, unexpected hashes, and undeclared references.

Security model

  • Permissions and contextual policies deny unmatched requests by default.
  • Agent execution identities are issued by the runtime and linked to workflow/task/session IDs.
  • Child context, authority, and budget are reduced from the parent.
  • MCP responses and model/tool/child output are untrusted data, not authority.
  • Secret references and output redaction limit accidental exposure.
  • Tool requests pass manifest resolution, validation, permission, policy, optional approval, output checks, and audit.
  • Delegation depth, ancestry, task count, retries, calls, tokens, output, and runtime are bounded.
  • Replay refuses external side effects without an explicit per-tool permission.

The restricted local sandbox is intended for development and policy testing. It is not equivalent to hardened container, VM, microVM, or kernel isolation, and network denial is best-effort. MAWL does not claim to be prompt-injection-proof, sandbox-escape-proof, or fully zero-trust. Read the threat model and security policy.

Using a real model provider

The default path always uses MockModelProvider. An optional OpenAI-compatible chat-completions adapter is available in @mawl/providers:

cp .env.example .env

Populate MODEL_PROVIDER, MODEL_ENDPOINT, and MODEL_API_KEY from a secret manager, then inject OpenAICompatibleProvider into the runtime. The CLI intentionally does not auto-load credentials. See provider integration.

Repository structure

multi-agent-workflow-lab/
├── apps/                    CLI and runnable examples
├── packages/
│   ├── core/                Schemas and provider contracts
│   ├── runtime/             Agent loop, tasks, delegation, scheduler, replay
│   ├── evaluation/          Rules, assertions, scores, specs, comparison
│   ├── observability/       Events, traces, graphs, metrics, budgets, monitors
│   ├── tools/ mcp/ sandbox/ Controlled execution surfaces
│   ├── auth/ permissions/ policy/ security/ secrets/
│   └── prompts/ parsers/ providers/ storage/ testing/
├── agents/                  Agent definitions
├── prompts/                 Versioned prompt assets
├── workflows/               Executable workflow examples
├── examples/                Compatibility examples and guide
├── scenarios/ redteam/      Deterministic failure and attack inputs
├── tests/                   Unit, security, lab, and end-to-end tests
├── config/                  Example pricing configuration
└── docs/                    Architecture, operations, security, and release docs

Testing and development

All default tests use local mock providers and require no external API access:

pnpm install --frozen-lockfile
pnpm typecheck
pnpm lint
pnpm build
pnpm test
pnpm test:e2e
pnpm test:security
pnpm demo
pnpm mawl doctor

To extend the framework, add YAML agents under agents/, versioned prompts under prompts/, workflows under workflows/, tool manifests through ToolRegistry, MCP adapters through McpConnection/McpConnector, rules through RuleEvaluator, and scenario coverage under tests/ or scenarios/. See the documentation index and contributing guide.

Roadmap

  • distributed execution and atomic shared budgets;
  • hardened remote container or microVM sandbox providers;
  • OpenTelemetry exporters and remote observability storage;
  • additional model, identity, and MCP adapters;
  • workflow visualization UI and benchmark datasets.

Contributing, security, and license

Contributions to agents, prompts, tools, MCP connectors, workflow scenarios, evaluators, and security tests are welcome. Read CONTRIBUTING.md and CODE_OF_CONDUCT.md.

Report vulnerabilities privately as described in SECURITY.md. Do not place sensitive vulnerability details in public issues.

Licensed under the MIT License.

Frequently Asked Questions

What is multi-agent-workflow-lab?

multi-agent-workflow-lab is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by christiangrey922. Testing and observability for multi-agent delegation, MCP tools, permissions, sandboxed actions, prompts, and workflow replay. It has 85 GitHub stars.

Is multi-agent-workflow-lab safe to use?

Yes. multi-agent-workflow-lab passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.

How do I install multi-agent-workflow-lab?

Clone the repository with "git clone https://github.com/christiangrey922/multi-agent-workflow-lab" and add it to your Claude Code skills directory (see the Installation section above).

What programming language is multi-agent-workflow-lab written in?

multi-agent-workflow-lab is primarily written in TypeScript. It is open-source under christiangrey922 on GitHub, so you can review or fork the full source.

Are there alternatives to multi-agent-workflow-lab?

Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh multi-agent-workflow-lab against similar tools.

Comments (0)

No comments yet. Be the first to share your thoughts!

ECC

by affaan-m

10

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

242,21936,702JavaScript
AI Agentsai-agentsanthropicclaude-code
View details
15

An agentic skills framework & software development methodology that works.

234,96620,863Shell
AI Agentsai-agentsbrainstorming
View details

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

185,94028,768JavaScript
AI Agentsai-agentsanthropicclaude-code
View details

cc-switch

by farion1231

3

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

128,8688,826Rust
AI Agentsclaude-codeai-tools
View details

claude-code

by anthropics

Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explaining complex code, and handling git workflows - all through natural language commands.

120,03119,897Shell
AI Agents
View details

Developers Also Liked

Based on votes and bookmarks from developers who liked this skill

ECC

by affaan-m

10

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

242,21936,702JavaScript
AI Agentsai-agentsanthropicclaude-code
View details
15

An agentic skills framework & software development methodology that works.

234,96620,863Shell
AI Agentsai-agentsbrainstorming
View details

n8n

by n8n-io

12

Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.

201,88160,308TypeScript
MCP Serversapisai-tools
View details

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

185,94028,768JavaScript
AI Agentsai-agentsanthropicclaude-code
View details

cc-switch

by farion1231

3

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

128,8688,826Rust
AI Agentsclaude-codeai-tools
View details