AgentDock
构建具有可配置确定性的 AI Agent 框架,兼具创造力与可靠性。
- Star 数
- ★ 1.8k
- 最近更新
- 3 个月前
- License
- MIT
- 主语言
- MDX
- FA 评分
- 32/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台OpenAI API · Claude API
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 开发人员使用 TypeScript 构建自定义 AI Agent,并希望通过可选择的确定性和多步骤工具调用来平衡可预测性与创造力。
- 不适合
- 需要稳定 API 的生产团队:项目处于 Beta,核心包尚未发布为稳定 NPM 包
- 希望开箱即用的用户:需手动配置多个 LLM 与工具 API 密钥
- 需要向量存储或长期记忆的场景:相关功能仍在开发中
这个 Agent 能做什么,适合哪些场景?
AgentDock 是一个用于构建复杂 AI Agent 的开源框架,强调可配置的确定性,即平衡 LLM 的创造性与系统行为的可预测性。它由两部分组成:AgentDock Core(一个后端优先的框架,用于构建和部署 AI Agent)和开源客户端(一个完整的 Next.js 参考实现,部署于 hub.agentdock.ai)。框架采用基于节点的架构,核心组件包括 BaseNode、AgentNode 以及作为节点实现工具和自定义逻辑。它提供可配置的确定性工作流,支持多步骤工具调用、会话管理、编排框架和评估框架。框架无关,支持多种 LLM 提供商,并在 MIT 许可下发布。
AgentDock 提供了一组可组合的节点(如 AgentNode、BaseNode)来构建 AI Agent,并通过节点注册表和工具注册表管理节点和工具。AgentNode 编排 LLM 交互、工具使用和 Agent 逻辑,支持多步骤工具调用链。框架支持确定性工作流(由连接节点的执行路径定义)和非确定性 Agent 行为(由 LLM 推理驱动),允许开发者在相同系统中结合两者。它包含会话管理(隔离并发对话的状态)、编排(基于上下文动态控制工具可用性)和评估框架(用于衡量和提升 Agent 质量)。开源客户端(Next.js 应用)提供一个消费这些能力的参考实现,支持通过环境变量或 UI 配置多个 LLM 提供商(如 Anthropic、OpenAI、Gemini、DeepSeek、Groq)。
- 开发人员使用 TypeScript 构建自定义 AI Agent,并希望通过可选择的确定性和多步骤工具调用来平衡可预测性与创造力。
- 团队通过从模板(如医疗诊断、认知推理、历史教育或卡路里视觉 Agent)开始,快速原型化由 AI 驱动的应用程序。
- 希望将 AI 集成到现有 Node.js 后端,同时控制提供商依赖(BYOK)并利用会话管理和编排功能的架构师。
- 需要评估框架来系统测量 Agent 性能与其预期行为的一致性的质量保证工程师。
- 构建自动化数据流水线或文档分析系统的开发者,利用确定性工作流与 LLM 组件结合。
如何安装或部署这个 Agent?
克隆仓库:git clone https://github.com/AgentDock/AgentDock.git
启用并准备 pnpm:corepack enable && corepack prepare pnpm@latest --activate
安装依赖:pnpm install
复制环境文件:cp .env.example .env.local
添加 LLM 提供商 API 密钥(至少一个,例如 ANTHROPIC_API_KEY、OPENAI_API_KEY)和工具特定密钥(如 SERPER_API_KEY、FIRECRAWL_API_KEY)。
如何使用这个 Agent?
启动开发服务器:pnpm dev
在 UI 中或通过环境变量配置 API 密钥(BYOK 模型)。
探索 agents/ 目录中的示例 Agent 模板,选择或创建一个适合您需求的模板。
参考 docs/ 目录中的文档和 hub.agentdock.ai/docs 上的文档,了解如何创建自定义节点和使用框架。
这个 Agent 有哪些优点和局限?
- 可配置的确定性:允许开发者在同一系统中结合非确定性 LLM 推理与确定性工作流,提供可预测的结果。
- 框架无关:支持多种 LLM 提供商(Anthropic、OpenAI、Gemini 等),减少供应商锁定。
- 模块化节点架构:通过扩展 BaseNode 构建自定义节点和工具,实现高度可扩展性。
- 内置高级特性:会话管理、编排和评估框架为生产级 Agent 提供支持。
- 处于 Beta 阶段:项目状态为 Beta,核心包尚未作为稳定的 NPM 包发布,可能存在 API 变更。
- 初始设置复杂:需要 Node.js ≥20.11.0 和 pnpm,并要求手动配置多个 API 密钥。
- 文档分散:文档分布在仓库和外部站点,可能不利于快速入门。
- 功能不完整:存储抽象层和向量集成等功能仍在开发中,可能限制高级用例。
这个 Agent 与同类方案有什么区别?
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| AgentDock 当前 | 32 · 缺口较多 | 开发框架免费 + 模型费 | ★ 1.8k | 3 个月前 | MDX | OpenAI API · Claude API |
| Pi Web 本地网页控制台 | 53 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 7.5k | 今天 | TypeScript | — |
| MiniCode | 50 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 1.1k | 10 天前 | TypeScript | Claude API |
| Open Multi-Agent Canvas | 43 · 缺口较多 | 网页应用免费 + 模型费 | ★ 551 | 4 个月前 | TypeScript | — |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示:README 声称有内置安全功能(如 API 密钥加密),但未提供实现细节或代码证据。未发现权限最小化、用户确认、数据流透明、敏感数据处理、依赖安全、外部影响、回滚或来源归属的具体实现。因此所有信任标准得分为 0。
证据显示:README 和 package.json 提供了一致的安装和运行说明,但未提供实际运行验证。依赖项在 package.json 中列出,但未验证可用性。错误处理在 README 中提及,但未提供具体实现。因此自一致性、依赖可用性和失败消息各得 1 分。
证据显示:README 描述了多种使用场景(如 AI 应用、集成、自动化),并提供了示例代理。能力边界在文档中有所提及,但未明确界定。触发精度未详细说明。环境适配方面,README 提供了 Node.js 和 pnpm 的要求,以及部署选项。因此受众和场景得 2 分,能力边界和触发精度各得 1 分,环境适配得 2 分。
证据显示:README 提供了清晰的信息架构,包括目录结构和文档链接。安装说明详细。命名稳定性未明确说明。示例和 FAQ 部分提供了示例代理。已知限制在路线图中有所提及。许可证为 MIT。版本和变更日志未提供。维护责任未明确。因此信息架构、安装说明、示例和 FAQ、许可证各得 2 分,命名稳定性、已知限制、版本和变更日志、维护责任各得 1 分。
证据显示:README 描述了输出能力,但未提供具体示例。边际价值在功能列表中有所体现。成本效益未讨论。因此输出可用性得 1 分,边际价值得 2 分,成本效益得 1 分。
证据显示:README 中的声明未提供可追溯的证据。跨来源验证未进行。事实和推断未明确分离。因此所有标准得 1 分。
- 源码中未见:最小权限约束只授予完成任务所需的权限:用专用账号或只读令牌,并限定可访问的目录和仓库。
- 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
- 源码中未见:数据流向说明运行时观察它连接了哪些外部服务(代理或防火墙日志);弄清数据去向之前不要输入敏感数据。
- 源码中未见:敏感信息处理使用专用、低权限、可随时吊销的 API 密钥,不要复用生产凭据,也不要让密钥出现在日志里。
- 源码中未见:依赖安全审查安装前固定版本并做一次依赖扫描(如 npm audit、pip-audit);优先放在容器里运行。
- 源码中未见:外部影响披露先弄清它会写入、发送或修改哪些外部系统,用测试账号或测试仓库验证后再接入正式环境。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- 源码中未见:来源归属可核验从官方仓库或包源安装,核对发布者和仓库地址,避免同名仿冒包。
- 未提供安全功能的实现细节,需谨慎评估。
- 依赖项未验证可用性,可能存在供应链风险。
- 未提供版本和变更日志,维护状态不明确。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
发布说明摘录
The last state of the AgentDock framework: agentdock-core/, src/, agents/ and docs/ as they stood before the repository separation. Kept permanently so anything built on the framework stays reachable. Clone or browse at this tag. Context: #354在 GitHub 查看 ↗