Dynamiq 智能体编排框架
用 Python 工作流编排 LLM、工具、多智能体与 RAG 流程。
- Star 数
- ★ 1.1k
- 最近更新
- 2 天前
- License
- Apache-2.0
- 主语言
- Python
- FA 评分
- 61/100 · 存在缺口
30 秒速览
- 运行形态
- 可在哪里用
- 兼容但需适配OpenAI API
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 低 · 几分钟可跑通
- 开始前需要
- 典型场景
- Python 开发者需要把多个 LLM 处理步骤组织成带依赖关系的顺序或并行工作流。
- 不适合
- 需要开箱即用、无需自行搭建应用边界的团队
- 希望避免绑定 OpenAI、Pinecone 等外部服务的团队
- 需要持久化记忆或生产级部署配置的团队
这个 Agent 能做什么,适合哪些场景?
Dynamiq 是面向生成式 AI 应用的 Python 编排框架,重点覆盖 LLM 智能体和检索增强生成。它以 Workflow、Flow 和节点构建执行图,可通过依赖关系与 InputTransformer 组织并行或顺序任务。仓库提供 Agent、OpenAI LLM 节点、工具调用、会话 Memory、图式编排器以及文档转换、切分、嵌入、检索和写入节点。工作流接收 Python 字典、文件流或查询等输入,并返回可按节点 ID 读取的结构化结果及模型生成内容。它作为 Python 库运行,应用的网络服务、用户界面和生产部署方式需要采用者自行建设。
开发者通过 Workflow 和 Flow 将节点组成有向执行流程,再用 .inputs()、.depends_on()、NodeDependency 与 InputTransformer 传递节点输出。Agent 将 OpenAI LLM 节点、角色说明、循环上限和工具组合起来,可同步或异步执行,也可把其他智能体作为管理智能体的工具并启用并行工具调用。RAG 索引链路使用 PyPDFConverter 读取 PDF,经 DocumentSplitter 分段、OpenAIDocumentEmbedder 生成向量,再由 PineconeDocumentWriter 写入 Pinecone;检索链路则通过 OpenAITextEmbedder、PineconeDocumentRetriever 和带模板的 OpenAI 节点生成答案。Memory 配合 InMemory 后端保存并读取会话历史,GraphOrchestrator、GraphAgentManager、状态、边和条件路由可实现反馈与迭代流程。示例还展示了通过 E2BInterpreterTool 执行代码,以及通过 ScaleSerpTool 为研究智能体提供搜索能力。
- Python 开发者需要把多个 LLM 处理步骤组织成带依赖关系的顺序或并行工作流。
- 智能体应用团队需要让管理智能体把研究和写作任务委派给子智能体,并汇总最终结果。
- 知识库开发者需要将 PDF 转换、切分、嵌入并写入 Pinecone,再基于检索结果回答问题。
- 产品原型团队需要构建带会话历史的命令行聊天机器人,并按用户及会话标识维护上下文。
- 业务流程开发者需要用状态、边和条件路由实现人工反馈驱动的内容反复修改流程。
- 数据或编程助手开发者需要让 ReAct 风格智能体调用 E2B 代码解释器完成计算任务。
如何安装或部署这个 Agent?
需要 Python 3.10 或更高版本。可从 Python 包索引安装:
pip install dynamiq也可以克隆源码并使用 uv 同步依赖:
git clone https://github.com/dynamiq-ai/dynamiq.git
cd dynamiq
uv sync文档中的首个 LLM 示例需要 OpenAI API 密钥;Pinecone、E2B 和 ScaleSerp 仅在使用对应示例与集成时需要各自的密钥。
如何使用这个 Agent?
下面是来源中最小的 LLM 调用方式。将 OPENAI_API_KEY 替换为有效密钥,然后运行 Python 文件;结果从 result.output 取得。
from dynamiq.nodes.llms.openai import OpenAI
from dynamiq.connections import OpenAI as OpenAIConnection
from dynamiq.prompts import Prompt, Message
prompt_template = """
Translate the following text into English: {{ text }}
"""
prompt = Prompt(messages=[Message(content=prompt_template, role="user")])
llm = OpenAI(
id="openai",
connection=OpenAIConnection(api_key="OPENAI_API_KEY"),
model="gpt-4o",
temperature=0.3,
max_tokens=1000,
prompt=prompt
)
result = llm.run(
input_data={
"text": "Hola Mundo!"
}
)
print(result.output)需要编排多个节点时,创建 Workflow,通过 wf.flow.add_nodes(...) 添加智能体或处理节点,再调用 wf.run(input_data={...})。异步智能体使用 await agent.run(...);RAG 流程还需配置 Pinecone 连接、索引名称和向量维度。
这个 Agent 有哪些优点和局限?
- 同一套节点与工作流接口覆盖单次 LLM 调用、顺序或并行智能体、多智能体委派、RAG 和图式状态流程。
depends_on、.inputs()、NodeDependency与InputTransformer明确表达数据传递和执行依赖。- RAG 示例给出了从 PDF 转换、切分和嵌入到 Pinecone 写入、检索及答案生成的完整链路。
- 智能体支持工具、循环上限、达到循环上限时的行为、异步执行以及并行工具调用配置。
- 所有给出的 LLM 与嵌入示例均使用 OpenAI,来源没有展示迁移到其他模型提供商的可复制配置。
- 代码解释、网络搜索和向量存储示例分别依赖 E2B、ScaleSerp 与 Pinecone,并需要额外服务和凭据。
- 内存示例使用
InMemory后端,来源未展示持久化、分布式会话存储或恢复方案。 - 来源没有给出容器、托管服务、HTTP API、身份验证、监控或生产部署配置,采用者需自行补齐应用边界。
这个 Agent 与同类方案有什么区别?
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Dynamiq 智能体编排框架 当前 | 61 · 存在缺口 | 代码库 / SDK免费 + 模型费 | ★ 1.1k | 2 天前 | Python | OpenAI API |
| Pocket Flow | 41 · 缺口较多 | 代码库 / SDK免费 + 模型费 | ★ 11k | 2 个月前 | Python | — |
| LangChain 生成式 AI 实战 | 52 · 缺口较多 | 代码库 / SDK免费 + 模型费 | ★ 1.4k | 2 个月前 | Jupyter Notebook | OpenAI API · Claude API |
| Oracle AI Developer Hub | 44 · 缺口较多 | 代码库 / SDK免费 + 模型费 | ★ 4.4k | 1 天前 | Jupyter Notebook | — |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据展示了显式工具列表、循环上限、工作流依赖关系,以及仅向内部 PR 或受控标签任务注入凭据;安全政策还提供了保密报告渠道,因此数据流、敏感数据处理和依赖治理达到普通使用水平。扣分点是框架没有统一的权限最小化或逐项授权机制,用户确认仅出现在邮件示例的交互逻辑中,外部调用及数据发送缺少通用披露和审批保障,也没有撤销、补偿事务或回滚设计。来源由仓库、项目元数据、文档、许可证及公司版权声明相互指向,但发布者身份未经独立验证,故未给满分。未发现红线证据。
README、项目元数据、CI 和测试夹具对 Python 框架、LLM、Agent、RAG 与集成能力的描述总体一致;依赖大多设有版本范围,支持 Python 3.10–3.13,并有容器化 CI、隔离测试和凭据集成测试路径。扣分点是默认依赖集合非常庞大且包含众多外部服务,README 示例存在缺少 asyncio 导入、把打印状态描述成邮件已发送等细节不一致;除最大循环行为外,几乎没有失败类型、诊断信息或恢复建议。
材料覆盖翻译、异步 ReAct、并行与串行 Agent、多 Agent 委派、RAG、记忆聊天和图编排,受众与场景覆盖充分。显式工具、角色、依赖、输入转换、路由、推理模式和循环上限提供了较好的配置边界与触发控制。扣分点是没有形成统一的能力/权限边界,基于 LLM 的委派仍依赖提示词约定;外部服务凭据、系统级 PDF/图形依赖、资源需求和部署差异说明不完整。
README 的安装、文档、示例、贡献和许可证结构清楚;包名、CLI、版本 0.60.1、Python 范围及项目链接均有元数据支持。大量可直接阅读的示例使示例性文档接近完整,Apache-2.0 全文和元数据一致,故许可证满分。扣分点是没有 FAQ,已知限制仅零散提到 Python 版本、现有 Pinecone 索引等前提;仅提供发布页入口而没有随附变更记录,维护责任虽有团队邮箱、安全邮箱和贡献入口,但具体负责人及发布者身份未得到验证。
示例展示了可直接消费的节点输出、Agent 内容、按节点编号组织的工作流结果和 RAG 写入/检索路径,且相较于单次 LLM 调用提供了 DAG、并行执行、委派、记忆和多后端集成等显著增量价值。扣分点是输出契约、错误结果和持久化副作用没有系统说明;虽然可配置 max_tokens、max_loops 和模型,但缺少费用、延迟、依赖体积、资源消耗及何时不值得采用该框架的指导。
核心身份、版本、Python 范围、许可证、CI 路径和主要场景可在 README、pyproject、工作流及测试夹具之间交叉对应,具备普通水平的静态可追溯性。扣分点是材料没有提供运行结果或独立验证,测试片段主要是公共夹具而非具体行为断言;“all-in-one”“自动并行”等营销性或概括性主张未明确区分事实、示例和推断,邮件示例还可能让读者误以为打印文本代表真实发送。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- 这是仅基于所给修订文件的静态审查;未执行代码、测试或网络集成。
- Agent 可调用 E2B、搜索、数据库、向量存储及云模型等外部服务;部署者应自行增加工具白名单、最小权限、出站数据披露和高影响操作确认。
- README 直接展示 API 密钥参数占位符,而 CI 会生成包含真实秘密的 .env 文件;应核查日志脱敏、文件清理、密钥轮换及第三方数据保留策略。
- 默认依赖面很大,并含大量快速演进的服务客户端;采用前应生成锁定清单和 SBOM,进行漏洞扫描,并考虑按功能拆分可选依赖。
- 图编排邮件示例并未实际发送邮件,只打印“已发送”状态;不要把该示例视为外部效果、确认或交付保证。
- 未见通用回滚或补偿机制;对写入向量库、数据库或其他有状态系统的工作流,应在应用层加入幂等、审计和恢复设计。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
发布说明摘录
What's Changed * feat(mcp): list an MCP server's tools per run with that run's headers by @mykhailobuleshnyi in https://github.com/dynamiq-ai/dynamiq/pull/1013 * build: dynamiq v0.68.1 by @tyaroshko in https://github.com/dynamiq-ai/dynamiq/pull/1014 Full Changelog: https://github.com/dynamiq-ai/dynamiq/compare/v0.68.0...v0.68.1在 GitHub 查看 ↗ -
发布说明摘录
What's Changed * fix(llms): recover from unsupported-param errors on streamed calls by @tyaroshko in https://github.com/dynamiq-ai/dynamiq/pull/989 * fix(llms): drop temperature for Claude Haiku 5.5 and recover from deprecated-param errors by @tyaroshko in https://github.com/dynamiq-ai/dynamiq/pull/990 * fix(llms): close Anthropic sync streams to prevent a connection pool deadlock by @vitalii-dynamiq in https://github.com/dynamiq-ai/dynamiq/pull/993 …在 GitHub 查看 ↗ -
发布说明摘录
What's Changed * fix(cli): document that requirement-update replaces the optional flag by @delamainer in https://github.com/dynamiq-ai/dynamiq/pull/965 * fix(llms): send reasoning_effort "none" for models that default to it by @vitalii-dynamiq in https://github.com/dynamiq-ai/dynamiq/pull/972 * feat(storages): add Turbopuffer vector store, writer and retriever by @delamainer in https://github.com/dynamiq-ai/dynamiq/pull/976 * fix(agents): stop Anthropic content filter from silently looping agents by @tyaroshko in https://github.com/dynamiq-ai/dynamiq/pull/973 …在 GitHub 查看 ↗
常见问题
运行基础示例需要哪些凭据?
它能并行运行多个智能体吗?
Workflow 会在条件允许时并行运行无依赖节点;管理智能体示例还通过 parallel_tool_calls_enabled=True 启用并行工具调用。是否包含完整的 RAG 数据链路?
会话记忆是否默认持久化?
Memory 配合 InMemory 后端,没有证明进程重启后的持久化能力。