agentic_huge_data_base / wiki
页面 Dify · 14 Dify 智能体运行时·DeepWiki 中文全文译文

14 · Dify 智能体运行时(Dify Agent Runtime)

应用编排与外部知识接入 · 本章是 Dify DeepWiki 中文译文的独立章节页,保留原始链接、源码锚点、模块标签和章节层级。

项目Dify 章节14 状态全文译文 模块系统架构、智能体运行时、记忆与上下文、接口与服务契约
源码线索
  • README.md
  • api/core/agent/base_agent_runner.py
  • api/core/agent/cot_agent_runner.py
  • api/core/agent/cot_chat_agent_runner.py
  • api/core/agent/cot_completion_agent_runner.py
  • api/core/agent/entities.py
  • api/core/agent/fc_agent_runner.py
  • api/core/app/app_config/easy_ui_based_app/agent/manager.py
  • api/core/app/apps/agent_chat/app_runner.py
  • api/core/app/apps/base_app_runner.py
模块标签
  • 系统架构
  • 智能体运行时
  • 记忆与上下文
  • 接口与服务契约
  • 界面与交互

中文译文

Dify 智能体运行时(中文译文)

原始 DeepWiki 页面:https://deepwiki.com/langgenius/dify/14-dify-agent-runtime
翻译时间:2026-05-27T08:44:17.706Z
翻译模型:deepseek-chat
原文字符数:8195
项目:Dify (dify)

---

Dify 智能体运行时

相关源文件

以下文件被用作生成此维基页面的上下文:

  • README.md
  • api/core/agent/base_agent_runner.py
  • api/core/agent/cot_agent_runner.py
  • api/core/agent/cot_chat_agent_runner.py
  • api/core/agent/cot_completion_agent_runner.py
  • api/core/agent/entities.py
  • api/core/agent/fc_agent_runner.py
  • api/core/app/app_config/easy_ui_based_app/agent/manager.py
  • api/core/app/apps/agent_chat/app_runner.py
  • api/core/app/apps/base_app_runner.py
  • api/core/app/apps/chat/app_runner.py
  • api/core/app/apps/completion/app_runner.py
  • api/core/memory/token_buffer_memory.py
  • api/core/prompt/advanced_prompt_transform.py
  • api/core/prompt/agent_history_prompt_transform.py
  • api/core/prompt/entities/advanced_prompt_entities.py
  • api/core/prompt/prompt_transform.py
  • api/core/prompt/simple_prompt_transform.py
  • api/factories/file_factory/message_files.py
  • api/factories/file_factory/validation.py
  • api/providers/trace/trace-langsmith/src/dify_trace_langsmith/entities/langsmith_trace_entity.py
  • api/tests/unit_tests/core/memory/test_token_buffer_memory.py
  • api/tests/unit_tests/core/prompt/test_advanced_prompt_transform.py
  • api/tests/unit_tests/core/prompt/test_agent_history_prompt_transform.py
  • api/tests/unit_tests/core/prompt/test_simple_prompt_transform.py
  • api/tests/unit_tests/core/workflow/nodes/llm/test_node.py
  • api/tests/unit_tests/factories/test_file_validation.py

Dify Agent 运行时是一个专为自主智能体设计的执行环境,提供了多步推理、工具调用和有状态对话管理的强大基础设施。它充当了高层智能体配置(在 Dify 编排工作室中定义)与底层大语言模型(LLM)之间的桥梁。

该运行时基于 Agenton 框架构建,提供了基于 FastAPI 的 REST 接口,支持 Pydantic AI 执行。它支持多种智能体架构,包括思维链(CoT)和直接函数调用(FC),使智能体能够与 Dify 的工具生态系统和知识库进行交互。

核心架构与执行流程

该运行时以 BaseAgentRunner api/core/agent/base_agent_runner.py:53-126 为核心,管理智能体执行的生命周期。它协调提示词转换、通过 TokenBufferMemory api/core/memory/token_buffer_memory.py:30-45 进行记忆检索,以及推理与动作的迭代循环。

智能体执行栈

下图展示了 Dify 应用层、Agent 运行时和外部模型提供商之间的关系。

Agent 运行时系统上下文

graph TD
    subgraph "Dify 后端空间"
        A["AgentChatAppRunner"] -- "初始化" --> B["BaseAgentRunner"]
        C["TokenBufferMemory"] -- "提供上下文" --> B
        D["ToolManager"] -- "提供工具" --> B
    end

    subgraph "Dify Agent 运行时(Agenton)"
        B -- "执行" --> E["CotAgentRunner"]
        B -- "执行" --> F["FunctionCallAgentRunner"]
        E -- "解析" --> G["CotAgentOutputParser"]
        F -- "提取" --> H["ToolEngine"]
    end

    subgraph "代码实体空间"
        E -- "invoke_llm" --> I["ModelInstance"]
        I -- "REST/gRPC" --> J["LLM Provider (OpenAI/Anthropic)"]
    end

来源:api/core/agent/base_agent_runner.py:53-126api/core/app/apps/agent_chat/app_runner.py:27-180api/core/agent/cot_agent_runner.py:38-102api/core/agent/fc_agent_runner.py:34-100

关键组件
组件类/实体描述
运行器BaseAgentRunner智能体执行的抽象基类,处理工具初始化和回调设置 api/core/agent/base_agent_runner.py:53
CoT 运行器CotAgentRunner实现思维链推理,解析"思考"、"动作"和"观察"步骤 api/core/agent/cot_agent_runner.py:38
FC 运行器FunctionCallAgentRunner利用原生大语言模型函数调用能力进行结构化工具交互 api/core/agent/fc_agent_runner.py:34
记忆TokenBufferMemory管理对话历史,具有 Token 限制感知能力,防止上下文溢出 api/core/memory/token_buffer_memory.py:30
提示词引擎SimplePromptTransform将应用变量和模板转换为大语言模型可用的提示词消息 api/core/prompt/simple_prompt_transform.py:43
智能体推理策略

Dify 根据模型能力和应用配置支持不同的推理策略:

  1. 思维链(CoT):主要用于不支持原生函数调用的模型,或者需要显式推理步骤的场景。CotAgentRunner 使用"观察"等停止序列来暂停并执行工具 api/core/agent/cot_agent_runner.py:64-66
  2. 函数调用(FC):利用 invoke_llm 方法,配合结构化工具定义 api/core/agent/fc_agent_runner.py:93-100。它同时处理流式工具调用和阻塞响应 api/core/agent/fc_agent_runner.py:122-149

推理循环详情

sequenceDiagram
    participant R as AgentRunner
    participant P as PromptTransform
    participant M as ModelInstance
    participant T as ToolEngine

    R->>P: organize_prompt_messages()
    P-->>R: List[PromptMessage]
    loop 迭代次数 < 最大步数
        R->>M: invoke_llm(tools, prompt)
        M-->>R: LLMResult (思考/工具调用)
        alt 是工具调用
            R->>T: ToolEngine.invoke()
            T-->>R: 观察
            R->>R: 更新暂存区/历史
        else 是最终答案
            R->>R: 终止循环
        end
    end

来源:api/core/agent/cot_agent_runner.py:103-173api/core/agent/fc_agent_runner.py:77-160api/core/prompt/simple_prompt_transform.py:48-91

子系统详情

有关运行时特定部分的深入技术文档,请参考以下子页面:

Agenton 框架与层架构

涵盖提供 LayerNodeLayerProvider 抽象的基础框架。它解释了如何组合基于图的计划、如何管理会话快照,以及组合器如何处理执行状态。

Dify 智能体服务器与运行时 API

详细介绍了 FastAPI 服务器实现,包括 POST /run API 请求/事件模式。它描述了将 Agenton 框架连接到 Dify 后端的适配器层,并提供了本地开发和测试的说明。

来源:README.md:93-105api/core/agent/base_agent_runner.py:53-126api/core/app/apps/agent_chat/app_runner.py:27-180