返回市场
简单阿尔弗雷多代理网格

简单阿尔弗雷多代理网格

作者:aborroy3 星标更新:2025-09-05

项目介绍

简单的Alfresco代理网格

一个动手实验,比较在相同的Alfresco设置下三种路由选项(cagentLangGraphLlamaIndex

mcp-client 总是与位于 localhost:8085 的MCP服务器通信;一次启用一个路由器,然后分发到 MCP审计MCP文档,两者都与 Alfresco存储库 进行通信

启动的堆栈包括:

  • Alfresco社区存储库,包括审计样本配置
  • 两个MCP服务器:
  • 一个MCP路由器/编排器(cagent,LangGraph 或 LlamaIndex):服务分类用户提示并将MCP调用转发到正确的后端(审计 vs 文档

设计易于本地运行,易于理解,并且是一个很好的模板,用于构建更复杂的代理网格

内容概览

.
├── agent-mesh-tools
│   ├── cagent/               # 使用Docker cagent的路由器(需要LLM)
│   ├── langgraph/            # 使用LangGraph的路由器(确定性,不需要LLM)
│   └── llamaindex/           # 使用LlamaIndex的路由器(需要LLM)
├── alfresco-agents
│   ├── alfresco/             # Alfresco社区堆栈(存储库,共享,搜索等)
│   ├── alfresco-mcp-audit/   # MCP审计服务器
│   ├── alfresco-mcp-server/  # MCP文档服务器
│   └── compose.yaml          # 始终在线:存储库 + MCP后端
├── mcp-client/               # 用于测试活动路由器的客户端
└── compose.yaml              # 根compose文件,包含`include:`和每个路由器的配置文件

架构

flowchart LR
  %% 客户端
  C[mcp-client]

  %% 路由器
  subgraph Routers
    CA[cagent - 本地应用]
    LG[langgraph - 路由器:8085]
    LI[llamaindex - 路由器:8085]
  end

  %% MCP后端
  subgraph MCP["MCP服务器"]
    AU[MCP审计 - 8081]
    DO[MCP文档 - 8003]
  end

  %% Alfresco核心
  subgraph Alfresco
    RE[Alfresco存储库 - 8080]
  end

  %% 连接
  C --> CA
  C --> LG
  C --> LI

  CA --> AU
  CA --> DO
  LG --> AU
  LG --> DO
  LI --> AU
  LI --> DO

  AU --> RE
  DO --> RE
  • 路由器 是客户端的单一MCP端点
  • 它对每个请求进行分类并将其委托给通过可流式传输HTTP的审计MCP文档MCP后端
  • 两个后端都与Alfresco通信

路由器概览(选择一个)

  • LangGraph确定性路由器,不需要LLM。适用于可重复流程和简单的可审核路由规则。
  • LlamaIndex基于LLM的工具路由。使用模型在审计/文档工具之间做出选择;更具适应性,需要LLM。
  • cagent基于LLM的代理运行时(YAML),具有第一类MCP工具集成。它作为一个独立的CLI/TUI代理运行,如使用Docker新"cagent"即时构建Alfresco的AI代理所述

需求

  • Docker及Docker Compose v2+ 需要运行整个堆栈(Alfresco,MCP服务器,路由器,客户端)。

  • 系统资源 至少需要8GB的RAM和4个CPU核心。

  • 开放端口

    • 8080 > Alfresco存储库
    • 8081 > MCP审计
    • 8003 > MCP文档
    • 8085 > 活动路由器(LangGraph,或LlamaIndex)
  • LLM运行时

    • 对于cagent和LlamaIndex,需要LLM
    • 本实验使用Ollama和本地模型gpt-oss
    • 在开始之前确保已安装Ollama并拉取了模型:
      ollama pull gpt-oss
      
  • 不需要LLM

    • LangGraph路由器可以确定性地工作,无需LLM

快速入门

  1. 启动Alfresco社区版 + MCP后端
docker compose up --build
  1. 激活一个路由器(两者都暴露:8085):
docker compose --profile langgraph up -d
docker compose --profile llamaindex up -d

对于cagent,请遵循使用Docker新"cagent"即时构建Alfresco的AI代理中的步骤

  1. 使用客户端测试(总是访问8085)
docker compose -f mcp-client/compose.yaml run --rm mcp-client
  1. 切换路由器(保持Alfresco运行)
docker compose --profile langgraph down
docker compose --profile llamaindex up --build

示例提示(复制/粘贴)

[DOCS]

> 我需要在Alfresco中搜索文档。你能搜索以下内容吗:
 * 包含“预算”的文档
 * 最多5个结果

[AUDIT]

> 列出Alfresco审计应用程序
> 列出审计应用程序“搜索”的审计条目

提示:

  • 如果你的路由器是LangGraph,路由是基于规则的——日志/保留/合规 > 审计;搜索/元数据/转换 > 文档
  • 如果是LlamaIndexcagent,确保已配置模型(例如,OpenAI/Anthropic/Gemini或通过Docker模型运行器配置的本地模型)

实验流程(推荐)

  1. 启动Alfresco + MCP(等待健康状态)
  2. 首先启动LangGraph(无需密钥),并运行上述提示
  3. 停止LangGraph,启动LlamaIndex;重复提示并观察路由/答案的不同
  4. 停止LlamaIndex,按照使用Docker新"cagent"即时构建Alfresco的AI代理中的步骤操作

许可证

此仓库根据Apache 2.0许可证提供(参见LICENSE)。 上游组件保留各自的许可证。