🌐 README 翻译
Français • 日本語 • 한국어 • 中文 • Español • Italiano • Nederlands • Deutsch • Polski • Türkçe • Українська • Ελληνικά • Русский • العربية
AgentDock: 用 AI Agent 构建无限可能
AgentDock 是一个用于构建复杂 AI Agent 的框架,这些 Agent 通过可配置的确定性来完成复杂任务。它由两个主要组件构成:
-
AgentDock Core:一个开源的、后端优先的框架,用于构建和部署 AI Agent。它被设计为框架无关和提供商无关,让您完全控制 Agent 的实现。
-
开源客户端:一个完整的 Next.js 应用程序,作为 AgentDock Core 框架的参考实现和消费者。您可以在 https://hub.agentdock.ai 看到它的实际运行情况。
AgentDock 使用 TypeScript 构建,强调简单性、可扩展性和可配置的确定性,使其成为构建可靠且可预测的 AI 系统的理想选择,这些系统可以在最少的监督下运行。
🧠 设计原则
AgentDock 建立在以下核心原则之上:
- 简单优先:创建功能性 Agent 所需的最少代码
- 基于节点的架构:所有功能都实现为节点
- 作为专用节点的工具:工具扩展了节点系统以实现 Agent 功能
- 可配置的确定性:控制 Agent 行为的可预测性
- 类型安全:贯穿始终的全面 TypeScript 类型
可配置的确定性
可配置的确定性是 AgentDock 设计理念的基石,使您能够在创造性的 AI 能力和可预测的系统行为之间取得平衡:
- 由于 LLM 每次可能生成不同的响应,AgentNode 本质上是非确定性的
- 可以通过定义的工具执行路径使工作流更具确定性
- 开发人员可以通过配置系统的哪些部分使用 LLM 推理来控制确定性的级别
- 即使有 LLM 组件,通过结构化的工具交互,整个系统的行为仍然可预测
- 这种平衡的方法使您的 AI 应用程序兼具创造性和可靠性
确定性工作流
AgentDock 完全支持您在典型工作流构建器中熟悉的确定性工作流。无论是否有 LLM 推理,您期望的所有可预测执行路径和可靠结果都可用:
非确定性 Agent 行为
使用 AgentDock,当您需要更高的适应性时,也可以利用带有 LLM 的 AgentNode。创造性的输出可能会根据您的需求而变化,同时保持结构化的交互模式:
具有确定性子工作流的非确定性 Agent
AgentDock 通过将非确定性 Agent 智能与确定性工作流执行相结合,为您提供了两全其美的方案:
这种方法使得复杂的多步骤工作流(可能涉及在工具内或作为连接的节点序列实现的数百个确定性步骤)能够由智能 Agent 决策调用。尽管由非确定性 Agent 推理触发,每个工作流仍能可预测地执行。
对于更高级的 AI Agent 工作流和多阶段处理流水线,我们正在构建 AgentDock Pro - 一个用于创建、可视化和运行复杂 Agent 系统的强大平台。
关于可配置确定性的简而言之
把它想象成开车。有时您需要 AI 的创造力(比如在城市街道中导航 - 非确定性),有时您需要可靠的、按部就班的流程(比如遵循高速公路标志 - 确定性)。AgentDock 让您能够构建同时兼顾两方面优势的系统,为任务的每个部分选择正确的方法。您既能获得 AI 的智能,又能在需要时获得可预测的结果。
🏗️ 核心架构
该框架围绕一个强大的、模块化的基于节点的系统构建,作为所有 Agent 功能的基础。该架构使用不同的节点类型作为构建块:
-
BaseNode
:为所有节点建立核心接口和功能的基本类。 -
AgentNode
:协调 LLM 交互、工具使用和 Agent 逻辑的专用核心节点。 - 工具和自定义节点:开发人员将 Agent 功能和自定义逻辑实现为扩展
BaseNode
的节点。
这些节点通过托管注册表进行交互,并且可以连接(利用核心架构的端口和潜在的消息总线)以实现复杂、可配置且可能具有确定性的 Agent 行为和工作流。
有关节点系统的组件和功能的详细说明,请参阅节点系统文档。
🚀 开始使用
有关全面的指南,请参阅开始使用指南。
要求
- Node.js ≥ 20.11.0 (LTS)
- pnpm ≥ 9.15.0 (必需)
- LLM 提供商(Anthropic、OpenAI 等)的 API 密钥
安装
-
克隆存储库:
git clone https://github.com/AgentDock/AgentDock.git cd AgentDock
-
安装 pnpm:
corepack enable corepack prepare pnpm@latest --activate
-
安装依赖项:
pnpm install
进行干净的重新安装(当您需要从头开始重新构建时):
pnpm run clean-install
此脚本会删除所有 node_modules、锁定文件,并正确重新安装依赖项。
-
配置环境:
根据提供的
.env.example
文件创建一个环境文件(.env
或.env.local
):# 选项 1:创建 .env.local cp .env.example .env.local # 选项 2:创建 .env cp .env.example .env
然后将您的 API 密钥添加到环境文件中。
-
启动开发服务器:
pnpm dev
高级功能
功能 | 描述 | 文档 |
---|---|---|
会话管理 | 对话的隔离、高性能状态管理 | 会话文档 |
编排框架 | 根据上下文控制 Agent 行为和工具可用性 | 编排文档 |
存储抽象 | 灵活的存储系统,为 KV、Vector 和 Secure 存储提供可插拔的提供商 | 存储文档 |
存储系统目前正在通过键值存储(Memory、Redis、Vercel KV 提供商)和安全的客户端存储进行演进,而向量存储和其他后端正在开发中。
📕 文档
AgentDock 框架的文档可在 hub.agentdock.ai/docs 和此存储库的 /docs/
文件夹中找到。文档包括:
- 开始使用指南
- API 参考
- 节点创建教程
- 集成示例
📂 存储库结构
此存储库包含:
- AgentDock Core:位于
agentdock-core/
中的核心框架 - 开源客户端:使用 Next.js 构建的完整参考实现,作为 AgentDock Core 框架的消费者。
- 示例 Agent:
agents/
目录中即用型 Agent 配置
您可以在自己的应用程序中独立使用 AgentDock Core,或将此存储库用作构建自己的 Agent 驱动应用程序的起点。
📝 Agent 模板
AgentDock 包含几个预配置的 Agent 模板。在 agents/
目录中浏览它们,或阅读Agent 模板文档了解配置详细信息。
🔧 示例实现
示例实现展示了专门的用例和高级功能:
实现 | 描述 | 状态 |
---|---|---|
编排的 Agent | 使用编排根据上下文调整行为的示例 Agent | 可用 |
认知推理器 | 使用结构化推理和认知工具解决复杂问题 | 可用 |
Agent 规划器 | 用于设计和实现其他 AI Agent 的专用 Agent | 可用 |
代码演练场 | 具有丰富可视化功能的沙盒化代码生成和执行 | 计划中 |
通用 AI Agent | 可以使用浏览器并执行复杂任务的类似 Manus 的 Agent | 计划中 |
🔐 环境配置详细信息
AgentDock 开源客户端需要 LLM 提供商的 API 密钥才能运行。这些密钥在您根据提供的 .env.example
文件创建的环境文件(.env
或 .env.local
)中配置。
LLM 提供商 API 密钥
添加您的 LLM 提供商 API 密钥(至少需要一个):
# LLM 提供商 API 密钥 - 至少需要一个
ANTHROPIC_API_KEY=sk-ant-xxxxxxx # Anthropic API 密钥
OPENAI_API_KEY=sk-xxxxxxx # OpenAI API 密钥
GEMINI_API_KEY=xxxxxxx # Google Gemini API 密钥
DEEPSEEK_API_KEY=xxxxxxx # DeepSeek API 密钥
GROQ_API_KEY=xxxxxxx # Groq API 密钥
API 密钥解析
AgentDock 开源客户端在解析要使用的 API 密钥时遵循优先级顺序:
- 每个 Agent 的自定义 API 密钥(通过 UI 中的 Agent 设置进行设置)
- 全局设置 API 密钥(通过 UI 中的设置页面进行设置)
- 环境变量(来自 .env.local 或部署平台)
工具特定的 API 密钥
某些工具还需要自己的 API 密钥:
# 工具特定的 API 密钥
SERPER_API_KEY= # 搜索功能所需
FIRECRAWL_API_KEY= # 更深入的网络搜索所需
有关环境配置的更多详细信息,请参阅 src/types/env.ts
中的实现。
使用您自己的 API 密钥 (BYOK) 模型
AgentDock 遵循 BYOK (Bring Your Own Key / 自带密钥) 模型:
- 在应用程序的设置页面中添加您的 API 密钥
- 或者,通过请求头提供密钥以直接使用 API
- 密钥使用内置的加密系统安全存储
- 不会在我们的服务器上共享或存储任何 API 密钥
📦 包管理器
此项目需要使用 pnpm
进行一致的依赖项管理。不支持 npm
和 yarn
。
💡 您可以构建什么
-
AI 驱动的应用程序
- 带有任何前端的自定义聊天机器人
- 命令行 AI 助手
- 自动化数据处理流水线
- 后端服务集成
-
集成能力
- 任何 AI 提供商(OpenAI、Anthropic 等)
- 任何前端框架
- 任何后端服务
- 自定义数据源和 API
-
自动化系统
- 自动化数据处理工作流
- 文档分析流水线
- 自动化报告系统
- 任务自动化 Agent
主要特性
特性 | 描述 |
---|---|
🔌 框架无关 (Node.js 后端) | 核心库与 Node.js 后端堆栈集成。 |
🧩 模块化设计 | 从简单的节点构建复杂的系统 |
🛠️ 可扩展 | 为任何功能创建自定义节点 |
🔒 安全 | 用于 API 密钥和数据的内置安全功能 |
🔑 BYOK | 使用您自己的 API 密钥用于 LLM 提供商 |
📦 自包含 | 核心框架依赖性极小 |
⚙️ 多步骤连续工具调用 | 支持复杂的推理链 |
📊 结构化日志记录 | 深入了解 Agent 执行情况 |
🛡️ 强大的错误处理 | 可预测的行为和简化的调试 |
📝 TypeScript 优先 | 类型安全和增强的开发人员体验 |
🌐 开源客户端 | 包含完整的 Next.js 参考实现 |
🔄 编排 | 基于上下文的 Agent 行为动态控制 |
💾 会话管理 | 并发对话的隔离状态 |
🎮 可配置的确定性 | 通过节点逻辑/工作流平衡 AI 创造力和可预测性。 |
🧰 组件
AgentDock 的模块化架构建立在以下关键组件之上:
- BaseNode:系统中所有节点的基础
- AgentNode:Agent 功能的主要抽象
- 工具和自定义节点:作为节点实现的可调用功能和自定义逻辑。
- 节点注册表:管理所有节点类型的注册和检索
- 工具注册表:管理 Agent 的工具可用性
- CoreLLM:与 LLM 提供商交互的统一接口
- 提供商注册表:管理 LLM 提供商配置
- 错误处理:处理错误并确保可预测行为的系统
- 日志记录:用于监控和调试的结构化日志记录系统
- 编排:根据对话上下文控制工具可用性和行为
- 会话:管理并发对话之间的状态隔离
有关这些组件的详细技术文档,请参阅架构概述。
🗺️ 路线图
以下是 AgentDock 的开发路线图。此处列出的大多数改进都与核心 AgentDock 框架(agentdock-core
)有关,该框架目前在本地开发,并在达到稳定版本后将作为版本化的 NPM 包发布。一些路线图项目也可能涉及对开源客户端实现的增强。
特性 | 描述 | 类别 |
---|---|---|
存储抽象层 | 具有可插拔提供商的灵活存储系统 | 进行中 |
高级内存系统 | 长期上下文管理 | 进行中 |
向量存储集成 | 用于文档和内存的基于嵌入的检索 | 进行中 |
AI Agent 评估 | 全面的测试和评估框架 | 进行中 |
平台集成 | 支持 Telegram、WhatsApp 和其他消息传递平台 | 计划中 |
多 Agent 协作 | 使 Agent 能够协同工作 | 计划中 |
模型上下文协议 (MCP) 集成 | 支持通过 MCP 发现和使用外部工具 | 计划中 |
语音 AI Agent | 通过 AgentNode 使用语音接口和电话号码的 AI Agent | 计划中 |
遥测与可追溯性 | 高级日志记录和性能跟踪 | 计划中 |
Workflow Runtime & Node 类型 | 核心 runtime、节点类型和复杂自动化编排逻辑 | 计划中 |
AgentDock Pro | 用于扩展 AI Agent 和工作流的全面企业云平台 | 云平台 |
自然语言 AI Agent 构建器 | 可视化构建器 + 自然语言 Agent 和工作流构建 | 云 |
Agent 市场 | 可货币化的 Agent 模板 | 云 |
👥 贡献
我们欢迎对 AgentDock 的贡献!请参阅 CONTRIBUTING.md 了解详细的贡献指南。
📜 许可证
AgentDock 根据 MIT 许可证 发布。
✨ 无限创造,从这里开始!
AgentDock 为您构建几乎任何可以想象的 AI 驱动应用程序或自动化提供了基础。我们鼓励您探索该框架,构建创新的 Agent,并回馈社区。让我们一起构建 AI 交互的未来!