<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>DSL on CAO ZUOHUA</title><link>https://caozuohua.github.io/tags/dsl/</link><description>Recent content in DSL on CAO ZUOHUA</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Sat, 26 Sep 2026 20:20:00 +0800</lastBuildDate><atom:link href="https://caozuohua.github.io/tags/dsl/index.xml" rel="self" type="application/rss+xml"/><item><title>Dify 深度玩法（三）：节点自定义的五个层级</title><link>https://caozuohua.github.io/posts/2026-09-26-dify-deep-dive-03-node-customization/</link><pubDate>Sat, 26 Sep 2026 20:20:00 +0800</pubDate><guid>https://caozuohua.github.io/posts/2026-09-26-dify-deep-dive-03-node-customization/</guid><description>&lt;h1 id="dify-深度玩法三节点自定义的五个层级"&gt;Dify 深度玩法（三）：节点自定义的五个层级&lt;/h1&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;上一篇：&lt;a href="https://caozuohua.github.io/posts/2026-09-26-dify-deep-dive-02-deploy-and-keys/"&gt;部署选型与模型 Key&lt;/a&gt;。&#10;进了画布，第一个问题是&amp;quot;这东西到底能改多深&amp;quot;。答案是分层看：&lt;strong&gt;参数、逻辑、数据流三层几乎不设限；节点类型可靠插件扩展；硬边界只有两处。&lt;/strong&gt;&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;h2 id="五个层级总览"&gt;五个层级总览&lt;/h2&gt;&#10;&lt;div class="mermaid"&gt;&#10;flowchart TD&#10; L1[&amp;#34;L1 参数级&amp;lt;br/&amp;gt;每个节点的配置项&amp;#34;] --&amp;gt; L2[&amp;#34;L2 逻辑级&amp;lt;br/&amp;gt;Code 与 HTTP 逃生门&amp;#34;]&#10; L2 --&amp;gt; L3[&amp;#34;L3 数据流级&amp;lt;br/&amp;gt;变量系统 + 容错策略&amp;#34;]&#10; L3 --&amp;gt; L4[&amp;#34;L4 节点类型级&amp;lt;br/&amp;gt;插件定义新节点&amp;#34;]&#10; L4 --&amp;gt; L5[&amp;#34;L5 协议级&amp;lt;br/&amp;gt;DSL 手改 + 外部知识库 API&amp;#34;]&#10; L1 -.- N1[&amp;#34;自由度：低，但覆盖日常&amp;#34;]&#10; L2 -.- N2[&amp;#34;自由度：高，万能逃生门&amp;#34;]&#10; L4 -.- N4[&amp;#34;自由度：最高，成本也最高&amp;#34;]&#10;&lt;/div&gt;&#10;&lt;script type="module"&gt;&#10; import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs';&#10; mermaid.initialize({&#10; startOnLoad: true,&#10; theme: 'neutral',&#10; securityLevel: 'strict',&#10; flowchart: { curve: 'basis' }&#10; });&#10;&lt;/script&gt;&#10;&lt;h2 id="l1-参数级每个节点都有一层配置"&gt;L1 参数级：每个节点都有一层配置&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;LLM 节点&lt;/strong&gt;：每个节点独立选模型、独立调参数（温度、最大输出等），提示词模板可引用任意上游变量，支持结构化输出、视觉输入、会话记忆。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;知识检索节点&lt;/strong&gt;：可挂多个知识库，检索模式、返回条数、相似度阈值、重排模型逐项可配。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;问题分类器 / 参数提取器&lt;/strong&gt;：分类类别和抽取字段完全由你定义，抽取方式可选函数调用或提示词驱动。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;这一层覆盖了八成日常需求，特点是&amp;quot;改配置不改逻辑&amp;quot;。&lt;/p&gt;&#10;&lt;h2 id="l2-逻辑级两个万能逃生门"&gt;L2 逻辑级：两个万能逃生门&lt;/h2&gt;&#10;&lt;p&gt;&lt;strong&gt;Code 节点&lt;/strong&gt;（Python 3.10+ 或 Node.js 18+）负责任意数据变换。一个真实可用的例子——对抓取结果做归一化去重：&lt;/p&gt;</description></item></channel></rss>