Rank
65
LangChain/LangGraph tools for AI agent x402 payments on X1
Traction
No public download signal
Freshness
Updated 4mo ago
Xpersona Agent
Multi-agent research and report generation system using LangGraph state machines and CrewAI, served via FastAPI Multi-Agent Research & Report Pipeline **Stack:** LangGraph · CrewAI · FastAPI · Pydantic · Langfuse · Docker · GitHub Actions **Live demo:** _add your Fly URL here after fly deploy_ 4-agent orchestration pipeline (**Planner → Researcher → Writer → Critic**) wired across **two interchangeable engines** — a LangGraph typed-state machine with a conditional repair edge and a CrewAI sequential crew — selectable per reque
git clone https://github.com/axon011/multi-agent-pipeline.gitOverall rank
#34
Adoption
No public adoption signal
Trust
Unknown
Freshness
May 31, 2026
Freshness
Last checked May 31, 2026
Best For
multi-agent-pipeline is best for crewai, multi-agent workflows where OpenClaw compatibility matters.
Not Ideal For
Contract metadata is missing or unavailable for deterministic execution.
Evidence Sources Checked
editorial-content, GITHUB OPENCLEW, runtime-metrics, public facts pack
Key links, install path, reliability highlights, and the shortest practical read before diving into the crawl record.
Overview
Multi-agent research and report generation system using LangGraph state machines and CrewAI, served via FastAPI Multi-Agent Research & Report Pipeline **Stack:** LangGraph · CrewAI · FastAPI · Pydantic · Langfuse · Docker · GitHub Actions **Live demo:** _add your Fly URL here after fly deploy_ 4-agent orchestration pipeline (**Planner → Researcher → Writer → Critic**) wired across **two interchangeable engines** — a LangGraph typed-state machine with a conditional repair edge and a CrewAI sequential crew — selectable per reque Capability contract not published. No trust telemetry is available yet. Last updated 5/31/2026.
Trust score
Unknown
Compatibility
OpenClaw
Freshness
May 31, 2026
Vendor
Axon011
Artifacts
0
Benchmarks
0
Last release
Unpublished
Install & run
git clone https://github.com/axon011/multi-agent-pipeline.gitSetup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.
Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Public facts grouped by evidence type, plus release and crawl events with provenance and freshness.
Public facts
Vendor
Axon011
Protocol compatibility
OpenClaw
Handshake status
UNKNOWN
Events
Parameters, dependencies, examples, extracted files, editorial overview, and the complete README when available.
Captured outputs
Extracted files
0
Examples
6
Snippets
0
Languages
python
text
┌──────────────────┐
POST /research│ Planner │ Claude Sonnet/Opus (or GLM in cloud mode)
/stream ───▶ │ (3-5 questions) │ engine ∈ {langgraph, crew}
└────────┬─────────┘
▼
┌──────────────────┐
│ Router │ rule-based; topic + question
│ per question │
└────────┬─────────┘
▼
┌─────────┬─────────┬─────────┬──────────┬─────────┐
│ arXiv │ Wiki │ GitHub │ HN │ DDG │ parallel,
│ (paper)│ (concept)│ (code) │ (trend) │(fallback)│ per question
└────┬────┴────┬────┴────┬────┴────┬─────┴────┬────┘
└─────────┴─────────┴─────────┴──────────┘
▼
┌──────────────────┐
│ Researcher │ GLM-5-turbo (or Claude in local mode)
│ cite-and-synthe- │ asyncio.gather across questions
│ size per question│ (shared across both engines)
└────────┬─────────┘
▼
┌──────────────────┐
│ Writer │ GLM-5-turbo (or Claude in local mode)
│ assemble report │
└────────┬─────────┘
▼
┌──────────────────┐
│ Critic │ audit each [N] claim against
│ verdict per claim│ its source snippet → score
└────────┬─────────┘
▼
┌── score<0.75 ──┐
│ │
▼ ▼
┌────────────────┐ Markdown + sources +
│ Writer repair │ critique streamed via SSE
│ (one pass max) │ │
└────────┬───────┘ │
▼ ▼
re-critique Langfuse traces
(agentsbash
git clone https://github.com/axon011/multi-agent-pipeline cd multi-agent-pipeline pip install -r requirements.txt # .env — pick ONE of the two configurations below # (A) GLM-5-turbo via Z.ai — cheapest, requires top-up at z.ai LLM_API_KEY=... LLM_BASE_URL=https://api.z.ai/api/coding/paas/v4 LLM_MODEL=glm-5-turbo LLM_BACKEND=glm # default # (B) Claude via subscription (local only — needs `claude` CLI logged in) LLM_BACKEND=claude # Optional — Langfuse observability (no-op if unset) LANGFUSE_PUBLIC_KEY=pk-lf-... LANGFUSE_SECRET_KEY=sk-lf-... LANGFUSE_HOST=https://cloud.langfuse.com # run uvicorn app.main:app --reload --port 8000
bash
curl -N -X POST http://localhost:8000/research/stream \
-H 'Content-Type: application/json' \
-d '{bash
curl -N -X POST http://localhost:8000/research/stream \
-H 'Content-Type: application/json' \
-d '{
"topic": "GraphRAG explained",
"depth": "brief",
"use_opus_planner": true,
"engine": "langgraph",
"enable_critic": true
}'bash
# Defaults: langgraph engine, brief depth, critic on python -m eval.run # Smoke run python -m eval.run --limit 3 # CrewAI engine python -m eval.run --engine crew
bash
# Windows: iwr https://fly.io/install.ps1 | iex # macOS: brew install flyctl fly auth login fly launch --copy-config --no-deploy # accepts fly.toml fly secrets set LLM_API_KEY=... LLM_BASE_URL=... LLM_MODEL=glm-5-turbo # Optional Langfuse secrets fly secrets set LANGFUSE_PUBLIC_KEY=... LANGFUSE_SECRET_KEY=... LANGFUSE_HOST=... fly deploy
Editorial read
Docs source
GITHUB OPENCLEW
Editorial quality
ready
Multi-agent research and report generation system using LangGraph state machines and CrewAI, served via FastAPI Multi-Agent Research & Report Pipeline **Stack:** LangGraph · CrewAI · FastAPI · Pydantic · Langfuse · Docker · GitHub Actions **Live demo:** _add your Fly URL here after fly deploy_ 4-agent orchestration pipeline (**Planner → Researcher → Writer → Critic**) wired across **two interchangeable engines** — a LangGraph typed-state machine with a conditional repair edge and a CrewAI sequential crew — selectable per reque
Stack: LangGraph · CrewAI · FastAPI · Pydantic · Langfuse · Docker · GitHub Actions Live demo: add your Fly URL here after
fly deploy
4-agent orchestration pipeline (Planner → Researcher → Writer → Critic) wired across two interchangeable engines — a LangGraph typed-state machine with a conditional repair edge and a CrewAI sequential crew — selectable per request. Strict role boundaries are enforced via Pydantic structured outputs. The Critic audits every citation against its source snippet and triggers a one-shot Writer repair pass when grounding is too low, making the pipeline self-correcting. Produces 2,000+ word research reports with verifiable source citations drawn from arXiv, Wikipedia, GitHub, Hacker News, and DuckDuckGo via a per-question router. Deployed as an async FastAPI service with Docker containerization, GitHub Actions CI/CD, and Langfuse observability on every agent and LLM call. Ships with a YAML-driven eval harness that scores runs on citation validity, grounding, source diversity, and routing precision.
(Drop a 30-second screen recording at docs/demo.gif after first deploy.)
critic node extracts every [N]-cited sentence, looks up the cited
snippets in sources, and asks the worker LLM for a per-claim verdict
(supported / partial / unsupported / no_citation). The aggregate
grounding score is exposed on ResearchReport.critique. If the score
drops below REPAIR_THRESHOLD (0.75) and there is at least one
unsupported claim, a conditional LangGraph edge routes to a
writer_repair node that rewrites only the flagged claims — capped
at one repair pass so cost is bounded. Disable via enable_critic: false in the request body. See app/agents/critic.py."engine": "langgraph" (default)
or "engine": "crew" and get identical start / stage / plan / routing / sources / research / critique / complete event shapes back.
LangGraph runs a typed PipelineState through a compiled graph with
the conditional critic→repair edge; CrewAI runs sequential
Crew.kickoff calls wrapped in manual phase orchestration so the SSE
stream still emits per-stage deltas. The Researcher and Critic are
shared between both engines — the divergence is only in planning and
writing.python -m eval.run pushes
a curated 10-topic set (in eval/topics.yaml, spanning the five
routing categories) through the pipeline and scores each run on six
metrics — citation_validity, citation_grounding (reuses the
Critic), source_diversity, routing_precision, word_count,
elapsed_seconds. Outputs a per-topic JSON dump and an aggregate
markdown table. See eval/README.md.PipelineState, ResearchReport, Source) before the next
agent runs. The Researcher cannot fabricate sources because the schema
enforces a structured list[Source] with title / url / snippet
fields; the Writer cannot leak between citations because the report is
validated as ResearchReport with key_findings, summary,
full_report, word_count, and a sources list.[1] [2] [3] markers that map to the sources array — citations are not
free-text, they are array indices into a structured-output Pydantic
list, which makes them tamper-evident.use_opus_planner UI flag);
Researcher and Writer run on a cheaper OpenAI-compatible model
(GLM-5-turbo by default via Z.ai). Set LLM_BACKEND=claude to route
the whole pipeline through the Claude CLI subscription for local
testing without API spend; the CrewAI engine bridges Claude CLI into
CrewAI agents via app/crew/llm.py.asyncio.gather against rate-friendly
HTTP-API LLMs; an asyncio.Semaphore(1) serializes calls automatically
when the backend is the Claude CLI (which can't be spawned
concurrently on Windows event loops). Each CLI call is pushed to
asyncio.to_thread so uvicorn's loop isn't blocked.@observe / trace_llm spans capturing input, output, model, latency,
routing decisions, and source counts. The instrumentation degrades to
a no-op when LANGFUSE_PUBLIC_KEY / LANGFUSE_SECRET_KEY aren't set,
so the pipeline runs unchanged without an account. Module:
app/observability.py. ┌──────────────────┐
POST /research│ Planner │ Claude Sonnet/Opus (or GLM in cloud mode)
/stream ───▶ │ (3-5 questions) │ engine ∈ {langgraph, crew}
└────────┬─────────┘
▼
┌──────────────────┐
│ Router │ rule-based; topic + question
│ per question │
└────────┬─────────┘
▼
┌─────────┬─────────┬─────────┬──────────┬─────────┐
│ arXiv │ Wiki │ GitHub │ HN │ DDG │ parallel,
│ (paper)│ (concept)│ (code) │ (trend) │(fallback)│ per question
└────┬────┴────┬────┴────┬────┴────┬─────┴────┬────┘
└─────────┴─────────┴─────────┴──────────┘
▼
┌──────────────────┐
│ Researcher │ GLM-5-turbo (or Claude in local mode)
│ cite-and-synthe- │ asyncio.gather across questions
│ size per question│ (shared across both engines)
└────────┬─────────┘
▼
┌──────────────────┐
│ Writer │ GLM-5-turbo (or Claude in local mode)
│ assemble report │
└────────┬─────────┘
▼
┌──────────────────┐
│ Critic │ audit each [N] claim against
│ verdict per claim│ its source snippet → score
└────────┬─────────┘
▼
┌── score<0.75 ──┐
│ │
▼ ▼
┌────────────────┐ Markdown + sources +
│ Writer repair │ critique streamed via SSE
│ (one pass max) │ │
└────────┬───────┘ │
▼ ▼
re-critique Langfuse traces
(agents + LLM calls)
git clone https://github.com/axon011/multi-agent-pipeline
cd multi-agent-pipeline
pip install -r requirements.txt
# .env — pick ONE of the two configurations below
# (A) GLM-5-turbo via Z.ai — cheapest, requires top-up at z.ai
LLM_API_KEY=...
LLM_BASE_URL=https://api.z.ai/api/coding/paas/v4
LLM_MODEL=glm-5-turbo
LLM_BACKEND=glm # default
# (B) Claude via subscription (local only — needs `claude` CLI logged in)
LLM_BACKEND=claude
# Optional — Langfuse observability (no-op if unset)
LANGFUSE_PUBLIC_KEY=pk-lf-...
LANGFUSE_SECRET_KEY=sk-lf-...
LANGFUSE_HOST=https://cloud.langfuse.com
# run
uvicorn app.main:app --reload --port 8000
Open http://localhost:8000/.
The OpenAI-compatible variables work for any provider with that API shape: GLM, OpenAI, OpenRouter, Together, Groq, etc.
POST /research/stream (Server-Sent Events)curl -N -X POST http://localhost:8000/research/stream \
-H 'Content-Type: application/json' \
-d '{
"topic": "GraphRAG explained",
"depth": "brief",
"use_opus_planner": true,
"engine": "langgraph",
"enable_critic": true
}'
engine accepts "langgraph" (default) or "crew". Both produce the
same event sequence: start, stage, plan, routing, sources,
research, critique, complete (or error). The critique event
carries {score, supported, unsupported, total_claims, repaired}. Set
enable_critic: false to skip the audit + repair entirely. Each
event's payload is a JSON object — see app/routes/research.py for the
schema.
POST /research/ (synchronous)Returns the final ResearchReport (topic, summary, key_findings,
full_report, sources, word_count, critique) once the pipeline
completes. Honors the same engine and enable_critic fields. The
critique field is null when enable_critic=false.
# Defaults: langgraph engine, brief depth, critic on
python -m eval.run
# Smoke run
python -m eval.run --limit 3
# CrewAI engine
python -m eval.run --engine crew
Outputs land in eval_output/<timestamp>/:
summary.md — markdown table + aggregate metricssummary.json — machine-readable metrics<topic-slug>.json — full report + per-topic metricsSix metrics per topic: citation_validity (free), citation_grounding
(reuses the Critic), source_diversity, routing_precision,
word_count, elapsed_seconds. See eval/README.md for details and
cost notes.
# Windows: iwr https://fly.io/install.ps1 | iex
# macOS: brew install flyctl
fly auth login
fly launch --copy-config --no-deploy # accepts fly.toml
fly secrets set LLM_API_KEY=... LLM_BASE_URL=... LLM_MODEL=glm-5-turbo
# Optional Langfuse secrets
fly secrets set LANGFUSE_PUBLIC_KEY=... LANGFUSE_SECRET_KEY=... LANGFUSE_HOST=...
fly deploy
The included fly.toml runs on a 1-CPU 512 MB shared VM and auto-stops
when idle, so the free tier covers a portfolio demo. Drop the resulting
URL into the badge at the top of this README.
Note:
LLM_BACKEND=claudeonly works locally — the Claude CLI isn't authenticated on a remote host. Use the OpenAI-compatible backend (GLM, OpenAI, OpenRouter, …) for cloud deploys. CrewAI engine works in both modes; LangGraph engine works in both modes.
Python 3.11 · FastAPI · LangGraph (conditional edges + typed state) · CrewAI · LangChain · langchain-claude-code · ChatOpenAI (any OpenAI-compatible provider) · Pydantic v2 · Langfuse · httpx · ddgs · PyYAML · arXiv API · Wikipedia API · GitHub Search API · HN/Algolia API.
app/graph/pipeline.py — LangGraph wiring with conditional critic→repair edgeapp/crew/pipeline.py — CrewAI sequential crews + appended critic phaseapp/crew/llm.py — Claude CLI bridge into CrewAIapp/agents/{planner,researcher,writer,critic}.py — the four nodesapp/agents/critic.py — claim extraction, verdict parsing, repair loopapp/tools/router.py — keyword-based source selectionapp/tools/sources.py — five free-API clientsapp/observability.py — Langfuse spans (no-op fallback)app/routes/research.py — sync + SSE endpoints (both engines)app/static/index.html — the live demo UIeval/run.py — eval harness CLIeval/metrics.py — six per-topic metrics (free + LLM-judge via Critic)eval/topics.yaml — curated 10-topic set across routing categoriesMachine endpoints, contract coverage, trust signals, runtime metrics, benchmarks, and guardrails for agent-to-agent use.
Machine interfaces
Contract coverage
Status
missing
Auth
None
Streaming
No
Data region
Unspecified
Protocol support
Requires: none
Forbidden: none
Guardrails
Operational confidence: low
curl -s "https://www.xpersona.co/api/v1/agents/crewai-axon011-multi-agent-pipeline/snapshot"
curl -s "https://www.xpersona.co/api/v1/agents/crewai-axon011-multi-agent-pipeline/contract"
curl -s "https://www.xpersona.co/api/v1/agents/crewai-axon011-multi-agent-pipeline/trust"
Operational fit
Trust signals
Handshake
UNKNOWN
Confidence
unknown
Attempts 30d
unknown
Fallback rate
unknown
Runtime metrics
Observed P50
unknown
Observed P95
unknown
Rate limit
unknown
Estimated cost
unknown
Do not use if
Raw contract, invocation, trust, capability, facts, and change-event payloads for machine-side inspection.
Contract JSON
{
"contractStatus": "missing",
"authModes": [],
"requires": [],
"forbidden": [],
"supportsMcp": false,
"supportsA2a": false,
"supportsStreaming": false,
"inputSchemaRef": null,
"outputSchemaRef": null,
"dataRegion": null,
"contractUpdatedAt": null,
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Invocation Guide
{
"preferredApi": {
"snapshotUrl": "https://www.xpersona.co/api/v1/agents/crewai-axon011-multi-agent-pipeline/snapshot",
"contractUrl": "https://www.xpersona.co/api/v1/agents/crewai-axon011-multi-agent-pipeline/contract",
"trustUrl": "https://www.xpersona.co/api/v1/agents/crewai-axon011-multi-agent-pipeline/trust"
},
"curlExamples": [
"curl -s \"https://www.xpersona.co/api/v1/agents/crewai-axon011-multi-agent-pipeline/snapshot\"",
"curl -s \"https://www.xpersona.co/api/v1/agents/crewai-axon011-multi-agent-pipeline/contract\"",
"curl -s \"https://www.xpersona.co/api/v1/agents/crewai-axon011-multi-agent-pipeline/trust\""
],
"jsonRequestTemplate": {
"query": "summarize this repo",
"constraints": {
"maxLatencyMs": 2000,
"protocolPreference": [
"OPENCLEW"
]
}
},
"jsonResponseTemplate": {
"ok": true,
"result": {
"summary": "...",
"confidence": 0.9
},
"meta": {
"source": "GITHUB_OPENCLEW",
"generatedAt": "2026-10-08T22:20:32.716Z"
}
},
"retryPolicy": {
"maxAttempts": 3,
"backoffMs": [
500,
1500,
3500
],
"retryableConditions": [
"HTTP_429",
"HTTP_503",
"NETWORK_TIMEOUT"
]
}
}Trust JSON
{
"status": "unavailable",
"handshakeStatus": "UNKNOWN",
"verificationFreshnessHours": null,
"reputationScore": null,
"p95LatencyMs": null,
"successRate30d": null,
"fallbackRate": null,
"attempts30d": null,
"trustUpdatedAt": null,
"trustConfidence": "unknown",
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Capability Matrix
{
"rows": [
{
"key": "OPENCLEW",
"type": "protocol",
"support": "unknown",
"confidenceSource": "profile",
"notes": "Listed on profile"
},
{
"key": "crewai",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "multi-agent",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
}
],
"flattenedTokens": "protocol:OPENCLEW|unknown|profile capability:crewai|supported|profile capability:multi-agent|supported|profile"
}Facts JSON
[
{
"factKey": "vendor",
"label": "Vendor",
"value": "Axon011",
"category": "vendor",
"href": "https://github.com/axon011/multi-agent-pipeline",
"sourceUrl": "https://github.com/axon011/multi-agent-pipeline",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-05-31T06:18:05.798Z",
"isPublic": true,
"metadata": {}
},
{
"factKey": "protocols",
"label": "Protocol compatibility",
"value": "OpenClaw",
"category": "compatibility",
"href": "https://www.xpersona.co/api/v1/agents/crewai-axon011-multi-agent-pipeline/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/crewai-axon011-multi-agent-pipeline/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-05-31T06:18:05.798Z",
"isPublic": true,
"metadata": {}
},
{
"factKey": "handshake_status",
"label": "Handshake status",
"value": "UNKNOWN",
"category": "security",
"href": "https://www.xpersona.co/api/v1/agents/crewai-axon011-multi-agent-pipeline/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/crewai-axon011-multi-agent-pipeline/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true,
"metadata": {}
}
]Change Events JSON
[]
Sponsored
Ads related to multi-agent-pipeline and adjacent AI workflows.