2.1 再改:讲清它和联网问答的区别
你看不出「免费试看」那里的转折,又追问 Deep Research 和联网问答到底差在哪。改了几版,最后用一开始那段完整需求当研究委托,64 分钟。
按下播放,用 64 秒看完这 64 分钟。
说起来,这一页感觉还是不太好,我没能看出来免费试看那里是一个怎么样子的转折?
是的,现在的画面里,「免费试看」只是被圈出来了,没有讲清它为什么改变了下一步行动。
真正的转折应该是:
要求核心内容免费 → 网页却只承诺试看免费 → 还不能判定符合要求 → 转而查完整课程是否收费。
目前“核对”便签上的“中文 ✓、零基础 ✓、核心免费?”把这个冲突冲淡了,观众还得自己推理“试看”和“完整课程”的区别。
我建议保留已确认的三个工位,只改这两次 Click:
- 发现问题时:在「免费试看」旁贴一句 “试看免费 ≠ 完整课程免费”,核对便签突出 “还不能推荐”。
- 返回搜索时:搜索内容明确变成 “这门课的完整内容收费吗?”,旁边保留原来的
web_search。
这样转折就不只是“又搜索了一次”,而是能看见:刚读到的内容暴露了一个缺口,因此下一步查的问题变了。
对应该想清楚,我们看一下如何改?
我建议把转折落在 “找到候选了,但证据还不足以推荐”,三个工位和环路都保留。
这里也修正一下刚才的说法:「免费试看」不代表完整课程一定收费,只能说明免费范围还没确认。 所以不宜用“≠”直接下结论。
具体改三个 Click:
时刻 画面怎么变 要让观众明白什么 读到课程介绍 保留「中文、零基础、免费试看」 这门课看起来是个候选 发现信息缺口 圈出「试看」,旁注 “只说明试看免费,核心内容呢?”;核对便签突出 “免费范围未确认” 找到课程,还不足以推荐 回去补查 查找区增加 “这门课的核心内容是否免费?”;随后阅读区加入费用说明 新资料改变了接下来要查的问题 “中文 ✓、零基础 ✓”可以保留为次要信息,让“要求核心免费”与“页面只写试看免费”成为这一拍唯一的焦点。
讲到这里停一下:“如果现在就推荐,它漏核对了什么?” 下一次 Click 再沿回环补查。这样观众先看懂为什么要回去,循环才有意义。
我还有一个疑问,这个 deep research 和一般的带网络搜索工具的提问还有什么区别么?
我还有一个疑问,这个 deep research 和一般的带网络搜索工具的提问还有什么区别么?我也想在这页 PPT 里面说清楚?
我先核对官方对 Search 和 Deep Research 的区分,再看这一页怎样补一句,既说清差别,又不抢走“为什么继续补查”这个重点。
干了不到 1 分钟,1 步
打开 1 个网页
打开 help.openai.com/en/articles/10500283-deep-research
text(await tools.web__run({open:[{ref_id:"https://help.openai.com/en/articles/10500283-deep-research"}],response_length:"short"}));Script completed Wall time 2.2 seconds Output: Deep research in ChatGPT | OpenAI Help Center (https://help.openai.com/en/articles/10500283-deep-research) citeturn5view0 [wordlim: 200] Crawled: today; Content type: text/html; Source: open({"ref_id":"https://help.openai.com/en/articles/10500283-deep-research","lineno":null}); Total lines: 139 L0: [Input: Search for articles...] L1: L2: 1. cite0†All Collections L3: 2. cite1†ChatGPT L4 …(中间省略 8951 字)… ttings at any time by clicking the cookie preferences link at the bottom of the page. L137: L138: Reject All Accept All
官方把两者主要区分为“快速查信息”和“多步骤研究”。这也提醒我们:仅仅展示一次补查,还不足以说明 Deep Research 的特点。
干了不到 1 分钟,2 步
打开 2 个网页,运行 1 条命令
打开 platform.openai.com/docs/guides/tools-web-search;运行 cat ~/.codex/skills/.system/openai-docs/SKILL.md
text(await tools.exec_command({cmd:"cat ~/.codex/skills/.system/openai-docs/SKILL.md","max_output_tokens":2200})); text(await tools.web__run({open:[{ref_id:"https://platform.openai.com/docs/guides/tools-web-search"}],response_length:"short"}));Script completed Wall time 2.7 seconds Output: {"chunk_id":"1b4dc5","wall_time_seconds":0.0000045,"exit_code":0,"original_token_count":1362,"output":"---\nname: \"openai-docs\"\ndescription: \"Use for Codex models/pricing, scheduled tasks, skills, settings, setup, troubleshooting, customization, automations, and self-knowledge—including 'you,' 'your,' 'this app,' or 'this coding agent' when they refer to Codex—and for OpenAI APIs/products and Ch …(中间省略 17500 字)… other agent L413: L414: ### Foundations L415: L416: * cite237†Prompting L417: * cite238†Personalize ChatGPT打开 developers.openai.com/api/docs/guides/tools-web-search
text(await tools.web__run({find:[{ref_id:"https://developers.openai.com/api/docs/guides/tools-web-search",pattern:"Agentic search"}],response_length:"short"}));Script completed Wall time 2.4 seconds Output: Web search | OpenAI API (https://developers.openai.com/api/docs/guides/tools-web-search) citeturn7view0 [wordlim: 200] Crawled: today; Content type: text/html; Source: find({"ref_id":"https://developers.openai.com/api/docs/guides/tools-web-search","pattern":"Agentic search"}); Total lines: 3413 L657: ### Blog L658: L659: * cite389†Company blog†openai.com L660: * cite390†Developer blog …(中间省略 12167 字)… he text result in `message.content[0].text` L1038: * Annotations `message.content[0].annotations` for the cited URLs
可以说清楚,而且需要先修正我们这页的暗示:“发现疑问后继续搜索”并不是 Deep Research 独有的能力。 带搜索工具的推理模型,也可以分析结果、决定继续搜索。不能用“搜一次还是多次”“有没有循环”作为两者的分界。OpenAI 官方技术文档
更准确的区别是工作模式和研究投入:
普通联网问答 Deep Research 主要用途 快速查询、回答当前问题 围绕复杂目标开展多步骤研究 过程 可以搜索,也可能继续补查 明确研究计划,持续查阅和综合多份材料 交付 通常是带链接的回答 通常是较完整、带来源的研究报告 这是产品定位上的侧重,能力存在重叠。ChatGPT 的 Deep Research 还提供计划修改、进度查看和研究中途调整等操作。官方说明
放回这页,我建议补一个简短定位,不再增加一套对比图:
联网问答侧重快速解答;Deep Research 侧重围绕目标,持续研究并形成报告。
然后让现有画面承担具体解释:计划 → 多份资料中的核对与补查 → 综合报告。「免费试看」只是其中一次调整研究方向的例子,不承担证明两者差异的任务。
结论仍然落在:Deep Research 让我们看见一种 Agent 的工作方式——根据目标和新信息,持续决定下一步。 同时在讲述中补一句:“普通联网问答也可能采用这种方式。”这样既能解释区别,也不会制造“普通问答一定没有循环”的误解。
OK,继续?
我把刚才确认的两点一起落到这一页:用一句话交代联网问答与 Deep Research 的侧重,再把“试看免费还不足以确认核心内容免费”的转折写清楚,保留三个工位和原有环路。
干了 2 分钟,6 步
运行 2 条命令,其他操作 4 次
运行 rg -n '2.1 Deep|资料桌|免费试看|核心免费|再查:|先找候选|course-conclusion' slides/02.md; rg -n '2.1 Deep|主画面|Click 4|Click 5|免费试看' '/…
text(await tools.exec_command({cmd:"rg -n '2.1 Deep|资料桌|免费试看|核心免费|再查:|先找候选|course-conclusion' slides/02.md; rg -n '2.1 Deep|主画面|Click 4|Click 5|免费试看' '~/Library/Mobile Documents/iCloud~md~obsidian/Documents/Note/Areas/大模型(LLM)/AI 通识课程/课程内容/02 - 从「回答」到「执行」.md'","max_output_tokens":2800}));Script completed Wall time 0.1 seconds Output: {"chunk_id":"75a698","wall_time_seconds":0.000005,"exit_code":0,"original_token_count":1956,"output":"149:<div v-click=\"5\" class=\"lesson-reveal-step course-conclusion absolute left-[70px] right-[70px] top-[578px]\">\n150:<strong class=\"course-conclusion__title\">AI 在处理表格,你还是得来回接手。</strong>\n246:<div v-click=\"4\" class=\"lesson-reveal-step course-conclusion absolute left-[70px] right-[70px] top- …(中间省略 4160 字)… 个确认节点:`越界、删除、运行程序 → 人确认`。\n531:> 使用 4.1 实际排练后保存的 WorkBuddy 任务记录,不使用教学虚构的成功日志。主画面保持为同一个 WorkBuddy 界面,通过 Click 依次聚焦四处。\n"}思考:**Adding a two-line intro**
Adding a two-line intro
运行 cat > /tmp/research-clarity.py <<'PY'
text(await tools.exec_command({cmd:"cat > /tmp/research-clarity.py <<'PY'\nfrom pathlib import Path\nsrc=Path('~/Library/Mobile Documents/iCloud~md~obsidian/Documents/Note/Areas/大模型(LLM)/AI 通识课程/课程内容/02 - 从「回答」到「执行」.md')\ns=src.read_text();a=s.index('### 2.1 ');b=s.index('### 2.2 ',a);t=s[a:b]\nt=t.replace('下面是一段教学示意,不是这项任务的真实运行记录。','联网问答侧重快速解答;Deep Research 侧重围绕目标,持续研究并形成报告。¹ 这是工作模式和研究投入的侧重,不是互斥的能力边界:带搜索工具的推理模型也可能分析结果后继续补查,不能用搜索次数或有没有循环区分两者。[Ope …(中间省略 2788 字)… run slides:build slides/02.md --out /tmp/ai-literacy-21-clarity-build","yield_time_ms":1000,"max_output_tokens":500}));Script completed Wall time 1.2 seconds Output: {"chunk_id":"c866ca","wall_time_seconds":1.000841708,"session_id":44872,"original_token_count":0,"output":""}定位当前演示页
{ "code": "await cua.getState();", "title": "定位当前演示页" }Wall time: 1.8781 seconds Output: ## Computer Use Control native apps and browsers on the user’s computer by reading or operating UI. Prefer purpose-built connectors, APIs, or CLIs when available. - Use `cua_repl` (JavaScript) for all UI actions. - Do not use other technologies besides `cua_repl` for computer interactions, unless specifically requested by the user (e.g. AppleScript, `osascript`, JXA, System Events, CGEvent synthesis). - Prefer …(中间省略 25280 字)… abId":"a98a2989-69c4-4851-ab6f-0f6e2c2f9b34","title":"从「回答」到「执行」 - Slidev","url":"http://localhost:3032/4?clicks=9"}]}]}
检查改后幻灯片
{ "code": "var clarity=await cua.getTab('1',{browser:'1'});", "title": "检查改后幻灯片" }Wall time: 0.8793 seconds Output: # Other Browser APIs For browser tabs, the above API is the most efficient way to complete: - Short tasks - Tasks which lack repetition, regardless of length Other APIs are available in case: - The accessibility API is not working or does not support the capability - The specific task can be completed more efficiently with another API For example, for certain tasks you can build locators with Playwright to b …(中间省略 31064 字)… re Options 52 text 4 / 5 The focused UI element is 0 AXWebArea 从「回答」到「执行」 - Slidev, URL: localhost:3032/4?clicks=9
检查新增说明和转折的布局
{ "code": "await clarity.getScreenshot();", "title": "检查新增说明和转折的布局" }Wall time: 1.2994 seconds Output: [图片]
思考:**Refining box text layout**
Refining box text layout
核对说明区实际边界
{ "code": "nodeRepl.write(await clarity.playwright.evaluate(()=>{let r=[...document.querySelectorAll('.slidev-layout')].find(e=>e.textContent.includes('联网问答侧重快速解答'));return [...r.querySelectorAll('section:first-child > div')].map(e=>({text:e.textContent.slice(0,50),rect:e.getBoundingClientRect().toJSON(),children:[...e.children].map(c=>({text:c.textContent.slice(0,40),rect:c.getBoundingClientRect().toJSON()}))}));}));", "title": "核对说明区实际边界" }Wall time: 0.4659 seconds Output: [ { children: [], rect: { bottom: 345.4375, height: 17.8125, left: 35, right: 310, top: 327.625, width: 275, x: 35, y: 327.625 }, text: '研究委托 · 完整需求' }, { children: [ { rect: { bottom: 621.6875, height: 267.5, left: 35, right: 310, top: 354.1875, width: 275, …(中间省略 791 字)… width: 275, x: 35, y: 354.1875 }, text: '帮我为没有编程基础的同事找 3 门适合入门的中文 AI 课程。要求核心内容免费、目前仍可学习,优先核' } ]
转折现在明确成了“只说明试看免费 → 免费范围未确认 → 补查核心内容是否免费”。左侧也补上了两种模式的定位,并注明联网问答也可能多轮补查,避免把循环说成 Deep Research 独有的能力。
干了不到 1 分钟,4 步
运行 2 条命令,其他操作 2 次
运行 python3 - <<'PY'
text(await tools.exec_command({cmd:"python3 - <<'PY'\nfrom pathlib import Path\np=Path('slides/02.md');s=p.read_text();a=s.index('# 2.1 ');b=s.index('\\n---\\n',a);t=s[a:b].replace('leading-[1.65]','leading-[1.55]').replace('top-[352px]','top-[338px]');p.write_text(s[:a]+t+s[b:])\nPY\npnpm run slides:build slides/02.md --out /tmp/ai-literacy-21-clarity-final","yield_time_ms":1000,"max_output_tokens":500})); text(await tools.write_stdin({session_id:44872,chars:"",yield_time_ms:1000,max_output_tokens:200}));Script completed Wall time 1.2 seconds Output: {"chunk_id":"d3c5a0","wall_time_seconds":1.001031458,"session_id":10349,"original_token_count":17,"output":"$ slidev build slides/02.md --out /tmp/ai-literacy-21-clarity-final\n"} {"chunk_id":"6084d4","wall_time_seconds":0.00000225,"exit_code":0,"original_token_count":3572,"output":"Warning: truncated output (original token count: 3572)\nTotal output lines: 118\n\n$ slidev build slides/02.md --out / …(中间省略 660 字)… ets/modules/vue-FxgGn04Y.js 258.67 kB │ gzip: 96.71 kB\n✓ built in 9.22s\n"}检查开场定位说明
{ "code": "await clarity.goto('http://localhost:3032/4?clicks=0');await clarity.getAXState();", "title": "检查开场定位说明" }Wall time: 1.7514 seconds Output: Browser tab: 1, Title: "从「回答」到「执行」 - Slidev", URL: "http://localhost:3032/4?clicks=0". 1 AXWebArea 从「回答」到「执行」 - Slidev, URL: localhost:3032/4?clicks=0 2 container app 3 container slide-container 4 container slide-content 5 container 6 heading 2.1 Deep Research,已经是一个 Agent 了, Value: 1 7 text 2.1 Deep Research,已经是一个 Agent 了 8 container 9 text 研究委托 · 完整需求 10 container 11 …(中间省略 1653 字)… re Options 53 text 4 / 5 The focused UI element is 1 AXWebArea 从「回答」到「执行」 - Slidev, URL: localhost:3032/4?clicks=0
核对各步揭示及最终内容
{ "code": "await clarity.getScreenshot();for(var c=1;c<=9;c++){await clarity.pressKey('Right');await clarity.getAXState({emit:false});await clarity.getScreenshot();}", "title": "核对各步揭示及最终内容" }Wall time: 10.7729 seconds Output: [图片] [图片] [图片] [图片] [图片] [图片] [图片] [图片] [图片] [图片]
运行 git diff --check -- slides/02.md 'course/课程内容/02 - 从「回答」到「执行」.md'
text(await tools.write_stdin({session_id:10349,chars:"",yield_time_ms:1000,max_output_tokens:300})); text(await tools.exec_command({cmd:"git diff --check -- slides/02.md 'course/课程内容/02 - 从「回答」到「执行」.md'\ncmp 'course/课程内容/02 - 从「回答」到「执行」.md' '~/Library/Mobile Documents/iCloud~md~obsidian/Documents/Note/Areas/大模型(LLM)/AI 通识课程/课程内容/02 - 从「回答」到「执行」.md'","max_output_tokens":300}));Script completed Wall time 0.3 seconds Output: {"chunk_id":"f9b75b","wall_time_seconds":0.000001917,"exit_code":0,"original_token_count":3555,"output":"Warning: truncated output (original token count: 3555)\nTotal output lines: 117\n\n\n\n ●■▲\n Slidev v51.8.2 \n\n theme @slidev/theme-seriph\n css engine unocss\n entry ~/code/ai-literacy-series/slides/02.md\nvite v6.4.3 building for production...\n\n(!) outDir /tmp/ai-literacy …(中间省略 988 字)… t in 14.85s\n"} {"chunk_id":"5b798d","wall_time_seconds":0.080893416,"exit_code":0,"original_token_count":0,"output":""}
- 补上联网问答与 Deep Research 的侧重,注明两者都可能多轮补查。
- 明确转折:只说明试看免费 → 免费范围未确认 → 补查核心内容是否免费。
三个工位和环路保留,全部 Click 与构建检查通过。
有一个事情可能需要调整一下,现在这个完整需求,是一个很好的 prompt 啦,但是一开始就直接将这个 完整的 prompt 放出来,主要是这个 prompt 涉及好多细节,人类阅读不友好
而且 deep research 一般会在一开始先反问用户吧?先获清楚足够的需求再开始进行?
看看如何优化?
我先核对 Deep Research 开始前澄清需求的方式,再调整这一页的开场顺序。完整 Prompt 可以保留,但不必让观众第一眼就读完所有条件。
干了不到 1 分钟,1 步
打开 1 个网页
打开 help.openai.com/en/articles/10500283-deep-research
text(await tools.web__run({open:[{ref_id:"https://help.openai.com/en/articles/10500283-deep-research"}],response_length:"short"}));Script completed Wall time 3.9 seconds Output: Deep research in ChatGPT | OpenAI Help Center (https://help.openai.com/en/articles/10500283-deep-research) citeturn8view0 [wordlim: 200] Crawled: today; Content type: text/html; Source: open({"ref_id":"https://help.openai.com/en/articles/10500283-deep-research","lineno":null}); Total lines: 139 L0: [Input: Search for articles...] L1: L2: 1. cite0†All Collections L3: 2. cite1†ChatGPT L4 …(中间省略 8951 字)… ttings at any time by clicking the cookie preferences link at the bottom of the page. L137: L138: Reject All Accept All
建议把开场改成 “一句朴素需求 → 澄清关键条件 → 形成研究委托”。现在的问题是把沟通后的完整需求,放到了沟通之前。
Deep Research 可能在研究前提问澄清目标,也会提供可查看、修改的研究计划;并非每次必定反问,也不能保证它总能问全。官方说明
这一页可以这样展开,保留左右两列:
步骤 左侧怎么展示 初始 只有一句用户的话:“帮我给同事推荐 3 门 AI 入门课。” Click 1 出现 AI 的追问:“同事有编程基础吗?课程语言和预算有什么要求?” Click 2 出现用户回答:“没有编程基础,要中文,核心内容免费。” Click 3 对话整理成一张“确认后的研究委托”,再补上研究计划与交付要求,随后进入右侧研究过程 完整信息仍保留,但最后的委托书按三组呈现,便于扫读:
- 给谁选:零编程基础同事,3 门中文 AI 入门课。
- 核对什么:核心内容免费、目前可学,优先查官网。
- 交付什么:比较人群、内容、时长与练习,附来源,未知单列。
其中“如何比较、怎样附来源”可以作为 AI 提出的计划,供用户确认,不用假装用户一开始就想好了所有细节。
这样还有一个直接好处:“核心内容免费”是观众刚刚看见用户亲口提出的条件。后面读到“免费试看”,他们更容易意识到:这还没有回答用户的要求。
联网问答与 Deep Research 的区别说明,建议移到最后报告出现时再展示,让开场只承担“把需求说清楚”这一件事。
试试?一定要注意,突出重点,最终的整页 PPT 一定不能失焦了
我会把开场拆成简短的需求对话,再收成固定的研究委托。最终画面只突出“免费要求未被证实,因此继续补查”,其余条件和模式说明保持次要层级。
干了不到 1 分钟,1 步
运行 1 条命令
运行 sed -n '295,415p' slides/02.md
text(await tools.exec_command({cmd:"sed -n '295,415p' slides/02.md","max_output_tokens":7200}));Script completed Wall time 0.1 seconds Output: {"chunk_id":"0cb052","wall_time_seconds":0.000004833,"exit_code":0,"original_token_count":3223,"output":"---\nlayout: default\ntitle: Deep Research,已经是一个 Agent 了\nclicks: 9\n---\n\n# 2.1 Deep Research,已经是一个 Agent 了\n\n<div class=\"absolute left-[56px] right-[56px] top-[113px] grid grid-cols-[440px_696px] gap-[32px]\">\n<section>\n<div class=\"mb-[14px] text-[19px] font-semibold text-[#5D8493]\">研究委托 …(中间省略 10302 字)… span>\n</div>\n\n<div class=\"absolute left-[70px] top-[109px] grid w-[1140px] grid-cols-[480px_580px] gap-[80px]\">\n"}思考:**Implementing dialogue layout**
Implementing dialogue layout
开场只呈现一轮追问,确认后把对话收成三组条件,避免聊天记录和研究过程同时抢注意力。联网问答与 Deep Research 的区别,会等报告出现时再补充。
干了不到 1 分钟,6 步
运行 1 条命令,其他操作 5 次
运行 cat > /tmp/research-opening.py <<'PY'
text(await tools.exec_command({cmd:"cat > /tmp/research-opening.py <<'PY'\nfrom pathlib import Path\nimport re\nsrc=Path('~/Library/Mobile Documents/iCloud~md~obsidian/Documents/Note/Areas/大模型(LLM)/AI 通识课程/课程内容/02 - 从「回答」到「执行」.md')\ns=src.read_text();a=s.index('### 2.1 ');b=s.index('### 2.2 ',a);t=s[a:b]\nx=t.index('先看一个研究任务。');y=t.index('它先提出研究计划:',x)\nt=t[:x]+'''先看一个研究任务。[ChatGPT Deep Research](https://help.openai.com/en/articles/10500283-deep- …(中间省略 6082 字)… un slides:build slides/02.md --out /tmp/ai-literacy-21-dialogue-build","yield_time_ms":1000,"max_output_tokens":500}));Script completed Wall time 1.2 seconds Output: {"chunk_id":"bd922e","wall_time_seconds":1.000950208,"session_id":59166,"original_token_count":0,"output":""}检查简短需求对话
{ "code": "await clarity.goto('http://localhost:3032/4?clicks=2');await clarity.getAXStateAndScreenshot();", "title": "检查简短需求对话" }Wall time: 2.3613 seconds Output: Browser tab: 1, Title: "从「回答」到「执行」 - Slidev", URL: "http://localhost:3032/4?clicks=2". 0 AXWebArea 从「回答」到「执行」 - Slidev, URL: localhost:3032/4?clicks=2 1 container app 2 container slide-container 3 container slide-content 4 container 5 heading 2.1 Deep Research,已经是一个 Agent 了, Value: 1 6 text 2.1 Deep Research,已经是一个 Agent 了 7 container 8 text 先把需求说清楚 9 container 10 text …(中间省略 2046 字)… tions 70 text 4 / 5 The focused UI element is 0 AXWebArea 从「回答」到「执行」 - Slidev, URL: localhost:3032/4?clicks=2 [图片]
检查对话收成研究委托
{ "code": "await clarity.pressKey('Right');await clarity.getAXStateAndScreenshot();", "title": "检查对话收成研究委托" }Wall time: 1.1647 seconds Output: Browser tab: 1, Title: "从「回答」到「执行」 - Slidev", URL: "http://localhost:3032/4?clicks=3". The following is a diff from the previous accessibility tree with ~ and + representing changed and added elements, respectively. Removed elements are summarized by ID range. Removed element IDs: 8-21 ~0 AXWebArea 从「回答」到「执行」 - Slidev, URL: localhost:3032/4?clicks=3 + 71 text 确认后的研究委托 The focused UI element is 0 AXWebArea 从「回答」到「执行」 - Slidev, URL: localhost:3032/4?clicks=3 [图片]
检查研究过程与最终视觉重点
{ "code": "for(var n=4;n<=11;n++){await clarity.pressKey('Right');await clarity.getAXState({emit:false});await clarity.getScreenshot();}", "title": "检查研究过程与最终视觉重点" }Wall time: 11.4741 seconds Output: [图片] [图片] [图片] [图片] [图片] [图片] [图片] [图片]
独立核对最终排版
{ "code": "var openingCheck=await cua.createBrowserTab('iab','http://localhost:3032/4?clicks=11',{visible:false});", "title": "独立核对最终排版" }Wall time: 3.2018 seconds Output: Browser tab: 2, Title: "从「回答」到「执行」 - Slidev", URL: "http://localhost:3032/4?clicks=11". 0 AXWebArea 从「回答」到「执行」 - Slidev, URL: localhost:3032/4?clicks=11 The focused UI element is 0 AXWebArea 从「回答」到「执行」 - Slidev, URL: localhost:3032/4?clicks=11
检查最终画面重点与留白
{ "code": "await openingCheck.getAXStateAndScreenshot();", "title": "检查最终画面重点与留白" }Wall time: 0.5723 seconds Output: Browser tab: 2, Title: "从「回答」到「执行」 - Slidev", URL: "http://localhost:3032/4?clicks=11". 0 AXWebArea 从「回答」到「执行」 - Slidev, URL: localhost:3032/4?clicks=11 1 container app 2 container slide-container 3 container slide-content 4 container 5 heading 2.1 Deep Research,已经是一个 Agent 了, Value: 1 6 text 2.1 Deep Research,已经是一个 Agent 了 7 container 8 text 确认后的研究委托 9 container 10 te …(中间省略 1736 字)… ions 57 text 4 / 5 The focused UI element is 0 AXWebArea 从「回答」到「执行」 - Slidev, URL: localhost:3032/4?clicks=11 [图片]
最终画面已经收住了:左侧只留下三组研究条件,聊天记录退出;右侧保留资料和环路,重点仍是“试看免费”与“核心内容免费”之间的证据缺口。现在检查回退能否准确恢复开场。
干了不到 1 分钟,4 步
运行 2 条命令,其他操作 2 次
核对回退、开场与关键转折
{ "code": "for(var backStep=10;backStep>=0;backStep--){await openingCheck.pressKey('Left');await openingCheck.getAXState({emit:false});nodeRepl.write(await openingCheck.playwright.evaluate(()=>location.href));if(backStep<4||backStep===10||backStep===6)await openingCheck.getScreenshot();}", "title": "核对回退、开场与关键转折" }Wall time: 5.9877 seconds Output: http://localhost:3032/4?clicks=10http://localhost:3032/4?clicks=9http://localhost:3032/4?clicks=8http://localhost:3032/4?clicks=7http://localhost:3032/4?clicks=6http://localhost:3032/4?clicks=5http://localhost:3032/4?clicks=4http://localhost:3032/4?clicks=3http://localhost:3032/4?clicks=2http://localhost:3032/4?clicks=1http://localhost:3032/4 [图片] [图片] [图片] [图片] [图片] [图片]
运行 git diff --check -- slides/02.md 'course/课程内容/02 - 从「回答」到「执行」.md'
text(await tools.write_stdin({session_id:59166,chars:"",yield_time_ms:1000,max_output_tokens:300})); text(await tools.exec_command({cmd:"git diff --check -- slides/02.md 'course/课程内容/02 - 从「回答」到「执行」.md'\ncmp 'course/课程内容/02 - 从「回答」到「执行」.md' '~/Library/Mobile Documents/iCloud~md~obsidian/Documents/Note/Areas/大模型(LLM)/AI 通识课程/课程内容/02 - 从「回答」到「执行」.md'","max_output_tokens":300}));Script completed Wall time 0.3 seconds Output: {"chunk_id":"409b84","wall_time_seconds":0.000004958,"exit_code":0,"original_token_count":3597,"output":"Warning: truncated output (original token count: 3597)\nTotal output lines: 118\n\n$ slidev build slides/02.md --out /tmp/ai-literacy-21-dialogue-build\n\n\n ●■▲\n Slidev v51.8.2 \n\n theme @slidev/theme-seriph\n css engine unocss\n entry ~/code/ai-literacy-series/slides/02.md\ …(中间省略 1156 字)… uments/iCloud~md~obsidian/Documents/Note/Areas/大模型(LLM)/AI 通识课程/课程内容/02 - 从「回答」到「执行」.md differ: char 36509, line 362\n"}运行 python3 - <<'PY'
text(await tools.exec_command({cmd:"python3 - <<'PY'\nfrom pathlib import Path\nsource=Path('~/Library/Mobile Documents/iCloud~md~obsidian/Documents/Note/Areas/大模型(LLM)/AI 通识课程/课程内容/02 - 从「回答」到「执行」.md').read_text()\nmirror=Path('course/课程内容/02 - 从「回答」到「执行」.md').read_text()\ndef part(s):return s[s.index('### 2.1 '):s.index('### 2.2 ')]\nassert part(source)==part(mirror)\nprint('2.1 source and mirror match; later sections have concurrent edits.')\nPY","max_output_tokens":300}));Script completed Wall time 0.2 seconds Output: {"chunk_id":"f60074","wall_time_seconds":0.057751958,"exit_code":0,"original_token_count":17,"output":"2.1 source and mirror match; later sections have concurrent edits.\n"}回到新开场供演示
{ "code": "await clarity.goto('http://localhost:3032/4?clicks=0');await clarity.getAXState();await openingCheck.close();", "title": "回到新开场供演示" }Wall time: 0.8656 seconds Output: Browser tab: 1, Title: "从「回答」到「执行」 - Slidev", URL: "http://localhost:3032/4?clicks=0". 1 AXWebArea 从「回答」到「执行」 - Slidev, URL: localhost:3032/4?clicks=0 The focused UI element is 1 AXWebArea 从「回答」到「执行」 - Slidev, URL: localhost:3032/4?clicks=0
已回到新开场:一句需求 → AI 追问 → 用户补充 → 收成研究委托。
最终不堆叠聊天记录,重点仍是 “免费范围未确认,因此继续补查”。模式区别随报告出现,保持次要层级。
点击、回退和构建检查通过。
联网问答与 Deep Research 的区别 你之前这个描述根本就没说清楚,太笼统了
对,“快速解答/持续研究”只说了倾向,没有告诉观众,使用时到底有什么不同。
更具体地说:联网搜索是一项能力,Deep Research 是围绕研究任务组织起来的一套工作流程。 两者并不是互斥的类别。
以这次选课为例:
看什么 普通联网问答 Deep Research 开始前 提问后进入回答过程,也可能澄清需求 可以先澄清要求,提出供你查看、修改的研究计划 进行中 可以搜索、阅读,也可能继续补查 将多步骤研究作为一个任务运行,你可以查看进度、中途调整方向 交付时 给出回答和来源链接 汇总多份材料,形成结构化报告,提供来源和研究活动记录 这些是 ChatGPT 两种模式的产品设计侧重,不保证 Deep Research 一定更准确,也不意味着普通问答做不到同样的研究。官方说明
这一页不应该再塞一句笼统对比,而应借现有三个物件把差别标实:
- 计划便签旁:研究前,可以修改计划
- 研究环路旁:研究中,可以查看进度、调整方向
- 报告旁:研究后,可以核查来源与研究记录
最后留一句边界:搜索、补查和循环都不是 Deep Research 独有;它把这些能力组织成了一个可跟踪的研究任务。
这样观众看到的是具体的工作方式,而不是“搜得更久、写得更长”。
你现在这一页 PTT 的字体样式太多,这就让人看起来乱糟糟了,请重新用《写给大家的设计书》里面的原则重新 review 一下
我按《写给大家的设计书》的亲密性、对齐、重复、对比四个原则重新看这一页,重点检查字体变化是否真的承担信息层级。先给出评审和收敛方案,不改文件。
干了不到 1 分钟,4 步
运行 1 条命令,其他操作 3 次
运行 sed -n '295,418p' slides/02.md; sed -n '92,156p' slides/DESIGN.md
text(await tools.exec_command({cmd:"sed -n '295,418p' slides/02.md; sed -n '92,156p' slides/DESIGN.md","max_output_tokens":6200}));Script completed Wall time 0.1 seconds Output: {"chunk_id":"893d6a","wall_time_seconds":0.000003,"exit_code":0,"original_token_count":5171,"output":"---\nlayout: default\ntitle: Deep Research,已经是一个 Agent 了\nclicks: 11\n---\n\n# 2.1 Deep Research,已经是一个 Agent 了\n\n<div class=\"absolute left-[56px] right-[56px] top-[113px] grid grid-cols-[440px_696px] gap-[32px]\">\n<section>\n<div class=\"mb-[14px] text-[19px] font-semibold text-[#5D8493]\">{{ $cl …(中间省略 13906 字)… 置。这一步只完成读题到分析的衔接,后续点击再展开回答或材料。移动后的文字完整保留,在投影中仍可读;长任务可以换行,不通过删减关键条件、截断或过度缩小来腾出空间。其他元素不被推动,问题在之后的步骤中保持固定,回退点击时能恢复开场状态。\n"}评审当前步骤的字体层级
{ "code": "await clarity.getAXStateAndScreenshot();", "title": "评审当前步骤的字体层级" }Wall time: 0.4097 seconds Output: Browser tab: 1, Title: "从「回答」到「执行」 - Slidev", URL: "http://localhost:3032/4?clicks=11". 0 AXWebArea 从「回答」到「执行」 - Slidev, URL: localhost:3032/4?clicks=11 1 container app 2 container slide-container 3 container slide-content 4 container 5 heading 2.1 Deep Research,已经是一个 Agent 了, Value: 1 6 text 2.1 Deep Research,已经是一个 Agent 了 7 container 8 text 确认后的研究委托 9 container 10 te …(中间省略 1736 字)… ions 57 text 4 / 6 The focused UI element is 0 AXWebArea 从「回答」到「执行」 - Slidev, URL: localhost:3032/4?clicks=11 [图片]
核实字号和强调样式的数量
{ "code": "nodeRepl.write(await clarity.playwright.evaluate(()=>{const r=[...document.querySelectorAll('.slidev-layout')].find(e=>e.querySelector('h1')?.textContent.includes('2.1 Deep Research'));const arr=[...r.querySelectorAll('section text,section div,section strong,section a,section span')].filter(e=>[...e.childNodes].some(n=>n.nodeType===3&&n.textContent.trim())&&!e.closest('.slidev-vclick-hidden'));return {sizes:[...new Set(arr.map(e=>get …(中间省略 278 字)… '交付什么','查找','课程推荐报告','来源','待确认项','免费范围未确认','核心内容是否免费?','带着新资料再核对'].includes(e.text))};}));", "title": "核实字号和强调样式的数量" }Wall time: 0.1402 seconds Output: TypeError: parseFloat is not a function at <anonymous>:2686:460 at Array.sort (<anonymous>) at __playwrightEvaluate (<anonymous>:2686:448) at <anonymous>:2687:14 at runUserScript (<anonymous>:2688:10) at <anonymous>:2692:10 at <anonymous>:2693:3读取实际字号与强调分布
{ "code": "nodeRepl.write(await clarity.playwright.evaluate(()=>{const r=[...document.querySelectorAll('.slidev-layout')].find(e=>e.querySelector('h1')?.textContent.includes('2.1 Deep Research'));const arr=[...r.querySelectorAll('section text,section div,section strong,section a,section span')].filter(e=>[...e.childNodes].some(n=>n.nodeType===3&&n.textContent.trim())&&!e.closest('.slidev-vclick-hidden'));return {sizes:[...new Set(arr.map(e=>get …(中间省略 236 字)… ,'交付什么','查找','课程推荐报告','来源','待确认项','免费范围未确认','核心内容是否免费?','带着新资料再核对'].includes(e.text))};}));", "title": "读取实际字号与强调分布" }Wall time: 0.0888 seconds Output: { samples: [ { color: 'rgb(93, 132, 147)', size: '15px', text: '给谁选', weight: '400' }, { color: 'rgb(93, 132, 147)', size: '15px', text: '交付什么', weight: '400' }, { color: 'rgb(78, 95, 108)', size: '23px', text: '查找', weight: '600' }, { color: 'rgb(78, 95, 108)', size: '18px', text: 'web_search', …(中间省略 786 字)… ], sizes: [ '19px', '15px', '22px', '20px', '17px', '14px', '18px', '23px', '16px', '12px' ] }
看了最终画面和实际样式,这一页的重复与对比没有做好。我之前不断给新增内容单独设样式,造成了现在的碎乱。
正文区目前有 10 档字号:12、14、15、16、17、18、19、20、22、23px,还不包括页标题、结论和脚注。许多差别只有 1px,观众感受到变化,却看不出变化代表什么。
按四个原则评审:
原则 当前问题 应怎样收敛 重复 同属说明文字,却用了多档字号;工具名又单独加粗、着色 相同角色用同一套样式,取消逐项定制 对比 工具名、材料标题、补查问题、核对结果都在强调,争夺注意力 主体重点留给“免费要求 → 证据不足 → 补查”;工具名降为普通标注 亲密性 模式区别放在委托书里,容易被理解为需求的一部分;“带着新资料再核对”游离在物件之间 说明贴近所属对象,模式区别与用户需求明确分组 对齐 外部两列成立,但物件内部的标题、正文、说明各自起线;“查找/阅读”标题与工具名也没共用文字起线 每个物件内部统一左边距,工位统一标题、工具名和材料的对齐关系 建议保留图形与内容,把正文排版限定为三档。这是针对本页的方案,不是书中的硬性字号规定:
- 24px:三个工位标题、关键判断。
- 20px:需求、材料正文、对话,统一常规字重。
- 16px:工具名、角色标签、来源属性与辅助说明。
中文沿用同一字体;英文工具名保留等宽字体,但不再同时加粗、着色。正文统一深灰,辅助文字统一次灰。橙色集中标记免费条件及其证据缺口,当前步骤沿环路强调。页标题、结论、脚注继续遵循全局规范。
还要改掉一个做法:不能靠缩小字号把文字塞进物件。 字号统一后,装不下的地方应调整物件尺寸、换行和间距。
最终验收看的是:缩小整页后,先看见研究过程和关键转折;靠近阅读时,完整条件仍然清楚。资料桌的物件已经足以区分内容,不需要再让每段文字各穿一套衣服。
本轮只完成评审,未修改文件。
结合上面的联网问答与 Deep Research 的区别,再改一版吧?
我把这两项一起改:统一正文的字号、字重和颜色,并把 Deep Research 的区别分别放到计划、研究过程、报告旁边。最终仍以“免费范围未确认,因此继续补查”为主线。
干了 2 分钟,6 步
运行 3 条命令,其他操作 3 次
运行 sed -n '295,408p' slides/02.md; rg -n '主画面|Click 10|联网问答侧重' '~/Library/Mobile Documents/iCloud~md~obsi…
text(await tools.exec_command({cmd:"sed -n '295,408p' slides/02.md; rg -n '主画面|Click 10|联网问答侧重' '~/Library/Mobile Documents/iCloud~md~obsidian/Documents/Note/Areas/大模型(LLM)/AI 通识课程/课程内容/02 - 从「回答」到「执行」.md'; rg -n 'svg.*text|text.*fill|font-family' slides/styles/index.css","max_output_tokens":7600}));Script completed Wall time 0.2 seconds Output: {"chunk_id":"b6d48e","wall_time_seconds":0.000005625,"exit_code":0,"original_token_count":4063,"output":"---\nlayout: default\ntitle: Deep Research,已经是一个 Agent 了\nclicks: 11\n---\n\n# 2.1 Deep Research,已经是一个 Agent 了\n\n<div class=\"absolute left-[56px] right-[56px] top-[113px] grid grid-cols-[440px_696px] gap-[32px]\">\n<section>\n<div class=\"mb-[14px] text-[19px] font-semibold text-[#5D8493]\">{{ …(中间省略 12475 字)… 40px; font-family: Georgia, serif; font-size: 56px; font-weight: 400; line-height: 1; color: var(--course-title); }\n"}思考:**Refining comparison layout**
Refining comparison layout
运行 cat > /tmp/research-type-system.py <<'PY'
text(await tools.exec_command({cmd:"cat > /tmp/research-type-system.py <<'PY'\nfrom pathlib import Path\nimport re\nsrc=Path('~/Library/Mobile Documents/iCloud~md~obsidian/Documents/Note/Areas/大模型(LLM)/AI 通识课程/课程内容/02 - 从「回答」到「执行」.md')\ns=src.read_text();a=s.index('### 2.1 ');b=s.index('### 2.2 ',a);t=s[a:b]\nt=t.replace('联网问答侧重快速解答;Deep Research 侧重围绕目标,持续研究并形成报告。¹ 这是工作模式和研究投入的侧重,不是互斥的能力边界:联网问答也可能多轮补查,不能用搜索次数或有没有循环区分两者。','联网搜索提供查资料的能力;Deep Resear …(中间省略 6504 字)… pm run slides:build slides/02.md --out /tmp/ai-literacy-21-type-build","yield_time_ms":1000,"max_output_tokens":500}));Script completed Wall time 1.2 seconds Output: {"chunk_id":"e22396","wall_time_seconds":1.034576292,"session_id":10325,"original_token_count":0,"output":""}检查统一排版后的最终画面
{ "code": "await clarity.getAXStateAndScreenshot();", "title": "检查统一排版后的最终画面" }Wall time: 0.3781 seconds Output: Browser tab: 1, Title: "从「回答」到「执行」 - Slidev", URL: "http://localhost:3032/4?clicks=11". 0 AXWebArea 从「回答」到「执行」 - Slidev, URL: localhost:3032/4?clicks=11 1 container app 2 container slide-container 3 container slide-content 4 container 5 heading 2.1 Deep Research,已经是一个 Agent 了, Value: 1 6 text 2.1 Deep Research,已经是一个 Agent 了 7 container 8 text 确认后的研究委托 9 container 10 te …(中间省略 1712 字)… ions 56 text 4 / 6 The focused UI element is 0 AXWebArea 从「回答」到「执行」 - Slidev, URL: localhost:3032/4?clicks=11 [图片]
刷新样式后检查位置
{ "code": "await clarity.reload();await clarity.getAXState();", "title": "刷新样式后检查位置" }Wall time: 2.6677 seconds Output: Browser tab: 1, Title: "从「回答」到「执行」 - Slidev", URL: "http://localhost:3032/4?clicks=11". 1 AXWebArea 从「回答」到「执行」 - Slidev, URL: localhost:3032/4?clicks=11 The focused UI element is 1 AXWebArea 从「回答」到「执行」 - Slidev, URL: localhost:3032/4?clicks=11
运行 sed -n '309,327p' slides/02.md
text(await tools.exec_command({cmd:"sed -n '309,327p' slides/02.md","max_output_tokens":1800})); text(await tools.write_stdin({session_id:10325,chars:"",yield_time_ms:1000,max_output_tokens:300}));Script completed Wall time 5.2 seconds Output: {"chunk_id":"a4e856","wall_time_seconds":0.000006916,"exit_code":0,"original_token_count":995,"output":"<div v-click=\"1\" class=\"lesson-reveal-step absolute left-[20px] right-0 top-[157px] rounded-[10px] bg-[#F3F3EF] px-[24px] py-[16px]\"><div class=\"mb-[7px] text-[16px] text-[#5D6870]\">Deep Research · 澄清需求</div><div class=\"text-[20px] leading-[1.4]\">同事有编程基础吗?<br>课程语言和预算有什么要求?</div></div>\n<di …(中间省略 3933 字)… (Use `node --trace-warnings ...` to show where the warning was created)\ntransforming...\n✓ 424 modules transformed.\n"}复核最终三档文字层级
{ "code": "await clarity.getAXStateAndScreenshot();", "title": "复核最终三档文字层级" }Wall time: 0.5826 seconds Output: Browser tab: 1, Title: "从「回答」到「执行」 - Slidev", URL: "http://localhost:3032/4?clicks=11". 1 AXWebArea 从「回答」到「执行」 - Slidev, URL: localhost:3032/4?clicks=11 2 container app 3 container slide-container 4 container slide-content 5 container 6 heading 2.1 Deep Research,已经是一个 Agent 了, Value: 1 7 text 2.1 Deep Research,已经是一个 Agent 了 8 container 9 text 确认后的研究委托 10 container 11 t …(中间省略 1713 字)… ions 57 text 4 / 6 The focused UI element is 1 AXWebArea 从「回答」到「执行」 - Slidev, URL: localhost:3032/4?clicks=11 [图片]
字号已收敛到 24、20、16px 三档,工具名不再加粗或使用强调色。区别说明也变成了三个具体操作:研究前改计划、研究中看进度并调整方向、研究后核查来源与记录;它们分别贴近对应物件。
干了 1 分钟,5 步
运行 1 条命令,其他操作 4 次
检查完整演示节奏
{ "code": "var typeCheck=await cua.createBrowserTab('iab','http://localhost:3032/4?clicks=0',{visible:false});", "title": "检查完整演示节奏" }Wall time: 1.6584 seconds Output: Browser tab: 3, Title: "从「回答」到「执行」 - Slidev", URL: "http://localhost:3032/4?clicks=0". 0 AXWebArea 从「回答」到「执行」 - Slidev, URL: localhost:3032/4?clicks=0 The focused UI element is 0 AXWebArea 从「回答」到「执行」 - Slidev, URL: localhost:3032/4?clicks=0
运行 git diff --check -- slides/02.md 'course/课程内容/02 - 从「回答」到「执行」.md'
text(await tools.write_stdin({session_id:10325,chars:"",yield_time_ms:1000,max_output_tokens:300})); text(await tools.exec_command({cmd:"git diff --check -- slides/02.md 'course/课程内容/02 - 从「回答」到「执行」.md'\npython3 - <<'PY'\nfrom pathlib import Path\nimport re\ns=Path('slides/02.md').read_text().split('# 2.1 ',1)[1].split('\\n---\\n',1)[0].split('<div v-click=\"11\"')[0]\nprint('Body font sizes:',sorted(set(re.findall(r'(?:font-size:|text-\\[)(\\d+) …(中间省略 216 字)… ('### 2.1 '):x.index('### 2.2 ')]\nassert f(a)==f(b)\nprint('2.1 source/mirror match')\nPY","max_output_tokens":500}));Script completed Wall time 0.3 seconds Output: {"chunk_id":"88a548","wall_time_seconds":0.000002458,"exit_code":0,"original_token_count":3382,"output":"Warning: truncated output (original token count: 3382)\nTotal output lines: 101\n\nrendering chunks...\ncomputing gzip size...\n../../../../../tmp/ai-literacy-21-type-build/index.html 0.90 kB │ gzip: 0.47 kB\n../../../../../tmp/ai …(中间省略 1058 字)… 16584,"exit_code":0,"original_token_count":15,"output":"Body font sizes: ['16', '20', '24']\n2.1 source/mirror match\n"}验证每一步字体与布局
{ "code": "await typeCheck.getAXStateAndScreenshot();for(var st=1;st<=11;st++){await typeCheck.pressKey('Right');await typeCheck.getAXState({emit:false});await typeCheck.getScreenshot();}", "title": "验证每一步字体与布局" }Wall time: 6.7899 seconds Output: Browser tab: 3, Title: "从「回答」到「执行」 - Slidev", URL: "http://localhost:3032/4?clicks=0". 0 AXWebArea 从「回答」到「执行」 - Slidev, URL: localhost:3032/4?clicks=0 1 container app 2 container slide-container 3 container slide-content 4 container 5 heading 2.1 Deep Research,已经是一个 Agent 了, Value: 1 6 text 2.1 Deep Research,已经是一个 Agent 了 7 container 8 text 先把需求说清楚 9 container 10 text …(中间省略 2075 字)… XWebArea 从「回答」到「执行」 - Slidev, URL: localhost:3032/4?clicks=0 [图片] [图片] [图片] [图片] [图片] [图片] [图片] [图片] [图片] [图片] [图片] [图片]
思考:**Checking final footer fit**
Checking final footer fit
确认三档字号并结束检查
{ "code": "nodeRepl.write(await typeCheck.playwright.evaluate(()=>{const r=[...document.querySelectorAll('.slidev-layout')].find(e=>e.querySelector('h1')?.textContent.includes('2.1 Deep Research'));const els=[...r.querySelectorAll('section text, section div, section span, section a, section strong')].filter(e=>[...e.childNodes].some(n=>n.nodeType===3&&n.textContent.trim())&&!e.closest('.slidev-vclick-hidden'));return {bodySizes:[...new Set(els. …(中间省略 109 字)… ludes('示意报告')).map(e=>({text:e.textContent,box:e.getBBox()}))};}));await typeCheck.close();", "title": "确认三档字号并结束检查" }Wall time: 0.8714 seconds Output: TypeError: Cannot read properties of undefined (reading 'querySelectorAll') at __playwrightEvaluate (<anonymous>:2686:183) at <anonymous>:2687:14 at runUserScript (<anonymous>:2688:10) at <anonymous>:2692:10 at <anonymous>:2693:3关闭临时检查页
{ "code": "await typeCheck.close();", "title": "关闭临时检查页" }Wall time: 0.3663 seconds Output:
- 正文统一为 24/20/16px,减少加粗和颜色变化。
- 区别落实为:研究前改计划、研究中跟踪调整、研究后核查来源与记录。
- 主体仍突出“免费范围未确认 → 继续补查”,完整需求和环路保留。
全部 Click 与构建检查通过。
可以。开场的简短对话保留,确认后直接呈现最初的完整 Prompt,去掉“给谁选/核对什么/交付什么”小标题,统一正文样式,只强调“核心内容免费”。
干了 2 分钟,9 步
运行 6 条命令,运行 1 段代码,其他操作 2 次
运行 sed -n '301,330p' slides/02.md; rg -n '三组|给谁选|分组保留|完整委托按' '~/Library/Mobile Documents/iCloud~md~obsidi…
text(await tools.exec_command({cmd:"sed -n '301,330p' slides/02.md; rg -n '三组|给谁选|分组保留|完整委托按' '~/Library/Mobile Documents/iCloud~md~obsidian/Documents/Note/Areas/大模型(LLM)/AI 通识课程/课程内容/02 - 从「回答」到「执行」.md'","max_output_tokens":2400}));Script completed Wall time 0.1 seconds Output: {"chunk_id":"759417","wall_time_seconds":0.000006875,"exit_code":1,"original_token_count":1210,"output":"# 2.1 Deep Research,已经是一个 Agent 了\n\n<div class=\"absolute left-[56px] right-[56px] top-[113px] grid grid-cols-[440px_696px] gap-[32px]\">\n<section>\n<div class=\"mb-[14px] text-[20px] text-[#354552]\">{{ $clicks < 3 ? '先把需求说清楚' : '确认后的研究委托' }}</div>\n<div class=\"relative h-[428px]\">\n<div v-i …(中间省略 4040 字)… = 5 || $clicks === 8 ? '#C85F3C' : '#B6C3CA'\" stroke-width=\"2.5\" marker-end=\"url(#research-desk-arrow)\"></path>\n"}运行 rg -n -A45 '### 2.1' '~/Library/Mobile Documents/iCloud~md~obsidian/Documents/Note/Areas/大模型(LLM)/AI 通…
text(await tools.exec_command({cmd:"rg -n -A45 '### 2.1' '~/Library/Mobile Documents/iCloud~md~obsidian/Documents/Note/Areas/大模型(LLM)/AI 通识课程/课程内容/02 - 从「回答」到「执行」.md'; rg -n '给谁选|三组|确认后的研究委托' course slides/02.md","max_output_tokens":1700}));Script completed Wall time 0.2 seconds Output: {"chunk_id":"2f31fd","wall_time_seconds":0.000008875,"exit_code":0,"original_token_count":597,"output":"slides/02.md:305:<div class=\"mb-[14px] text-[20px] text-[#354552]\">{{ $clicks < 3 ? '先把需求说清楚' : '确认后的研究委托' }}</div>\nslides/02.md:314:<div class=\"absolute left-[25px] right-[25px] top-[22px]\"><div class=\"mb-[5px] text-[16px] text-[#5D6870]\">给谁选</div><div class=\"text-[20px] leading-[1.4] tex …(中间省略 714 字)… 仍可学习、优先官网;交付什么——比较适合人群、主要内容、预计学习时间和练习形式、附来源、未知单列。右侧出现计划「先找候选,再核对条件」,旁注「研究前 · 可修改计划」。备注说明 AI 提议并经用户确认,这一步允许原位替换,后续固定。\n"}运行 cat > /tmp/restore-research-prompt.py <<'PY'
text(await tools.exec_command({cmd:"cat > /tmp/restore-research-prompt.py <<'PY'\nfrom pathlib import Path\nsrc=Path('~/Library/Mobile Documents/iCloud~md~obsidian/Documents/Note/Areas/大模型(LLM)/AI 通识课程/课程内容/02/2.1.md')\ns=src.read_text().replace('按「给谁选/核对什么/交付什么」分组保留完整信息','直接呈现最初的完整 Prompt,统一字号,按自然段阅读,不添加分组小标题').replace('完整委托按三组可见信息保留','完整委托以原始完整 Prompt 可见呈现')\na=s.index('三组信息为:');b=s.index('右侧出现计划',a)\ns=s[:a]+'正文恢复原始完整 Prompt,分成目标、限制、交付要求三个自然段, …(中间省略 799 字)… m run slides:build slides/02.md --out /tmp/ai-literacy-21-full-prompt","yield_time_ms":1000,"max_output_tokens":300}));Script completed Wall time 1.3 seconds Output: {"chunk_id":"00ae84","wall_time_seconds":1.001449,"session_id":6222,"original_token_count":98,"output":"Traceback (most recent call last):\n File \"/tmp/restore-research-prompt.py\", line 7, in <module>\n p=Path('slides/02.md');s=p.read_text();a=s.index('# 2.1 ');b=s.index('\\n---\\n',a);t=s[a:b];x=t.index('<div class=\"absolute left-[25px] right-[25px] top-[22px]\">');y=t.index('<div v-click=\"10\"',x)\n ~~~~~~~^^^^^^^^^^\nValueError: substring not found\n"}运行 rg -n '给谁选|# 2.1' slides; cat slides/02.md
text(await tools.exec_command({cmd:"rg -n '给谁选|# 2.1' slides; cat slides/02.md","max_output_tokens":1100}));Script completed Wall time 0.3 seconds Output: {"chunk_id":"9ad9a4","wall_time_seconds":0.086364375,"exit_code":0,"original_token_count":426,"output":"slides/pages/01/2.1.md:6:# 2.1 大语言模型(LLM)的预训练知识 <span class=\"opacity-50 text-xl font-normal\">— 不搜索时,AI 的答案从哪里来?</span>\nslides/pages/02/2.1.md:7:# 2.1 Deep Research,已经是一个 Agent 了\nslides/pages/02/2.1.md:20:<div class=\"absolute left-[25px] right-[25px] top-[22px]\"><div class=\"mb-[5px] text-[16 …(中间省略 831 字)… 完成。\n-->\n\n---\nsrc: ./pages/02/2.1.md\n---\n\n---\nsrc: ./pages/02/2.2.md\n---\n\n---\nsrc: ./pages/02/3.1.md\n---\n"}运行 python3 - <<'PY'
text(await tools.exec_command({cmd:"python3 - <<'PY'\nfrom pathlib import Path\np=Path('slides/pages/02/2.1.md');s=p.read_text();x=s.index('<div class=\"absolute left-[25px] right-[25px] top-[22px]\">');y=s.index('<div v-click=\"10\"',x)\ns=s[:x]+'''<div class=\"absolute left-[25px] right-[25px] top-[22px] text-[20px] leading-[1.4] text-[#354552]\">\n<div>帮我为没有编程基础的同事找 3 门适合入门的中文 AI 课程。</div>\n<div class=\"mt-[14px]\">要求<strong class=\"text-[#A85 …(中间省略 133 字)… y:]\ns=s.replace('完整需求按三组保留','直接保留原始完整 Prompt,统一字号,分为三个自然段,仅强调核心内容免费');p.write_text(s)\nPY","max_output_tokens":300}));Script completed Wall time 0.2 seconds Output: {"chunk_id":"35ca64","wall_time_seconds":0.000006333,"exit_code":0,"original_token_count":0,"output":""}检查完整 Prompt 的呈现
{ "code": "await clarity.reload();await clarity.getAXState();", "title": "检查完整 Prompt 的呈现" }Wall time: 6.2694 seconds Output: Browser tab: 1, Title: "从「回答」到「执行」 - Slidev", URL: "http://localhost:3032/4?clicks=11". 0 AXWebArea 从「回答」到「执行」 - Slidev, URL: localhost:3032/4?clicks=11 The focused UI element is 0 AXWebArea 从「回答」到「执行」 - Slidev, URL: localhost:3032/4?clicks=11
核对最终委托的字号和间距
{ "code": "await clarity.getAXStateAndScreenshot();", "title": "核对最终委托的字号和间距" }Wall time: 1.7373 seconds Output: Browser tab: 1, Title: "从「回答」到「执行」 - Slidev", URL: "http://localhost:3032/4?clicks=11". 0 AXWebArea 从「回答」到「执行」 - Slidev, URL: localhost:3032/4?clicks=11 1 container app 2 container slide-container 3 container slide-content 4 container 5 heading 2.1 Deep Research,已经是一个 Agent 了, Value: 1 6 text 2.1 Deep Research,已经是一个 Agent 了 7 container 8 text 确认后的研究委托 9 container 10 te …(中间省略 1621 字)… ions 50 text 4 / 6 The focused UI element is 0 AXWebArea 从「回答」到「执行」 - Slidev, URL: localhost:3032/4?clicks=11 [图片]
运行 git diff --check -- slides/pages/02/2.1.md course/课程内容/02/2.1.md
text(await tools.write_stdin({session_id:6222,chars:"",yield_time_ms:1000,max_output_tokens:200})); text(await tools.exec_command({cmd:"git diff --check -- slides/pages/02/2.1.md course/课程内容/02/2.1.md\ncmp 'course/课程内容/02/2.1.md' '~/Library/Mobile Documents/iCloud~md~obsidian/Documents/Note/Areas/大模型(LLM)/AI 通识课程/课程内容/02/2.1.md'","max_output_tokens":300}));Script completed Wall time 6.1 seconds Output: {"chunk_id":"d0e926","wall_time_seconds":5.060724792,"session_id":6222,"original_token_count":147,"output":"$ slidev build slides/02.md --out /tmp/ai-literacy-21-full-prompt\n\n\n ●■▲\n Slidev v51.8.2 \n\n theme @slidev/theme-seriph\n css engine unocss\n entry ~/code/ai-literacy-series/slides/02.md\nvite v6.4.3 building for production...\n\n(!) outDir /tmp/ai-literacy-21-full-prom …(中间省略 278 字)… sforming...\n"} {"chunk_id":"411742","wall_time_seconds":0.134121625,"exit_code":0,"original_token_count":0,"output":""}运行代码
text(await tools.write_stdin({session_id:6222,chars:"",yield_time_ms:1000,max_output_tokens:250}));Script completed Wall time 0.3 seconds Output: {"chunk_id":"ae85f7","wall_time_seconds":0.000001666,"exit_code":0,"original_token_count":3413,"output":"Warning: truncated output (original token count: 3413)\nTotal output lines: 102\n\n✓ 424 modules transformed.\nrendering chunks...\ncomputing gzip size...\n../../../../../tmp/ai-literacy-21-full-prompt/index.html 0.90 kB │ gzip: 0 …(中间省略 688 字)… ts/modules/vue-FxgGn04Y.js 258.67 kB │ gzip: 96.71 kB\n✓ built in 45.21s\n"}
ChatGPT 的 Deep Research 的区别你还没有说清楚,现在这个还是太笼统了
对,我把“可以改计划、看进度”当成了主要区别,但这些是操作入口,没有解释为什么要专门选 Deep Research。
这页更应该回答:同样是选课程,什么时候普通联网问答就够了,什么时候值得用 Deep Research?
普通联网问答通常够用 更适合 Deep Research “这门课的核心内容免费吗?” “替同事筛选并比较 3 门符合要求的课。” 围绕一个明确问题查证、回答 拆出多个待查问题,查阅不同来源,再综合取舍 重点是得到当前问题的答案 重点是交付一份覆盖多项要求、可核查依据的研究报告 这是使用场景的侧重,不是能力的硬分界。普通联网问答也能多轮搜索、做比较;Deep Research 是专门面向多步骤、跨来源研究的模式,通常投入更多时间。区别不能靠搜索次数、报告长度或“有没有循环”判断。 ChatGPT 官方说明
我们现在的案例只放大了一门课的费用补查,所以看起来确实像普通联网问答。 这是表达上的缺口。
建议保留当前补查环路,但把它明确标成 “其中一门候选课的核对过程”。最后报告露出一个小型比较表:三门课程,分别核对免费范围、适合人群、时长与练习,并附依据、列出未知。用这份综合交付把前面的研究收起来。
旁边只留一句具体定位:
查清一门课是否免费,可以直接联网问;跨多门课程逐项核对、比较并给出推荐,更适合 Deep Research。
这样区别由案例的工作范围和最终交付体现,不再靠抽象描述。
试一下?
我会把环路标明为“其中一门候选课的核对过程”,再让最终报告展开成三门课程的比较表。这样能看见:费用补查只是研究的一部分,最后还要把多门课程的结果放在一起比较。
干了不到 1 分钟,1 步
运行 1 条命令
运行 cat slides/pages/02/2.1.md | head -110; sed -n '1,100p' 'course/课程内容/02/2.1.md'
text(await tools.exec_command({cmd:"cat slides/pages/02/2.1.md | head -110; sed -n '1,100p' 'course/课程内容/02/2.1.md'","max_output_tokens":7000}));Script completed Wall time 0.1 seconds Output: {"chunk_id":"138be9","wall_time_seconds":0.000005083,"exit_code":0,"original_token_count":5515,"output":"---\nlayout: default\ntitle: Deep Research,已经是一个 Agent 了\nclicks: 11\n---\n\n# 2.1 Deep Research,已经是一个 Agent 了\n\n<div class=\"absolute left-[56px] right-[56px] top-[113px] grid grid-cols-[440px_696px] gap-[32px]\">\n<section>\n<div class=\"mb-[14px] text-[20px] text-[#354552]\">{{ $clicks < 3 ? …(中间省略 14468 字)… deep research」](https://openai.com/index/introducing-deep-research/) — 官方称其为 Agent,并说明会根据遇到的信息调整研究路径;不证明本页示意真实发生。\n\n"}思考:**Implementing table layout**
Implementing table layout
思考:**Implementing table layout** **Refining table layout**
Implementing table layout
Refining table layout
我会把完整 Prompt 下方留给比较表,用课程 A/B/C 和空白占位展示报告结构,不编造课程结论。原来小报告的位置改成具体用法对照:单门课程查证可直接联网问,跨多门核对与比较更适合 Deep Research。
干了不到 1 分钟,4 步
运行 2 条命令,其他操作 2 次
运行 cat > /tmp/research-comparison.py <<'PY'
text(await tools.exec_command({cmd:"cat > /tmp/research-comparison.py <<'PY'\nfrom pathlib import Path\nsrc=Path('~/Library/Mobile Documents/iCloud~md~obsidian/Documents/Note/Areas/大模型(LLM)/AI 通识课程/课程内容/02/2.1.md')\ns=src.read_text()\ns=s.replace('假设其中一个页面只写了「免费试看」。','这里放大其中一门候选课的核对过程,不代表整个任务只查一门课。假设其中一个页面只写了「免费试看」。')\ns=s.replace('联网搜索提供查资料的能力;Deep Research 将这些能力组织成一个可跟踪的研究任务。研究前可以修改计划,研究中可以查看进度、调整方向,研究后可以核查来源与研究记录。¹ 这些是产品工作流程的侧重,不是互斥的能力边界:联网问答也 …(中间省略 3985 字)… pm run slides:build slides/02.md --out /tmp/ai-literacy-21-comparison","yield_time_ms":1000,"max_output_tokens":300}));Script completed Wall time 1.2 seconds Output: {"chunk_id":"22caf1","wall_time_seconds":1.000889417,"session_id":88806,"original_token_count":0,"output":""}加载比较报告版
{ "code": "await clarity.reload();await clarity.getAXState();", "title": "加载比较报告版" }Wall time: 2.3712 seconds Output: Browser tab: 1, Title: "从「回答」到「执行」 - Slidev", URL: "http://localhost:3032/4?clicks=11". 0 AXWebArea 从「回答」到「执行」 - Slidev, URL: localhost:3032/4?clicks=11 The focused UI element is 0 AXWebArea 从「回答」到「执行」 - Slidev, URL: localhost:3032/4?clicks=11
检查局部补查与整体报告的关系
{ "code": "await clarity.getAXStateAndScreenshot();", "title": "检查局部补查与整体报告的关系" }Wall time: 0.4701 seconds Output: Browser tab: 1, Title: "从「回答」到「执行」 - Slidev", URL: "http://localhost:3032/4?clicks=11". 0 AXWebArea 从「回答」到「执行」 - Slidev, URL: localhost:3032/4?clicks=11 1 container app 2 container slide-container 3 container slide-content 4 container 5 heading 2.1 Deep Research,已经是一个 Agent 了, Value: 1 6 text 2.1 Deep Research,已经是一个 Agent 了 7 container 8 text 确认后的研究委托 9 container 10 te …(中间省略 1480 字)… ions 45 text 4 / 6 The focused UI element is 0 AXWebArea 从「回答」到「执行」 - Slidev, URL: localhost:3032/4?clicks=11 [图片]
运行 git diff --check -- slides/pages/02/2.1.md course/课程内容/02/2.1.md
text(await tools.write_stdin({session_id:88806,chars:"",yield_time_ms:1000,max_output_tokens:250})); text(await tools.exec_command({cmd:"git diff --check -- slides/pages/02/2.1.md course/课程内容/02/2.1.md\ncmp 'course/课程内容/02/2.1.md' '~/Library/Mobile Documents/iCloud~md~obsidian/Documents/Note/Areas/大模型(LLM)/AI 通识课程/课程内容/02/2.1.md'","max_output_tokens":300}));Script completed Wall time 5.5 seconds Output: {"chunk_id":"c67d92","wall_time_seconds":5.00249875,"session_id":88806,"original_token_count":147,"output":"$ slidev build slides/02.md --out /tmp/ai-literacy-21-comparison\n\n\n ●■▲\n Slidev v51.8.2 \n\n theme @slidev/theme-seriph\n css engine unocss\n entry ~/code/ai-literacy-series/slides/02.md\nvite v6.4.3 building for production...\n\n(!) outDir /tmp/ai-literacy-21-comparison …(中间省略 276 字)… sforming...\n"} {"chunk_id":"f4c129","wall_time_seconds":0.093185834,"exit_code":0,"original_token_count":0,"output":""}
完整画面里,右侧明确是单门课程的补查,左侧报告则把三门课程放到同一组维度下比较。模式选择也改成了这两个具体场景,同时保留“能力有重叠”的说明。
干了不到 1 分钟,5 步
运行 1 段代码,其他操作 4 次
检查报告出现前的焦点
{ "code": "await clarity.goto('http://localhost:3032/4?clicks=9');await clarity.getAXStateAndScreenshot();", "title": "检查报告出现前的焦点" }Wall time: 2.5259 seconds Output: Browser tab: 1, Title: "从「回答」到「执行」 - Slidev", URL: "http://localhost:3032/4?clicks=9". 1 AXWebArea 从「回答」到「执行」 - Slidev, URL: localhost:3032/4?clicks=9 2 container app 3 container slide-container 4 container slide-content 5 container 6 heading 2.1 Deep Research,已经是一个 Agent 了, Value: 1 7 text 2.1 Deep Research,已经是一个 Agent 了 8 container 9 text 确认后的研究委托 10 container 11 tex …(中间省略 1478 字)… tions 46 text 4 / 6 The focused UI element is 1 AXWebArea 从「回答」到「执行」 - Slidev, URL: localhost:3032/4?clicks=9 [图片]
检查从单门补查到三门比较的收束
{ "code": "await clarity.pressKey('Right');await clarity.getAXStateAndScreenshot();", "title": "检查从单门补查到三门比较的收束" }Wall time: 1.0523 seconds Output: Browser tab: 1, Title: "从「回答」到「执行」 - Slidev", URL: "http://localhost:3032/4?clicks=9". 1 AXWebArea 从「回答」到「执行」 - Slidev, URL: localhost:3032/4?clicks=9 The focused UI element is 1 AXWebArea 从「回答」到「执行」 - Slidev, URL: localhost:3032/4?clicks=9 [图片]
运行代码
text(await tools.write_stdin({session_id:88806,chars:"",yield_time_ms:1000,max_output_tokens:250}));Script completed Wall time 0.0 seconds Output: {"chunk_id":"8fe7bb","wall_time_seconds":0.000001708,"exit_code":0,"original_token_count":3389,"output":"Warning: truncated output (original token count: 3389)\nTotal output lines: 102\n\n✓ 424 modules transformed.\nrendering chunks...\ncomputing gzip size...\n../../../../../tmp/ai-literacy-21-comparison/index.html 0.90 kB │ gzip: 0. …(中间省略 688 字)… ts/modules/vue-FxgGn04Y.js 258.67 kB │ gzip: 96.71 kB\n✓ built in 19.20s\n"}定位比较表出现的步骤
{ "code": "await clarity.goto('http://localhost:3032/4?clicks=10');await clarity.getAXState();", "title": "定位比较表出现的步骤" }Wall time: 1.6942 seconds Output: Browser tab: 1, Title: "从「回答」到「执行」 - Slidev", URL: "http://localhost:3032/4?clicks=10". 1 AXWebArea 从「回答」到「执行」 - Slidev, URL: localhost:3032/4?clicks=10 2 container app 3 container slide-container 4 container slide-content 5 container 6 heading 2.1 Deep Research,已经是一个 Agent 了, Value: 1 7 text 2.1 Deep Research,已经是一个 Agent 了 8 container 9 text 确认后的研究委托 10 container 11 t …(中间省略 1476 字)… e Options 46 text 4 / 6 The focused UI element is 1 AXWebArea 从「回答」到「执行」 - Slidev, URL: localhost:3032/4?clicks=10
确认比较表后保留核心结论
{ "code": "await clarity.getScreenshot();await clarity.pressKey('Right');await clarity.getAXState();", "title": "确认比较表后保留核心结论" }Wall time: 0.5338 seconds Output: Browser tab: 1, Title: "从「回答」到「执行」 - Slidev", URL: "http://localhost:3032/4?clicks=11". The following is a diff from the previous accessibility tree with ~ and + representing changed and added elements, respectively. Removed elements are summarized by ID range. ~1 AXWebArea 从「回答」到「执行」 - Slidev, URL: localhost:3032/4?clicks=11 The focused UI element is 1 AXWebArea 从「回答」到「执行」 - Slidev, URL: localhost:3032/4?clicks=11 [图片]
右侧标明“单门候选课的核对过程”,最终增加三门课程比较表,并用具体场景区分:单门查证可联网问,跨多门核对与比较更适合 Deep Research。
表格明确为结构示意。已检查关键 Click,构建通过。
还好吧,就这样吧
好,2.1 暂时定在这一版,先不再调整。
Codex(gpt-6-astra),9 月 6 日 16:31–17:34。已去掉系统提示词;路径、账号等信息已脱敏;工具的长输出已截断。
