什么是 DigitalFate?
DigitalFate 提供了一个先进的企业级框架,用于以经济高效的方式协调 LLM 调用、代理和基于计算机的任务。它提供可靠的系统、可扩展性和面向任务的架构,能够有效地处理实际应用。
主要特点:
- 可扩展用于生产:轻松在 AWS、GCP 或通过 Docker 本地部署。
- 以任务为中心的架构:执行不同复杂程度的任务:
- 通过 LLM 调用完成简单任务。
- 使用 V1 代理的中级任务。
- 通过 V2 代理和 MCP 集成实现高级自动化。
- MCP 服务器兼容性:利用多客户端处理实现高性能操作。
- 安全工具调用服务器:通过强大的 API 交互来管理工具。
- 计算机使用集成:利用 Anthropic 的“计算机使用”功能执行类似人类的任务。
- 轻松的工具集成:使用一行代码添加自定义或 MCP 工具。
- 客户端-服务器架构:专为生产而设计的无状态、企业级系统。
🛠️ 入门
先决条件
- Python 3.10 或更高版本
- OpenAI 或 Anthropic API 密钥(支持 Azure 和 Bedrock)
安装
基本示例
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 而不是部署代理来优化成本和延迟。
记忆系统
通过利用 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
特此授予获得此软件和相关文档文件(“软件”)副本的任何人免费许可,以无限制方式处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再授权和/或销售软件副本的权利,并允许向其提供软件的人员这样做,但须遵守以下条件:
上述版权声明和本许可声明均应包含在软件的所有副本或实质性部分中。
本软件按“原样”提供,不附带任何形式的明示或暗示保证,包括但不限于适销性、适用于特定用途和非侵权性的保证。在任何情况下,作者或版权所有者均不对因本软件或使用或以其他方式处理本软件而引起的或与之相关的任何索赔、损害或其他责任承担责任,无论是合同、侵权或其他诉讼。