<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Cs146s on Sutdown</title><link>https://sutdown.github.io/categories/cs146s/</link><description>Recent content in Cs146s on Sutdown</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Wed, 13 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://sutdown.github.io/categories/cs146s/index.xml" rel="self" type="application/rss+xml"/><item><title>斯坦福CS146S：现代软件开发者Week2学习笔记</title><link>https://sutdown.github.io/p/%E6%96%AF%E5%9D%A6%E7%A6%8Fcs146s%E7%8E%B0%E4%BB%A3%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E8%80%85week2%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/</link><pubDate>Wed, 13 May 2026 00:00:00 +0000</pubDate><guid>https://sutdown.github.io/p/%E6%96%AF%E5%9D%A6%E7%A6%8Fcs146s%E7%8E%B0%E4%BB%A3%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E8%80%85week2%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/</guid><description>&lt;h2 id="agent"&gt;&lt;a href="#agent" class="header-anchor"&gt;&lt;/a&gt;Agent
&lt;/h2&gt;&lt;p&gt;基于大型语言模型（LLM）的编码代理（Coding Agent）的具体实施步骤：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;在终端中读取输入，并持续将内容追加到对话中。&lt;/li&gt;
&lt;li&gt;告知大型语言模型有哪些可用工具：
&lt;ul&gt;
&lt;li&gt;它会在适当的时候请求使用工具。&lt;/li&gt;
&lt;li&gt;你离线执行工具并返回响应。工具示例：“Read_file”（读取文件）、“List_dir”（列出目录）、“Edit_file”（编辑文件）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;创建一个新文件，编辑一个新文件。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Claude 的内部机制：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;前置加载上下文：使用小型、有针对性的提示词来预先加载上下文。&lt;/li&gt;
&lt;li&gt;无处不在的系统提醒：在系统/用户提示、工具调用、工具结果等各个环节都加入系统提醒，以防止模型“漂移”（使用 &lt;code&gt;&amp;lt;system-reminder&amp;gt;&lt;/code&gt; 标签）。&lt;/li&gt;
&lt;li&gt;命令前缀提取：这可能涉及从用户输入或生成的文本中识别特定的指令格式，在确立指令的任务之前，会先进行结构化提取，把实际的指令和用户的情绪等分开，保证LLM处理的是感觉的指令。&lt;/li&gt;
&lt;li&gt;生成子代理：可能会生成子代理，以帮助防止上下文过载。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;（在&lt;a class="link" href="https://github.com/Sutdown/cs146s/tree/master/week2" target="_blank" rel="noopener"
&gt;cs146s/week2&lt;/a&gt;class文件夹中可见一个简单的agent示例）&lt;/p&gt;
&lt;h2 id="mcp-server"&gt;&lt;a href="#mcp-server" class="header-anchor"&gt;&lt;/a&gt;MCP Server
&lt;/h2&gt;&lt;p&gt;为什么需要让大型语言模型（LLMs）连接外部动态数据&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;大型语言模型拥有宽广但静态的世界知识，只有在重新训练时才会更新。这意味着模型本身的知识库是截止于训练数据的，无法实时感知世界变化。&lt;/li&gt;
&lt;li&gt;为了构建完全自主的系统，我们需要稳健的方法来输入动态数据。比如实时的天气，现任总统，当前比特币价格等。这些都需要实时的工具进行查询。&lt;/li&gt;
&lt;li&gt;RAG检索增强生成和工具调用是我们目前拥有的最佳答案。
&lt;ul&gt;
&lt;li&gt;RAG：通过检索外部文档来补充模型知识。&lt;/li&gt;
&lt;li&gt;工具调用：让模型学会使用计算器、搜索引擎、API等工具来获取信息。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="mcp定义"&gt;&lt;a href="#mcp%e5%ae%9a%e4%b9%89" class="header-anchor"&gt;&lt;/a&gt;MCP定义
&lt;/h3&gt;&lt;p&gt;官方定义：它是一个开放协议，允许系统以一种“可跨集成推广的方式”向AI模型提供上下文。简单来说，它试图解决不同系统间数据格式不统一、难以被AI理解的问题。&lt;/p&gt;
&lt;p&gt;通俗解释：它把复杂的协议概念简化为“让AI能看懂并使用工具的标准说明书”。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MCP通过提供一个统一的协议层，将集成模式从“M x N”简化为“M + N”。即，每个LLM主机只需实现一个MCP客户端，每个工具只需实现一个MCP服务器，它们就能通过MCP协议互相通信。&lt;/li&gt;
&lt;li&gt;MCP标准化使得开发者不需要重复造轮子，并且有了统一的输出格式。开发者不再需要为每个连接器重复实现认证（auth）、错误处理（error handling）、速率限制（rate-limiting）等通用功能；强制使用JSON-RPC来确保所有工具的输出格式一致，这使得LLM能够更可靠地解析和处理来自不同工具的响应。&lt;/li&gt;
&lt;li&gt;MCP的设计借鉴了语言服务器协议（Language Server Protocols, LSP），与LSP主要用于响应式（reactive）交互不同，MCP允许构建主动式（proactive）的代理工作流（agentic workflows）。这意味着AI代理可以根据上下文主动调用工具，而不仅仅是响应用户的直接指令。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="mcp过程"&gt;&lt;a href="#mcp%e8%bf%87%e7%a8%8b" class="header-anchor"&gt;&lt;/a&gt;MCP过程
&lt;/h3&gt;&lt;p&gt;MCP协议提供了两种传输层实现：标准输入输出（stdio）和服务器发送事件（SSE），这为不同场景下的部署提供了灵活性。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Host：指承载MCP客户端的应用程序，例如代码编辑器Cursor或AI助手Claude Desktop。&lt;/li&gt;
&lt;li&gt;MCP Client：嵌入在Host中的库，负责与MCP Server建立并维持一个有状态的会话。&lt;/li&gt;
&lt;li&gt;MCP Server&lt;a class="link" href="https://github.com/modelcontextprotocol/servers" target="_blank" rel="noopener"
&gt;Model Context Protocol Server Implementations&lt;/a&gt;：作为工具的轻量级包装器，它负责向Client暴露工具的功能。&lt;/li&gt;
&lt;li&gt;Tool：一个可被调用的函数，它可以是数据源或API。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;工作流程为：&lt;/p&gt;
&lt;p&gt;1.client向server发起请求，询问server存在的tools&lt;/p&gt;
&lt;p&gt;2.server返回json格式的列表，详细描述每个工具的名称，摘要，参数结构&lt;/p&gt;
&lt;p&gt;3.host把这些工具注入AI模型的上下文中&lt;/p&gt;
&lt;p&gt;4.用户输入提示词时，触发模型根据理解生成一个结构化的工具调用请求&lt;/p&gt;
&lt;p&gt;5.MCP Server执行工具调用，返回结果&lt;/p&gt;
&lt;p&gt;&lt;img src="https://sutdown.github.io/static/img/img_cs146s/week2_1.png"
loading="lazy"
alt="1"
&gt;&lt;/p&gt;
&lt;h3 id="mcp局限"&gt;&lt;a href="#mcp%e5%b1%80%e9%99%90" class="header-anchor"&gt;&lt;/a&gt;MCP局限
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;Agent不能处理太多的工具。工具过多会造成选择困难，上下文混乱，性能下降等风险，工具管理是具有一定复杂性的。&lt;/li&gt;
&lt;li&gt;APIs会快速消耗模型的上下文窗口。复杂的API调用、大量的返回数据或冗长的工具描述都会占用宝贵的上下文空间，可能导致模型“遗忘”之前的对话或指令，影响最终输出质量。&lt;/li&gt;
&lt;li&gt;API设计时应以“AI原生”（AI-native）为理念，而不是采用僵化（rigid）的传统设计。API应该更易于被AI理解和调用，例如提供更清晰的文档、更结构化的数据格式、更灵活的参数等，以降低AI集成的难度和成本。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;（在&lt;a class="link" href="https://github.com/Sutdown/cs146s/tree/master/week2" target="_blank" rel="noopener"
&gt;cs146s/week2&lt;/a&gt;class文件夹中可见一个简单的agent示例）&lt;/p&gt;
&lt;h2 id="assignment"&gt;&lt;a href="#assignment" class="header-anchor"&gt;&lt;/a&gt;&lt;strong&gt;Assignment&lt;/strong&gt;
&lt;/h2&gt;&lt;p&gt;&lt;a class="link" href="https://github.com/Sutdown/cs146s/tree/master/week2" target="_blank" rel="noopener"
&gt;cs146s/week2 at master · Sutdown/cs146s&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;这个作业不难，基本上就是让AI实现一些小任务，对于现在的AI模型，很快都能实现。&lt;/p&gt;</description></item><item><title>斯坦福CS146S：现代软件开发者Week1学习笔记</title><link>https://sutdown.github.io/p/%E6%96%AF%E5%9D%A6%E7%A6%8Fcs146s%E7%8E%B0%E4%BB%A3%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E8%80%85week1%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/</link><pubDate>Sat, 09 May 2026 00:00:00 +0000</pubDate><guid>https://sutdown.github.io/p/%E6%96%AF%E5%9D%A6%E7%A6%8Fcs146s%E7%8E%B0%E4%BB%A3%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E8%80%85week1%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/</guid><description>&lt;h2 id="ai导论"&gt;&lt;a href="#ai%e5%af%bc%e8%ae%ba" class="header-anchor"&gt;&lt;/a&gt;AI导论
&lt;/h2&gt;&lt;h3 id="对ai的评价"&gt;&lt;a href="#%e5%af%b9ai%e7%9a%84%e8%af%84%e4%bb%b7" class="header-anchor"&gt;&lt;/a&gt;对AI的评价
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;Software developers have the potential to be more productive than they have ever been in history&lt;/li&gt;
&lt;li&gt;With AI coding an engineer can pick up tech stacks and tools at an unprecedented pace&lt;/li&gt;
&lt;li&gt;You won’t be replaced by AI. You’ll be replaced by a competent engineer who knows how to use AI.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这三句话其实就是在表明，能够利用好AI的软件开发者将会是未来的主流，你需要的是学会如何最大化的利用AI工具，而不是被AI所替代。&lt;/p&gt;
&lt;p&gt;LLMs are only as good as you are&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Good context leads to good code&lt;/li&gt;
&lt;li&gt;If you can’t understand your codebase, neither will an LLM&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;LLM和你的水平是相当的，你不理解你的代码，LLM也不会。它能够让你更快的提供你的上限，但AI能做到的上限和个人水平是密不可分的。&lt;/p&gt;
&lt;h3 id="how-llms-work"&gt;&lt;a href="#how-llms-work" class="header-anchor"&gt;&lt;/a&gt;How LLMs Work
&lt;/h3&gt;&lt;p&gt;llm（大型语言模型）是用于下一个标记预测的自回归模型。&lt;/p&gt;
&lt;p&gt;文本生成模型（比如GPT系列）一般分为三层：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;输入层：将原始文本分割成更小的单元，也就是常说的token（词元）&lt;/li&gt;
&lt;li&gt;嵌入层（embedding）：将词元转换成固定维度的数值向量，让计算机可以捕捉词语的语义信息&lt;/li&gt;
&lt;li&gt;transformer层（使用自注意力机制的变换层）：自注意力机制是一种用于帮助模型学习词语之间的句法和语义关系的内部数学机制，用于理解上文，预测下文。&lt;/li&gt;
&lt;li&gt;输出层：获取最有可能的下一个token的概率分布。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://sutdown.github.io/static/img/img_cs146s/week1_1.png"
loading="lazy"
alt="1"
&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Training Process&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;第一阶段：自监督预训练：在各种公共数据源（比如github代码库，stackExchange等）上进行训练，教会模型语言的基本概念。&lt;/li&gt;
&lt;li&gt;第二阶段：监督微调：使用高质量，精心策划的提示-响应对，教会模型遵循指令。&lt;/li&gt;
&lt;li&gt;第三阶段：偏好调优：收集同一提示的多个输出对，利用奖励模型，让模型输出和人类偏好（有用性，可读性，正确性）保持一致。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;当前大模型发展的两大核心趋势：&lt;strong&gt;推理能力的进化&lt;/strong&gt;和&lt;strong&gt;模型规模的扩张&lt;/strong&gt;，&lt;strong&gt;推理模型&lt;/strong&gt;的发展如下：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;思维链训练：通过在训练数据中引入包含详细推理步骤的“思维链”，让模型学会分步骤、有逻辑地解决问题，而不是凭直觉给出答案。&lt;/li&gt;
&lt;li&gt;工具使用集成：训练模型学会调用外部工具，如计算器、搜索引擎或代码解释器，以弥补其自身知识的局限，增强解决复杂任务的能力。&lt;/li&gt;
&lt;li&gt;人类偏好对齐：收集人类对模型推理步骤的反馈，确保其思考过程不仅结果正确，而且逻辑清晰、符合人类的思维习惯。&lt;/li&gt;
&lt;li&gt;强化学习评估：利用强化学习技术，让模型学会自我评估推理路径、识别错误并进行回溯修正，从而实现自我优化。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;现在的GPT-3/CLaude 3.5 Sonnet参数量为1750亿，到GPT-4时已经高达1.8万亿。&lt;/p&gt;
&lt;h3 id="in-practive"&gt;&lt;a href="#in-practive" class="header-anchor"&gt;&lt;/a&gt;&lt;strong&gt;In practive&lt;/strong&gt;
&lt;/h3&gt;&lt;p&gt;LLM是一个强大的编程助手，但使用时必须考虑到其固有的局限性。&lt;/p&gt;
&lt;p&gt;模型的优势在于：专家级代码补全，代码理解，代码修复。&lt;/p&gt;
&lt;p&gt;局限在于&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;幻觉：模型可能生成不存在或者已经过时的API（解决方案：上下文工程）&lt;/li&gt;
&lt;li&gt;上下文窗口限制：模型的上下文窗口可达10万-20万token，但不是所有token的处理效果都相同。（模型一般对开头和结尾的记忆更深刻，中间模型容易被以往）&lt;/li&gt;
&lt;li&gt;延迟：处理请求根据任务复杂度导致的延迟实践（根据任务复杂度进行合理规划，最大化利用模型思考时间，但也会导致频繁的上下文切换）&lt;/li&gt;
&lt;li&gt;成本：训练输出等需要大量成本&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="提示词工程-prompting"&gt;&lt;a href="#%e6%8f%90%e7%a4%ba%e8%af%8d%e5%b7%a5%e7%a8%8b-prompting" class="header-anchor"&gt;&lt;/a&gt;提示词工程 Prompting
&lt;/h2&gt;&lt;h3 id="对提示词的观点"&gt;&lt;a href="#%e5%af%b9%e6%8f%90%e7%a4%ba%e8%af%8d%e7%9a%84%e8%a7%82%e7%82%b9" class="header-anchor"&gt;&lt;/a&gt;对提示词的观点
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;提示词是与大语言模型沟通的通用语（lingua franca），也是一种有效的编程方式。&lt;/li&gt;
&lt;li&gt;提示词正在从精确、刻板的“代码式”指令，进化为更自然、更口语化的“人类语言”。&lt;/li&gt;
&lt;li&gt;提示词工程虽然有其难以捉摸的一面，但它并非纯粹的玄学，而是有一套可以学习和应用的方法论。由于LLM的黑盒本质，内部运行机制不完全透明，因此从输入到输出之间仅对用于而言带有一定的神秘感，但LLM也是经过多次实验验证的成熟技术，通过学习才能实现更好的应用。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="提示词技术"&gt;&lt;a href="#%e6%8f%90%e7%a4%ba%e8%af%8d%e6%8a%80%e6%9c%af" class="header-anchor"&gt;&lt;/a&gt;提示词技术
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Zero-shot prompting&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;零样本提示是一种最直接的提示方式，其核心是直接向大语言模型提出任务要求，而不提供任何支持信息或示例。它考验的是模型基于其预训练知识直接完成任务的能力。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;K-shot prompting&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;K-shot prompting的本质是&lt;strong&gt;上下文学习（in-context learning）&lt;/strong&gt;。与直接下达指令的零样本提示不同，这种方法会在提问时，额外提供几个“输入-输出”的示例，让模型通过模仿来学习任务的模式、格式或风格。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Chain-of-Thought Prompting, CoT&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;思维链提示通过要求模型一步步地展示其推理步骤，来解决那些需要多步逻辑才能完成的任务。这种方法能显著提高模型在复杂问题上的准确性和可解释性。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;多样本思维链（Multi-shot CoT）：
&lt;ul&gt;
&lt;li&gt;在提示中提供几个完整的“问题-推理过程-答案”的示例。&lt;/li&gt;
&lt;li&gt;通过展示完整的推理轨迹（reasoning traces），让模型学习并模仿这种逐步思考的模式。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;零样本思维链（Zero-shot CoT）：
&lt;ul&gt;
&lt;li&gt;不提供具体示例，而是直接在问题后加上一句引导性的话，如“Let&amp;rsquo;s think step-by-step”（让我们一步步思考）。&lt;/li&gt;
&lt;li&gt;通过简单的指令，激发模型内部的推理能力，使其自动分解问题并逐步解答。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Self-consistency Prompting&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://arxiv.org/abs/2203.11171" target="_blank" rel="noopener"
&gt;Self-Consistency Improves Chain of Thought Reasoning in Language Models&lt;/a&gt;自洽性提示的核心逻辑：不依赖单次生成的结果，而是通过生成多条推理路径并寻找它们的交集（最一致的答案），以此来显著提升模型解决复杂问题的准确率，并减少胡编乱造的情况。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;多次采样和聚合：同一个问题让模型生成多个不同的回答，结合Cot技术，投票选择出现频率最高的结果作为答案&lt;/li&gt;
&lt;li&gt;减少幻觉和错误：让模型探索多个推理路径，有利于识别过滤掉不合理的幻觉&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Tool Use&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;工具使用&lt;/strong&gt;是现代大型语言模型应用开发中的一个转折点。它标志着模型从单纯的“文本生成器”进化为能够与现实世界交互、解决实际问题并减少错误的“智能代理”。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;允许模型向外部求助。比如当需要直到一个实时的时间天气，操作数据库，计算复杂数学题等问题时，模型可以通过利用外部工具得到准确结果。&lt;/li&gt;
&lt;li&gt;减少幻觉和实现自主性关键技术：真实的外部工具提供真实数据，避免捏造事实。模型能够使用工具是通过AI agent的关键步骤，说明模型具备了自主行动能力。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Retrieval Augmented Generation， RAG&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;RAG&lt;/strong&gt; 是让大模型变得“博学”且“靠谱”的关键技术。它通过外挂知识库的方式，解决了模型知识陈旧、缺乏私有数据以及容易产生幻觉的问题，并且是现代 AI 编程助手（如 Cursor）能够理解你整个项目代码库的核心原理。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;注入上下文数据。通过将用户私有数据或特定领域的文档（上下文）注入到提示词中，让模型能够基于这些特定信息来回答，而不是仅依赖其训练数据。&lt;/li&gt;
&lt;li&gt;保持模型更新。RAG 允许模型访问最新的信息（如今天的新闻或最新的代码库），而无需耗费巨资重新训练模型。&lt;/li&gt;
&lt;li&gt;你能免费获得可解释性和引用。模型的答案是基于检索到的具体文档生成的，所以你可以追溯答案的来源（引用）。这增加了模型的可信度，让用户知道答案是从哪里来的（可解释性）。&lt;/li&gt;
&lt;li&gt;减少幻觉。通过限制模型只能根据检索到的事实进行回答，可以显著减少模型“一本正经胡说八道”的情况。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Reflexion&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;核心思想是引导模型对自己的输出进行自我审视和修正（行动 - 观察 - 反思 - 调整）。过程如下&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;自我反思。这要求模型在完成一次任务后，不要直接结束，而是停下来，像一个编辑一样，重新审视自己刚刚生成的答案，评估其正确性和完整性。&lt;/li&gt;
&lt;li&gt;环境反馈。模型在执行一个动作（如运行一段代码）后，会获得一个“环境反馈”（如编译错误信息或测试失败报告）。这个反馈会被作为新的上下文信息，添加到与模型的对话历史中，引导它进行下一轮的思考和修正。&lt;/li&gt;
&lt;li&gt;多轮提示。这并非一次性的问答，而是一个“尝试-评估-修正”的循环。通过多轮交互，模型可以逐步逼近最优解&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Meta Prompting&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://arxiv.org/abs/2311.11482" target="_blank" rel="noopener"
&gt; 人工智能系统的元提示&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;元提示是一种高级提示技术，侧重于任务和问题的结构和语法方面，而非具体内容细节。元提示的目标是构建一种更抽象、结构化的大型语言模型（LLM）交互方式，强调信息的形式和模式，而非传统的内容中心方法。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;System Prompt&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;它是提供给大语言模型的&lt;strong&gt;第一条消息&lt;/strong&gt;。这条消息通常是&lt;strong&gt;隐藏&lt;/strong&gt;的，最终用户在与模型交互时是看不到的。它设定了模型行为的底层基调。&lt;/p&gt;
&lt;p&gt;作用：设定人设，制定规则，定义风格。&lt;/p&gt;
&lt;p&gt;一般LLM中的三个角色是：System Prompt，User Prompt，Assistant&lt;/p&gt;
&lt;p&gt;Eg.&lt;/p&gt;
&lt;p&gt;You are a &lt;strong&gt;helpful&lt;/strong&gt; assistant that &lt;strong&gt;loves programming at the level of a senior software developer&lt;/strong&gt; and &lt;strong&gt;is very detailed and pedantic in your answers&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;基础定位：乐于助人；专业领域：热爱编程的资深技术人员；回答风格：详尽和精确&lt;/p&gt;
&lt;h3 id="ai-prompt-engineeringa-deep-dive"&gt;&lt;a href="#ai-prompt-engineeringa-deep-dive" class="header-anchor"&gt;&lt;/a&gt;&lt;strong&gt;AI Prompt Engineering：A Deep Dive&lt;/strong&gt;
&lt;/h3&gt;&lt;p&gt;这场圆桌讨论的核心问题其实只有一个：&lt;strong&gt;提示工程到底是什么，以及怎么把它做好。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;讨论一开始，四位专家就给出了一个共识性的判断——提示工程不是写一段话，而是在设计一个系统。它包含清晰沟通、迭代测试、版本控制和边界管理，本质上是用自然语言承担代码的功能。&amp;ldquo;工程&amp;quot;这两个字落在哪里——不是落在一句完美的提示上，而是落在试错的范式上：你能随时重置、独立实验、反复调整，这是传统软件开发给不了的自由度。&lt;/p&gt;
&lt;p&gt;然后深入到了提示工程师的能力模型。四位专家给出了三条不同的路径：Zach强调的是&lt;strong&gt;阅读—&lt;/strong&gt;—仔细读模型的输出，别猜它怎么理解指令，直接看它怎么执行的；Amanda强调的是让&lt;strong&gt;外行人来测试&lt;/strong&gt;你的提示，她自己的精确度只有68%，远低于人类基准，这说明提示词里藏着大量隐式假设；而David强调的是&lt;strong&gt;极限挑战&lt;/strong&gt;——别做那些写邮件式的简单任务，真正的成长来自尝试不可能的事情，比如让Claude打Pokemon。&lt;/p&gt;
&lt;p&gt;那个Pokemon的案例是整段讨论里最直观的。David花了整个周末，叠加网格、构建ASCII地图、放大三千倍，最后发现模型在NPC连续性识别上根本过不去。他选择了放弃——不是因为能力问题，是他知道用四个月优化不如等下一代模型。这个判断本身就是提示工程的一个核心能力：知道什么时候该停。&lt;/p&gt;
&lt;p&gt;之后进入了一个很重要的分水岭——&lt;strong&gt;预训练模型和RLHF模型的差异。&lt;/strong&gt; David指出一个关键现象：很多人把预训练时代的直觉错误地用到RLHF模型上——比如过度关注&amp;quot;这个内容在互联网上出现了多少次&amp;rdquo;，或者认为角色扮演是万能的。而Amanda的解释把这个问题讲透了：模型已经不是&amp;quot;一句话接一句话地模仿&amp;quot;的预训练模型了，它是一个经过RLHF微调、被训练成&amp;quot;帮助者&amp;quot;的系统。对模型说谎、让它扮演角色，本质上是没搞清楚对面是什么。两种方法论的分歧，根源在这里。&lt;/p&gt;
&lt;p&gt;然后是那三段划分——&lt;strong&gt;企业级、研究型和通用对话提示词&lt;/strong&gt;的差异。企业级提示词要被调用百万次，必须覆盖所有的边缘情况，提供明确的退路（比如&amp;quot;不确定就输出unsure&amp;quot;）；研究型提示词恰恰相反，只用一两个说明性示例，而且故意选和实际数据完全不同的例子（从事实文档提取信息，用儿童故事做示例），目的是不让模型被格式绑架；通用对话边界更宽松，人在循环中，错了随时改就好。整本书读下来，从定义到能力模型，从底层差异到场景分类，这个框架是完整的。&lt;/p&gt;
&lt;h2 id="assignment"&gt;&lt;a href="#assignment" class="header-anchor"&gt;&lt;/a&gt;Assignment
&lt;/h2&gt;&lt;p&gt;作业原仓库：&lt;a class="link" href="https://github.com/mihail911/modern-software-dev-assignments/tree/master" target="_blank" rel="noopener"
&gt;modern-software-dev-assignments: Assignments for CS146S: The Modern Software Dev (Stanford University Fall 2025)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;作业个人提交仓库：&lt;a class="link" href="https://github.com/Sutdown/cs146s" target="_blank" rel="noopener"
&gt;Sutdown/cs146s&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;推荐资料&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://cloud.tencent.com/developer/article/2463132" target="_blank" rel="noopener"
&gt;Anthropic官方 深入探讨prompt工程 | 全文脱水中文版-腾讯云开发者社区-腾讯云&lt;/a&gt;&lt;/p&gt;</description></item></channel></rss>