收藏必备!小白程序员轻松入门大模型:编码智能体与Agent harness详解

张开发
2026/4/27 21:17:08 15 分钟阅读
收藏必备!小白程序员轻松入门大模型:编码智能体与Agent harness详解
本文介绍了编码智能体Coding agents和Agent harness的整体设计解释了它们是什么、如何运作以及如何将各个组件拼装在一起。文章指出Agent之所以成为重要话题是因为最近可落地LLM系统的进步不仅在于模型变强还在于我们如何使用模型。工程化系统如工具使用、上下文管理、记忆与模型本身同样关键。文章详细拆解了编码Agent的六个主要组件实时仓库上下文、提示词形状与缓存复用、工具访问与使用、尽量减少上下文膨胀、结构化会话记忆以及通过子Agent做任务委派。这些组件在实现上深度交织共同构成了高效、可靠的编码智能体系统。1、LLM、推理模型与 Agent 之间的关系你大概已经熟悉 Claude Code 或 Codex CLI。铺垫一下它们本质上是具备 Agent 特性agentic的编码工具——在一个 LLM 外面包了一层应用层也叫 agentic harness让它在做编码任务时更顺手、表现更稳定。编码 Agent 是为软件工程场景专门设计的关键不只是选了哪个模型还有周边系统怎么做——包括仓库上下文repo context、工具设计、提示词缓存prompt-cache的稳定性、记忆以及长会话的连续性。这个区分很重要因为大家聊 LLM 的编码能力时经常把模型本身、推理行为、以及具体 Agent 产品混成一回事。但在进入编码 Agent 的细节之前我先简单补一点背景LLM、推理模型reasoning models与 Agent 之间到底是什么关系。LLM是核心的下一个 token 预测模型。推理模型本质上还是 LLM但通常会通过训练和/或提示词让它在推理时投入更多推理计算用于中间推理、校验、或者在多个候选答案之间做搜索。Agent则是在模型之上的一层你可以把它理解成围绕模型的一个控制循环control loop。通常给定一个目标Agent 层或 harness会决定下一步该看什么、调用什么工具、如何更新自身状态、何时停止等。粗略类比一下LLM 是发动机推理模型是“加大马力的发动机”更强但更贵而 Agent harness 是帮我们把这个发动机用得更好的整套车架/传动系统。这个比喻当然不完美因为我们也能把普通 LLM 或推理 LLM 单独拿来用比如在聊天界面或 Python 里但希望能传达核心意思。换句话说Agent 是一个在环境中反复调用模型的系统。所以简单总结如下LLM原始模型推理模型经过优化的 LLM更倾向输出中间推理轨迹并更会自我校验Agent一个循环系统模型 工具 记忆 环境反馈Agent harness围绕 Agent 的软件脚手架负责上下文、工具、提示词、状态与控制流管理Coding harnessAgent harness 的特例针对软件工程的任务型 harness管理代码上下文、工具执行与迭代反馈如上所列在 Agent 与编码工具的语境里经常会出现 Agent harness和 Coding harness这两个术语。Coding harness 是围绕模型的软件脚手架帮助它高效地写/改代码而 Agent harness 概念更宽不一定只做编码比如 OpenClaw。Codex 和 Claude Code 可以看作 Coding harness。总之更好的 LLM 是推理模型的更好地基推理模型往往需要额外训练而 harness 能把推理模型的能力榨出来更多。当然LLM 和推理模型即使不加 harness也能单独解决编码任务。但编码工作不只是「下一个 token 生成」。很大一部分其实是在仓库里导航、搜索、查函数定义、应用 diff、跑测试、看报错、以及把所有相关信息都维持在可用上下文里。写代码的人都知道这很费脑子所以我们编码时不喜欢被打断 )这里的要点是好的 Coding harness 能让推理模型和非推理模型在普通聊天框里看起来“没那么强”的能力在实际体验上显著变强——因为它更擅长上下文管理等周边工作。2、Coding Harness编码外壳/框架上一节提到当我们说harness通常指的是模型周边的软件层它负责拼装提示词、暴露工具、跟踪文件状态、应用编辑、运行命令、管理权限、缓存稳定前缀、存储记忆……等等。如今在用 LLM 时相比直接提示模型或用网页聊天 UI更像“带文件上传的聊天”这一层软件几乎决定了大部分用户体验。在我看来现阶段各家 LLM 的原始模型能力其实差不多比如 GPT-5.4、Opus 4.6、GLM-5 之类因此 harness 往往是让某个 LLM 在特定任务里更好用的关键差异点。这是我的推测如果把最新、最强的一批开源模型例如 GLM-5塞进类似的 harness 里它很可能能在 Codex 里做到接近 GPT-5.4 的水平或在 Claude Code 里做到接近 Claude Opus 4.6 的水平。当然针对 harness 的后训练post-training通常也会有帮助。比如 OpenAI 过去就长期维护 GPT-5.3 和 GPT-5.3-Codex 这类不同变体。下面我会更具体地讨论 Coding harness 的核心组件。我会以我的Mini Coding Agent为例https://github.com/rasbt/mini-coding-agent。**备注**本文为了简化表述会把 Coding agent 和 Coding harness 有点混着用。严格说Agent 是模型驱动的决策循环harness 是提供上下文、工具与执行支持的周边软件脚手架。下面是编码 Agent 的六个主要组件。你也可以直接看我这个“最小但完整可用”的 Mini Coding Agent 源码纯 Python 实现里面用注释标了这六块############################## #### Six Agent Components #### ############################## # 1) Live Repo Context - WorkspaceContext # 2) Prompt Shape And Cache Reuse - build_prefix, memory_text, prompt # 3) Structured Tools, Validation, And Permissions - build_tools, run_tool, validate_tool, approve, parse, path, tool_* # 4) Context Reduction And Output Management - clip, history_text # 5) Transcripts, Memory, And Resumption - SessionStore, record, note_tool, ask, reset # 6) Delegation And Bounded Subagents - tool_delegate1. 实时仓库上下文Live Repo Context这可能是最显而易见的组件但也往往是最重要的之一。当用户说“修一下测试”或“实现 xyz”时模型应该知道自己是否在一个 Git 仓库里、当前在哪个分支、有哪些项目文档可能包含指令等。因为这些信息经常会影响正确行动。比如“修一下测试”并不是一个自洽的指令如果 Agent 看到了 AGENTS.md 或项目 README它可能会知道该跑哪条测试命令如果它知道仓库根目录和目录结构就能去正确的位置找信息而不是瞎猜。另外Git 分支、状态、提交记录也能提供更多上下文现在有哪些改动正在进行、注意力应该放在哪一块等。这里的要点是编码 Agent 会在真正开始干活前先收集信息。这样它不会每次接到新提示时都从零开始、毫无上下文。2. 提示词形状与缓存复用Prompt Shape And Cache Reuse当 Agent 有了仓库视图之后下一个问题是如何把这些信息喂给模型。上一张图展示了一个简化版本“合并提示词prefix request”但在实践中如果每次用户提问都把 workspace 摘要重新拼一次、重新处理一次其实挺浪费的。也就是说编码会话是重复的Agent 规则通常不变工具描述通常也不变甚至 workspace 摘要通常也大体不变。每一轮主要变化往往是最新的用户请求、最近的对话记录transcript以及可能的短期记忆。“聪明”的运行时runtime不会每回合都把所有东西当成一大坨提示词从头构建如下图所示。与第 1 节的区别在于第 1 节关心的是收集仓库事实这里关心的是如何把这些事实打包并高效缓存以便反复调用模型。图里的“稳定Stable提示词前缀”意味着那部分信息变化不大通常包含通用指令、工具描述、workspace 摘要等。如果没有重要变化我们不想每次交互都浪费算力去重建它。而其他部分更新更频繁通常每回合都会变包括短期记忆、最近的对话记录以及最新的用户请求。简而言之所谓缓存“稳定提示词前缀”就是一个聪明的 runtime 会尽量复用那部分内容。3. 工具访问与使用Tool Access and Use工具访问/工具使用是“这不再只是聊天而开始像一个 Agent” 的分水岭。普通模型可以用文字建议你去跑什么命令但把 LLM 放进 Coding harness 后它应该做得更“窄”但更有用能直接执行命令并把结果取回来而不是我们手动执行再把结果贴回聊天框。不过harness 通常不会让模型随意编造任意语法它会提供一个预先定义好的、允许调用的“命名工具列表”这些工具的输入清晰、边界明确。当然也可以把 Python 的subprocess.call作为其中一个工具让 Agent 能跑广泛的 shell 命令。工具使用的流程大致如下图为了更直观下面是使用我的 Mini Coding Agent 时用户通常能看到的交互样子。它没 Claude Code 或 Codex 那么漂亮因为它非常极简纯 Python、无外部依赖。在这里模型必须选择一个 harness 能识别的动作比如列目录、读文件、搜索、跑 shell 命令、写文件等同时还要把参数按 harness 可校验的格式给出来。所以当模型请求做某件事时runtime 就可以停下来做一系列程序化检查例如“这是已知工具吗”“参数合法吗”“这需要用户审批吗”“请求访问的路径是否在 workspace 内”只有这些检查通过工具调用才会真正执行。运行编码 Agent 当然有风险但这些 harness 检查也会提高可靠性避免模型执行完全任意的命令。此外除了拒绝格式错误的动作、做审批门禁approval gating还可以通过检查文件路径把文件访问限制在仓库内部。某种意义上harness 给了模型更少的自由但同时也让它更可用、更可靠。4. 尽量减少上下文膨胀Minimizing Context Bloat“上下文膨胀context bloat”不是编码 Agent 独有的问题是所有 LLM 系统都会遇到的。确实现在 LLM 支持的上下文越来越长但长上下文仍然昂贵也会带来额外噪声如果塞了很多不相关信息。在多轮对话里编码 Agent 比普通 LLM 更容易遭遇上下文膨胀反复读文件、工具输出很长、日志很多等等。如果 runtime 把这些都原封不动保留它很快就会把可用的上下文 token 用光。所以一个好的 Coding harness 通常在处理上下文膨胀方面会更讲究不只是像普通聊天 UI 那样简单截断或总结。概念上编码 Agent 的上下文压缩compaction可以像下图这样工作。一个最小的 harness 至少会用两种压缩策略来管理这个问题Clipping裁剪缩短长文档片段、大工具输出、记忆笔记、对话条目。也就是避免某一段文本因为太啰嗦就霸占了整个提示词预算。Transcript reduction / summarization对话记录压缩/总结把完整会话历史下一节会讲更多变成更小、可塞进 Prompt 的摘要。这里一个关键技巧是让最近发生的事保留更丰富的细节因为它们更可能影响当前步骤而更早的事件则更激进地压缩因为它们往往更不相关。此外还会对早期的文件读取做去重避免模型因为之前多次读过同一个文件就在后续每次都重复看到一模一样的内容。总体上我觉得这是一块“被低估但很重要、而且很无聊”的编码 Agent 设计很多你以为的“模型质量”其实是“上下文质量”。5. 结构化会话记忆Structured Session Memory这一节“结构化会话记忆”关注的是历史在存储层面的结构Agent 会把什么长期保留下来当作永久记录所以这里强调的是runtime 会保留更完整的 transcript 作为耐久状态同时还有一层更轻量的“记忆层memory layer”——它更小而且会被修改/压实而不是只追加不整理。总结一下编码 Agent 至少会把状态分成两层工作记忆working memoryAgent 明确维护的一小段“蒸馏态”信息完整 transcript全量对话记录包含所有用户请求、工具输出、LLM 回复上图展示了通常会存成磁盘 JSON 文件的两份会话文件完整 transcript 与工作记忆。如前所述完整 transcript 保存全历史并且关闭 Agent 后能恢复继续工作记忆是当前最重要信息的蒸馏版和紧凑 transcript 有点关系。但紧凑 transcript 和工作记忆的职责略有不同紧凑 transcript用于重建 prompt。它的工作是给模型一份“压缩过的最近历史视图”这样模型能接着聊下去而不必每回合都看全量 transcript。工作记忆更偏向任务连续性。它的工作是保持一段小而明确维护的摘要记录跨回合真正重要的东西比如当前任务、关键文件、近期笔记等。按照上图的第 4 步最新的用户请求、LLM 回复与工具输出会在下一轮里被记录成一个“新事件”同时写入全量 transcript 和工作记忆中图里为了不太乱没画出来。6. 通过有边界的子 Agent 做任务委派Delegation With (Bounded) Subagents当一个 Agent 具备工具与状态后下一个很有用的能力就是委派delegation。原因是它允许我们把某些工作并行化拆成子任务交给子 Agentsubagents从而加速主任务。比如主 Agent 正在做一件事但还需要一个旁支答案某个符号在哪个文件定义、某个配置写了什么、为什么某个测试失败等。把这类工作拆出去给一个有边界的子任务会比让一个循环同时扛所有工作线更好。子 Agent 只有在继承了足够上下文时才真的有用。但如果不做约束就可能出现多个 Agent 重复劳动、同时改同一批文件、或不断递归再起子 Agent ……等问题。所以真正棘手的设计点不只是“怎么起一个子 Agent”还包括“怎么给它上边界bind one” .这里的诀窍是子 Agent 继承足够上下文以便有效工作同时又受到约束比如只读、以及限制递归深度。Claude Code 很早就支持 subagentsCodex 是后来才加的。Codex 通常不会强制 subagent 只读相反它们一般会继承主 Agent 的沙箱与审批设置。所以边界更多是任务范围、上下文与深度控制。3、小结上面的章节试图覆盖编码 Agent 的主要组件。它们在实现上彼此深度交织。这和 OpenClaw 相比如何OpenClaw 可能是个有趣的对比但它并不完全是同一种系统。OpenClaw 更像是一个本地的、通用的 Agent 平台也能写代码而不是一个专门的终端编码助手。不过它与 Coding harness 仍有不少重叠点它会使用 workspace 里的提示词/指令文件例如 AGENTS.md、SOUL.md、TOOLS.md它会保存 JSONL 会话文件并包含 transcript 压缩与会话管理它可以启动辅助会话与子 Agent等等但如上所述侧重点不同。编码 Agent 是为“人在仓库里工作、让编码助手高效检查文件/改代码/跑本地工具”而优化的而 OpenClaw 更偏向在多个聊天、频道与 workspace 上运行许多长期存活的本地 Agent——编码只是其中一个重要工作负载。那么如何学习大模型 AI 对于刚入门大模型的小白或是想转型/进阶的程序员来说最头疼的就是找不到系统、全面的学习资源要么零散不成体系要么收费高昂白白浪费时间走弯路。今天就给大家精心整理了一份全面且免费的AI大模型学习资源包覆盖从入门到实战、从理论到面试的全流程所有资料均已整理完毕免费分享给各位核心包含AI大模型全套系统化学习路线图小白可直接照做、精品学习书籍电子文档、干货视频教程、可直接上手的实战项目源码、2026大厂面试真题题库一站式解决你的学习痛点不用再到处搜集拼凑扫码免费领取全部内容1、大模型系统化学习路线学习大模型方向比努力更重要很多小白入门就陷入“盲目看视频、乱刷资料”的误区最后越学越懵。这里给大家整理的这份学习路线是结合2026年大模型行业趋势和新手学习规律设计的最科学、最系统从零基础到精通每一步都有明确指引帮你节省80%的无效学习时间少走弯路、高效进阶。2、大模型学习书籍文档理论是实战的根基尤其是对于程序员来说想要真正吃透大模型原理离不开优质的书籍和文档支撑。本次整理的书籍和电子文档均由大模型领域顶尖专家、大厂技术大咖撰写涵盖基础入门、核心原理、进阶技巧等内容语言通俗易懂既有理论深度又贴合实战场景小白能看懂程序员能进阶为后续实战和面试打下坚实基础。3、AI大模型最新行业报告无论是小白了解行业、规划学习方向还是程序员转型、拓展业务边界都需要紧跟行业趋势。本次整理的2026最新大模型行业报告针对互联网、金融、医疗、工业等多个主流行业系统调研了大模型的应用现状、发展趋势、现存问题及潜在机会帮你清晰了解哪些行业更适合大模型落地哪些技术方向值得重点深耕避免盲目学习精准对接行业需求。值得一提的是报告还包含了多模态、AI Agent等前沿方向的发展分析助力大家把握技术风口。4、大模型项目实战配套源码对于程序员和想落地能力的小白来说“光说不练假把式”只有动手实战才能真正巩固所学知识将理论转化为实际能力。本次整理的实战项目涵盖基础应用、进阶开发、多场景落地等类型每个项目都附带完整源码和详细教程从简单的ChatPDF搭建到复杂的RAG系统开发、大模型部署难度由浅入深小白可逐步上手程序员可直接参考优化既能练手提升技术又能丰富简历为求职和职业发展加分。5、大模型大厂面试真题2026年大模型面试已从单纯考察原理转向侧重技术落地和业务结合的综合考察很多程序员和新手因为缺乏针对性准备明明技术不错却在面试中失利。为此我精心整理了各大厂最新大模型面试真题题库涵盖基础原理、Prompt工程、RAG系统、模型微调、部署优化等核心考点不仅有真题还附带详细解题思路和行业踩坑经验帮你精准把握面试重点提前做好准备面试时从容应对、游刃有余。6、四阶段精细化学习规划附时间节点可直接照做结合上述资源给大家整理了一份可直接落地的四阶段学习规划总时长约2个月小白可循序渐进程序员可根据自身基础调整节奏高效掌握大模型核心能力快速实现从“入门”到“能落地、能面试”的跨越。第一阶段10天初阶应用该阶段让大家对大模型 AI有一个最前沿的认识对大模型 AI 的理解超过 95% 的人可以在相关讨论时发表高级、不跟风、又接地气的见解别人只会和 AI 聊天而你能调教 AI并能用代码将大模型和业务衔接。大模型 AI 能干什么大模型是怎样获得「智能」的用好 AI 的核心心法大模型应用业务架构大模型应用技术架构代码示例向 GPT-3.5 灌入新知识提示工程的意义和核心思想Prompt 典型构成指令调优方法论思维链和思维树Prompt 攻击和防范…第二阶段30天高阶应用该阶段我们正式进入大模型 AI 进阶实战学习学会构造私有知识库扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架抓住最新的技术进展适合 Python 和 JavaScript 程序员。为什么要做 RAG搭建一个简单的 ChatPDF检索的基础概念什么是向量表示Embeddings向量数据库与向量检索基于向量检索的 RAG搭建 RAG 系统的扩展知识混合检索与 RAG-Fusion 简介向量模型本地部署…第三阶段30天模型训练恭喜你如果学到这里你基本可以找到一份大模型 AI相关的工作自己也能训练 GPT 了通过微调训练自己的垂直大模型能独立训练开源多模态大模型掌握更多技术方案。到此为止大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗为什么要做 RAG什么是模型什么是模型训练求解器 损失函数简介小实验2手写一个简单的神经网络并训练它什么是训练/预训练/微调/轻量化微调Transformer结构简介轻量化微调实验数据集的构建…第四阶段20天商业闭环对全球大模型从性能、吞吐量、成本等方面有一定的认知可以在云端和本地等多种环境下部署大模型找到适合自己的项目/创业方向做一名被 AI 武装的产品经理。硬件选型带你了解全球大模型使用国产大模型服务搭建 OpenAI 代理热身基于阿里云 PAI 部署 Stable Diffusion在本地计算机运行大模型大模型的私有化部署基于 vLLM 部署大模型案例如何优雅地在阿里云私有部署开源大模型部署一套开源 LLM 项目内容安全互联网信息服务算法备案…扫码免费领取全部内容3、这些资料真的有用吗这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理现任上海殷泊信息科技CEO其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证服务航天科工、国家电网等1000企业以第一作者在IEEE Transactions发表论文50篇获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。资料内容涵盖了从入门到进阶的各类视频教程和实战项目无论你是小白还是有些技术基础的技术人员这份资料都绝对能帮助你提升薪资待遇转行大模型岗位。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

更多文章