DigitalFate多客户端处理器
在 DigitalFate 框架内促进多客户端处理,以实现高性能操作,并通过任务编排和代理集成启用高级自动化。
服务介绍
什么是 DigitalFate?
DigitalFate 提供了一个先进的、适用于企业的框架,用于高效地协调 LLM 调用、代理和基于计算机的任务。它提供了可靠的系统、可扩展性以及面向任务的架构,以有效处理实际应用。
主要特性:
- 生产级可扩展性:轻松部署在 AWS、GCP 或通过 Docker 本地部署。
- 面向任务的架构:执行不同复杂度级别的任务:
- 通过 LLM 调用执行简单任务。
- 使用 V1 代理执行中级任务。
- 通过 V2 代理和 MCP 集成实现高级自动化。
- MCP 服务器兼容性:利用多客户端处理实现高性能操作。
- 安全的工具调用服务器:通过强大的 API 交互管理工具。
- 计算机使用集成:利用 Anthropic 的“Computer Use”功能执行类似人类的任务。
- 易于工具集成:通过一行代码添加自定义或 MCP 工具。
- 客户端-服务器架构:设计为无状态的、适用于生产的系统。
🛠️ 入门指南
前提条件
- Python 3.10 或更新版本
- OpenAI 或 Anthropic API 密钥(支持 Azure 和 Bedrock)
安装
pip install digitalfate
基本示例
from digitalfate import digitalfateClient, ObjectResponse, Task, AgentConfiguration
from digitalfate.client.tools import Search
# Initialize Client and Configure
client = digitalfateClient("localserver")
client.set_config("OPENAI_API_KEY", "YOUR_API_KEY")
# Define Task and Agent
task1 = Task(description="Research latest news in Anthropic and OpenAI", tools=[Search])
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",
)
# Execute Task with Agent
client.agent(product_manager_agent, task1)
result = task1.response
print(result)
高级示例
from digitalfate import digitalfateClient, ObjectResponse, Task, AgentConfiguration
from digitalfate.client.tools import Search
# Create a DigitalFate client instance
client = digitalfateClient("localserver")
client.set_config("OPENAI_API_KEY", "YOUR_API_KEY")
client.default_llm_model = "openai/gpt-4o"
# DeepSeek Chat
client.set_config("DEEPSEEK_API_KEY", "YOUR_DEEPSEEK_API_KEY")
client.default_llm_model = "deepseek/deepseek-chat"
# Claude-3.5-Sonnet
client.set_config("ANTHROPIC_API_KEY", "YOUR_ANTHROPIC_API_KEY")
client.default_llm_model = "claude/claude-3-5-sonnet"
# GPT 4o on Azure
client.set_config("ANTHROPIC_API_KEY", "YOUR_ANTHROPIC_API_KEY")
client.default_llm_model = "claude/claude-3-5-sonnet"
# Claude 3.5 Sonnet on AWS
client.set_config("AWS_ACCESS_KEY_ID", "YOUR_AWS_ACCESS_KEY_ID")
client.set_config("AWS_SECRET_ACCESS_KEY", "YOUR_AWS_SECRET_ACCESS_KEY")
client.set_config("AWS_REGION", "YOUR_AWS_REGION")
client.default_llm_model = "bedrock/claude-3-5-sonnet"
任务定义
任务由其描述定义。高层次的任务会自动分解成可管理的子任务。例如,“研究 Anthropic 和 OpenAI 的最新新闻”这个任务可能会产生以下子任务:
“在 Google 上搜索 Anthropic 和 OpenAI 的新闻。”
“阅读相关博客。”
“查看官方公告。”
定义任务描述
description = "Research latest news in Anthropic and OpenAI"
任务执行
结合代理和任务,然后使用 DigitalFate 服务器运行它们。这种方法简化了 SaaS 应用程序或垂直 AI 系统中的任务执行。
client.agent(product_manager_agent, task1)
result = task1.response
for item in result.news_list:
print("\nNews")
print("Title: ", item.title)
print("Body: ", item.body)
print("URL: ", item.url)
print("Tags: ", item.tags)
附加功能(测试版)
单个 LLM 调用
通过决定何时直接调用 LLM 而不是部署代理来优化成本和延迟。
client.call(task1)
记忆系统
通过在 AgentConfiguration 中利用记忆设置,启用个性化、上下文感知的交互。
product_manager_agent = AgentConfiguration(
agent_id="product_manager_agent",
memory=True,
)
知识库
通过私人或公开内容(如 PDF 或 URL)为代理提供上下文。
from digitalfate import KnowledgeBase
kb = KnowledgeBase(files=["sample.pdf", "https://digitalfate.ai"])
task1 = Task(context=[kb])
任务链
通过将一个任务的输出作为另一个任务的输入,链接任务。
task2 = Task(context=[task1])
多代理协作
分配任务给多个代理以进行协作解决问题。
client.multi_agent([agent1, agent2], [task1, task2])
类人代理
为需要个人互动的任务配置具有名称和联系信息的代理。
product_manager_agent = AgentConfiguration(
name="John Walk",
contact="john@digitalfate.ai",
)
计算机使用
执行需要类似人类互动的任务,如鼠标移动和点击。
from digitalfate.client.tools import ComputerUse
tools = [ComputerUse]
反馈机制
通过验证结果并提供改进建议,确保高质量的输出。
product_manager_agent = AgentConfiguration(
reflection=True,
)
上下文压缩
通过自动压缩系统消息和输入来处理上下文溢出的情况。
product_manager_agent = AgentConfiguration(
compress_context=True,
)
遥测
通过设置环境变量来禁用匿名遥测。
import os
os.environ["digitalfate_TELEMETRY"] = "False"
许可证
DigitalFate 采用 MIT 许可证。请参阅以下完整的许可证文本:
MIT 许可证
版权所有 (c) 2025 DigitalFate
特此授予任何人免费获得本软件及其相关文档文件(“软件”)副本的权利,不受限制地使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许向其提供软件的人这样做,但须遵守以下条件:
上述版权声明和此许可声明必须包含在软件的所有副本或重要部分中。
本软件按“原样”提供,不附带任何明示或暗示的担保,包括但不限于适销性、特定用途适用性和非侵权性的担保。在任何情况下,作者或版权持有人都不对因使用本软件或无法使用本软件而引起的任何索赔、损害或其他责任负责,无论是在合同诉讼、侵权行为还是其他诉讼中。