大模型不是 Agent:智能体究竟是如何运转的?

什么是 Agent 你在 ChatGPT 的网页里打一句话,它回一段话。问天气,它给你天气。让它写首诗,它给你一首诗。到这里为止,你手里的是一个大语言模型(Large Language Model,LLM),一个很会接话的问答机器。 可如果它自己握着键盘鼠标,自己翻仓库里的文件,自己往数据库里写数据,把一个"把项目做完"的任务从头做到尾,情况就变了。人们把这种形态叫做 Agent(智能体)。 Claude Code 的 CLI 界面 2025年2月,一款Agent产品横空出世,它就是Claude Code。上图为它的CLI界面。这个就是一个Agent。 很多人在本地把 Agent 跑通了。模型能回答,能调用一两个工具,看起来挺像回事。可一旦放到真实环境里,让它稳定处理用户一个个请求,问题就全冒出来了。模型偶尔把格式写错,工具偶尔抛异常,流程偶尔卡在一个地方不动。每一样都得有人兜底。 这两个东西之间差了一层外壳。 LLM 只负责一件事,把输入变成输出。它没有手,没有脚,连执行一段代码都做不到,它只能生成文字。Agent 的玩法,是让 LLM 当大脑,外面套一个能真正动手的外围工程系统(Harness)。大模型提供推理能力,Harness 提供除模型权重之外的所有基础设施,把模型那些不可靠的自然语言输出,转成工程上可控的系统行为。分开说就是一句话,Agent 等于一个会想的大脑,加一个会干活的身体。 这篇文章会拆开这层壳,一路往下讲。先看 Harness 由什么组成,再看 Agent 接到任务后怎么运转,接着把工具调用和技能积累这两块讲透。 Harness 基座 Harness 通常分成三个核心层。 Runtime(运行时)。维持模型运转的核心循环,负责提示词的组装、结构化输出的解析,以及异常重试机制。可以把它想成发动机,让模型一圈一圈转下去。 Capabilities(能力层)。赋予 Agent 实际操作环境的能力,包括工具注册表、上下文管理、长期记忆读写。这一层决定 Agent 能摸到什么东西。 Assurance(保障层)。也叫 Eval Harness,它存在于离线开发路径里。批量遍历测试数据集(Goldens),调用 Agent 跑完整任务,收集执行轨迹(Traces),再用评估指标打分,比如准确率、幻觉率、LLM-as-a-judge。没有这一层,Agent 就没法稳定迭代。 flowchart TB M["Model 大模型大脑"] subgraph HARNESS["Harness 基座"] direction TB R["Runtime 运行时组装提示词 · 解析输出 · 异常重试"] C["Capabilities 能力层工具注册表 · 上下文管理 · 长期记忆"] A["Assurance 保障层评测数据集 · 收集轨迹 · 打分"] end M --> R R --> C C --> A 想真正学会这套东西,最实在的办法是落到你自己熟悉的工程栈里。用 Python 做测验或复习系统,就抛开高级封装库,手写一个最简的 Runtime Loop,自己处理模型的 JSON 输出和本地业务逻辑的对接。等你亲手撞过一次 JSON 解析报错和无限重试循环,Harness 的价值就彻底清楚了。 ...

📅 August 8, 2026 · ⏱️ 28 min · 📝 约 4300 字 · 👁️ 次阅读

Large Language Models: 改变世界的语言革命

前言 2018 年 6 月,OpenAI 发布了首个基于 Transformer 架构的语言模型 GPT(Generative Pre-trained Transformer),标志着大语言模型(Large Language Models, LLM)时代的到来。 笔者接触 LLM 的时间很晚。笔者第一次了解到人工智能技术大约是在 2020 年,了解的是 Siri——一款 Apple 公司推出的智能语音助手。那时,笔者对人工智能的认知还停留在语音识别和图像识别这类传统的、基于规则或特定任务的 AI 技术上。 直到 2023 年,ChatGPT 的出现彻底打破了这种刻板印象。它不再是那种只会回答"对不起,我没听懂"的死板程序,而是展现出了令人惊叹的上下文理解与生成能力。直至 2024 年,LLM 已经跃升为人工智能领域的核心基础设施,并在自然语言处理、代码生成、知识问答等多个领域展现出强大的降维打击能力。 彼时,笔者第一次尝试使用 ChatGPT 进行代码生成,切身体验了 LLM 在编程辅助方面的巨大潜力。通过与 ChatGPT 的自然语言交互,笔者能够快速生成复杂的代码片段、精准调试报错程序。即使是面对晦涩的算法问题,它也能像一位不知疲倦的资深工程师一样,提供详细的逻辑拆解和替代方案。这种革命性的交互式编程体验,让笔者深刻认识到:我们正在经历一场软件工程范式的重构。 9.11 > 9.9 ?? 在大家惊叹于 LLM 无所不能的同时,也发生了一些令人啼笑皆非的"降智"事件。当时引发群众广泛讨论的一个有趣话题是:为什么询问 ChatGPT"9.11 和 9.9 哪个更大"时,它的回答往往是 9.11 更大? 人们尝试用不同的语气提问,甚至切换不同的语言,但早期的 LLM 几乎都会掉进这个陷阱。这一现象虽然看似荒诞,但却完美暴露了 LLM 底层运行逻辑的一个核心特征:它是一个"文字接龙"的高手,而不是一个内置了计算器的数学天才。 造成这个现象的原因主要有两个: 分词机制(Tokenization):LLM 看待世界的方式不是单个字母,而是"词元(Token)"。在切分 9.11 时,它可能会将其视为 9、.、11。在语言模型的潜意识里,整数 11 显然大于 9。 语料库的语义偏差:在人类互联网的海量文本中,带小数点的数字经常被用作"软件版本号"。从版本迭代的逻辑来看,v9.11 确实是 v9.9 之后发布的新版本。 这个经典的错觉引发了学术界和工业界对 LLM 逻辑推理边界的深刻反思,也成为了推动模型向"深度思考"和"强化学习"演进的催化剂。这让我们不禁要问:这些看起来像人的机器,到底是由什么构成的? ...

📅 June 22, 2026 · ⏱️ 20 min · 📝 约 3118 字 · 👁️ 次阅读

PyMuPDF 使用指南:PDF 处理神器

前言 笔者今天在处理一批 PDF 文档时,使用了 pyMuPDF 库来提取文本和表格。今天在查阅相关文档时无意间发现了一个名为 pymupdf4llm 的库,它是基于 pyMuPDF 的一个扩展,专门针对将 PDF 内容转换为适合 LLM 输入的 Markdown 格式进行了优化。这个库不仅能提取文本,还能识别表格和图片,并将它们以 Markdown 语法的形式输出,非常适合我们在 RAG 流水线中使用。在这篇文章中,我们先重点关注下pyMuPDF的基本使用。 关于 PyMuPDF PyMuPDF 是一个功能强大的 Python 库,用于处理 PDF、XPS、OpenXPS、CBZ 和 EPUB 等文档格式。它提供了丰富的 API 来提取文本、图像、表格等内容,并支持对文档进行修改和注释。PyMuPDF 的核心优势在于其高效的解析能力和对复杂文档结构的良好支持,使得它成为处理 PDF 文档的首选工具之一。 安装 在 Python 环境中安装 PyMuPDF 非常简单: bash Copy pip install --upgrade pymupdf PyMuPDF 基础功能 1. 打开文档 python Copy import fitz # PyMuPDF 的别名 doc = fitz.open("example.pdf") # 打开 PDF 文档(路径填写相对路径或者绝对路径) print(f"文档页数: {doc.page_count}") 这里,doc 是一个 Document 对象,表示打开的 PDF 文档。你可以通过 doc.page_count 获取文档的总页数。如果你查看 doc 对象的类型,你会发现它是一个 Document 类的实例。 ...

📅 June 16, 2026 · ⏱️ 5 min · 📝 约 852 字 · 👁️ 次阅读
Comments