精装房控制论画像
精装房:Dify
Product Portrait · 控制论画像dify
CASE
Dify (LangGenius) — 精装房控制论画像
以「可视化画布 + 工作流 DSL + 系统变量」把用户意图固化为一张可评审、可版本化、可发布的执行图,作为整个控制回路的设定值 r。
SP
设定值(Setpoint)——可视化画布把意图固化为可执行 DAG
用户意图 → 可验证子目标承担角色:以「可视化画布 + 工作流 DSL + 系统变量」把用户意图固化为一张可评审、可版本化、可发布的执行图,作为整个控制回路的设定值 r。
关键机制
- 可视化画布即设定值编辑器:前端
web/(dify-webv1.17.0,Next.js)提供拖拽式工作流画布,节点连线构成 DAG,用户所见即被控目标(源码级)。 - 自研 graphon 图执行引擎:
api/pyproject.toml依赖graphon==0.7.0,api/core/workflow/104 个文件;agent_node.py继承graphon.nodes.base.node.Node,把画布固化为可执行图(源码级)。 - 系统变量与变量模板:
api/core/workflow/system_variables.py+VariableTemplateParser把用户输入/环境参数注入节点,设定值含运行时上下文(源码级)。 - 触发器节点:
trigger_plugin/trigger_schedule/trigger_webhook三类触发器,把设定值从「手动运行」扩展为「定时/事件驱动」(源码级)。 - 插件节点(trigger_plugin):
api/core/plugin/42 文件,插件可注册为工作流节点,设定值可复用生态能力(源码级)。
控制论映射:KT-ctrl-045(规划-执行解耦,画布=可评审契约)+ KT-ctrl-041(分层控制结构,画布顶层、节点/工具下层)+ KT-ctrl-002(负反馈闭环结构,目标/规格=设定值 r)。
⭐强——设定值有图形化编辑、可版本化、可发布为 API/BaaS,触发式任务让设定值具备事件驱动能力。⚠️弱——工作流「成功判据」多由节点输出文本承载,缺机器可验证的结构化子目标;画布复杂度高时人工维护成本上升。
E
E 环 — 评估/传感器((E 环) 节点输出 + 知识检索 + LLMOps 观测)
评估/传感器承担角色:为闭环生产「执行是否达标」的反馈信号,来源为节点执行结果、知识库检索命中、LLMOps 日志与追踪三类,无独立 Critic 模型。
关键机制
- 节点执行事件与状态:graphon 产出
GraphNodeEventBase/NodeRunResult,agent_node.py消费节点运行结果——格式与成败可观测(源码级)。 - 知识检索节点:
api/core/workflow/nodes/knowledge_retrieval/+api/core/rag/retrieval/,检索方法含semantic_search/full_text_search/hybrid_search/keyword_search(retrieval_methods.py)——以命中相关性作为信息质量信号(源码级)。 - RAG 数据后处理:
api/core/rag/data_post_processor/reorder.py(重排序)对检索结果做质量校准,提升观测信噪比(源码级)。 - LLMOps 可观测性:README 明示 Opik / Langfuse / Arize Phoenix 追踪集成,
providers/trace/*(8 个 trace provider workspace 成员)——生产日志与性能观测(源码级)。 - Agent 日志事件:
agent_node.py的AgentLogEvent/NodeRunAgentLogEvent暴露 agent 运行日志(源码级)。
控制论映射:KT-ctrl-006(反馈灵敏度/鲁棒性基础,重排序与多检索方式提升信号质量)+ KT-ctrl-012(观测噪声 R,检索命中可信度)+ KT-ctrl-001(开环 vs 闭环,E 环是闭环开关)。
🟢 中强——节点状态 + 检索相关性 + LLMOps 追踪三层观测,工程可观测性高。🔴 相对最弱环——观测信号是「节点跑没跑 / 检索到没」,缺语义级「目标达成没」的独立 Critic;评估质量依赖用户自定义断言或下游系统。
T
T 环 — 执行器/工具((T 环) graphon 节点 + 插件 + 工具生态)
工具调用/执行器承担角色:把工作流节点以「图调度 + 插件/工具调用」方式落地,是唯一直接接触外部世界的执行器。
关键机制
- graphon 图调度执行:自研引擎按 DAG 依赖顺序调度节点,支持分支/并行/条件(源码级)。
- 10 类内置节点:
agent、agent_v2、datasource、human_input、knowledge_index、knowledge_retrieval、trigger_plugin、trigger_schedule、trigger_webhook(api/core/workflow/nodes/)——执行动作开箱即用(源码级)。 - 插件执行层:
api/core/plugin/impl/plugin.py+plugin_service.py把外部插件作为执行器纳入图(源码级)。 - 50+ 内置工具:README「Dify provides 50+ built-in tools for AI agents, such as Google Search, DALL·E, Stable Diffusion and WolframAlpha」(源码级)。
- human_input 节点:人工介入节点作为「审批/仲裁」执行器,为高风险动作留人工闸门(源码级)。
- BaaS 执行出口:所有能力均有对应 API(README「Backend-as-a-Service」),执行结果可被外部业务系统消费(源码级)。
控制论映射:KT-ctrl-034(安全边际/硬约束限幅,human_input 审批 + 部署侧权限)+ KT-ctrl-033(冗余与仲裁,多 provider/多工具可切换)+ KT-ctrl-030(模型不确定性,插件/工具异常需降级)。
🟢 强——graphon 图调度 + 10 类节点 + 插件 + 50+ 工具 + BaaS 出口,执行器丰富度极高,是精装度 4.3 的核心支撑。⚠️弱——缺 per-session 强沙箱,高风险工具执行的隔离依赖部署方自行加固;无跨工具统一预算看门狗。
M
M 环 — 记忆/状态估计((M 环) 会话变量 + 知识库 + 索引)
记忆/状态估计承担角色:由「会话变量 / 对话历史 + 知识库索引 + 文档处理流水线」承担,维护「当前对话处于什么状态、有哪些可用知识」,未显式建模置信度。
关键机制
- 会话变量与对话历史:工作流会话级变量 + 多轮对话历史作为状态载体(源码级)。
- 知识库索引流水线:
api/core/rag/index_processor/+summary_index/对文档建索引,构成可检索的外部记忆(源码级)。 - 文档摄取与清洗:
api/core/rag/extractor/+cleaner/+splitter/把原始文档转为结构化记忆(源码级)。 - 检索增强状态:
knowledge_retrieval节点按查询拉取相关片段注入上下文,等价于按相关性做的信息降维(源码级)。 - 多向量库后端:
api/pyproject.toml的providers/vdb/*workspace(30+ 种向量库成员)——记忆可持久化到多种后端(源码级)。
控制论映射:KT-ctrl-010(状态估计,会话+知识库折叠出可检索状态)+ KT-ctrl-011(Kalman 预测-更新,对话推进=预测、检索/工具结果=更新)+ KT-ctrl-014(信息滤波/降维,检索按相关性保留片段)。缺失:KT-ctrl-012(观测噪声 R vs 过程噪声 Q,无置信度/协方差)。
🟢 中强——知识库 + 多向量库 + 索引流水线提供强外部记忆与可检索性。⚠️弱——记忆只记事实不记「我有多确定」,P/R 环无法区分确信与猜测;会话状态与知识库之间无统一的置信度融合。
P
P 环 — 规划/分层控制((P 环) 工作流 DAG + Agent 策略 + 触发器)
规划/分层控制承担角色:以「可视化 DAG 静态规划 + Agent 节点内动态策略 + 触发器事件驱动」实现慢规划器与快执行器的分层控制。
关键机制
- 工作流 DAG 即慢规划器:画布定义的节点序列 = 里程碑序列,graphon 按依赖执行(源码级)。
- Agent 节点内动态决策:
agent_node.py支持 Function Calling / ReAct 策略(README),节点内可滚动决定下一步工具(源码级)。 - Agent 策略解析器:
strategy_protocols.py的AgentStrategyResolver/AgentStrategyPresentationProvider把策略选择与呈现解耦(源码级)。 - 触发器作事件驱动入口:
trigger_schedule/trigger_webhook让规划从「一次性」变为「持续触发」(源码级)。 - human_input 分层闸门:人工节点在关键里程碑插入审批,实现人机分层协调(源码级)。
控制论映射:KT-ctrl-041(分层控制结构,DAG 顶层/节点下层)+ KT-ctrl-044(MPC 滚动时域,Agent 节点内「考虑→行动→观察」)+ KT-ctrl-045(规划-执行解耦)+ KT-ctrl-046(options/SMDP,Agent 工具调用=能力原语)。
🟢 强——静态 DAG + 节点内动态策略 + 事件触发,规划层次清晰。⚠️弱——DAG 是静态预定义,缺图级 MPC 式滚动重规划;异常分支需人工预设,长任务自适应能力受限。
R
R 环 — 反思/反馈闭环((R 环) 节点错误回灌 + 重试 + 人工修正)
反思/反馈闭环承担角色:由「节点错误/异常回灌 + 工具重试 + human_input 人工修正 + 迭代节点」承担,是工程化反馈环,无 Reflexion 式元认知反思。
关键机制
- 节点异常与错误传播:
api/core/workflow/nodes/agent/exceptions.py(AgentInvocationError/AgentMessageTransformError)等把错误结构化回灌(源码级)。 - human_input 人工反馈:人工节点接收用户修正后继续执行——外部反馈闭环(源码级)。
- LLMOps 迭代改进:README 明示「continuously improve prompts, datasets, and models based on production data and annotations」——基于生产数据的长期补偿(源码级)。
- 重排序/后处理校正:
data_post_processor/reorder.py对检索结果重排,抑制低质信息(源码级)。 - 插件/模型切换:多 provider 与插件可替换,失败路径可换道(源码级)。 ## 精装房画像总结
控制论映射:KT-ctrl-002(负反馈闭环结构)+ KT-ctrl-021(P 即时纠偏,错误即时回灌)+ KT-ctrl-022(I 累积补偿,LLMOps 长期改进)+ KT-ctrl-025(稳态误差/超调,靠人工标注验收)。
🟡 中——错误回灌 + 人工修正 + LLMOps 长期改进形成反馈链。⚠️弱——无模型自我反思循环(无 Reflexion/self-critique),R 环依赖外部人工与预设分支,属半开环;由于 E 环缺独立 Critic,放大的是「错误信号」而非「误差信号」。
★
控制论画像总结
整体范式:整体范式:自研 graphon 图引擎驱动的可视化低代码平台——前馈式 DAG 编排 + 节点内动态执行 + 工程化反馈,开箱即用的 LLM 应用工厂。