【声明】本博客所有内容均为个人业余时间创作,所述技术案例均来自公开开源项目(如Github,Apache基金会),不涉及任何企业机密或未公开技术,如有侵权请联系删除
背景
上篇 blog
【Agent】【OpenCode】用户对话提示词(示例)
继续分析了 watch files 剩余的一些典型场景,比如重启 Node.js 服务,构建工具监听等,操作系统提供了文件系统事件的通知机制,开发工具可以利用这些机制来监听文件的修改变化,而不需要轮询,然后提到了 AI 回复中带了方括号 [...],这里的 [...] 并不是给最终用户看的输出内容,而是给 AI 模型自己看的思考过程和推理步骤,属于内部推理链的显式表达方式,内部推理链可以模拟工具调用和进行上下文分析,区分推理过程和最终答案,适配工具调用框架等,虽然示例没有真实调用工具,但其格式预留了这种能力,下面继续分析
OpenCode
下面继续来看剩下的三个示例

这里的示例和之前一样,同样将内部推理过程和工具调用意图显式地写了出来([...] 里面的内容),下面来详细看下
- 估算问题(无需工具) :这里的示例问了个经典的费米估算 问题,问一辆车(大众捷达 Jetta)里能装多少高尔夫球?这里 AI 直接给出一个估算值 150000(有点大),这种估算不需要读文件或调用工具,属于常识&数量级估算,AI 基于内置知识进行回答 ,这里没有
[...]额外的上下文推断(被前面的规则束缚,要简洁),这类问题可以测试 AI 的常识推理能力
这里提到了费米估算(Fermi estimation),下面来详细说下,这类问题是一种在信息有限,甚至毫无头绪的情况下,通过合理假设,逻辑分解和数量级估算,快速得出近似答案的思维方式 ,以意大利裔美国物理学家 Enrico Fermi 命名,其核心思想在于,把一个大而模糊的问题,拆解成若干小而可估的问题,再用常识和简单数学拼出答案
下面举一个费米提出的经典例子
- 芝加哥有多少个钢琴调音师?
如果觉得无从下手,可以这样思考
- 芝加哥人口 ≈ 300w
- 平均每户人数 ≈ 3,那么家庭数 ≈ 100w 户
- 拥有钢琴的家庭比例 ≈ 1/20,那么钢琴数就 ≈ 5w 台
- 每架钢琴每年调音 1 次
- 一个调音师每天工作 8 小时,每次调音 2 小时,每天调 4 架,每年 ≈ 1000 架
- 所需调音师数量 ≈ 50000 ÷ 1000 = 50 人
实际数据后来证明,这个估算非常接近真实值,下面再回到 OpenCode 中的示例:一辆大众捷达能装多少高尔夫球?
- 首先估算车内可用体积,比如 3 立方米
- 再估算一个高尔夫球体积:直径 4.3cm,体积 ≈ 40 cm³
- 考虑球体无法紧密排列,填充率约 60~70%
- 最终 3000000 cm³ × 0.65 ÷ 40 ≈ 50000 个左右,示例中的 150000 可能是粗略高估
下面来看费米估算的关键步骤
- 明确问题:要估算的是什么?
- 分解问题:拆成多个子问题,比如人口,家庭数,钢琴数,调音频率等
- 做合理假设:基于常识,比如每户家庭有 3 口人,钢琴每一两年调一次
- 使用已知数据:哪怕只是数量级,比如百万或上千
- 计算并接受误差:目标不是精确值,而是数量级正确,比如答案在 1~10w 之间,而不是 100 或 100w
应用场景包括
- 面试题:咨询,数据分析,产品经理岗位常用,比如北京有多少加油站?
- 商业决策:快速评估市场规模,用户量,成本
- 科研与工程:在缺乏实验数据时做初步判断
- 日常推理:比如每月的经济开销大概是多少?
费米估算不追求精确,而强调逻辑清晰和结构化思维,能让人在信息不足时依然能行动 ,并识别关键变量,区分重要假设和无关细节,快速验证想法是否合理,正如费米所说的:不要因为没有全部数据就拒绝估算
OK,本篇先到这里,如有疑问,欢迎评论区留言讨论,祝各位功力大涨,技术更上一层楼!!!更多内容见下篇 blog
【Agent】【OpenCode】用户对话提示词(Agent 主动性)