Files
Prompt-Envelope-Protocol/src/data/demos.ts
T

1020 lines
44 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import type { PromptEnvelope } from '../types/protocol'
export interface DemoScenario {
id: string
label: string
description: string
envelope: PromptEnvelope
}
const now = Date.now()
// ============================================================
// Scenario A: Simple chat + system prompt + memory
// ============================================================
const demoA: PromptEnvelope = {
version: '1.0',
model: 'gpt-4-turbo',
messages: [
{
id: 'a-1',
role: 'system',
segments: [
{
kind: 'static_var',
name: 'current_date',
value: '2026年6月7日',
description: '当前对话日期,注入到 System Prompt 模板中',
},
{
kind: 'static_var',
name: 'language',
value: '中文(简体)',
description: '模型回复的首选语言',
},
{
kind: 'static_var',
name: 'user_name',
value: '小明',
description: '当前用户名称',
},
{
kind: 'system_prompt',
content: `当前日期:{{current_date}}
用户名称:{{user_name}}
回复语言:{{language}}
你是 HCI 课程设计助手。你帮助学生对聊天界面的信息架构进行批判性思考。
回答应简洁、有结构,鼓励学生从用户体验角度分析问题。
如果学生对某个概念不清楚,用通俗的例子解释,不要用术语堆砌。`,
collapsed: true,
},
{
kind: 'memory',
description:
'以下是从过往对话中总结的关于你的信息,模型会参考这些记忆来个性化回复。记忆随对话自动更新,你也可以手动编辑或删除。',
items: [
{
title: '用户背景',
content: '设计系研二学生,正在做 HCI 课程设计,关注 LLM 交互的透明性',
},
{
title: '偏好',
content: '喜欢简洁的表达,反感术语堆砌。倾向用图示辅助理解。',
},
{
title: '上次对话',
content: '讨论过 chatbox UI 过度封装的问题,确认了 9 种需要区分的 prompt 类型',
},
],
collapsed: true,
},
{
kind: 'tool_overview',
items: [
{
name: 'search',
description: '搜索学术文献和设计案例',
parameters: 'query: string, limit?: number',
schema: {
type: 'object',
properties: {
query: { type: 'string', description: '搜索关键词' },
limit: { type: 'number', description: '返回结果数量上限' },
},
required: ['query'],
},
},
{
name: 'get_example',
description: '获取 UI 设计案例截图和说明',
parameters: 'topic: string, count?: number',
schema: {
type: 'object',
properties: {
topic: { type: 'string', description: '设计主题' },
count: { type: 'number', description: '案例数量' },
},
required: ['topic'],
},
},
],
collapsed: true,
},
],
timestamp: now - 300000,
},
{
id: 'a-2',
role: 'user',
segments: [
{
kind: 'text',
content: '你好,我想讨论一下我设计的聊天协议方案。你觉得 9 种 prompt 类型的分类合理吗?',
},
],
timestamp: now - 240000,
},
{
id: 'a-3',
role: 'assistant',
segments: [
{
kind: 'text',
content:
'我觉得你的 9 种分类很全面!从信息架构的角度看,你已经覆盖了 LLM 上下文的三个主要来源:\n\n1. **静态配置**(变量、system prompt\n2. **能力声明**skills、tools\n3. **动态输入**(文档、长文本、多模态)\n\n加上工具调用的过程性信息,形成了一个完整的上下文可见性模型。这种分类本身就值得在课程设计中展开讨论。',
},
],
timestamp: now - 180000,
},
],
}
// ============================================================
// Scenario B: Tool call flow — code execution (success + failure)
// ============================================================
const demoB: PromptEnvelope = {
version: '1.0',
model: 'gpt-4-turbo',
messages: [
{
id: 'b-1',
role: 'system',
segments: [
{
kind: 'static_var',
name: 'current_date',
value: '2026年6月7日',
description: '当前日期',
},
{
kind: 'static_var',
name: 'language',
value: '中文(简体)',
description: '模型回复的首选语言',
},
{
kind: 'system_prompt',
content: `当前日期:{{current_date}},回复语言:{{language}}。
你是一个编程助手,可以帮助用户编写、调试和优化代码。你可以在安全沙箱中执行代码,也可以查阅技术文档。`,
collapsed: true,
},
{
kind: 'tool_overview',
items: [
{
name: 'execute_code',
description: '在安全沙箱中执行代码并返回输出',
parameters: 'language: string, code: string',
schema: {
type: 'object',
properties: {
language: { type: 'string', enum: ['python', 'javascript', 'typescript'], description: '编程语言' },
code: { type: 'string', description: '要执行的代码' },
},
required: ['language', 'code'],
},
},
{
name: 'lookup_api',
description: '查阅技术文档和 API 参考',
parameters: 'query: string, source: string',
schema: {
type: 'object',
properties: {
query: { type: 'string', description: 'API 或函数名称' },
source: { type: 'string', enum: ['python', 'mdn', 'react', 'node'], description: '文档来源(必填)' },
},
required: ['query', 'source'],
},
},
],
collapsed: true,
},
],
timestamp: now - 200000,
},
{
id: 'b-2',
role: 'user',
segments: [
{
kind: 'text',
content: '帮我写一个 Python 函数,统计文本中每个单词的出现频率,然后运行测试一下。',
},
],
timestamp: now - 180000,
},
{
id: 'b-3',
role: 'assistant',
segments: [
{
kind: 'text',
content: '好的,我来写一个词频统计函数并用示例文本测试:',
},
{
kind: 'tool_call_request',
toolName: 'execute_code',
arguments: {
language: 'python',
code: `def word_frequency(text):
"""统计文本中每个单词的出现频率,按频率降序排列"""
import re
words = re.findall(r'\\b\\w+\\b', text.lower())
freq = {}
for w in words:
freq[w] = freq.get(w, 0) + 1
return dict(sorted(freq.items(), key=lambda x: x[1], reverse=True))
sample = "hello world hello python world python python"
result = word_frequency(sample)
for word, count in result.items():
print(f"{word}: {count}")`,
},
collapsed: false,
},
],
timestamp: now - 160000,
},
{
id: 'b-4',
role: 'assistant',
segments: [
{
kind: 'tool_call_result',
toolName: 'execute_code',
success: true,
result: `python: 3
world: 2
hello: 2`,
collapsed: true,
},
],
timestamp: now - 140000,
},
{
id: 'b-5',
role: 'assistant',
segments: [
{
kind: 'text',
content: '运行成功!其实用 `collections.Counter` 可以让代码更简洁。让我查一下 Python 官方文档确认 Counter 的 API 细节——',
},
{
kind: 'tool_call_request',
toolName: 'lookup_api',
arguments: {
query: 'collections.Counter most_common',
},
collapsed: false,
},
],
timestamp: now - 130000,
},
{
id: 'b-6',
role: 'assistant',
segments: [
{
kind: 'tool_call_result',
toolName: 'lookup_api',
success: false,
result: 'Error: lookup_api requires "source" parameter (python | mdn | react | node). Please specify the documentation source and retry.',
collapsed: false,
},
],
timestamp: now - 120000,
},
],
}
// ============================================================
// Scenario C: Long text + document + image
// ============================================================
const longArticleContent_C = '# 大语言模型交互中的上下文透明性问题\n\n## 摘要\n\n近年来,以 ChatGPT 为代表的对话式 AI 产品迅速普及。然而,这些产品的交互设计普遍存在"上下文不透明"的问题——用户无法了解模型在生成回复时参考了哪些信息、使用了哪些工具、被施加了怎样的约束。\n\n## 1. 问题定义\n\n当前的聊天界面(chatbox UI)将 LLM 的完整上下文封装在黑盒之中。用户看到的是一个"魔法对话框":输入问题,得到回答。但这个过程掩盖了大量关键信息:\n\n- **System Prompt**:模型的行为准则和角色设定,直接决定了回复的风格和边界\n- **User Memory**:跨对话持久化的用户信息,可能包含过时或不准确的记忆\n- **Tools & Skills**:模型可调用的外部能力,用户可能完全不知道它们的存在\n- **Variable Injection**:模板变量在用户不知情的情况下被替换为具体值\n\n这种不透明性导致了一系列用户体验问题:信任缺失、纠错困难、意外行为难以解释。\n\n## 2. 设计目标\n\n本文提出一套"Prompt Envelope Protocol"——一种结构化的 prompt 表达格式,使得:\n\n1. 每种上下文元素都有明确的视觉呈现\n2. 用户可以按需展开或折叠细节\n3. 协议可以无损导出为标准 API 格式\n4. 视觉语言保持简约,不增加认知负荷\n\n## 3. 核心设计原则\n\n### 3.1 信息密度梯度\n\n核心对话文本始终可见,元信息默认折叠。用户不会在每次对话中都被无关的 system prompt 和工具列表淹没。\n\n### 3.2 颜色编码系统\n\n每种上下文类型有独立的颜色标记,形成可学习的视觉语言:\n- 蓝色 = 变量\n- 灰色 = 系统指令\n- 紫色 = 用户记忆\n- 绿色 = 技能\n- 橙色 = 工具\n\n### 3.3 协议即视图\n\n折叠状态存储在协议数据中而非 UI 状态中。这意味着相同的协议数据在任何渲染器下都产生相同的视图——协议本身就是 view model。'
const demoC: PromptEnvelope = {
version: '1.0',
model: 'gpt-4-turbo',
messages: [
{
id: 'c-1',
role: 'system',
segments: [
{
kind: 'static_var',
name: 'current_date',
value: '2026年6月7日',
description: '当前日期',
},
{
kind: 'static_var',
name: 'language',
value: '中文(简体)',
description: '文档审阅的默认输出语言',
},
{
kind: 'system_prompt',
content: `当前日期:{{current_date}},回复语言:{{language}}。
你是文档审阅助手。帮助用户分析长文档、提取要点、回答关于文档内容的问题。`,
collapsed: true,
},
{
kind: 'skills',
description:
'Skills 是模型可调用的内置能力(slash commands)。输入 / 开头即可触发,无需等待模型推理。当前对话中启用以下 skills:',
items: [
{
name: 'summarize',
description: '生成文档摘要 — 支持多种粒度(一句话/段落级/全文级)',
detail: '对用户提供的文档生成结构化摘要。支持三种粒度:一句话概览(≤50字)、段落级摘要(保存关键论点)、全文级摘要(保留章节结构)。输出为 Markdown 格式。',
triggers: ['帮我总结一下', '概括这篇文章', '这个文档说了什么', '摘要'],
instructions: '你是一个专业的文档摘要助手。当用户请求摘要时:\n1. 先确认用户需要的粒度(简要/段落/全文)\n2. 提取核心论点和支撑证据\n3. 使用 Markdown 层级结构输出\n4. 在末尾标注信息来源(章节/页码)',
},
{
name: 'translate',
description: '翻译文档内容 — 支持中英互译,保留原文格式',
detail: '将文档内容翻译为目标语言。保留原始 Markdown 格式、代码块、表格结构。支持术语表自定义(通过附加参数)。默认输出:中文 ↔ 英文。',
triggers: ['翻译', 'translate', '翻成中文', '译成英文'],
instructions: '你是专业翻译助手。翻译规则:\n1. 保留所有 Markdown 格式和代码块\n2. 术语一致性——同一术语全文统一译法\n3. 学术文本保留原文关键术语括号标注\n4. 表格和列表结构不变',
},
{
name: 'qa',
description: '基于文档回答具体问题 — 带引用溯源',
detail: '基于用户提供的文档内容回答具体问题。每个回答都附带文档引用(章节/段落号),用户可以点击引用跳转到原文位置。支持追问和澄清。',
triggers: ['文档中', '根据文章', '论文里提到', '这段说的是'],
instructions: '你基于文档回答用户问题。规则:\n1. 每个陈述必须引用文档出处\n2. 如果文档中没有相关信息,明确告知\n3. 区分"文档直接陈述"和"你的推理延伸"\n4. 不确定时提出澄清问题',
},
],
collapsed: true,
},
],
timestamp: now - 150000,
},
{
id: 'c-2',
role: 'user',
segments: [
{
kind: 'text',
content: '帮我审阅这篇论文草稿,看看结构上有什么问题:',
},
{
kind: 'long_text',
content: longArticleContent_C,
charCount: longArticleContent_C.length,
collapsed: true,
},
{
kind: 'document',
fileName: 'hci-paper-draft.pdf',
mimeType: 'application/pdf',
snippet:
'# 大语言模型交互中的上下文透明性问题\n\n## 摘要\n\n近年来,以 ChatGPT 为代表的对话式 AI 产品迅速普及。然而,这些产品的交互设计普遍存在"上下文不透明"的问题——用户无法了解模型在生成回复时参考了哪些信息...',
sizeBytes: 245760,
},
{
kind: 'media',
mediaType: 'image',
url: '',
altText: '论文框架图:Context Layers 分层示意图',
},
],
timestamp: now - 120000,
},
{
id: 'c-3',
role: 'assistant',
segments: [
{
kind: 'text',
content:
'我读完了你的草稿。整体框架很清晰,但有几个建议:\n\n1. **第3节的设计原则**是目前最强的部分,可以考虑将这部分提前到第2节\n2. "信息密度梯度"这个概念很有原创性,建议在摘要中就提及\n3. 缺少用户研究部分——如果你有做可用性测试的计划,可以加一节"4. 评估方法"\n4. 颜色编码系统部分写得很好,可以加一个视觉化的表格来展示颜色-类型映射\n\n需要我展开其中某一点吗?',
},
],
timestamp: now - 60000,
},
],
}
// ============================================================
// Scenario D: Comprehensive — all 9 segments
// ============================================================
const comprehensiveArticleContent = '在过去的18个月里,我们对127名LLM聊天产品用户进行了纵向研究。研究分为三个阶段:基线观察期(3个月)、干预实验期(6个月)、后续跟踪期(9个月)。在干预实验期,我们为实验组用户提供了一套上下文可视化工具,包括:system prompt查看面板、memory编辑界面、tool call实时展示和long text折叠功能。对照组使用标准的聊天界面。\n\n实验组在以下维度上表现出显著改善:\n- 任务完成率提升 23.4%p < 0.01\n- 纠错响应时间缩短 41.7%p < 0.001\n- 用户信任度评分从 3.2/5 提升至 4.1/5\n- 对话轮次平均减少 2.8 轮(更高效的信息交换)\n\n这些结果表明上下文透明性不仅仅是"nice to have"的设计细节,而是直接影响LLM交互效率的关键因素。特别是在以下场景中效果最为显著:\n1. 长文档分析:用户能够看到哪些文档片段被模型引用\n2. 多工具调用:工具链的可视化帮助用户理解推理过程\n3. 跨会话任务:memory可见性减少重复说明\n\n我们建议将上下文透明性作为LLM聊天产品的基础设计原则,而非可选特性。'
const demoD: PromptEnvelope = {
version: '1.0',
model: 'gpt-4-turbo',
messages: [
// --- System message with all structural segments ---
{
id: 'd-1',
role: 'system',
segments: [
{
kind: 'static_var',
name: 'current_date',
value: '2026年6月7日',
description: '当前对话日期',
},
{
kind: 'static_var',
name: 'language',
value: '中文(简体)',
description: '模型回复的首选语言',
},
{
kind: 'static_var',
name: 'knowledge_cutoff',
value: '2026年1月',
description: '模型训练数据截止日期',
},
{
kind: 'static_var',
name: 'user_name',
value: '小明',
description: '当前用户名称',
},
{
kind: 'system_prompt',
content: `当前日期:{{current_date}}
用户:{{user_name}}
回复语言:{{language}}
知识截止:{{knowledge_cutoff}}
你是 Claude,一个 HCI 研究助手。你的角色是帮助学生批判性地思考聊天界面的设计问题。
核心原则:
- 鼓励从用户体验角度分析,而非技术实现角度
- 用具体例子说明抽象概念
- 如果学生的方案有改进空间,以提问的方式引导而非直接批评
- 始终记住你拥有工具调用、skills 和跨对话 memory 能力,但不必每次都全部用到`,
collapsed: true,
},
{
kind: 'memory',
description:
'以下是从过往对话中总结的关于你的信息,模型会参考这些记忆来个性化回复。记忆随对话自动更新,你也可以手动编辑或删除。',
items: [
{
title: '用户身份',
content: '小明,设计系研二,HCI 方向。正在做课程设计项目。',
},
{
title: '项目背景',
content: '设计一个透明化 LLM 上下文的聊天协议。已确定了 9 种 prompt 类型的分类方案。',
},
{
title: '沟通偏好',
content: '喜欢用图示和表格辅助理解。反感过度术语化。需要看到具体例子。',
},
{
title: '上次进度',
content: '用户已确认了 MVP 范围:Web 应用,数据协议+视觉规范,可导出 OpenAI Format。',
},
],
collapsed: true,
},
{
kind: 'skills',
description:
'Skills 是模型可调用的内置能力(slash commands)。输入 / 开头即可触发,无需等待模型推理。当前对话中可用以下 skills:',
items: [
{
name: 'deep-research',
description: '深度研究 — 多源搜索、交叉验证、生成引用报告',
detail: '这是一个多阶段研究技能。第一阶段:并行执行多个定向搜索(学术文献、行业报告、新闻、开源项目)。第二阶段:获取高相关性来源的完整内容。第三阶段:对每个声明进行三方交叉验证。第四阶段:生成包含引用来源的结构化报告。适合需要高质量、可验证答案的场景。',
triggers: ['深入调研', '全面分析', '研究一下', '查证', '给我一个研究报告', '这个领域有哪些'],
instructions: '你是深度研究助手。工作流程:\n1. 分析用户问题,拆解为 3-5 个子问题\n2. 对每个子问题执行多源搜索(学术 + 行业 + 新闻)\n3. 抓取高相关性页面全文\n4. 交叉验证:至少两个独立来源确认同一个关键事实\n5. 生成报告格式:摘要 → 分项发现 → 证据表 → 限定说明\n6. 每个声明确标注来源 URL 和可信度评级',
},
{
name: 'code-review',
description: '代码审查 — 发现正确性 bug 和简化/效率优化机会',
detail: '审查当前分支的代码变更,按两个维度分析:(1) 正确性问题:空值、边界条件、竞态、资源泄漏;(2) 质量改进:重复代码、过度复杂、性能瓶颈。按置信度分级输出,每个发现包含文件路径、行号、问题描述和修复建议。',
triggers: ['review', '审查', '帮我看看代码', '代码有什么问题', '检查一下'],
instructions: '你是代码审查专家。审查规则:\n1. 首先读取 diff 内容(git diff)\n2. 正确性维度扫描:空值处理、边界条件、竞态条件、异常处理\n3. 质量维度扫描:重复代码、过长函数、深层嵌套、无用变量\n4. 每个发现标注:严重度(高/中/低)、文件路径、行号\n5. 提供具体的修复代码片段\n6. 避免纯风格的评论(交给 formatter',
},
{
name: 'verify',
description: '行为验证 — 运行应用并观察行为来确认变更生效',
detail: '启动应用、运行测试、或执行指定命令,并观察输出来验证某个变更是否按预期工作。支持多种验证策略:单元测试、端到端测试、手动检查输出。适合 PR 合并前的最终确认环节。',
triggers: ['验证', '测试一下', '确认', '检查是否生效', '跑一下', '运行'],
instructions: '你是验证助手。验证流程:\n1. 确认待验证的变更是什么\n2. 选择验证策略:优先自动测试,其次手动观察\n3. 运行相关测试套件\n4. 如果测试通过,启动应用确认关键路径\n5. 输出验证报告:测试结果 + 观察到的问题 + 置信度',
},
{
name: 'simplify',
description: '代码简化 — 审查代码的复用性、简洁性和效率并应用修复',
detail: '只关注代码质量改进(不找 bug)。扫描变更文件,发现:可抽取的共享逻辑、可合并的重复代码、不必要的中间变量、可简化表达式。直接应用修复到工作树。需要 code-review 先跑完后再用此技能。',
triggers: ['简化', '重构', '精简', '优化这段代码', '能不能更简单'],
instructions: '你是代码简化专家。简化规则:\n1. 只做质量改进,不改变行为\n2. 发现重复代码 → 提取为函数/变量\n3. 发现过长函数 → 提取子步骤\n4. 发现不必要的中间变量 → 内联\n5. 发现深层嵌套 → 卫语句(guard clause)扁平化\n6. 修改后运行全部测试确认无回归',
},
{
name: 'loop',
description: '定时循环 — 按指定间隔重复执行一个命令或 prompt',
detail: '设置一个定时任务,每隔指定时间(5分钟、30分钟、1小时等)自动执行一个提示词或命令。适合 CI 监控、定时检查、长期运行的自动化任务。任务在后台运行,不会阻塞当前对话。',
triggers: ['定时', '每隔', '循环', '持续监控', '定期检查', '每分钟'],
instructions: '你是定时任务助手。循环配置:\n1. 确认循环间隔和任务内容\n2. 首次执行立即运行一次\n3. 后续按间隔自动触发\n4. 每次执行输出简短状态摘要\n5. 用户可以随时说"停止循环"来终止\n6. 长时间循环(>1小时)使用持久化模式',
},
],
collapsed: true,
},
{
kind: 'tool_overview',
items: [
{
name: 'search',
description: '搜索学术文献和设计案例',
parameters: 'query: string, limit?: number',
schema: {
type: 'object',
properties: {
query: { type: 'string', description: '搜索关键词' },
limit: { type: 'number', description: '返回结果数量' },
},
required: ['query'],
},
},
{
name: 'read_file',
description: '读取文件内容',
parameters: 'path: string',
schema: {
type: 'object',
properties: {
path: { type: 'string', description: '文件路径' },
},
required: ['path'],
},
},
{
name: 'fetch_url',
description: '获取网页内容并转为 markdown',
parameters: 'url: string',
schema: {
type: 'object',
properties: {
url: { type: 'string', description: '网页 URL' },
},
required: ['url'],
},
},
{
name: 'run_code',
description: '在沙箱中执行代码',
parameters: 'language: string, code: string',
schema: {
type: 'object',
properties: {
language: { type: 'string', enum: ['python', 'javascript', 'r'], description: '编程语言' },
code: { type: 'string', description: '代码内容' },
},
required: ['language', 'code'],
},
},
],
collapsed: true,
},
],
timestamp: now - 600000,
},
// --- User message 1 ---
{
id: 'd-2',
role: 'user',
segments: [
{
kind: 'text',
content: '你好!我在准备课程设计的文献综述部分。我找到了一篇相关的研究报告,帮我分析一下它是否可以支持我的论点。',
},
{
kind: 'long_text',
content: comprehensiveArticleContent,
charCount: comprehensiveArticleContent.length,
collapsed: true,
},
{
kind: 'document',
fileName: 'context-transparency-study-2025.pdf',
mimeType: 'application/pdf',
snippet:
'DOI: 10.1145/3613904.3642000\n\nContext Transparency in LLM-Powered Chat Interfaces: A Longitudinal Study with 127 Users\n\nIn the past 18 months, we conducted a longitudinal study...',
sizeBytes: 2457600,
},
{
kind: 'media',
mediaType: 'image',
url: '',
altText: 'Fig 3: 实验组 vs 对照组任务完成率对比图(p<0.01',
},
],
timestamp: now - 500000,
},
// --- Assistant response ---
{
id: 'd-3',
role: 'assistant',
segments: [
{
kind: 'text',
content: '这是一篇非常有力的参考文献!它恰恰支持了你的核心论点——上下文透明性是"基础设计原则,而非可选特性"。',
},
],
timestamp: now - 480000,
},
// --- Assistant tool call ---
{
id: 'd-4',
role: 'assistant',
segments: [
{
kind: 'tool_call_request',
toolName: 'search',
arguments: {
query: 'LLM context transparency HCI chat interface user study 2024 2025',
limit: 5,
},
collapsed: false,
},
],
timestamp: now - 470000,
},
{
id: 'd-5',
role: 'assistant',
segments: [
{
kind: 'tool_call_result',
toolName: 'search',
success: true,
result: `Found 5 results:
1. "Transparent AI: Designing Explainable Chat Interfaces" — CHI 2024
→ 提出了"分层透明度"框架,与本项目的"信息密度梯度"高度一致
2. "User Mental Models of LLM Context" — CSCW 2025
→ 发现 78% 的用户低估了 system prompt 对输出的影响
3. "Folding as a Visual Strategy for Complex Chat UIs" — DIS 2024
→ 验证了折叠/展开对降低认知负荷的效果
4. "Beyond the Black Box: Visualizing LLM Reasoning in Chat" — TOCHI 2025
→ 工具调用可视化的用户研究,与本项目的 tool call request/result 设计一致
5. "Memory-Aware Interfaces for Persistent LLM Interactions" — IUI 2025
→ 讨论了用户记忆的可编辑性和可遗忘性`,
collapsed: true,
},
],
timestamp: now - 450000,
},
// --- Assistant final response ---
{
id: 'd-6',
role: 'assistant',
segments: [
{
kind: 'text',
content: `搜索结果显示,你的研究方向和当前学术界的热点高度一致。以下是我对文献支持度的评估:
**强相关(可直接引用):**
- 第2篇(CSCW 2025)直接量化了用户对 LLM 上下文的理解不足——这是你"问题定义"部分的关键论据
- 第3篇(DIS 2024)为你的"折叠设计"提供了实证基础
**建议阅读方向:**
- 第1篇的"分层透明度"框架可以与你的 9 种类型分类做对比讨论
- 第5篇的 memory 可编辑性可能是你下一个值得探索的方向
这篇研究报告 + 这5篇文献构成了一个很好的文献基础。需要我帮你整理成引用格式吗?`,
},
],
timestamp: now - 400000,
},
],
}
// ============================================================
// Scenario E: Agent 主动触发 Skill(渐进式披露 + 工具调用)
// ============================================================
const demoE: PromptEnvelope = {
version: '1.0',
model: 'claude-opus-4-8',
messages: [
// --- System message: 加载 skills + memory + tools ---
{
id: 'e-1',
role: 'system',
segments: [
{
kind: 'static_var',
name: 'current_date',
value: '2026年6月7日',
description: '当前对话日期',
},
{
kind: 'static_var',
name: 'language',
value: '中文(简体)',
description: '模型回复的首选语言',
},
{
kind: 'static_var',
name: 'knowledge_cutoff',
value: '2026年1月',
description: '模型训练数据截止日期',
},
{
kind: 'system_prompt',
content: `当前日期:{{current_date}}
回复语言:{{language}}
知识截止:{{knowledge_cutoff}}
你是 HCI 课程设计助手,具备 Anthropic Skills 机制。
你有以下 skills 可用。用户输入以 / 开头的命令时会直接触发对应 skill。你也可以在分析用户意图后,主动建议合适的 skill。
回复风格:简洁、有结构、给出可操作建议。`,
collapsed: true,
},
{
kind: 'memory',
description:
'以下是从过往对话中总结的关于你的信息,模型会参考这些记忆来个性化回复。',
items: [
{
title: '用户背景',
content: '小明,设计系研二,HCI 方向。正在做课程设计,课题是 LLM 上下文透明性。',
},
{
title: '当前进度',
content: '已完成 MVP 开发(React + TypeScript 聊天界面),展示了 9 种 Segment 的差异化渲染。',
},
{
title: '关注点',
content: '关心 Anthropic Skills 的渐进式披露机制能否作为 HCI 课程中的交互设计案例。',
},
],
collapsed: true,
},
{
kind: 'skills',
description:
'Skills 是模型可调用的内置能力。输入 / 触发,或根据对话上下文由 Agent 自动判断并调用。当前可用以下 skills:',
items: [
{
name: 'deep-research',
description: '深度研究 — 多源搜索、交叉验证、生成引用报告',
detail: '多阶段研究技能:(1) 拆解问题为子问题 (2) 并行搜索多源 (3) 抓取全文 (4) 三方交叉验证 (5) 生成结构化引用报告。适合需要高质量、可验证答案的场景。',
triggers: ['深入调研', '全面分析', '研究一下', '给我一个研究报告'],
instructions: '深度研究工作流程:\n1. 分析用户问题,拆解为 3-5 个子问题\n2. 对每个子问题执行多源搜索(学术 + 行业 + 新闻)\n3. 抓取高相关性页面全文\n4. 交叉验证:至少两个独立来源确认同一关键事实\n5. 生成报告格式:摘要 → 分项发现 → 证据表 → 限定说明\n6. 每声明标注来源和可信度评级',
},
{
name: 'code-review',
description: '代码审查 — 发现正确性 bug 和简化/效率优化机会',
detail: '审查当前分支变更,按正确性和质量两个维度分析。每个发现附带文件路径、行号、问题描述和修复建议。',
triggers: ['review', '审查', '帮我看看代码', '代码有什么问题'],
instructions: '代码审查流程:\n1. 读取 git diff\n2. 正确性扫描:空值、边界、竞态、异常处理\n3. 质量扫描:重复代码、过长函数、深层嵌套\n4. 每个发现标注严重度、文件、行号\n5. 提供修复代码片段',
},
{
name: 'verify',
description: '行为验证 — 运行应用并观察行为来确认变更生效',
detail: '启动应用或运行测试来验证变更是否按预期工作。支持自动测试和手动观察两种策略。',
triggers: ['验证', '测试一下', '确认', '检查是否生效', '跑一下'],
instructions: '验证流程:\n1. 确认待验证变更\n2. 选择策略(自动测试 或 手动观察)\n3. 运行测试套件\n4. 输出验证报告:测试结果 + 问题 + 置信度',
},
{
name: 'simplify',
description: '代码简化 — 审查并优化代码的复用性和简洁性',
detail: '只做质量改进(不改行为)。发现重复代码、过度复杂、不必要的中间变量等,直接应用修复。',
triggers: ['简化', '重构', '精简', '优化', '能不能更简单'],
instructions: '简化规则:\n1. 只改进质量不改变行为\n2. 重复代码 → 提取函数\n3. 过长函数 → 提取子步骤\n4. 深层嵌套 → 卫语句扁平化\n5. 修复后运行全部测试确认无回归',
},
{
name: 'loop',
description: '定时循环 — 按指定间隔重复执行命令或 prompt',
detail: '设置定时任务,每隔指定时间自动执行。适合 CI 监控、定时检查。后台运行,不阻塞对话。',
triggers: ['定时', '每隔', '循环', '持续监控', '定期'],
instructions: '循环配置:\n1. 确认间隔和任务内容\n2. 首次执行立即运行\n3. 后续按间隔自动触发\n4. 用户可说"停止"来终止',
},
],
collapsed: true,
},
{
kind: 'tool_overview',
items: [
{
name: 'run_skill',
description: '执行一个 Skillslash command',
parameters: 'skill_name: string, input: string',
schema: {
type: 'object',
properties: {
skill_name: { type: 'string', description: 'Skill 名称' },
input: { type: 'string', description: '传递给 skill 的用户输入' },
},
required: ['skill_name', 'input'],
},
},
],
collapsed: true,
},
],
timestamp: now - 360000,
},
// --- User message: 触发 research 需求 ---
{
id: 'e-2',
role: 'user',
segments: [
{
kind: 'text',
content: '我想深入了解 Anthropic Skills 的渐进式披露机制(Progressive Disclosure),作为我的 HCI 课程论文的案例研究对象。请帮我调研一下这个机制的设计原理、交互模式和学术界相关讨论。',
},
],
timestamp: now - 300000,
},
// --- Assistant: 判断需要 research,主动触发 /deep-research ---
{
id: 'e-3',
role: 'assistant',
segments: [
{
kind: 'text',
content: `你的课程论文选题很棒!Anthropic Skills 的渐进式披露机制确实是一个很好的 HCI 案例分析对象——它以 **三阶段信息展开**(overview → detail → full instructions)来降低认知负荷,同时保持功能的可发现性。
让我用 \`/deep-research\` skill 做一个系统性调研:`,
},
{
kind: 'tool_call_request',
toolName: 'run_skill',
arguments: {
skill_name: 'deep-research',
input: 'Anthropic Skills progressive disclosure mechanism — design principles, interaction patterns, HCI academic discussions, related concepts (progressive disclosure in UX, Nielsen\'s heuristics, information architecture patterns for AI interfaces)',
},
collapsed: false,
},
],
timestamp: now - 280000,
},
// --- Skill 触发:指令以 tool_call_result 形式追加到对话 ---
{
id: 'e-4',
role: 'assistant',
segments: [
{
kind: 'tool_call_result',
toolName: 'run_skill',
success: true,
result: `[/deep-research 已触发]
深度研究工作流程:
1. 分析用户问题,拆解为 3-5 个子问题
2. 对每个子问题执行多源搜索(学术 + 行业 + 新闻)
3. 抓取高相关性页面全文
4. 交叉验证:至少两个独立来源确认同一关键事实
5. 生成报告格式:摘要 → 分项发现 → 证据表 → 限定说明
6. 每声明标注来源和可信度评级`,
collapsed: true,
},
],
timestamp: now - 270000,
},
// --- Skill execution result ---
{
id: 'e-5',
role: 'assistant',
segments: [
{
kind: 'tool_call_result',
toolName: 'run_skill',
success: true,
result: `[/deep-research] 执行完成 · 搜索 12 个来源 · 抓取 8 篇全文 · 交叉验证通过
## 摘要
Anthropic Skills 的渐进式披露机制是一种三层信息架构,专门为 AI 代理的可扩展功能系统设计。核心思想:"仅在用户需要时才展示细节",与 Nielsen 的经典可用性原则高度一致。
## 分项发现
### 1. 三层披露模型
| 层次 | 内容 | 触发时机 |
|------|------|---------|
| L1 概览 | 名称 + 一句话描述 | 始终可见(skills 面板) |
| L2 详情 | 功能说明 + 触发条件 + 参数 | 用户点击展开 |
| L3 指令 | 完整 system prompt 正文 | 用户再次点击"查看注入指令" |
**设计原理**:这是 "information on demand" 模式的实现——信息存在但不喧嚣。L1 提供识别(recognition),L2 提供评估(evaluation),L3 提供理解(understanding)。
### 2. 与经典 HCI 理论的对应
- **Nielsen 的 Flexibility & Efficiency heuristics**L1 满足新手(可识别),L3 满足专家(可审阅)
- **Shneiderman 的 Visual Information Seeking Mantra**"Overview first, zoom and filter, then details-on-demand"——三层模型完美映射到 overview → zoom → details 流程
- **Cognitive Load Theory (Sweller)**L1 层只占用工作记忆的极小空间,L2/L3 按需加载
### 3. 与其他 AI 产品的对比
- **OpenAI GPTs**:配置页是扁平表单,缺乏渐进式展开 → 认知负荷高
- **Gemini Gems**:类似 GPTs,所有配置信息同时可见
- **Anthropic Skills**:三层的文件系统式浏览——/ 触发、描述预览、then 深入
### 4. 交互模式创新
Skills 采用了 **slash command + 自然语言** 的双模触发:
- 显式触发:用户输入 \`/skill-name\`
- 隐式触发:Agent 根据对话上下文判断并建议使用 skill
这在 HCI 上称为 "mixed-initiative interaction"。
### 5. 学术相关文献
1. "Progressive Disclosure in Mobile UI" (CHI 2016) — 实验证明渐进式展开减少 37% 的错误操作
2. "Designing for Mixed-Initiative Interaction" (TOCHI 2020) — Agent 主动建议 vs 用户显式触发的用户偏好研究
3. "Information Scent in AI Interfaces" (CSCW 2024) — 讨论了 skills 描述如何帮助用户形成"信息气味"
## 证据表
| 声明 | 来源 | 可信度 |
|------|------|--------|
| 三层披露模型 | Anthropic Agent SDK 文档 | ★★★★★ |
| 37% 错误减少 | CHI 2016 实验 | ★★★★ |
| Mixed-initiative | TOCHI 2020 | ★★★★ |
## 限定说明
Anthropic Skills 机制仍在快速迭代中。上述分析基于 2026 年 6 月的公开文档和代码。建议在论文中标注版本时间。`,
collapsed: false,
},
],
timestamp: now - 260000,
},
// --- Assistant: 综合报告 ---
{
id: 'e-6',
role: 'assistant',
segments: [
{
kind: 'text',
content: `## 调研结论
基于 \`/deep-research\` 的交叉验证结果,我建议你的论文从以下角度分析 Skills 渐进式披露:
### 🎯 最佳分析框架
**Shneiderman 的 "Overview first, zoom and filter, then details-on-demand"** 是最贴切的理论框架——Skills 的三层模型几乎是对这个 mantra 的精确工程实现。
### 📐 可量化的 HCI 指标
1. **信息可发现性**:L1 概览层——用户能否快速识别需要的 skillrecognition over recall
2. **认知负荷**:对比"全量展示"vs"渐进式披露"的工作记忆占用
3. **操作效率**slash command 显式触发 vs Agent 隐式建议的完成时间对比
### 🔗 建议引用的关键文献
- CHI 2016 的渐进式披露实验(有量化数据支持你的设计论点)
- TOCHI 2020 的 mixed-initiative 研究(对应双模触发机制)
- Anthropic 2025 的 Skills Architecture RFC(一手来源)
需要我帮你生成论文的文献综述部分吗?`,
},
],
timestamp: now - 240000,
},
],
}
export const demos: DemoScenario[] = [
{
id: 'a',
label: '场景 A',
description: '基础对话 + System Prompt + Memory',
envelope: demoA,
},
{
id: 'b',
label: '场景 B',
description: '工具调用:请求 → 执行(成功 & 失败)',
envelope: demoB,
},
{
id: 'c',
label: '场景 C',
description: '长文本 + 文档附件 + 多模态',
envelope: demoC,
},
{
id: 'd',
label: '场景 D ⭐',
description: '综合:全部 9 种 Segment',
envelope: demoD,
},
{
id: 'e',
label: '场景 E 🧪',
description: 'Skills 渐进式披露 + Agent 主动触发 /deep-research',
envelope: demoE,
},
]