做了一个月 Skills,我才理解 Agent 可靠性的本质
把模型当做一个不稳定的组件,围绕它,对它做工程。
提示词工程、上下文工程、Harness Engineering、Loop Engineering。每一个新概念的提出,都像金字塔一样,是对agent更深一层的提炼和理解。
系统可靠的秘诀,不在模型会不会说,而在它出了岔子以后,谁来收拾残局。
01 核心前提:模型是不稳定的部件
模型不是你交代一个任务,就稳稳当当给你做完的那种存在。
它会忘事,会编造,会跑偏,会在关键时刻掉链子,而且犯错了不会主动告诉你,甚至会真诚地相信自己是对的。
它是一个不稳定的部件。
所以问题从一开始就不是:怎么让模型更聪明?
而是:既然它不可靠,我怎么在外面搭一层东西,让它可靠起来?
这层外面的东西,就是工程结构。
用结构兜底,不用信任兜底。
02 Agent 工具自带Harness设计
我们现在用的Codex和Claude Code,本身已经带着不少Harness思想的影子。
它们不是裸模型接口,而是在模型外面包了一层工程结构。
但我逐渐意识到:工具给的,是让你能搭出这套结构的底座;真正完整的Harness,得靠我们在使用和设计时一点一点落进去。
在这类Agent系统里,我所理解的Harness机制,通常包含八个方面:
心跳循环:系统持续运转,不会死掉
心跳循环就是Agent内部那个持续运转的执行循环。
它不是一问一答的聊天机器人,而是一个持续转动的机制:
接收任务
整理上下文
调用模型
执行工具
检查结果
出错就恢复
继续下一轮
没有心跳循环,Agent就是一次性问答。
真实任务往往需要多轮执行:改代码、跑测试、看结果、再调整。
心跳循环让这些轮次能自动衔接,不需要你每轮都重新启动。Codex和Claude Code在对话里天然就带着这个多轮循环的能力,这是工具给我们最重要的基础设施之一。
例子:你让Codex修一个Bug。它不会只回你一句“建议修改某某文件”。
它会读取文件、定位问题、修改代码、运行测试。测试失败后,它会分析原因,再次修改,再次测试,直到通过,然后告诉你修好了。
这一连串动作能在一次对话里自动完成,靠的就是心跳循环在背后持续运转。
你只发了一次指令,它自己转了七八轮。
权限系统:会做不等于有权做
权限系统把“模型能做什么”和“模型被允许做什么”分开。
模型可能知道怎么执行某个命令,但系统要在它执行之前拦一道,检查这个操作是否被授权。
结果通常有三种:
允许
拒绝
需要用户确认
Codex和Claude Code对这一块提供了很实在的支持。危险操作会弹窗问你。
模型没有判断力。它可能为了完成任务执行危险操作:删文件、改配置、推送代码,而且不觉得这有什么问题。
权限系统是最后一道防线,确保不会因为模型的一时冲动造成实际损失。
例子:你让Codex帮忙清理项目里无用的依赖。它分析完后决定运行npm prune和rm -rf node_modules。
前者是常规操作,系统可能直接放行。后者是危险命令,系统会弹窗问你:“Agent 想执行rm -rf node_modules,确定吗?”
你必须点确认它才敢动。
模型知道怎么删文件夹,但它没有“擅自删文件夹”的权力。
上下文治理:工具提供自动压缩,但分层约定得靠我们
上下文治理是一套记忆管理机制。
Codex和Claude Code在对话太长时,会自动压缩历史,腾出空间,这部分是工具自己提供的基底。
但真正让记忆系统变得可控的,是我们主动在外部建立的一套分层约定。
记忆分成四层,各司其职,防止上下文窗口被无用信息塞满。不同的agent工具可能叫法不同。
上下文窗口是有限的,而且是要花钱的。
如果什么都往里塞,系统会变慢、变贵,还会因为注意力分散而出错。
更致命的是,真正重要的信息可能被淹没在大量冗余内容里。
工具自动压缩能救急,但它不理解什么是“重要的”。
真正能决定优先级和结构的,是我们主动设计好的分层。
例子:假设你的项目有大量文档。
如果不做分层,你可能把所有文档全塞进上下文里:部署文档、API文档、测试规范、历史变更记录。
结果Agent一上来就吃了三万字,还没开始干活,窗口就快满了。
上下文治理的做法是:CLAUDE.md只写“部署前必须跑测试、不要手动改生产配置”这种硬规矩,几行字。
MEMORY.md只写“部署文档 →docs/deploy.md”、“API 文档 →docs/api.md”这种索引。
Agent只有在需要部署时,才去打开docs/deploy.md看具体步骤。
不干活的时候,那些正文文件不占窗口。
错误恢复:工具给了自动恢复的底子,但要当主路径来设计
错误恢复机制认为:模型输出被截断、上下文爆了、工具调用失败、API超时,这些不是意外,是每天都在发生的事。
所以恢复路径不是“异常处理”,而是系统设计的主路径之一。
Claude Code在上下文快满时自动压缩历史,就是一个原生例子。
但要真正接住所有意外,单靠工具不够。
需要在设计Skill时,就预埋好恢复逻辑:先试低成本的修复,不行再加重手段。
比如上下文快爆了,先清理临时积压,再压缩历史对话,最后才剥掉更早的对话记录。
例子:你和Codex聊了很久,改了好几个文件,上下文窗口快满了。
这时候Codex不会突然报错停下,而是会在后台自动压缩前面的对话,把你之前让它修登录Bug的详细过程压缩成一句:“登录 Bug 已修复,根因是token过期。”
压缩完之后腾出了空间,它继续听你的新指令。
整个过程你可能完全没感知。
这就是错误恢复在主路径里默默起作用。
熔断机制:工具没给,得自己造
熔断是给自动重试设上限的机制。
当一个操作连续失败一定次数后,系统停止重试,汇报用户,保留现场,等待人工介入。
Codex和Claude Code本身不会自动帮你熔断,这个保护必须由我们在Skill里显式构建。
自动重试如果没有上限,会导致灾难。
自动压缩连续失败会烧掉海量API费用。代码修改连续失败会让代码越来越乱。部署连续失败会污染部署历史。
熔断的核心意义是承认当前手段已经失效了。继续重试不是坚持,是浪费。
例子:Codex帮你修一个Bug。
它修改代码,跑测试,失败;分析原因,再修改,再跑测试,又失败;再修改,再跑测试,还是失败。
这时候如果不停,它会一直改下去,每次都在烧token,而且代码可能越改越乱。
在Skill里设置的熔断会在第三次失败后叫停:
我已经试了三次,都没通过。当前代码状态是 xxx,测试失败的原因是 xxx,需要你来决定下一步。
它停下来等你,而不是闷头继续。
中断处理:工具给基础,我给闭环
中断处理机制保证:当用户打断Agent时,系统能说清楚“刚才做了什么、什么没做、为什么停了”。
工具允许你随时中断,也允许继续。
但要让未完成的工具调用被补齐一个“被中断”的结果,不留悬空的执行记录,这需要我自己在Skill流程里把账记清楚。
Agent在执行过程中可能调用多个工具:改文件、跑测试、查日志。
如果你中途打断它,有些工具可能已经执行了,有些还没开始。
如果不补齐记录,系统就会留下一堆说不清的状态残片。
下一次启动时,它不知道哪些做了、哪些没做,可能重复执行或者跳过关键步骤。
例子:你让Codex修改三个文件,改到第二个时你发现问题不对,按了停止。
我会让Skill在这种时候做两件事:
把已经改完的第一个文件标记为“已完成”
把改了一半的第二个文件标记为“被用户中断”
把第三个文件标记为“未执行”
下一轮对话开始时,Codex知道第一个文件改完了,第二个文件需要重新确认,第三个文件还没动。
账本是平的,不会乱。
验证独立:工具不强制,但我强制
验证独立是一条硬原则:写代码的 AI 不能给自己的代码打分。
验证必须由独立的视角来执行。要么是独立的快模型,要么是独立的验证流程。
工具不会阻止你让一个Skill又干活又给自己鼓掌,但我会主动拆开。
模型会真诚地相信自己写的东西没问题。
它太想让你满意了,甚至会伪造验证结果:生成一段“测试通过”的文本,但实际根本没跑测试,或者跑了但选择性忽略失败。
让实现者验证自己的代码,等于让考生给自己的卷子打分。
例子:你让Codex实现一个新功能。
如果它自己实现、自己测试、自己汇报“完成了,没问题”,你其实不知道它到底测了没。
我的做法是拆成两个环节:一个Skill负责写代码,另一个Skill负责验证。
验证Skill不看实现过程,只做三件事:
读最终代码
diff实际运行测试
把测试结果贴出来
通过就通过,不通过就给出具体反例。
隔离机制:工具没给围墙,我主动砌墙
隔离机制规定:多Agent之间默认不共享可变状态。
每个Agent有自己的文件读取记录、中断控制器、临时推理空间。
只有明确标记为“完成”的结果,才通过主Agent中转共享。
工具本身没有禁止跨Skill的信息流动,所以隔离是我在设计时强行划出来的边界。
Agent是不稳定的。
一个Agent的误判、幻觉、半成品推理,如果自动进入另一个Agent的上下文,会污染整个系统。
隔离默认的好处是:即使某个 Agent 跑偏了,它的混乱也只关在自己房间里,不影响其他 Agent。
例子:你让一个Agent研究“为什么登录接口响应慢”,同时让另一个Agent研究“为什么支付接口偶尔报错”。
如果不做隔离,研究登录的Agent可能把它的半成品猜测自动传给研究支付的Agent,导致支付那边的Agent也被带偏。
它跑去查数据库连接池,而实际问题在第三方支付网关。
隔离机制确保它们各查各的。
两边都出最终结论后,由主Agent汇总:
登录慢是因为索引缺失,支付报错是因为网关超时。
两个问题不会在调查过程中互相污染。
03 Agent 是全局结构的 Harness 设置
上面这八个机制,合在一起就是Agent层面的Harness思想。
工具给我们提供了一些必要的基座:心跳循环、权限确认、上下文自动压缩、中断基础支持。
但真正让这些变成一套完整工程骨架的,是我们自己在设计和使用时,有意识地把权限边界、熔断上限、独立验证、状态隔离这些约束钉进去。
以前我们在写系统提示词,写的是“你是什么人”,其实是不对的。
系统提示词的作用不是写“你是一个什么样的人”,而是写“你能做什么、不能做什么、做错了怎么办”。
人设是给 AI 穿戏服,戏服可以随时换、随时忘。
边界是给 AI 画牢房,牢房的墙是结构性的,每次调用都在。
判断标准很简单:
删掉这句话,系统行为会不会出现结构性变化?
会,就是边界;不会,大概率是装饰。
Agent层面的Harness,管的是所有任务通用的稳定性和安全性。
它不关心你具体在修Bug还是写API,它只管:
心跳别停
权限别越
上下文别爆
出错别死
中断有交代
失败有熔断
做和验分家
隔离防污染
所以,Agent本身就是全局结构的Harness设置。
系统可靠的秘诀,不在模型会不会说,而在它出了岔子以后,谁来收拾残局。
这个收拾残局的结构,就是Agent内嵌的Harness。
Agent是在为模型进行全局工程化设计,Skill是在为模型执行任务层的规范化工程设计。
也就是说,agent需要harness工程思维,skill也需要harness工程思维。
相当于人在规划层上需要工程思维,在执行层也需要工程思维。
04 Skill 是任务层次的 Harness 设置
光有全局还不够。
大楼安全,不代表你在楼里干什么都安全。
修Bug可能改错文件,部署可能推错分支,写API可能动到不该动的配置。
全局Harness不知道你具体在干什么,它只能管通用安全,管不了任务级别的细节。
所以需要Skill。
Skill就是给某个具体任务专门定一套规矩:
能动什么
不能动什么
先做什么
后做什么
做错了怎么收场
做到什么程度算完成
这套规矩的设计思路,和Agent全局Harness完全一样,有边界、有流程、有状态检查、有熔断、有恢复、有验证。
只不过全局管所有任务,Skill管一个任务。
Skills管一群任务,Skill就是任务层次的Harness设置。
05 全局 Harness 的思想完全适用于 Skill 设计
这是最核心的一点。
Agent全局Harness里总结出来的每一条原则,在设计Skill时我全部都用上了。
心跳循环的思想
Agent有心跳循环维持持续运转。
Skill也有自己的“小循环”:执行步骤、检查结果、失败重试、熔断退出。
宏观循环维持系统不挂,微观循环保证任务能继续。
注:我在Skill设计中,会做降级处理。如果循环指定次数还是有问题,就进行降级操作或者直接跳过,最终记录并与用户说明情况原因。
权限边界的思想
Agent有权限系统,把“会做”和“可以做”分开。
Skill也要明确边界:能动什么工具、不能动什么命令、动哪些文件、不动哪些文件。
能力越强,约束越细。
注:我在设计Skill的时候,都会加红绿灯。红灯就是明确不能做的事情,绿灯就是可以执行的事情。这是规范骨架中的约束。
中断处理的思想
Agent在中断时会补齐执行记录,保证账本闭环。
Skill也一样,启动时先做状态检查,判断当前做到哪一步了,从断点继续,不默认自己从零开始。
关键步骤之间主动抛出进度状态,让用户知道现在在哪、哪些已完成、哪些待执行。
注:我在Skill的设计中,会增加遇到问题时向用户咨询并确认的路径设置。
上下文治理的思想
Agent把记忆分成规矩、索引、正文、进度四层,入口文件必须短。
Skill也一样。
Skill文件本身要短,只写流程和约束,不堆示例代码。
流程细节和示例代码放在独立文件里,让Skill按需去读。
规矩放CLAUDE.md,细节放Skill文件对应的明细,记录放独立文件,索引放MEMORY.md,四样东西各司其职。
注:Skill的渐进披露读取,外面是汇总层,包括SKILL.md、resource文件夹、script文件夹、template文件夹等。
明细层就是resource文件夹里对Skill的规则明细。
Skill在设计编排时,工作流骨架会明确设计需要什么,就去对应的明细中查找规则。
最后
选择AI大模型就是选择未来!最近两年,大家都可以看到AI的发展有多快,时代在瞬息万变,我们又为何不给自己多一个选择,多一个出路,多一个可能呢?
与其在传统行业里停滞不前,不如尝试一下新兴行业,而AI大模型恰恰是这两年的大风口,人才需求急为紧迫!
人工智能时代最缺的是什么?就是能动手解决问题还会动脑创新的技术牛人!智泊AI为了让学员毕业后快速成为抢手的AI人才,直接把课程升级到了V6.0版本。
这个课程就像搭积木一样,既有机器学习、深度学习这些基本功教学,又教大家玩转大模型开发、处理图片语音等多种数据的新潮技能,把AI技术从基础到前沿全部都包圆了!
课堂上不光教理论,还带着学员做了十多个真实项目。学员要亲自上手搞数据清洗、模型调优这些硬核操作,把课本知识变成真本事!
课程还教大家怎么和AI搭档一起工作,就像程序员带着智能助手写代码、优化方案,效率直接翻倍!
这么练出来的学员确实吃香,83%的应届生都进了大厂搞研发,平均工资比同行高出四成多。
智泊AI还特别注重培养"人无我有"的能力,比如需求分析、创新设计这些AI暂时替代不了的核心竞争力,让学员在AI时代站稳脚跟。
课程优势一:人才库优秀学员参与真实商业项目实训
课程优势二:与大厂深入合作,共建大模型课程
课程优势三:海外高校学历提升
课程优势四:热门岗位全覆盖,匹配企业岗位需求
如果说你是以下人群中的其中一类,都可以来智泊AI学习人工智能,找到高薪工作,一次小小的“投资”换来的是终身受益!
·应届毕业生:无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。
·零基础转型:非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界。
·业务赋能 突破瓶颈:传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型。
智泊AI始终秉持着“让每个人平等享受到优质教育资源”的育人理念,通过动态追踪大模型开发、数据标注伦理等前沿技术趋势,构建起"前沿课程+智能实训+精准就业"的高效培养体系。
重磅消息
人工智能V6.0升级两大班型:AI大模型全栈班、AI大模型算法班,为学生提供更多选择。
由于文章篇幅有限,在这里我就不一一向大家展示了,学习AI大模型是一项系统工程,需要时间和持续的努力。但随着技术的发展和在线资源的丰富,零基础的小白也有很好的机会逐步学习和掌握。
【最新最全版】AI大模型全套学习籽料(可无偿送):LLM面试题+AI大模型学习路线+大模型PDF书籍+640套AI大模型报告等等,从入门到进阶再到精通,超全面存下吧!
获取方式:有需要的小伙伴,可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
来智泊AI,高起点就业
培养企业刚需人才
扫码咨询 抢免费试学
⬇⬇⬇
AI大模型学习之路,道阻且长,但只要你坚持下去,就一定会有收获。
