项目简介
DigitalFate 是一个为企业应用设计的高级框架,旨在高效地编排大型语言模型(LLM)的调用、智能代理以及计算机任务。它提供了一个可靠、可扩展的任务导向架构,能够有效处理现实世界的复杂应用场景。通过集成 Model Context Protocol (MCP),DigitalFate 能够作为 MCP 服务器,为 LLM 客户端提供上下文信息和工具调用能力。
主要功能点
- 生产级可扩展性: 轻松部署在 AWS、GCP 或本地 Docker 环境中,支持高负载生产环境。
- 任务聚焦架构: 支持从简单到复杂的任务执行,包括:
- 通过 LLM 直接调用执行简单任务。
- 使用 V1 代理执行中级任务。
- 通过 V2 代理和 MCP 集成实现高级自动化任务。
- MCP 服务器兼容性: 作为 MCP 服务器,支持多客户端处理,提供高性能操作。
- 安全的工具调用服务: 提供安全的 API 交互,有效管理和调用各种工具。
- 计算机操作集成: 利用 Anthropic 的 ‘Computer Use’ 功能,执行模拟人类计算机操作的任务。
- 简易的工具集成: 只需一行代码即可添加自定义工具或 MCP 工具。
- 客户端-服务器架构: 采用无状态的客户端-服务器架构,专为企业级生产环境设计。
安装步骤
-
环境准备: 确保已安装 Python 3.10 或更高版本,并拥有 OpenAI 或 Anthropic API 密钥(支持 Azure 和 Bedrock)。
-
安装 DigitalFate 库:
pip install digitalfate
服务器配置 (MCP 客户端)
对于 MCP 客户端,您需要配置连接到 DigitalFate MCP 服务器的信息。以下是一个典型的 JSON 格式配置示例,用于连接到本地运行的 DigitalFate 服务器:
{ "serverName": "DigitalFateServer", "protocol": "stdio", "command": "python", "args": ["-m", "DigitalFate.server.run_main_server_internal"] }
配置参数说明:
- 'serverName': 服务器名称,您可以自定义,用于在客户端标识该服务器连接。
- 'protocol': 连接协议,DigitalFate MCP 服务器默认支持 'stdio' 协议。
- 'command': 启动 DigitalFate MCP 服务器的命令。这里假设您已安装 DigitalFate 库,并使用 Python 解释器来运行服务器。
- 'args': 启动命令的参数列表。'-m DigitalFate.server.run_main_server_internal' 参数指定运行 'DigitalFate.server' 模块下的 'run_main_server_internal' 函数,该函数负责启动主 MCP 服务器。
注意:
- 上述配置适用于 MCP 客户端需要连接到 主 DigitalFate 服务器 的场景。如果 MCP 客户端需要连接到 工具服务器,您需要将 'args' 修改为 '["-m", "DigitalFate.tools_server.run_tools_server_internal"]',并将 'command' 保持为 '"python"'。
- 确保您的 MCP 客户端能够执行 'command' 中指定的命令,并且 Python 环境中已安装 'digitalfate' 库。
- 实际使用时,请根据您的 DigitalFate 服务器部署方式和网络环境进行适当调整。例如,如果服务器部署在远程主机上,您可能需要使用 WebSocket 或其他网络协议,并相应地修改配置。
基本使用方法
以下是一个使用 DigitalFate 客户端调用 Agent 执行任务的 Python 代码示例:
from digitalfate import digitalfateClient, ObjectResponse, Task, AgentConfiguration from digitalfate.client.tools import Search # 初始化 DigitalFate 客户端,连接到本地服务器 client = digitalfateClient("localserver") # 或者连接到指定 URL 的服务器,例如: client = digitalfateClient("http://your-server-address:7541") # 设置 OpenAI API 密钥 (如果使用 OpenAI 模型) client.set_config("OPENAI_API_KEY", "YOUR_API_KEY") # 定义任务,描述任务内容和所需工具 task1 = Task(description="Research latest news in Anthropic and OpenAI", tools=[Search]) # 配置 Agent,定义 Agent 的角色和目标 product_manager_agent = AgentConfiguration( job_title="Product Manager", company_url="https://digitalfate.ai", company_objective="To build an AI agent framework that helps people accomplish tasks", ) # 使用 Agent 执行任务 client.agent(product_manager_agent, task1) # 获取任务结果 result = task1.response print(result)
这段代码展示了如何使用 DigitalFate 客户端连接到服务器,配置 API 密钥,定义任务和 Agent,并执行任务以获取结果。您可以参考 README.md 文件中的更多示例和高级功能,例如单次 LLM 调用、内存系统、知识库、任务链、多 Agent 协作、计算机操作等。
信息
分类
AI与计算