项目简介

Ash AI 是一个基于 Elixir Ash 框架实现的 Model Context Protocol (MCP) 服务器。它旨在以结构化和标准化的方式,将您的 Elixir 应用程序的核心能力(如数据操作、业务逻辑)暴露给大型语言模型 (LLM) 客户端,使得 LLM 能够与您的应用进行深度交互,执行任务并获取实时信息。

主要功能点

  • MCP 服务器实现: 提供符合 MCP 协议规范的服务器端实现,支持开发和生产环境的接入。
  • 工具暴露与调用: 允许您将 Ash 框架中定义的各种 Actions (创建、读取、更新、删除等) 注册为可供 LLM 客户端发现和调用的工具。
  • LLM 支持的 Actions: 支持定义 Prompt-backed Actions,其具体实现逻辑由 LLM 根据提供的 Prompt 来完成,方便集成 AI 能力。
  • 向量化与搜索: 深度集成 AshPostgres 的向量功能,支持对应用数据进行向量化,并提供向量搜索能力,为构建检索增强生成 (RAG) 应用提供基础。
  • 协议支持: 支持多种传输协议(如 WebSocket, SSE),便于与各种 MCP 客户端集成。
  • 认证集成: 支持通过 AshAuthentication 集成认证流程,保护您的 MCP 服务。

安装步骤

Ash AI 通常作为您现有或新的 Elixir/Phoenix 项目的一部分进行安装。

  1. 如果您使用 'igniter' 创建新项目,可以在创建时直接安装:
    mix igniter.new my_app \
      ... \
      --install ash_ai@github:ash-project/ash_ai
  2. 如果您向现有项目添加 Ash AI,请将 ':ash_ai' 作为依赖添加到您的 'mix.exs' 文件中,并运行 'mix deps.get'。
  3. 运行 Mix 任务进行初始化设置:
    mix ash_ai.gen.mcp
    此任务将生成必要的模块和配置,帮助您集成 MCP 服务器。
  4. 根据需要配置 Ash AI 的 Plug (例如 'AshAi.Mcp.Router' 或 'AshAi.Mcp.Dev') 到您的 Phoenix 应用程序路由中,通常在 '/mcp' 路径下。

服务器配置 (供MCP客户端使用)

MCP 客户端需要配置如何连接到 Ash AI MCP 服务器。典型的 MCP 配置会包含服务器的名称、启动命令 (command) 和参数 (args),特别是对于使用 Stdio 等协议的客户端。

对于 Ash AI,它通常作为一个 Elixir/Phoenix 应用程序的一部分运行。服务器通过 HTTP 协议(如 WebSocket 或 SSE)在您配置的路径(例如 '/mcp')上提供服务。

  • 对于基于命令启动的客户端 (如使用 Stdio 协议):客户端需要配置用于启动您的 Elixir 应用程序的命令 (例如 'mix run --no-halt')。具体的命令和参数可能取决于您的项目设置和所需的传输协议模式。您可能需要查阅 Ash AI 的详细文档或检查 'mix ash_ai.gen.mcp' 生成的代码以获取精确的命令参数。
  • 对于基于 URL 连接的客户端 (如使用 WebSocket/SSE 协议):客户端需要配置服务器的 URL 地址和 MCP 路径(例如 'ws://localhost:4000/mcp'),而不是启动命令。

请根据您使用的 MCP 客户端类型和所需的传输协议,参考 Ash AI 文档进行准确的连接配置。

基本使用方法

  1. 暴露 Ash Actions 为工具: 在您的 Ash Resource 或 Domain 定义中使用 'tools' 块,将特定的 Actions 注册为工具。
    defmodule MyApp.Blog do
      use Ash.Domain, extensions: [AshAi]
    
      tools do
        tool :read_posts, MyApp.Blog.Post, :read
        # ... 其他工具定义
      end
    end
  2. 定义 Prompt-backed Actions: 在您的 Ash Resource Actions 定义中,使用 'run prompt(...)' 来定义由 LLM 实现的 Action。
  3. 集成向量化: 在 Ash Resource 中配置 'vectorize' 块,定义需要向量化的文本内容和策略,并指定Embedding模型。

完成配置和定义后,启动您的 Elixir 应用程序。配置好的 MCP 客户端即可连接并发现、调用您暴露的工具和功能。

信息

分类

AI与计算