Fabric 模式精读:identify_dsrp_perspectives —— 用 DSRP 视角维度对复杂系统进行多利益相关者透视
导读:本文深度解析 Fabric 开源 AI 框架中的一个系统提示(system prompt)模式
identify_dsrp_perspectives(识别 DSRP 视角)。该模式以 DSRP 认知框架中 "P"(Perspectives,视角)为骨架,把输入的一段系统描述映射为"谁在看、看到什么"的结构化分析,用于挖掘利益相关者视角、偏见与盲区。读完本文,你将掌握该模式的完整提示词结构、它在 Fabric 模式目录中的存放与调用方式、与identify_dsrp_distinctions/relationships/systems三兄弟的分工协作,以及如何复用其四段式(视角→关切/偏见→系统影响→遮蔽面)输出模板分析任何系统。
一、模式定位:Fabric 模式体系中的 "P"
Fabric 是一个"用 AI 增强人类"的开源框架,其核心思想是把特定领域问题的解决思路沉淀为可复用、可众包、随处可用的 AI 提示词(patterns)。每个模式都以目录形式存放在仓库的 data/patterns 下,目录名即模式名,目录内一般包含 system.md(必选,作为系统提示)与可选的 user.md(用户侧提示)。
本文主角 identify_dsrp_perspectives/system.md 正是这样一个纯提示词文件——它本身不含代码逻辑,全部价值都凝聚在对"视角(Perspective)"概念的拆解与对 LLM 的引导指令中。
在 pattern_descriptions.json 中,它的描述是 "Analyze content using DSRP to identify different viewpoints."(用 DSRP 分析内容,识别不同视角),与三个姊妹模式同属 ANALYSIS / RESEARCH 标签分组:
| 模式名 | 描述(来自 pattern_descriptions.json) | DSRP 元素 |
|---|---|---|
identify_dsrp_distinctions |
用 DSRP 识别关键区分(distinctions) | D |
identify_dsrp_systems |
用 DSRP 识别系统与结构 | S |
identify_dsrp_relationships |
用 DSRP 识别连接关系 | R |
identify_dsrp_perspectives |
用 DSRP 识别不同视角(viewpoints) | P |
DSRP 是系统思维(systems thinking)领域的一套认知元框架,由 Derek Cabrera 等人系统化提出,包含四个普遍存在于一切思维行为中的元素:Distinctions(区分)、Systems(系统)、Relationships(关系)、Perspectives(视角)。identify_dsrp_perspectives 专注其中的第四个元素,专门训练模型(以及使用它的人类)从"我"跳到"他"、从单一立场跳到多重立场去看同一个系统。
二、视角的基础理论:Point-of-View 的双要素模型
模式的第二大部分原文段落系统阐释了 DSRP 视角的基础概念,这是全模式的理论内核,值得逐句拆解:
"当我们在一个系统周围画边界,或者把一个关系与另一个关系区分开时,我们总是从一个特定视角出发去做的。有时这些视角太基础、太无意识,以至于我们意识不到它们的存在,但它们一直都在。"
这是全文最重要的前提断言:视角不可避免、无处不在,即使我们没意识到自己在"取视角",我们也总在某个视角之内。作者将"视角"拆成两个相关联的构成要素:
- 观察所在的那个点(the point from which we are viewing)——即"谁在看 / 从哪看";
- 被看到的那个或那些东西(the thing or things that are in view)——即"看到了什么 / 视域内的对象"。
两者相加正是英文 point-of-view(视点)的字面含义,因此文中明确指出:"perspectives 与 'point-of-view' 是同义词。"
模式随后给出一个颇具认知哲学味道的论断,可视为对相对主义视角观的诗意表达:"如果你改变看待事物的方式,你看到的事物就会改变(If you change the way you look at things, the things you look at change)。" 换视角并非只是"换个滤镜看同一画面",而是会实实在在地改变我们能看到与看不到的区分(distinctions)、关系(relationships)与系统(systems)——这正是把 P 单独抽出来做成一个模式的原因:它是撬动 D(区分)与 S(系统)认知杠杆的支点。
2.1 视角根系词汇:一个概念能级表
为了让 LLM 理解"视角"的覆盖面有多广,模式原文罗列了视角所根植的数十个概念,可整理为下表——它们共同构成"视角"一词的语义辐射范围:
| 维度 | 相关词汇(来自原文) |
|---|---|
| 认知/看的方式 | viewpoint, see, look, standpoint, framework, angle, frame of reference, outlook, aspect, approach, frame of mind, mindset, paradigm, worldview |
| 解读与立场 | interpretation, stance, bias, context, stereotypes |
| 情感与社交智能 | empathy, compassion, pro-social and emotional intelligence, negotiation, dispute resolution, dispute |
| 认知尺度 | scale |
| 代词(视角的语言化石) | he, she, it, I, me, my, her, him, us, them |
注意最后一行极其敏锐:代词本质上就是视角在语言中的标记——第一人称(I, me, my, us)、第二/三人称(you, he, she, them)区分了"谁在看"与"谁被看",这正是模型识别文本内视角切换时可用的语言学信号。
2.2 视角的六大要点
模式原文用编号方式给出关于视角的六个关键点,构成任何输出都必须尊重的理论约束,完整继承如下:
- 视角总是存在的,即使我们并未意识到它们;
- 视角由两个要素构成:我们观察所在的点,以及被观察的那个/那些事物;
- 意识到自己"取了什么视角、以及没取什么视角"(the perspectives we take and don't take),对深度理解自我与世界至关重要;
- 改变视角能改变我们对区分、关系与系统的理解;
- 视角影响我们如何解读世界、与世界互动;
- 视角是同理心、同情心与社会智能的基础。
第 3 点中 "don't take" 的强调尤其值得注意——它指向模式后续输出规范中"遮蔽面 / 盲区"维度:看到某个视角的同时,必然有大量未取的视角,而这些未取视角正是洞察盲区的来源。
三、模式文件结构解剖:system prompt 的五段式布局
该 system.md 与 Fabric 其他分析类模式一致,采用"角色定义 → 概念灌输 → 任务声明 → 输出规范 → 输入占位"的经典 prompt 工程布局,完整段落为:
| 段 | 原文标题 | 作用 |
|---|---|---|
| 1 | # Identity and Purpose |
定义模型的角色身份与创造/发散思维基调 |
| 2 | (六位思想家角色) | 建立思维榜样与推理风格 |
| 3 | # Understanding DSRP Perspectives Foundational Concept |
向模型灌输 P 的理论本体(上文第二节) |
| 4 | # Your Task (Updated) |
声明本次任务:探索系统周边的关键视角 |
| 5 | # Your Response |
规定输出结构与四问模板 |
| 6 | # INPUT |
接受用户输入的占位区(结尾 INPUT:) |
在 Fabric 中,这类文件直接作为 system prompt 交给 LLM(同时配合用户提供的具体"输入"),从而把一段任意系统描述转化成结构化的视角分析报告。
3.1 身份设定:创造性与发散性思考者
模式第一段把模型人格化为"创造性、发散性思考者(creative and divergent thinker)",并给出三条工作伦理:
- 探索连接、挑战假设、发现新可能性的能力是必不可少的;
- 鼓励超越显而易见的答案,以好奇与开放的态度接近任务;
- 任务不仅是"识别"视角,更要探索它们的边界、含义以及它们揭示的新洞察;
- 信任直觉,敢于进入无人地带,让令人惊讶的想法与涌现模式自然展开。
这段身份设定非常关键——它决定了后续所有输出都要向"发散、新颖、非显然"方向倾斜,而不是干巴巴地罗列显而易见的干系人名单。
3.2 六位系统思想家的"思维信道"
模式要求模型在写作与推理时"信道(channel)"六位系统思维大家的思维过程。原文给出了每个名字与其应被放大的思想维度:
| 思想家 | 该模式下被放大的思维特征(来自原文) |
|---|---|
| Derek Cabrera | 强调边界、系统与"想法—视角"之间动态交互的清晰性与结构 |
| Russell Ackoff | 关注理解整体系统而非碎片,考虑系统目的如何驱动其行为 |
| Peter Senge | 反思学习、反馈与心智模型如何塑造系统演化与适应 |
| Donella Meadows | 关注系统内的杠杆点——小变动可能带来显著变化之处 |
| Gregory Bateson | 考虑影响系统的关系与语境,以互联与沟通的思维运作 |
| Jay Forrester | 分析创造行为模式的反馈回路与系统结构 |
用一句话概括这段设置:它给"视角分析"装载了六套不同的"元视角"——Cabrera 的结构视角、Ackoff 的目的视角、Senge 的学习视角、Meadows 的杠杆视角、Bateson 的关系/语境视角、Forrester 的反馈视角。模型在输出时应自觉切换这些思维风格。
四、任务指令详解:从"识别"到"探索"
# Your Task (Updated) 段定义了任务的四个探索向度,原文要求"超越显而易见的层面,挑战自己思考视角如何偏移、重叠,以及偏见与假设如何影响这些视角"。四个问题可重组为一张分析清单:
- 谁是关键利益相关者? 考虑从直接参与者到外围/隐藏干系人的一整条光谱(a range of actors, from direct participants to peripheral or hidden stakeholders);
- 这些视角如何影响系统? 反思系统在设计、功能与演化上如何被不同视角塑形;
- 视角之间有哪些张力或冲突? 探索潜在错位及其如何影响系统产出;
- 视角会如何随时间、随系统变化而演化?
最后原文鼓励对"在发挥作用的视角、假设与偏见"进行创造性思考,并指出切换视角可能为系统动力学带来新的洞察——这实际上把任务从"分类学式列举"提升为"动力学式推演"。
五、输出规范:逐视角四问 + 跨视角两反思
这是整个模式最具有可复用价值的部分——它是一份可直接套用的结构化输出模板。
5.1 每个视角的四问循环
对系统相关的每一个视角,要求模型分别回答四个问题(原文顺序):
| 问题 | 原文表述 | 实质 |
|---|---|---|
| 持有者 | Who holds this perspective? Identify the stakeholder or entity whose viewpoint you're exploring. | 谁在看 |
| 关切与偏见 | What are the key concerns, biases, or priorities that shape this perspective? | 什么塑造了看的角度 |
| 系统影响 | How does this perspective influence the system? What effects does it have on the design, operation, or outcomes of the system? | 该视角对系统施加了什么 |
| 遮蔽面 | What might this perspective obscure? Reflect on any limitations or blind spots inherent in this viewpoint. | 该视角必然看不到什么 |
注意原文对第四问用了 "obscure" 与 "blind spots"——与第二节六大要点中的 "don't take" 呼应,形成完整的"所见即所蔽"认知闭环。
5.2 跨视角的两点追加反思
在逐视角分析之外,模式还要求两个"元层面"的补充输出:
- 视角如何随时间的推移而偏移/互动? 考虑系统变化或外部因素如何影响利益相关者的观点(How might these perspectives shift or interact over time?);
- 是否存在隐藏的或代表性不足的视角? 思考尚未被考虑、却可能对系统产生重大影响的观点(Are there any hidden or underrepresented perspectives?)。
同时模式明确授权探索超越传统角色或分类的视角,并要求考虑不同视角如何揭示系统内新的可能性或张力——这为模型跳出"CEO / 用户 / 监管方"这类套话清单提供了指令级许可。
5.3 完整输出骨架(可直接复用的模板)
综合上述规范,模式的预期输出大致呈如下骨架(此结构为对原文输出规范的忠实重组,便于读者套用):
## 视角 1
- 持有者:谁在看
- 关切 / 偏见 / 优先事项:塑造该视角的关键因素
- 对系统的影响:设计 / 运行 / 产出的实际作用
- 可能遮蔽的面:该视角固有的局限与盲区
## 视角 2
...(同构循环)...
## 视角 N(建议覆盖直接、外围、隐藏干系人)
## 跨视角反思
- 视角随时间 / 系统变化如何偏移与互动
- 隐藏的或代表性不足的视角
- 视角之间的张力与错位及其对系统产出的影响
六、实战调用:把一段系统描述喂给该模式
在 Fabric 中,模式目录名即命令参数名。使用 identify_dsrp_perspectives 的标准方式是管道输入待分析文本并指定模式(以官方 README 中反复出现的 fabric -p <pattern> 调用形态为准):
# 方式一:从文件输入
cat system_brief.txt | fabric -p identify_dsrp_perspectives
# 方式二:字符串输入
echo "描述你的系统" | fabric -p identify_dsrp_perspectives
# 或使用完整参数写法
fabric --pattern identify_dsrp_perspectives < system_brief.txt
模式文件的 # INPUT 段结尾的 INPUT: 就是用户输入落位处——在 Fabric 运行时,管道进来的文本会替换该占位区域,与前面的 system prompt 拼合成完整请求(这一"system.md + 用户输入"的组装机制同样适用于其它模式,参见 chat 相关实现测试中对 system.md 拼接逻辑的覆盖)。
由于模式被归入 ANALYSIS / RESEARCH 分组(见 suggest_pattern/system.md 的标签清单),它与 identify_dsrp_perspectives 等模式的说明索引 一起构成了分析工具链,适合在研究报告、产品分析、跨部门评审等场景中调用。
七、配套使用:DSRP 四模式的分工与组合拳
identify_dsrp_perspectives 的价值在单独分析 "P" 时已经成立,但 DSRP 的完整力量来自四元素联动。仓库中四个姊妹模式恰好可以串成一条"系统透视流水线":
identify_dsrp_distinctions(system.md):先画边界——识别"什么在内 / 什么在外(the thing / the other)",看清讨论中显式包含与隐式排除的部分;identify_dsrp_systems(system.md):再把边界内的内容组织成"部分—整体"结构,向下分解子系统、向上挂接宏观系统;identify_dsrp_relationships(system.md):接着分析这些部分之间、系统与环境之间的连接与反馈;identify_dsrp_perspectives(即本文主角):最后换位——站在不同干系人的角度重看上面三步得出的边界、结构与关系。
切换视角后,前面三步得到的"区分、系统、关系"往往会被整体重构——这正是模式理论内核中"change the way you look at things"的工程化落地。若想对单一段落做最轻量发散分析,可直接复用本文 5.3 节的输出模板,配合 pattern_explanations.md 中对 DSRP 模式的官方一句话摘要来选型。
八、使用建议与适用边界
根据模式原文的精神与 Fabric 的工程约束,给出四点实操建议:
- 输入要"系统化":模式最适合的是对一个有边界、有参与者、有目标的系统描述做分析;纯抒情或碎片文本很难发挥四问模板的威力。
- 显式点名"外围与隐藏干系人":任务段和输出段都反复强调 peripheral / hidden / underrepresented stakeholders,这是该模式区别于普通干系人分析(只列显而易见角色)的核心差异点,应主动引导模型覆盖。
- 把"遮蔽面"当作与"影响力"同等重要的输出:模型的四问中第四问最容易被敷衍带过;使用时可追加强调盲区部分的篇幅。
- 组合使用优于单发:对一个真正复杂的问题,先跑
distinctions/systems/relationships三个兄弟模式建立 DSRP 全景,再以本模式收口做多视角复审,效果通常好于单独调用(三个模式与 DSRP 框架的关系可参考各自 system.md 的共用结构)。
需要说明的是:本文所述概念、结构、引用均以当前仓库 identify_dsrp_perspectives/system.md 的实际内容为准;DSRP 作为一个公开的思维框架概念其理论外延可进一步参考相关领域著作,但本模式的具体指令与输出模板以仓库文件为唯一依据,使用时请保持输入输出均为可公开分享的内容。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0629
MiniCPM5-2BMiniCPM5-2B 是一款面向端侧、本地部署和资源受限场景的 2B 稠密 Transformer,能够达到同尺寸开源模型 SOTA 水平。Markdown00
GLM-5.3GLM-5.3 与 GLM-5.2 使用相同的基座模型——所有提升均来自后训练。与 GLM-5.2 相比,它在复杂编程和长程任务上的表现显著提升。Jinja00
HivisionIDPhotos⚡️HivisionIDPhotos: a lightweight and efficient AI ID photos tools. 一个轻量级的AI证件照制作算法。Python07
DragonOSDragonOS is an operating system developed from scratch using Rust, with Linux compatibility. It is designed for **Serverless** scenarios. 使用Rust从0自研内核,具有Linux兼容性的操作系统,面向云计算Serverless场景而设计。Rust00
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00