这期日报和往常不太一样。我没有按时间线罗列“今天发了什么新东西”,而是把过去一周社区里围绕 Agent / LLM 的热搜词、讨论帖、踩坑记录全部摊开,从中挑出那些真正值得花时间琢磨的信号。2026-09-28 这一天,社区里讨论最密集的依然是 Agent 架构与编排、Agent 安全(尤其是记忆投毒)、Skill 机制、LLM 评测以及本地部署。这些问题恰好对应了 Agent 从“能跑 demo”走向“能上生产”的四个关键台阶:架构怎么搭、安全怎么防、质量怎么评、资源怎么省。这篇日报版博文,就是写给正在做 Agent 应用落地、或者准备从零入门 Agent 开发的朋友看的,内容会比较长,我尽量把每个话题讲透一点。
1. 从热搜词看本周社区风向
1.1 本周热词释放了哪些信号
我先把这期的热词按主题归了个类,归完之后整张表的指向性非常明显:社区对 Agent 的关注点已经从“Agent 是什么、能做什么”全面转向“Agent 怎么才能稳定、安全、可落地”。
- 架构与编排类:agent架构、agent框架、agent框架与编排、多agent、agent harness、harness和agent区别
- 安全与可靠性类:agent安全、agentpoison、自主容错控制、记忆投毒、agent执行错误
- 工具与Skill类:agent skill、agent tool agent skills、claude agent skills、网页转markdown的skill、agent画图
- 本地部署与模型类:llm studio、安卓本地运行gguf、spatial llm、hermes agent
- 学习路线类:agent学习路线、agent开发学习路线、agent是什么
- 评测与工程类:llm as judge、基于llm的单元测试、使用聊天记录模型精调llm
这几类关键词放在一起看,能读出一条清晰的演化路径:先搞清楚基础概念,然后搭架构、做编排,接着暴露安全和稳定性问题,再回头补评测、做加固,最后才谈得上本地部署和降本增效。这就是一个典型的技术栈成熟过程,也是这期日报想重点展开的骨架。
1.2 Agent 概念边界:Skill、Tool、Harness 到底怎么分
热词里有个比较有意思的组合:“harness和agent区别”“agent tool agent skills”“agent harness”“agent skill教程”。说明有相当一批人卡在了概念层。我按自己工程实践里的理解做一个尽量不绕的划分。
Agent 是整个决策循环本身,它负责感知环境、推理、决定下一步行动、观察结果并迭代。Tool 是 Agent 用来执行具体动作的接口,比如搜索、计算、发请求、读写文件,本质上是“手”和“脚”。Skill 是打包好的、可复用的能力单元,它通常是一组提示词、工具调用逻辑和后处理流程的集合,相当于“肌肉记忆”。Harness 则是承载 Agent 循环的运行时和编排层,负责管理上下文、调度工具、处理错误、注入安全策略,相当于“车架和仪表盘”。
用一个类比来帮助记忆:Agent 是司机,Harness 是整台车的底盘和控制系统,Tool 是方向盘、油门和刹车,Skill 是司机的驾驶技能包(倒车入库、坡道起步)。开车的人、车的机械结构、操作部件、熟练技能,四者不能混为一谈,但必须协同工作。很多人一开始写 Agent 时把所有逻辑全塞进提示词里,就是没分清这四层的职责边界。
2. Agent 架构设计:从单 Agent 到多 Agent
2.1 单 Agent 还是多 Agent:怎么选不踩坑
“多agent”和“agent架构”是这期搜索量很高的两个词。我的建议是:能用单 Agent 解决的,绝对不要上多 Agent。单 Agent 适合任务边界清晰、工具链不超过三五个、状态可以在一次上下文中维护的场景。比如做一个“网页内容采集并转成 Markdown”的小工具,单 Agent 加上一个 Skill 就完全够用,硬拆成多个 Agent 只会带来无意义的 Token 开销和编排复杂度。
多 Agent 的适用场景有三个明显信号:任务需要多个专业角色协作(研究员、代码审计员、报告撰写人),子任务之间可以并行且天然隔离(多路信息收集),以及需要互相制衡(一个生成、一个校验)。比如做一个自动化测试 Agent,生成测试用例和审查测试用例这两个环节拆成两个 Agent,效果往往比单个 Agent 一边生成一边自查好得多。
多 Agent 的代价也必须提前算清楚。Token 消耗翻倍甚至更多,上下文跨 Agent 传递容易出现信息丢失或扭曲,角色之间如果出现分歧还需要仲裁机制,状态一致性维护成本很高。我见过很多项目是被“多 Agent 听起来很高级”带偏的,最后在调试阶段痛不欲生。记住一个原则:多 Agent 是一种架构选择,不是技术亮点本身。
2.2 记忆体系设计:给 Agent 装上可靠记忆
“agent记忆”这个热词背后,是大家对 Agent 长对话和跨会话能力的真实需求。记忆体系我一般拆成三层来做。工作记忆是当前任务上下文窗口里的内容,直接放在上下文中,要注意窗口长度限制。短期记忆是当前会话中需要跨步骤保留的关键信息,比如用户偏好、已经确认过的约束条件,用结构化摘要或者关键字段记录。长期记忆是跨会话持久化的知识,通常落到向量数据库或者结构化存储里,任务启动时通过检索注入。
这次热搜里出现的“agentpoison:通过记忆或知识库投毒攻击 LLM Agent”研究,恰恰把记忆体系的安全问题抛到了台面上。如果你的 Agent 会从向量库里检索外部知识,而向量库的内容可以被低权限用户写入,那就等于给攻击者开了一扇后门。所以记忆体系的设计必须从一开始就包含权限分层:谁可以写记忆、谁只能读记忆、哪些记忆需要人工审核后才能生效,这三条规则缺一不可。我在实际项目里会把“可写记忆库”的权限严格收口到系统管理员通道,用户输入只进入“待审核记忆区”,审核通过才向量化入库。
2.3 编排模式:流水线、路由、协商怎么选
拿到“agent框架与编排”这个热词时,我想的是:编排不应该被理解成某种特定框架的专属能力,而应该看作一组可复用的架构模式。目前最常见的三种模式是流水线编排、路由编排、协商编排。
流水线编排适合子任务有严格前后依赖的场景,比如先做需求分析、再写代码、再跑测试、最后写文档,每个阶段的上一个输出就是下一个输入。路由编排适合“根据输入内容走不同分支”的场景,比如客服 Agent 先做意图分类,再路由到售前、售后或技术支持等不同子 Agent。协商编排适合需要多角色讨论或相互校验的场景,比如代码审查 Agent 里,写代码的 Agent 和审查代码的 Agent 来回对话,最终得到收敛结论。
具体实现时,我通常先用一张表格把每个 Agent 的职责、输入、输出、依赖关系列清楚,再决定用哪种编排模式。表格都画不明白的时候,代码写出来也一定是乱的。
3. Agent 安全与可靠性专题
3.1 AgentPoison 与记忆投毒:攻击原理和防御思路
“agentpoison”这词能进入热榜,说明 RAG 架构的安全问题终于被大规模看见了。AgentPoison 这类攻击的核心思路并不复杂:Agent 在运行时经常需要从外部知识库检索上下文,如果外部知识库的内容可以被污染,攻击者就有机会植入恶意提示,当 Agent 检索到这些内容时,就可能被诱导执行越权操作、输出有害信息,或者泄露敏感数据。
防御思路需要分层去做。第一是知识源可信校验:只允许从可信任源写入知识库,必要时做哈希校验和版本锁定。第二是检索结果过滤:在把检索到的内容拼接进上下文之前,用独立的审查模块做一遍敏感词和指令冲突检测。第三是权限最小化:Agent 运行时使用的凭证必须是最低权限,即使被误导了也做不了高危操作。第四是输出审计:对 Agent 的全部输出做记录,重点盯主动发起的网络请求和文件写入操作。
我自己的习惯是不等出事再补课。只要 Agent 涉及外部知识检索,就算只是内部 wiki,我都会至少加上“知识源白名单”和“检索内容标记”这两道基础防线。标记的意思是:在上下文里把外部检索到的内容明确标成“来自知识库的参考信息”,并且提示 Agent 将其视作参考资料而非直接指令,能显著降低被注入控制的概率。
3.2 自主容错控制:Agent 系统的稳定性设计
“识的llm智能体自主容错控制:构建可靠AI系统的工程实践”这个热搜词有点长,核心其实就是一件事:LLM 调用天然不稳定,你的系统必须有自己“缓过来”的能力。我见过太多 Agent 项目死在“调用一次就拉胯”上,报错之后就彻底终止,没有任何恢复路径。
自主容错控制我建议分四个层级来做。第一层是请求级容错:LLM 调用设置超时、重试、退避策略,处理限流和瞬时故障。第二层是步骤级容错:当某一个工具调用失败时,系统要能把上下文回滚到安全节点,换一条路径重试,而不是让整个任务崩掉。第三层是流程级容错:任务执行过程中出现不可恢复错误时,要定义明确的降级策略,比如从“完全自主执行”降级为“生成半成品并请求人工确认”。第四层是系统级容错:对不稳定的外部依赖做熔断隔离,防止一个模型的抖动击穿整个服务。
这次热词里出现的“agent execution terminated due to error.”以及“llm request failed: provider rejected the request schema or tool payload.”,就是两类最典型的运行时错误。前者的排查重点在编排逻辑:哪个步骤异常、上下文是否完整、有没有触发重试上限。后者的排查重点在工具协议:你传给模型的功能定义(schema)是不是有模型不支持的字段、参数类型是否正确、或者提示词超出了模型支持的约束格式。遇到后者时,我会先用一个最小化的 prompt 测试工具能否被正确调用,再逐步加字段定位差异。
3.3 安全与可靠性检查清单
我把 Agent 上线前必须过的检查项整理成了一张速查表,照着做可以避免大多数基础问题。
| 检查域 | 检查项 | 通过标准 |
|---|---|---|
| 身份权限 | 外部访问身份 | Agent 使用的密钥和凭证全部为最小权限 |
| 知识安全 | 知识库写入权限 | 外部知识写入需审核,检索内容拼接前经过滤 |
| 工具安全 | 工具白名单 | 工具有效范围已限制,危险操作要求人工确认 |
| 数据安全 | 日志与脱敏 | 日志不落盘敏感信息,上下文脱敏规则已启用 |
| 稳定性 | 超时与重试 | LLM 调用与工具调用均有超时、重试、退避机制 |
| 稳定性 | 降级与熔断 | 外部依赖异常时系统能降级而不是直接终止 |
| 可观测 | 调用链路日志 | 每个 Agent 步骤的输入输出均有 trace 记录 |
| 可评测 | 回归测试集 | 关键流程至少有 20 条以上的回归测试用例 |
4. LLM 工具链与评估方法论
4.1 LLM 框架选型:别被抽象绑架
每次日报里有“llm框架”这个词出现时,都会有一批人纠结选 LangChain 还是别的什么。我的观点一直很明确:先跑通业务,再谈框架;自己维护一个几十行的抽象层往往比硬上重型框架更舒服。LLM 框架的价值在于把它已经踩过的坑封装好:上下文管理、工具调用协议、记忆接口、错误重试、可观测性。但这些价值只有在框架的设计思路跟你的使用场景匹配时才成立。
如果需要我给出一个通用的选型思路,我会从三个维度判断:项目是偏 RAG 知识问答还是偏 Agent 工具调用;团队有没有能力在框架失控时做二次开发;你更在意快速出活还是长期可控。对于 Agent 工具调用场景,我更倾向轻量可控的路线:自己定义一个消息结构、工具注册表、简单的循环调度器,把“Harness”握在自己手里。这样即便出了问题,你也能一眼看到是哪一层的锅。
4.2 LLM as Judge:评估 Agent 输出的实用做法
“llm as judge”这个方向的热度一直很稳,因为大家越来越发现,Agent 的输出质量光靠人肉看样本根本看不完。用 LLM 当评审者给另一个 LLM 的输出打分,做法上有一套相对成熟的路径:先定义评估维度和评分标准,再写评审 Prompt,然后批量跑测试样本,最后汇总得分并人工抽查校验。
评审 Prompt 至少要包含四个要素:被评审的任务背景、评估维度说明、具体的评分锚点(比如 1 分到 5 分分别对应什么情况)、以及要求输出结构化结果的格式。维度一般包括相关性(有没有跑题)、忠实度(有没有编造)、安全性(有没有危险内容)、工具使用正确性(选没选对工具、传没传对参数)。我试过同时让两个不同模型当评审者对同一批结果打分,明显发现不同评审模型的偏好有差异,所以生产环境中我会让两个评审并行,再做人机结合抽检,而不是完全信任单一“裁判”。
4.3 基于 LLM 的单元测试:把 Agent 当软件来测
“基于llm的单元测试”这个热词说明大家已经开始用做软件工程的方式做 Agent 了,这是我最乐意见到的变化。LLM 能生成单元测试,也能辅助生成针对 Agent 行为的回归用例。做法上分两条路线。
一条是让 LLM 帮忙创建传统代码的单元测试用例,尤其适合代码库不熟悉或者测试覆盖不足的老项目:把函数签名和注释丢给 LLM,让它生成测试用例,然后再人工审查和补充边界条件。另一条是面向 Agent 行为的“场景回归测试”:把用户的典型问题、工具调用路径、期望结果整理成一个测试集,每当修改了系统提示词、工具 schema 或编排逻辑后,在测试集上跑一遍,对比输出是否回归。我自己的项目里至少保留了 50 条核心场景用例,改完任何系统 Prompt 第一件事就是跑回归。
4.4 本地部署 GGUF 与模型精调的轻量路线
“安卓本地运行gguf格式llm软件”能上热词,我是有共鸣的。本地部署最大的价值是隐私不落地、无 API 费用、可以完全离线调试。对移动端来说,模型文件格式基本就是 GGUF,因为 GGUF 可以配合量化(比如 Q4_K_M、Q5_K_M、Q8)大幅压缩模型体积,还能用 llama.cpp 这类开源运行时直接推理。
在安卓 8 以上的设备上跑 GGUF,大致流程是:准备一个合适的量化小模型文件,比如 1.5B 到 4B 参数量的模型;找一款支持 GGUF 的安卓端推理应用(社区里有很多基于 llama.cpp 封装的开源壳子);加载模型后调低上下文长度和批大小,优先保障响应速度。实测下来,4B 量子化模型在骁龙主流芯片上大约能跑到每秒 2 到 5 个 token,足够做简单的问答和摘要,但顶不住复杂的多轮 Agent 推理。我的建议是:本地移动端部署目前更适合做离线知识问答和简单的文本处理,重活的 Agent 编排还是放到服务端划算。
模型精调这边,“使用聊天记录模型精调llm”也是一个很实际的省钱路线。如果你有一批业务场景下的真实对话数据,可以整理成指令微调格式(instruction、input、output),在开源基座模型上做轻量 LoRA 微调,往往比反复调 Prompt 更有效地提升特定场景表现。操作时注意清洗数据里的隐私信息,并且一定要保留一部分不参与训练的聊天记录作为验证集,防止模型在微调后丢失通用能力。
5. Skill 机制与效率工具新玩法
5.1 网页转 Markdown 的 Skill:最实用的内容采集能力
热词“agent 将网页保存成markdown的 skill”看起来不起眼,但我觉得这正是 Agent 真正进入工作流的关键能力。很多 Agent 任务都需要先获取网页内容才能进一步处理,而原始 HTML 里的大量标签、样式、脚本会让上下文像被垃圾填满一样。把网页正文抽取出来转换成 Markdown,Token 占用能减少一半以上,下游的分析和总结质量也会跟着提升。
实现这个 Skill 时,我建议不要直接用正则剥标签,而是用成熟的正文抽取方案(比如读页面元数据加上 body 文本提取),再配合 Markdown 转换规则做标题层级和代码块的还原。难点在正文抽取,尤其要处理各种网站的不同模板;我的做法是先抽“主内容区”,扔掉导航、页脚、广告相关节点,再做转换。做完后给这个 Skill 配一个明确的能力描述,让 Agent 在需要读取网页时优先选择它而不是自己硬啃 HTML。
5.2 Hermes Agent:把 Agent 接进 Obsidian 的玩法
“hermes agent obsidian”这几组热词串在一起,指向的是社区里一个很具体的需求:让 Agent 操作我自己的知识库。Obsidian 这类本地笔记工具里的内容量大、结构散、纯文本友好,天然适合让 LLM 去做检索、摘要、关联和整理。社区里已经有一些基于本地笔记库的 Agent 项目,它们能通过读取 Markdown 笔记、执行搜索脚本、调用本地接口在笔记系统和对话之间搭桥。
如果你也想搭这么一套东西,我的建议是先界定 Agent 可以做什么、不可以做什么:默认只读检索和摘要,写入操作必须经过确认,避免 Agent 把知识库改乱。这个边界尤其重要,因为“自主写笔记”这种能力一旦放得太开,很容易把你的精心整理变成一场灾难。
5.3 Agent 画图与多模态扩展
“agent画图”也在热词里。现在不少 Agent 框架已经能调用绘图模型生成图片,比如让 Agent 根据一段描述规划画面元素、调用文生图接口、再根据反馈反复修正。这个方向技术上没有太多障碍,难点主要在 Agent 对图像质量的迭代判断上——很多模型生成的图片是否好看,Agent 很难准确评估,所以实际项目里我会把“人工反馈循环”加进去,人给一句修改意见,Agent 转化成下一次生成的重绘提示词。
多模态 Agent 的整体趋势也是如此:文字、音视频、图像工具的接入越来越标准,但 Agent 的自主判断仍然需要在关键节点上引入人工审核,才能避免不可挽回的失控输出。
6. 新手学习路线与避坑手册
6.1 从零开始 Agent 开发:六步走路线
“agent学习路线”和“agent开发学习路线”每周都在热搜上,说明新人确实需要一个不用烧脑、按顺序执行的地图。以我带的实践经验来看,六步比较稳。
第一步先做使用者:去体验几款成熟的 Agent 产品,感知 Agent 能做什么、会怎么失败。第二步跑通一个开源 Agent 框架的第一步:搭环境、跑通一个调用工具的 demo。第三步理解核心循环:自己实现一个最简单的“思考-行动-观察”循环,不依赖任何框架。第四步写自己的 Skill:选一个重复性任务封装成技能,比如网页转 Markdown。第五步做多角色拆分:把一个任务拆给两个 Agent 协作,体会编排的复杂性。第六步补安全和评测:给自己做的 Agent 加日志、加回归测试集、加权限控制。
整个路线最关键的其实是第三步,自己动手实现循环会让你对 Agent 的本质有肌肉记忆。跳出框架去裸写一次,再回来看框架代码,会发现很多抽象瞬间豁然开朗。
6.2 学习过程中最让人头大的几个问题
结合热词里的报错信息,我把新人最容易卡住的几个点整理一下。
“LLM request failed: provider rejected the request schema or tool payload.”这个报错多半出在工具定义上。模型所支持的 function calling 格式是有限制的,当你传了模型不认识的字段、类型不匹配、或者在 prompt 中约束了模型输出某些 JSON 格式但模型没按要求返回时,就会出现这类问题。排查方法是简化工具定义,逐个字段核对,用最小化复现来缩小范围。
“agent execution terminated due to error.”这种错误则更像“链断了”:工具返回了不可预期的格式、上下文超限、或者重试次数耗尽。我的做法是给每个 Agent 步骤都打 trace,记录输入摘要和工具返回值,这样能快速定位到底在哪一步断掉。
上面这些坑的本质原因通常只有一个:你太相信模型的“自觉”了。正确做法是用清晰的 schema、明确的输出格式约束、健壮的错误处理,而不是指望 LLM 每次都表现得完美。把 Agent 当成一个有想象力但责任感不强的实习生来管理,很多设计思路反而会清晰很多。
6.3 日报之外:我的一点实操建议
做日报这段时间,我体会最深的是:技术热词的变化速度很快,但底层的问题池子就那么几十个——上下文管理、工具可靠性、记忆安全、质量评估、成本控制。与其天天追新框架,不如把上面这几条主线吃透。我的做法是每月拿一个半天,把所有热搜词归类,映射到自己熟悉的底层问题集上,然后挑一到两个缺口做专项实验。比如这次看到“agentpoison”时,我就花时间给自己项目的知识库补了白名单校验和内容标记;看到“llm as judge”时,我就给回归测试集加了双评审交叉验证。
这份日报能做的,是把分散在社区的碎片信号整理成可参考的路线图。真正的功课,还得在读完之后回到自己的项目里去落。希望这篇长文能帮你在 Agent 和 LLM 这条路上省点试错成本。