项目简介

Embabel Agent Framework 是一个基于JVM的框架,旨在简化智能代理的开发。它允许开发者在Java或Kotlin中定义代理的行为、目标和所需的工具,框架负责利用规划算法(如GOAP)动态决定实现目标的步骤,并与大型语言模型(LLM)及外部工具(Tool)进行交互。该框架设计灵活,支持多种运行模式,并且可以配置为遵从Model Context Protocol (MCP),对外提供代理服务。

主要功能点

  • 构建智能代理:允许开发者使用注解或DSL在Java/Kotlin中定义Agent、Action、Goal等核心概念。
  • 动态规划:框架内置规划能力,能够根据当前状态和目标动态生成行动序列,而非简单的固定流程。
  • 集成工具:支持代理调用外部工具(如Web搜索、数据库查询等)来获取信息或执行任务。
  • 混合编程范式:无缝结合传统的编程逻辑与基于LLM的提示词交互。
  • 作为MCP服务器:可配置后,对外暴露MCP兼容接口,允许遵循MCP协议的LLM客户端调用框架内定义的代理能力。
  • 灵活的LLM支持:易于配置和切换不同的LLM提供商(如OpenAI, Anthropic, 本地模型等)。

安装步骤

  1. 获取代码: 从GitHub克隆 Embabel Agent Framework 仓库。
  2. 环境准备:
    • 需要安装JDK(推荐最新版本)。
    • 安装Maven构建工具。
    • 根据需要使用的LLM服务,设置相应的API Key环境变量(如'OPENAI_API_KEY', 'ANTHROPIC_API_KEY')。
    • 如果需要使用框架集成的Docker MCP工具(如Web搜索),请确保Docker Desktop已安装,并且Docker MCP扩展已启用,并从Docker MCP Catalog中激活所需工具。
  3. 构建项目: 使用Maven构建整个项目。

服务器配置(供MCP客户端参考)

当Embabel Agent Framework作为MCP服务器运行时,一个外部的MCP客户端需要知道如何连接到它。典型的MCP客户端配置通常是JSON格式,包含服务器的名称、启动命令或网络地址等信息。

  • 服务器名称: 根据仓库信息,服务器的名称通常配置为 '"embabel"'。
  • 连接方式: 连接方式取决于服务器的启动方式和配置。仓库的README提到它主要使用SSE(Server-Sent Events),但可以通过socat等工具桥接支持Stdio。
    • 对于需要通过Stdio连接的客户端(如Claude Desktop),你通常需要配置一个启动服务器进程并与其Stdio进行交互的命令。这可能需要额外的包装脚本(如README中提到的socat示例)来处理协议桥接或端口转发。
    • 对于支持SSE或WebSocket的客户端,你可能需要配置服务器的网络地址(IP地址和端口)以及相应的协议。

确切的连接配置(如命令行参数或网络地址)取决于你如何部署和启动Embabel Agent Framework实例,这部分配置信息不会直接在客户端配置JSON中硬编码为代码,而是作为运行服务器所需的环境和启动参数提供给客户端。

基本使用方法

当Embabel Agent Framework作为MCP服务器运行并监听连接后,遵循MCP协议的LLM客户端可以向其发送JSON-RPC请求。这些请求可以调用框架中暴露的功能,例如:

  • 请求执行框架中定义的某个Agent或Action。
  • 请求框架利用LLM生成文本或结构化数据(如果这些功能通过MCP暴露)。
  • 请求框架利用配置的工具执行操作。

客户端发送请求,服务器处理请求后返回JSON-RPC响应。LLM应用开发者需要在客户端配置中指定连接到这个Embabel服务器,然后就可以在其LLM交互中引用服务器提供的能力(例如,在提示词中引用工具)。

信息

分类

AI与计算