AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
MCP verified Apache-2.0 Self-run

Orchestra

mcp-stewartxiang-orchestra · by StewartXiang

Declarative AI Agent pipeline engine — like Kubernetes for your LLM agents. YAML DSL + Temporal + MCP.

No reviews yet
0 installs
35 views
0.0% view→install

Install

$ agentstack add mcp-stewartxiang-orchestra

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/mcp-stewartxiang-orchestra)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
3mo ago

Declared compatibility

Claude CodeClaude DesktopCursorWindsurf

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Orchestra? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

🎻 Agent Orchestra

> 像 Kubernetes 管理 Pod 一样管理 AI Agent。 > > 声明式 YAML 定义流水线 → Temporal 驱动执行 → MCP 通信 Agent → Prometheus/OTel 可观测。


一句话说清楚

| 你要做的事 | 用什么 | |-----------|--------| | 搭一个聊天机器人 / RAG 问答 | Dify | | 编排 LLM 调用链(prompt → tool → prompt) | LangChain / LangGraph | | 管理一支 AI Agent 团队完成工程任务 | Orchestra 🎻 |

Orchestra 不是 chatbot builder,是 AI Agent 团队的 CI/CD 引擎。


一分钟看懂

# game-dev.pipeline.yaml
apiVersion: orchestra.io/v1
kind: Pipeline
metadata:
  name: game-dev
spec:
  agents:
    walnut:  {role: developer,  capabilities: [godot, gdscript]}
    chestnut:{role: tester,     capabilities: [pytest, coverage]}
    coconut: {role: ci_engineer, capabilities: [docker, deploy]}

  pipeline:
    stages:
      - name: code
        agent: walnut
        input: "$.params.task"
        output: "$.code.patch"

      - name: test
        dependsOn: [code]
        agent: chestnut
        input: "$.code.patch"
        output: "$.test.result"

      - name: deploy
        dependsOn: [test]
        agent: coconut
        input: "$.code.patch"
        output: "$.deploy.url"
orchestra submit game-dev.pipeline.yaml -p task="修复 BUG-041:字体丢失"
orchestra status --watch

核桃写代码 → 栗子跑测试 → 椰子部署,一条命令,自动串起来。

流水线执行流程

flowchart LR
    A["📋 design-reviewblueberry"] --> B["💻 codewalnut"]
    A --> C["🎨 artcherry"]
    B --> D["🧪 testalmond"]
    C --> D
    D --> |"pass"| E["🖥️ ui-verifystrawberry+grape"]
    D --> |"fail"| F["🔍 diagnoseblueberry"]
    F --> G["🔧 fix-eachdynamic × N"]
    G --> D
    E --> H["✋ deploy-approval人工审批"]
    H --> I["🚀 deploycoconut"]

> condition 分支 · parallel fan-out · dynamic for_each · 人工审批 · 失败补偿

终端演示

[](https://asciinema.org/a/sRuGwzeKLYLz0QM8)

$ orchestra validate examples/flappybird.pipeline.yaml
✓ 校验通过 (0 errors, 0 warnings)

$ orchestra dry-run examples/flappybird.pipeline.yaml --param gdd="复刻 Flappy Bird"
  Topo: [design-review, code, art, test, diagnose, fix-each, ui-verify, deploy-approval, deploy]
  Wave 1: [design-review]
  Wave 2: [code, art]
  Wave 3: [test]
  Wave 4: [diagnose, ui-verify]
  Wave 5: [deploy-approval]
  Wave 6: [deploy]

$ orchestra submit examples/flappybird.pipeline.yaml --param gdd="..."
✓ submitted
  workflow_id : flappybird-dev-3f7a2b1c
  run_id      : 3f7a2b1c
  task_queue  : agent-blueberry

$ orchestra status --watch
  phase=Succeeded  stage=deploy  progress=100%  eta=—

解决什么痛点

| 手工编排的痛 | Orchestra 怎么解决 | |---|---| | 依赖手工排序、容易出错 | 声明式 YAML DAG,自动解析拓扑 | | Agent 宕机不知道 | 15s 心跳 + 三层探针,自动故障转移 | | 失败靠人手动重试 | 指数退避自动重试 + Saga 补偿 | | 没有执行历史 | Temporal Event History 全量审计 | | 多人并发抢占一个 Agent | Task Queue 隔离 + maxConcurrency 限流 | | 流程没法版本化 | Pipeline YAML 纳入 Git 版本控制 |


与 Dify / LangGraph / CrewAI 的差异

| 维度 | Dify | LangGraph | CrewAI | Orchestra | |------|------|-----------|--------|---------------| | 定位 | LLM 应用平台 | LLM 图状态机 | Agent 角色协作 | Agent 流水线引擎 | | 编排粒度 | LLM 调用 | LLM 调用 + 状态 | Agent + Task | Agent + Stage + DAG | | 执行引擎 | 自研轻量 | 单进程 | 单进程 | Temporal(工业级) | | 断点续传 | ❌ | 有限 | ❌ | ✅ Event History Replay | | Saga 补偿 | ❌ | ❌ | ❌ | ✅ 部署失败自动回滚 | | 多 Agent 并行 | ❌ | ❌ | 有限 | ✅ DAG 扇出 + 投票聚合 | | 人工审批节点 | ❌ | ❌ | ❌ | ✅ any/all/quorum | | Serverless 友好 | ❌ | ✅ | ✅ | ✅ Worker 按需扩缩 | | 代码量 | 40万+ 行 | ~3 万行 | ~2 万行 | ~1 万行 |


架构

flowchart TB
    subgraph Config["配置层"]
        YAML["pipeline.yaml声明式 DAG 定义"]
    end

    subgraph Orchestration["编排层 — Temporal Server"]
        WF["PipelineWorkflowDAG 调度 · Signal · Update"]
        ACT["Activities心跳 · 重试 · 幂等"]
        SAGA["Saga 补偿"]
    end

    subgraph Execution["执行层 — Agent Workers"]
        W1["🥜 walnutdeveloper"]
        W2["🧪 almondtester"]
        W3["🌰 chestnutdeveloper"]
        W4["🥥 coconutci_engineer"]
        W5["🍒 cherrydesigner"]
        W6["🥭 mangodeveloper"]
        W7["🍓 strawberrytester"]
        W8["🫐 blueberrychat"]
        W9["🍇 grapestandby"]
    end

    subgraph Observability["可观测层"]
        PROM["Prometheus指标"]
        GRAF["Grafana看板"]
        OTEL["OpenTelemetry追踪"]
        AUDIT["审计日志SQLite"]
    end

    YAML --> WF
    WF --> ACT
    ACT --> W1 & W2 & W3 & W4 & W5 & W6 & W7 & W8 & W9
    ACT --> SAGA
    ACT -.-> PROM & OTEL & AUDIT
    PROM --> GRAF

> 四层架构对标 Kubernetes 控制面/数据面分离。编排层用 Temporal 做持久化执行内核,Agent 通过 MCP 协议零侵入接入。

技术选型

| 层 | 选型 | 原因 | |---|------|------| | 编排内核 | Temporal | 持久化 Workflow、Replay、Signal、Saga | | Agent 通信 | MCP(Model Context Protocol) | 标准协议,与 Agent 实现解耦 | | 流水线定义 | 自研 YAML DSL | 参考 K8s CRD + LangGraph 节点/边模型 | | 可观测性 | Prometheus + Grafana + OTel | 工业标准,无需自建 | | 持久化 | SQLite(起步)/ PostgreSQL(生产) | Temporal 自带,零配置 |

K8s 启发的设计

| K8s 概念 | Orchestra 对应 | |----------|---------------| | Pod 声明式定义 | agents: YAML | | Liveness/Readiness Probe | Agent 心跳监控 + 健康检查 | | Service 发现 | Agent 能力路由(agentSelector) | | Job | Pipeline 提交执行 | | CronJob | Schedule 定时触发 | | ResourceQuota | Agent maxConcurrency | | Operator + CRD | Pipeline / PipelineRun / AgentProfileSet |


快速开始

方式 A:Demo 模式(推荐首次体验,1 分钟跑通)

无需任何外部 Agent。 仓库自带 demo agent,docker compose up 即可体验完整流水线。

# 1. 启动 Demo 环境(Temporal + 内置 Demo Agent + Worker)
docker compose -f deploy/docker-compose.demo.yml up -d

# 2. 安装 CLI
pip install orchestra-agent

# 3. 提交 Demo 流水线
orchestra submit examples/minimal-demo.pipeline.yaml --param task="hello world"

# 4. 查看结果
orchestra status --watch
open http://localhost:8080   # Temporal UI

方式 B:生成你自己的流水线

# 交互式生成配置(询问项目名称、Agent、Stage)
orchestra init

# 验证并运行
orchestra validate my-pipeline.pipeline.yaml
orchestra dry-run  my-pipeline.pipeline.yaml
orchestra submit   my-pipeline.pipeline.yaml --values values.yaml

方式 C:连接真实 Agent(生产部署)

# 1. 编辑 config/profiles.yaml,填入你的 Agent MCP endpoint
# 2. 启动全套服务栈
docker compose -f deploy/docker-compose.yml up -d

# 3. 提交
orchestra submit examples/game-dev.pipeline.yaml --param gdd="..."

面板地址

| 面板 | Demo | 生产 | |------|------|------| | Temporal UI | http://localhost:8080 | 同 | | Grafana | — | http://localhost:3000 | | Prometheus | — | http://localhost:9090 |


Pipeline YAML 速览

基础 DAG

stages:
  - name: design
    agent: mango
    output: "$.gdd"
  - name: code
    agent: walnut
    dependsOn: [design]
    input: "$.gdd.task"
    output: "$.code.patch"
  - name: test
    agent: chestnut
    dependsOn: [code]
    input: "$.code.patch"

并行 + 投票聚合

- name: ui-verify
  agents: [strawberry, grape]
  aggregateStrategy: vote       # all | any | first | merge | vote | quorum

条件分支

- name: fix
  agent: walnut
  dependsOn: [test]
  condition: 'test.result == "fail"'    # false → SKIPPED,不阻塞后续

人工审批

- name: deploy-approval
  dependsOn: [ci-gate]
  approval:
    approvers: [ou_alice]
    policy: any
    timeout: 1h
    onTimeout: reject

动态展开(for_each)

- name: fix-each
  dependsOn: [diagnose]
  dynamic:
    generator: for_each
    input: "$.diagnose.bugs"    # 按 Bug 列表动态生成子 Stage
    maxParallel: 3
    template:
      name: "fix-bug-{{ item.id }}"
      agent: walnut

Review-driven 迭代循环

# review Agent 输出结构化结果:{verdict: "pass"|"fail", issues: [{owner, ...}]}
- name: review
  agent: blueberry
  output: "$.review"
  outputSchema:
    required: [verdict]
    properties:
      verdict: {enum: [pass, fail]}
      issues:
        items:
          properties:
            owner: {enum: [developer, designer, tester]}

# fail 时,issue 按 owner 路由给对应 Agent
- name: fix-review-issues
  dependsOn: [review]
  condition: 'review.verdict != "pass"'
  dynamic:
    generator: for_each
    input: "$.review.issues"
    template:
      name: "fix-{{ item.id }}"
      agentSelector:
        role: "{{ item.owner }}"   # 动态路由:designer→cherry, developer→walnut

# loop 包装:review → fix → test → review,直到 pass
- name: review-loop
  dependsOn: [review]
  loop:
    body: [fix-review-issues, test, review]
    condition: 'review.verdict != "pass"'
    maxIterations: 5
    onMaxReached: fail

> 完整示例见 [examples/review-driven.pipeline.yaml](examples/review-driven.pipeline.yaml)

结构化输出(response_tool)

Orchestra 向 Agent 注入 response_tool,Agent 以 tool-call 方式提交结果:

// Orchestra → Agent
{
  "input": {...},
  "output_schema": {"type": "object", "required": ["verdict"], ...},
  "response_tool": {
    "name": "submit_result",
    "description": "调用此 tool 提交最终结果",
    "parameters": 
  }
}

// Agent → Orchestra(自动识别 tool_calls/tool_use/function call 格式)
{
  "tool_calls": [{
    "name": "submit_result",
    "arguments": {"verdict": "pass", "issues": [...]}
  }]
}

> LLM 对 tool calling 的格式遵守度远高于自由 JSON。 Orchestra 自动提取 submit_result 的 arguments,然后做 schema 校验。


项目结构

docs/          需求 / 设计 / 架构 / 使用文档(共 4 份,3 万+ 字)
schema/        JSON Schema(pipeline / pipeline-run / agent-profile)
config/        Agent profiles + capabilities 词表
examples/      示例流水线(minimal-demo / game-dev / flappybird / parameterized)
deploy/        Docker Compose(demo / 生产)+ Prometheus + Grafana + OTel
scripts/       demo_agent.py(内置 mock Agent,开箱即用)
src/
  domain/      领域模型(Agent / Pipeline / Stage / State / Errors)
  schema/      YAML 解析 / JSONPath / DAG 拓扑 / CEL 表达式 / 模板
  workflows/   PipelineWorkflow(Temporal Workflow 实现)
  activities/  Agent Task / Artifact / Compensation / Notification
  adapters/    Agent 通信适配器(MCP / Mock;Protocol 可扩展)
  state/       幂等键 / Artifact 存储
  observability/ 日志 / 指标 / 追踪 / 审计
  worker/      Worker 进程 + 生命周期 + 注册
  cli/         CLI 命令(validate / submit / status / approve / schedule)
tests/         单元 / 集成 / Replay / Chaos / Load
runbook/       故障处置 SOP

Agent 管理

内置 9 个 Agent Profile,按能力路由:

| Agent | 角色 | 能力 | 模型 | |-------|------|------|------| | 🥜 核桃 walnut | developer | godot, gdscript, git | deepseek-v4-pro | | 🧪 杏仁 almond | tester | pytest, coverage, playwright | deepseek-v4-pro | | 🌰 栗子 chestnut | developer | python, web, fastapi | deepseek-v4-pro | | 🥥 椰子 coconut | ci_engineer | docker, deploy, k8s | deepseek-v4-pro | | 🍒 樱桃 cherry | designer | ui-design, figma, asset-export | deepseek-v4-pro | | 🥭 芒果 mango | developer | godot, shader, gameplay | deepseek-v4-pro | | 🍓 草莓 strawberry | tester | playwright, ui-test, e2e | deepseek-v4-pro | | 🫐 蓝莓 blueberry | chat | summarize, translate, analyze | deepseek-v4-pro | | 🍇 葡萄 grape | standby | generic, fallback | deepseek-v4-pro |


实现进度

| Phase | 内容 | 状态 | |-------|------|------| | P0 | domain 类型契约 | ✅ | | P1 | schema 解析 + DAG 校验 | ✅ | | P2 | state / adapters / observability | ✅ | | P3 | activities(agent_task / artifact / compensation) | ✅ | | P4 | workflows(signal / query / update / condition / parallel / dynamic / loop) | ✅ | | P5 | worker(lifecycle / registry / main) | ✅ | | P6 | CLI(19 个子命令) | ✅ | | P7 | 部署联调 + Replay fixture | ✅ |

> 108 个测试,~10,500 行 Python。详细变更见 [CHANGELOG.md](CHANGELOG.md)。

社区

  • [安全漏洞报告](SECURITY.md)
  • [行为准则](CODEOFCONDUCT.md)
  • [贡献指南](CONTRIBUTING.md)
  • 讨论区:GitHub Issues

开发

阅读 [CLAUDE.md](CLAUDE.md) 了解项目宪法(确定性铁律 / 幂等铁律 / 测试策略)。

# 安装开发依赖
pip install -e ".[dev]"

# 运行测试
pytest
pytest -m "not integration"  # 仅单元测试

# 代码检查
ruff check src/ tests/
mypy src/

License

Apache 2.0 © Agent Orchestra Contributors

Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.