Token导航 LogoToken导航

MCP Server · AI代理

Agent Orchestrator Layer

一个基于目标的多领域系统,通过LLM进行意图提取,元数据驱动的规划和确定性DAG执行。

stdio官方级别未说明来源级核验工具 0
PythonAI代理工作流自动化

快速开始

作者 / 组织
douglashiga
提供方
douglashiga
运行时
Python

工具数量

0

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

1

仓库热度

收录来源

1 个

MCP World

选型结论

Agent Orchestrator Layer 属于AI代理类 MCP Server,公开资料标注 0 个工具,通过stdio 本地进程接入,客户端适配情况以官方文档为准,有可以直接复制的安装命令;接入前先确认权限范围。

分类

AI代理

传输方式

stdio

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

安装命令

python3 main.py run

客户端配置示例

{
  "mcpServers": {
    "agentorchestratorlayer": {
      "command": "python3",
      "args": [
        "main.py",
        "run"
      ]
    }
  }
}

按公开安装命令拼出来的示例,字段名和参数以仓库 README 为准;带 YOUR_API_KEY 这类占位符的位置记得换成自己的值。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Python,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 0 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

代理编排器层

围绕目标的多域系统,通过LLM进行意图提取,元数据驱动的规划和确定性DAG执行。

架构概述

User Input
  ↓ EntryRequest
Intent Adapter (LLM)
  ↓ IntentOutput { primary_domain, goal, entities{*_text / enum} }
Goal Resolver (deterministic)
  ↓ ExecutionIntent { domain, capability, parameters, confidence }
Planner Service + Memory
  ↓ ExecutionPlan { steps[], execution_mode, combine_mode }
Execution Engine (DAG)
  ↓ ExecutionIntent (per step)
Orchestrator (registry lookup)
  ↓
Domain Handler
  ↓ DomainOutput { status, result, explanation }
每层和有效载荷的完整细节: 建筑.md

______________________________________________________________________

图表

graph TD
    User((User)) --> Entry[Entry Layer\nCLI / Telegram / HTTP]
    Entry --> Intent[Intent Adapter\nLLM → IntentOutput]
    Intent --> Resolver[Goal Resolver\ngoal → capability]
    Resolver --> Planner[Planner Service\n+ Memory injection]
    Mem[(Memory Store)] --> Planner
    Planner --> Decomposer[TaskDecomposer\nmetadata-driven]
    Planner --> FCPlanner[FunctionCallingPlanner\noptional LLM loop]
    Decomposer --> Exec[Execution Engine\nDAG / parallel]
    FCPlanner --> Exec
    Exec --> Orch[Orchestrator\nconfidence gate + routing]
    Orch --> Reg[Registry]
    Reg --> Fin[Finance Domain\nremote_http :8001]
    Reg --> Com[Communication Domain\nremote_http :8002]

______________________________________________________________________

每层有效载荷

入场申请

EntryRequest(
    session_id="user-abc123",
    input_text="qual o preço da Nordea?",
    metadata={}
)

IntentOutput(Intent Adapter的输出)

LLM提取 目标 和 对人类友好的实体 --从不使用技术性股票或ID。

IntentOutput(
    primary_domain="finance",
    goal="GET_QUOTE",
    entities={"symbol_text": "Nordea"},   # name as the user said it
    confidence=0.95,
    original_query="qual o preço da Nordea?"
)
# Goal with enum (TOP_MOVERS)
IntentOutput(
    primary_domain="finance",
    goal="TOP_MOVERS",
    entities={"direction": "GAINERS", "market_text": "Brasil"},
    confidence=0.92,
    original_query="maiores altas do Brasil"
)

ExecutionIntent(目标解析器的输出)

确定性映射 goal + entities → capability没有法学硕士。

ExecutionIntent(
    domain="finance",
    capability="get_stock_price",          # resolved by GoalResolver
    parameters={"symbol_text": "Nordea"},  # entities become parameters
    confidence=0.95,
    original_query="qual o preço da Nordea?"
)

执行计划(Planner的输出)

ExecutionPlan(
    execution_mode="dag",
    combine_mode="report",
    steps=[
        ExecutionStep(id=1, capability="get_stock_price",
                      params={"symbol_text": "Nordea"}, depends_on=[]),
        ExecutionStep(id=2, capability="send_telegram_message",
                      params={"message": "${1.explanation}"}, depends_on=[1], required=False)
    ]
)

DomainOutput(域处理程序的输出)

DomainOutput(
    status="success",        # "success" | "failure" | "clarification"
    result={
        "symbol": "NDA-SE.ST",
        "price": 112.5,
        "currency": "SEK",
        "_market_context": {"market": "SE", "exchange": "OMX"}
    },
    explanation="Nordea está em 112.50 SEK",
    confidence=1.0,
    metadata={}
)

______________________________________________________________________

项目结构

AgentOrchestratorLayer/
├── main.py                          # Entry CLI + Telegram
├── api/openai_server.py             # OpenAI-compatible API (Open WebUI)
│
├── intent/adapter.py                # LLM → IntentOutput
│
├── planner/
│   ├── goal_resolver.py             # IntentOutput → ExecutionIntent (deterministic)
│   ├── service.py                   # orchestrates planner + memory
│   ├── task_decomposer.py           # metadata-driven step decomposition
│   └── function_calling_planner.py  # optional LLM loop
│
├── execution/
│   ├── engine.py                    # DAG executor + workflow runtime
│   ├── result_combiner.py           # combines step outputs
│   └── task_state_store.py          # persists TaskInstance + WorkflowEvent
│
├── orchestrator/orchestrator.py     # confidence gate + capability routing
│
├── registry/
│   ├── db.py                        # SQLite: domains, capabilities, goals
│   ├── loader.py                    # loads manifests → registry
│   ├── domain_registry.py           # in-memory HandlerRegistry
│   └── http_handler.py              # handler for remote_http domains
│
├── shared/
│   ├── models.py                    # all Pydantic models
│   └── workflow_contracts.py        # MethodSpec, WorkflowSpec, TaskInstance
│
├── memory/store.py                  # SQLiteMemoryStore
├── models/selector.py               # ModelSelector (Ollama/OpenAI-compat)
├── skills/                          # SkillGateway + MCP adapter
│
├── domains/
│   ├── finance/                     # Finance domain (see domains/finance/README.md)
│   └── general/handler.py           # General domain (chat)
│
├── communication-domain/            # Communication domain (see communication-domain/README.md)
│
├── scripts/                         # test and evaluation scripts
├── domains.bootstrap.json           # domain bootstrap configuration
└── docker-compose.yml

______________________________________________________________________

领域

每个域都有自己的README,其中包含清单、功能和示例:

______________________________________________________________________

主要特点

  • 基于目标的意图: LLM提取目标+人性化实体;GoalResolver映射到没有LLM的功能
  • 元数据驱动分解: 分解为并行步骤是在清单中配置的,而不是在代码中配置的
  • DAG执行: 具有显式依赖关系的步骤,并行执行 max_concurrency
  • 声明性工作流程: MethodSpec + WorkflowSpec 对于流量 human_gate, decision, validate, call, return
  • 暂停/恢复: TaskInstance 持续状态; resume_task(ClarificationAnswer) 从中断的地方继续
  • 内存注入: 在分解之前将结构化内存(SQLite)注入规划器
  • 符号解析器: 财务处理人员解析姓名→ 通过别名元数据获取股票信息+ search_symbol 作为后备
  • 软确认: 意图与 confidence < 0.94 执行前返回澄清
  • 流动: 具有增量状态更新的SSE;普通聊天的真实令牌流快速路径
  • 兼容OpenAI的API: 与Open WebUI直接集成

______________________________________________________________________

配置

主要变量

# LLM / Models
OLLAMA_URL=http://localhost:11434

# Remote domains
BOOTSTRAP_DOMAINS_FILE=domains.bootstrap.json

# Databases
DB_PATH=agent.db
REGISTRY_DB_PATH=registry.db
MEMORY_DB_PATH=memory.db

# Confidence
SOFT_CONFIRM_THRESHOLD=0.94

# Telegram entry
TELEGRAM_BOT_TOKEN=...
TELEGRAM_DEFAULT_CHAT_ID=...

# OpenAI API
OPENAI_API_DEBUG_TRACE=false

域名引导(domains.bootstrap.json)

[
  {
    "name": "finance",
    "type": "remote_http",
    "config": {"url": "http://finance-server:8001", "timeout": 90.0},
    "sync_capabilities": true
  },
  {
    "name": "communication",
    "type": "remote_http",
    "config": {"url": "http://communication-domain:8002", "timeout": 15.0},
    "sync_capabilities": true
  }
]

______________________________________________________________________

如何跑步

Docker Compose

docker compose up --build

服务:

  • finance-server → host :8003
  • communication-domain → host :8002
  • agent-api → host :8010
  • open-webui → host :3000

命令行界面

python3 main.py run
python3 main.py run-telegram

API

uvicorn api.openai_server:app --host 0.0.0.0 --port 8010

终点:

  • GET /health
  • GET /v1/models
  • POST /v1/chat/completions (与 stream: true 苏格兰和南方能源公司)

管理员

python3 main.py domain-list
python3 main.py domain-add finance remote_http '{"url":"http://localhost:8003"}'
python3 main.py domain-sync finance
python3 main.py memory-set preferred_market '"SE"'
python3 main.py memory-get preferred_market

______________________________________________________________________

测试

# unit tests
python3 -m pytest -q

# integration scripts
PYTHONPATH=. python3 scripts/test_stock_price_notify_simple.py
PYTHONPATH=. python3 scripts/test_telegram_send_simple.py

# capability evaluation (requires domains running)
FINANCE_DOMAIN_URL=http://localhost:8003 python3 scripts/evaluate_capabilities.py

______________________________________________________________________

故障排除

症状可能原因解决方案
澄清太多SOFT_CONFIRM_THRESHOLD 太高低到 0.85
错误的报价LLM直接推断出报价检查目标 entities_schema
Name or service not known 为了 finance-server户外跑步作曲使用 http://localhost:8003
Telegram未收到消息机器人没有初始消息先向机器人发送消息
端口冲突8001财务内部使用8001主机端口组成为8003

许可证

麻省理工学院

工具与能力

工具数量

0

资源数量

0

提示词数量

0

能力标签

代理编排Python本地部署多领域系统意图提取DAG执行元数据驱动

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

多步任务编排

把拆解、检索、执行串成一条链,模型按步骤调用工具。

长期上下文

把会话、笔记和知识放到外部存储,换个会话还能接着做。

接自有流程

把内部系统和模型连起来,让助手调用已有的工作流。

选择建议

值得选的地方

  • 只提供 0 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 Python,换机器要重新装一遍。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在AI代理场景里让模型直接调用外部能力的人。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Agent Orchestrator Layer

MCP World · 本页

0stdio有1 个2026-05-17
Everything Claude Code

MCP World

0stdio有1 个2026-05-17
Filesystem 560c4363

MCP World

13未说明未标注2 个2026-05-17
Time 7365cb6d

MCP.so

2SSE有2 个2026-05-17
Server Everything (everything)

MCP World

11stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Agent Orchestrator Layer 怎么安装?

公开资料给出的安装命令是 python3 main.py run,运行环境为 Python。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Agent Orchestrator Layer 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Python;保存后完全退出客户端再打开,配置才会生效。

Agent Orchestrator Layer 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Agent Orchestrator Layer 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

Agent Orchestrator Layer 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP