你好,我是王云卿 👋

  • 学生 · 程序员 · 电脑爱好者 - 这里记录我的技术学习、生活点滴

为什么只会写 Prompt 已经不够了:Prompt、Context 与 Harness Engineering 讲透

为什么只会写 Prompt 已经不够了 过去几年,大家最熟悉的词是 prompt engineering。 这很好理解。大模型刚流行的时候,很多任务都还是“一问一答”式的:你写一句提示词,模型回你一段结果。于是大家自然会把注意力放在一个问题上:这句话到底该怎么写,模型才更听话? 但一旦 AI 从聊天玩具变成真正干活的系统,事情就开始变了。 比如你不再只是让它“解释一个概念”,而是让它: 读代码库 查文档 调工具 记住前面做过什么 连续工作几十分钟甚至几小时 这时候,如果效果不好,问题往往已经不只是“提示词写得不够好”。更常见的情况是:给错了信息,或者系统壳子搭得不对。 这正是 prompt engineering、context engineering、harness engineering 这三个概念出现的背景。 如果只用一句话概括它们的区别,可以这样记: Prompt engineering:研究“你怎么对模型说话” Context engineering:研究“模型在这一轮到底看到了什么” Harness engineering:研究“模型外面的运行系统怎样驱动它持续完成任务” 很多人第一次看到这三个词,会觉得它们像是换汤不换药的同义词。其实不是。它们对应的是三层完全不同的工程问题。 01. 先把 AI 想成一个超级聪明但会失忆的实习生 理解这三个概念,最简单的方法,是先把大模型想成一个能力极强、但工作方式很特别的实习生。 他有几个鲜明特点。 第一,他很聪明,读过海量资料,推理和表达能力都不错。 第二,他没有真正稳定的长期记忆。你不给他信息,他就不知道;你这轮给了,下轮不一定还能完整保留。 第三,他能不能干成事,不只取决于你说得清不清楚,还取决于三件事: 你到底给他下了什么任务 你把哪些资料和现场信息摆在了他面前 你有没有给他工具、流程、检查点和工作台 这三件事,分别就对应今天要讲的三个层次。 02. Prompt Engineering:你怎么给他下指令 Prompt engineering 是最早被广泛讨论的概念。Anthropic 在官方文档里把它描述为:为了获得更好的结果,去设计和组织给模型的指令。 说白了,它解决的是:一句话怎么写,一段提示怎么组织,模型才更容易给出你要的输出。 这一层最常见的工作包括: 设定角色,比如“你是一位资深律师”或“你是一位代码审查专家” 明确任务,比如“总结”“比较”“修复”“改写” 指定输出格式,比如表格、JSON、Markdown、固定字段 加约束条件,比如长度限制、语气限制、禁止编造 提供 few-shot 示例,让模型照着范例做 如果把模型当作一个实习生,prompt engineering 做的事就是:把任务交代清楚。 比如同样是让 AI 写文章,下面这两种写法的效果往往完全不同。 差的写法: 帮我写一篇文章。 更好的写法: 请写一篇面向完全小白的科普文章,主题是“为什么只会写 Prompt 已经不够了”。 文章需要解释 Prompt Engineering、Context Engineering、Harness Engineering 的区别。 风格要通俗、自然,避免空泛术语,并给出一个 AI 编码助手的具体例子。 你会发现,第二种写法并没有使用什么神秘技巧,它只是更清楚。 ...

2026年4月16日 · 3 分钟 · 王云卿

图片、视频、音频格式完全指南:一张表帮你选对格式

你每天都在和格式打交道 手机拍了一张照片,后缀是 .heic。想发到网站上,得转成 .jpg。下载了一部电影,文件名是 .mkv,播放器却打不开。网易云音乐缓存了一首歌,格式是 .ncm,别的软件根本认不了。 这些后缀名——也就是格式——看起来像一堆随机字母,但它们各自代表着完全不同的存储策略。理解它们,不是什么高深的计算机知识,而是一种实用技能:知道什么时候该用什么格式,能帮你省空间、提速度、保质量。 这篇文章会从最基本的概念出发,把图片、视频、音频的常见格式一次性讲清楚。 先搞懂一个核心问题:压缩 所有格式的本质区别,其实就一句话:怎么把数据变小。 一张未经压缩的照片,一个像素要占 3 个字节(红绿蓝各一个字节)。你手机拍的 1200 万像素照片,原始大小大约是 36 MB。但实际存储在手机里只有 3-5 MB。这就是压缩的功劳。 压缩分两种: 无损压缩——像把衣服整齐叠好塞进箱子,打开箱子后衣服还是原来的样子。PNG、FLAC、ALAC 就是这种方式。文件比原始数据小,但解压后和原始数据一模一样。 有损压缩——像搬家时扔掉一些你不太用的东西。JPEG、MP3、H.264 都是这种方式。它们会丢弃人眼/人耳不太敏感的信息,换来更小的体积。丢掉的东西再也找不回来了,但如果你"扔"得恰到好处,人几乎感觉不到。 理解了"压缩"这个核心,后面所有的格式就都好懂了。 第一部分:图像格式 JPEG——照片的万能选手 全称:Joint Photographic Experts Group(联合图像专家小组) 压缩方式:有损 JPEG 是世界上最常用的图像格式,没有之一。你在网上看到的绝大多数照片都是 JPEG。它的核心算法叫离散余弦变换(DCT),原理是把图像分成 8×8 的小方块,然后用数学方法丢弃人眼不太敏感的高频细节。 优点很明显:兼容性 100%,任何设备都能打开;压缩率高,一张照片通常只需原始大小的 1/10 到 1/20。缺点也很明显:不支持透明度;反复编辑保存会越来越糊(就像复印件的复印件);文字和锐利边缘附近会出现明显的"方块感"。 什么时候用:照片、色彩丰富的图片。不用透明度的场景。 什么时候别用:Logo、文字截图、需要透明背景的图片。 PNG——无损透明的王者 全称:Portable Network Graphics(便携式网络图形) 压缩方式:无损 PNG 的诞生有一个故事:GIF 格式使用的 LZW 压缩算法有专利限制,开发者需要交授权费。于是社区在 1995 年创造了 PNG,使用无专利的 DEFLATE 算法,完全免费开放。 PNG 最大的两个优势:无损和透明。它不会丢失任何像素细节,还支持 Alpha 透明通道——可以做出半透明的效果,而不像 GIF 那样只有"透明"或"不透明"。 不过 PNG 存照片非常浪费空间。一张手机照片存成 PNG 可能 10-20 MB,存成 JPEG 只要 3-5 MB,但你根本看不出区别。 ...

2026年4月7日 · 4 分钟 · 王云卿

Linux 查询硬件信息:9 个命令带你透视你的电脑

你有没有过这样的时刻——别人问你"你电脑什么配置",你愣了一下,然后默默打开系统设置翻了半天? 或者你想装个软件,它写着"至少需要 8GB 内存",你不确定自己够不够? 又或者你刚买了一台云服务器,想搞清楚商家到底给你分配了什么硬件? 在 Windows 上,你可以用"设备管理器"或"任务管理器"点几下鼠标搞定。但在 Linux 上,没有那些花花绿绿的窗口,你得靠命令。 别怕。这些命令不需要你懂编程,每个都是一行文字,敲进去、回车,结果就出来了。 下面这 9 个命令,涵盖了系统、CPU、内存、硬盘、显卡、网络、实时监控——基本上你关心的硬件信息,它们全包了。 先从全局开始:我的电脑到底是什么? uname -a —— 系统的身份证 这是最基础也最快速的一个命令。它会告诉你:内核名称、主机名、内核版本、系统架构、操作系统。 uname -a 输出大概是这个样子: Linux myserver 5.15.0-91-generic #101-Ubuntu SMP x86_64 GNU/Linux 这些信息乍一看像天书,但其实拆开来很简单: Linux —— 内核名称,说明你跑的是 Linux 系统 myserver —— 这台机器的主机名 5.15.0-91-generic —— 内核版本号,就像软件的版本号一样 x86_64 —— 系统架构,说明你的是 64 位系统 GNU/Linux —— 完整的操作系统描述 什么时候用? 当你需要确认"这台机器跑的是什么系统、什么版本"的时候,比如安装驱动、排查兼容性问题,别人第一句话通常就是"先跑个 uname -a 看看"。 hostnamectl —— 系统的户口本 如果你觉得 uname -a 的输出太技术化了,hostnamectl 会让你舒服很多。它的输出更像是一份"人类可读"的系统档案: hostnamectl Static hostname: myserver Icon name: computer-vm Chassis: vm Machine ID: abc123... Boot ID: def456... Virtualization: kvm Operating System: Ubuntu 22.04.3 LTS Kernel: Linux 5.15.0-91-generic Architecture: x86_64 这里你能一眼看出几件重要的事: ...

2026年4月6日 · 4 分钟 · 王云卿