2026年1月

生成式 AI 的投资回报远超预期?Snowflake 调研全球 1900 位企业与 IT 专业人士后发现平均 ROI 高达 41%!点击下载完整报告

每个人都在努力提高大语言模型的精准度。但真正的挑战并非精度,而是上下文理解能力。在 BUILD 2025 大会上,Hex 合作伙伴工程负责人 Armin 探讨了为什么传统的方法,如评估套件或合成问题集往往不够有效,以及成功的 AI 系统是如何通过随着时间推移逐步积累上下文来构建的。

由 Snowflake Cortex 提供支持的 Hex,启用了一个新的对话式分析模型,每次交互都让模型变得更聪明。通过 Hex 的 Notebook Agent 与 Threads 功能,业务用户可直接定义核心问题,而数据团队则将这些问题精炼、审计并转化为持久且值得信赖的工作流。

在这个模型中,测试用例不再由数据团队闭门设计,而是由业务需求驱动并在数据工作流中自动实施,最终形成一个具有生命力的上下文系统,而非一成不变的提示词或测试集,它能随着组织共同演进。

准确率不是终点

Armin 开场就把矛头对准了一个常见做法:把业务用户会问的问题合成成一批样例,甚至进一步转成 SQL 查询,然后把这些喂给 LLM,用类似单元测试的方式去衡量它的准确率、稳定性与一致性。他不否认“准确性是顶层关注”,但他强调,把 LLM 当作传统软件组件来做单元测试,本身就是一个不合适的范式。

原因在于,当你把业务问题硬转换为一组 SQL,并据此去构建样例与评估集时,你很难覆盖真实业务中不断变化的语义、不断扩张的问题空间,以及不同用户在不同语境下对同一指标的不同问法。更重要的是,即使你做出了一个看似通过率很高的测试集,也依然回答不了企业最在意的那件事:当它在真实环境中生成了一个结论,你如何知道它不是在胡编?你又如何知道它到底做了什么才得到这个结论?

因此,Armin 把正确性从结果层拉回到系统层:你需要的不是一个靠样例证明自己正确的聊天机器人,而是一套可审计的系统,它能够随着时间变得灵活、可塑,能够让业务用户在使用中不断收敛可回答的问题类型,也能够让系统拥有被“硬化”的路径:哪些能力可以放开,哪些问题必须收紧,哪些定义需要固化,哪些数据应该进入上下文、哪些不应该。

在他看来,真正有效的路线是:从一套能运行、能被观察的系统出发,让系统在使用中暴露问题、沉淀模式,再反过来加固上下文。这种思路听起来不如直接做评估来得爽快,但它更接近企业系统的真实生长方式。

对话式分析如何变成“可审计的系统”

为了把“可审计”讲得具体,Armin 用 Hex 的产品演示展示了对话式分析在真实系统中应该是什么形态。演示从一个非常典型的业务问题开始:假设我是营销经理,我想让系统分析销售机会的“首次触达来源”(first touch source),并做营销归因视角的拆解。这里一个很关键的动作,是他先在系统里配置模型提供方:通过密钥对(key pair)连接到 Snowflake 实例,使用 Snowflake Cortex 内托管的 Claude,并强调这是一个“walled garden”的私有网络环境。这样做的直接意义是:模型驻留在数据所在的环境里,数据可以传递给模型,同时也能让 IT 团队对数据出入边界更放心。

进入线程后,Hex 并不是立刻吐出一句“结论”,而是在后台进行一系列用户不可见但决定可信度的步骤:它会先围绕可访问的元数据“思考”,查看平台上已有的 Hex 项目、仪表板或资产,判断是否存在可复用的内容;它会拉取来自数据仓库的表描述、列描述等元数据,并强调这些可以自动导入、不需要复杂配置;如果企业已经有 dbt 元数据,也可以进一步带入;随后它形成一个“漏斗式”的收敛过程:从广义元数据到相关表、再到更具体的模型信息与底层数据,最后才开始把 SQL 单元格、可能的 Python 单元格、图表与可视化逐步组织起来,用以回答最初的问题。

这也解释了他在演示里专门强调的一个点:这种模式一开始会“慢”,但这是刻意设计的。因为此时系统面对的是生产数据仓库,它需要把大量上下文带进来,需要推理与迭代,而这类深度思考天然会以时间为代价。换来的收益是:它可以生成更细致、接近数据科学家或嵌入式数据分析师水平的分析过程。Armin 也提到,未来会有更偏“快速、短促回答”的迭代版本,可能更多依赖语义模型,而不是每次都在全量上下文里深挖。但在这个阶段,他们优先解决的是“在没有分析师介入的情况下,业务用户也能得到一份扎实的分析报告”。

当线程生成结果后,界面里不仅有图表,还能继续做探索:拖拽维度与度量、查看底层表格数据、检查异常、做更深的切片。这时“可信度焦虑”就会自然出现:这么多信息暴露给业务用户,我怎么知道它没有幻觉?我该不该信这些 SQL?我如何让它更确定?Armin 的回答不是“相信模型”,而是把系统的底座亮出来:在 Hex 里,每一个线程、每一个项目,背后都由笔记本支撑。把线程保存为项目后,你可以在笔记本里看到完整对话以 Markdown 的形式呈现;更重要的是,你能看到它实际运行的 SQL、过滤条件、连接逻辑、图表生成过程,以及它如何一步步构建出整份报告。对于负责准确性与治理的数据团队来说,这种“把对话落到可审计的笔记本”非常关键——它让系统从一开始就具备被审核、被追责、被修正的可能。

在此基础上,Armin 进一步展示了一个更现实的协作场景:业务用户提出问题后,不一定要立刻去找数据团队提工单,而是先在对话线程里得到初步洞察;如果需要更深入的分析(比如进一步做季节性拆解),技术用户可以把笔记本智能体(notebook agent)限定在这个项目范围内,和智能体一起继续规划、推理、生成图表,并在生成的“待处理变更”中逐条审核、决定保留哪些结果。分析由此变成一种可协作、可迭代、可沉淀的工作流,而不是一次性、不可解释的问答。

从一次性对话到可复用资产

如果到这里为止,Hex 展示的是“可观察性”,那么 Armin 在后半段想讲的,是上下文如何变成系统能力,如何从一次性对话沉淀为可复用资产。

他先展示了一个从笔记本走向应用(app builder)的路径:当某些分析内容需要“持久化”,例如营销与销售负责人希望随时看到季节性分析或关键指标,而不是每次回来重新提问,那么就可以把笔记本中已经生成的图表、文本等资产拖拽到应用构建器里,做成一个仪表板、报告或更像 BI 的交互界面。这里的核心并不是“又做了一个 BI”,而是强调:即便呈现形态变成 BI 风格,背后依然由笔记本驱动,仍然保留 SQL、Python、Snowpark 等灵活性;同时,笔记本与应用这两种范式始终连接,资产是可回溯的。换句话说,展示层可以更友好,但底层逻辑并不会因此变成不可审计的黑箱。

紧接着他抛出了“连接胶水”的问题:当我们有线程、有笔记本、有应用,如何让它们构成一个一致的策略?答案是语义模型——它是 Armin 所谓“上下文引擎”的关键组成部分。原因也很务实:企业里那些精心构建的报表与仪表板,通常包含大量转化逻辑、业务口径、SQL/Python 查询,这些恰恰是 LLM 最需要、也最容易误解的上下文。如果不能把这些上下文结构化,LLM 的确定性就无从谈起。

在演示里,语义模型有两条路:一是导入已有的 Snowflake semantic view。Hex 可以浏览生产仓库、发现可访问的语义视图,然后快速引入,例如引入一个 B2B sales model,让 enriched metadata 直接在 Hex 中可用。另一条路更贴近多数团队的起点:不是先有语义视图,而是先有一堆被业务反复使用的仪表板项目。Hex 的语义建模工作台里有一个“建模智能体”(modeling agent),它能理解 Hex 的语义建模能力,并且能针对某个具体项目(例如 sales and marketing dashboard)去阅读项目里包含的 SQL 单元格、DataFrame 操作、joins、函数与过滤条件,形成建模计划,做错误预防,推断表关系,把“项目里已经存在的业务逻辑”烘焙进语义模型中。

这一段其实回答了一个关键的企业问题:语义模型从哪来?它不一定需要从零凭空设计,它可以从企业已经在用的分析资产中被抽取、被规范、被版本化。建好之后,语义模型还能用一种“拖拽式”的方式被检查:你可以选择维度、度量,查看聚合、查看系统生成的 SQL,在发布之前把模型硬化到你满意的程度。

更进一步,Armin 也回应了“供应商锁定”的担忧。他明确表示,Hex 不希望用专有 YAML 把用户锁死,并提到两个方向:其一是和 Snowflake 等一起推动“开放语义交换”(Open Semantic Interchange),一个由约 18 家甚至更多公司组成的联盟,目标是让语义模型信息能在不同系统之间互换,以促进 LLM 采用并避免 vendor lock-in;其二是更近期开启“写回”能力,让在 Hex 中构建的语义模型可以写回到 semantic views 中,保证不同系统间“友好共存”。这些内容在分享里出现得很明确:终点不是锁定格式,而是让用户愿意因为体验与工作流而持续使用。

当语义模型准备好后,线程侧的使用方式也随之变化:你可以把对话线程限定为“只使用语义模型”,而不是访问整个生产数据仓库。Armin 强调,这会让系统随着时间更确定:当你不断硬化语义模型、补充上下文,它会越来越稳定、越来越可控。也正因此,他再次回到开场的观点:把精力放在构建上下文系统上,而不是试图用合成样例把原型聊天机器人测到“看起来准确”。

规模化审计与上下文飞轮

分享的最后一部分,Armin 把问题推到最现实的规模化挑战上:当系统从一个人试用扩展到五十、一百个用户时,你如何监控它?你如何知道 LLM 系统到底在做什么,业务用户到底拿它解决什么问题?这时,“可审计”就不能停留在某个线程或某个项目,而必须成为一套能覆盖全局的治理能力。

他提到 Hex 的“上下文工作室”(context studio),目前处于少数 Alpha 合作伙伴的 Alpha 阶段,但他之所以专门强调它,是因为它承载了上下文系统最关键的一环:理解使用行为,反过来指导上下文如何演进。

具体来说,你可以看到平台总体使用情况:用户更常用笔记本还是线程?创建了多少语义模型?也可以按对话量看用户分布,查看某个用户使用线程的频次、提问的类型。更重要的是,当你下钻到“问题类型”时,Armin 给出了一个很强的判断:这些真实问题才是你的单元测试。不是你在上线前试图一次性“破坏一切”并用评估集兜住,而是看清业务用户到底在问什么,再回去硬化你需要硬化的上下文与问题类型。

围绕“如何策划上下文”,他在分享里给出了三个层次的抓手。最直接的是规则文件(rules file):你可以在里面定义 SQL 的数据质量防护、业务定义、偏好的 SQL 风格、杂项信息,以及希望系统使用的可视化方式,并且这些内容可以即时编辑、保存或导出。第二层是“经认可的数据”(endorsed data):由数据团队或所谓“金层”背书的数据资产,可以在 Hex 的语境下被定义清楚,决定哪些数据可以喂给 LLM。第三层则是更成熟、也最关键的做法:语义项目(semantic projects)。随着审计能力增强,你不仅能看到语义模型被使用的次数,还能观察是否有多个语义模型被同时使用、是否需要在某些场景中合并;你也能判断哪些项目最常被引用,从而决定是否需要对下游数据做更多建模,或者是否需要补充列描述、表描述等元数据来改善上下文质量。

这些细节共同指向同一个结论:上下文不是一次性设计出来的,它是被真实使用不断“磨”出来的。你从稍微宽的范围起步,抽取一两个语义模型,让业务用户用起来;再通过审计看到真实问题与真实路径,回去修规则、补语义、加背书数据、完善元数据。如此循环,系统才会越来越确定、越来越可信。

这场分享最有价值的地方,在于它没有把“可信”简化为一个指标,也没有把“准确率”当作唯一的归宿。Armin 反复强调的其实是另一套思维:企业要的不是一个在评估集上表现漂亮的聊天机器人,而是一套能持续吸收上下文、可审计、可治理的系统。

从线程到笔记本的可观察性,从笔记本到应用的资产化,从项目到语义模型的上下文结构化,再到面向规模化使用的审计与上下文工作室——这些环节被串成一个整体,目的只有一个:让 LLM 在真实业务里变得更确定,并且在需求增长时仍然能保持可控与可信。

原视频地址:https://www.snowflake.com/en/build/americas/agenda/?login=ML

🔥【活动推荐】2 月 2 日-6 日,Snowflake Discover重磅上线!这是一场免费、线上、可实时互动的技术活动,旨在帮助您全面提升数据与 AI 能力,深入了解如何更高效地管理、整合与分析数据。4 天时间 18 场技术干货分享,由来自亚太地区的一线技术专家亲自分享与讲解~

点击报名 Discover,更多 Snowflake 精彩活动请关注专区

孩子三年级,老师让用金山打字通练习打字
我在家里的 Windows 机上尝试装,搜到两个疑似官方的地址,结果一个给我装了金山软件管家,一个给我装了毒霸。都卸载了。商店了搜了一个,结果是山寨的。最后不知道在哪找到一个,打开一看,不支持高分屏,完全没法用……
搜了些网页上练打字的,都不满意。

我想目的是练打字,小孩子字都认不全,如果打的内容自己熟悉,才能集中精神到打字上。

于是晚上过一会发个命令,两晚上 Vibe 出来一个部署了一下,甚至还随手买了个域名。

有刚好要学打字的孩子的可以一起试试,不知道还有什么可以让打字更有趣的办法啊,欢迎提建议。

https://lessontyping.com

---
🚀 Screenshot API - 专业的网页截图解决方案
无需自建服务器,无需维护浏览器环境,一个 API 调用搞定一切!

🎯 为什么选择 Screenshot API ?
开箱即用,极简集成
- 一行代码完成网页截图
- RESTful API 设计,支持所有编程语言
- Bearer Token 认证,安全可靠

🎯 典型应用场景

- 📱 小程序/H5 - 解决小程序截图限制,生成分享海报
- 📊 数据大屏 - 定时生成报表截图,自动归档
- 📄 文档生成 - 网页转图片,批量生成 PDF
- 🎨 设计工具 - 批量生成网站截图,竞品分析
- 🔍 SEO 工具 - 网站预览与监控
- 📧 营销工具 - 自动生成邮件预览图
🎁 福利
新用户注册即送 500 次免费额度!
使用兑换码账号可获得一年的 pro 版使用权限,兑换码已放在评论区,先到先得!
(兑换码需要登录后,在控制台右上角的个人中心的账号设置选项使用)

---
立即体验: https://screen-web.redbin.cn
由开发者为开发者构建 | 简单 · 强大 · 可靠
---
欢迎各位大佬试用,有任何意见或建议可以:
- 在评论区反馈
- 通过网站的意见反馈渠道提交
- 持续迭代优化中 🔥

在人工智能的发展历程中,每一次交互范式的变化,几乎都对应着一次底层能力的跃迁。 2026 年,AI 正在经历一场清晰而确定的转向:从以对话为中心,走向以任务为核心。

这一变化并非界面形态的简单升级,而是 AI 角色定位的根本重构。


一、对话式 AI 的阶段性完成

以 Chatbot 为代表的对话交互,曾是大模型技术普及的重要入口。 它降低了使用门槛,让非技术用户也能直接接触和理解生成式 AI 的能力。

但在真实生产环境中,这种交互方式逐渐暴露出边界:

  • 交互成本随任务复杂度急剧上升

用户需要反复构造提示、修正结果,效率并不稳定。

  • 对复杂任务缺乏结构化支撑

多步骤、并行逻辑、长周期目标难以通过线性对话完成。

  • 输出偏“表达”,而非“结果”

对话更擅长解释问题,却难以直接交付可执行成果。

这意味着,对话式 AI 正在完成它作为“通用入口”的历史使命。


二、能力演进:AI 正在获得“做事”的条件

范式转移的核心原因,并不在交互设计,而在能力结构的变化。

1. 推理能力走向系统化

模型开始具备任务分解、路径规划和结果校验的能力, 不再只生成答案,而是先形成“如何完成任务”的内部结构。

2. 工具调用成为标准能力

通过 API、函数调用等机制,AI 可以直接操作搜索、代码、数据和业务系统, 从文本生成扩展为真实动作的执行。

3. 目标驱动的智能体形态出现

在实际工程中,智能体来了, 它不再依赖逐条指令,而是围绕目标自主组织行为流程,形成感知—决策—执行的闭环。


三、任务导向架构的三层共识

围绕“完成任务”这一目标,行业逐渐形成稳定的系统结构。

1. 规划层(Planning)

将模糊需求转化为明确步骤,并在执行过程中动态调整。

2. 记忆层(Memory)

通过上下文、向量化存储等方式,支撑长期任务与跨阶段协作。

3. 执行层(Action)

连接外部系统,直接产出结果,而非仅给出建议。

这三层共同构成了 AI 从“对话系统”走向“任务系统”的基础。


四、实践趋势:AI 正在消失于界面之中

在越来越多的应用场景中,AI 不再以独立产品形态存在:

  • 嵌入到代码编辑、设计、数据分析等工具中,作为功能模块运行
  • 在后台完成大部分流程,仅在关键节点引入人工确认
  • 从“被频繁对话”转向“低存在感、高完成度”

AI 正在成为一种基础能力,而非一个需要持续互动的对象。


五、结论:评价标准已经改变

这场转移的核心,并不是“AI 是否更像人”, 而是:

  • 是否能稳定完成任务
  • 是否能降低人类参与成本
  • 是否能在真实流程中长期运行

对话没有消失,但已退居入口层。 真正决定 AI 系统价值的,是其任务完成效率与可靠性

2026 AI 元年,本质上是 AI 从“展示能力”走向“承担职责”的一年。

在构建问答Agent时,多轮对话的上下文记忆是核心需求——让Agent能记住历史对话内容,结合「历史问题+历史回答+当前问题」给出连贯回复,而非孤立回答每个问题。

LangChain中的ConversationBufferMemory轻量、易用的短期记忆组件,核心作用是按顺序缓存对话历史,并将历史内容注入到模型的输入提示中,实现问答Agent的短期记忆能力,适合中小长度的多轮对话场景。

本文将基于LangChain框架,从核心原理、完整可运行代码、关键细节、进阶优化四个维度,教你为问答Agent集成ConversationBufferMemory,支持OpenAI/国产大模型(通义千问/文心一言),代码可直接复用。

一、核心概念铺垫

1.1 ConversationBufferMemory 核心作用

  • 键值对形式按时间顺序存储对话历史(问题+回答);
  • 支持将对话历史格式化为字符串/消息对象,注入到LLM的输入提示中;
  • 提供清空记忆、获取记忆、修改记忆的便捷方法;
  • 轻量无依赖,无需额外存储,对话历史保存在内存中(会话结束即销毁,符合「短期记忆」定位)。

1.2 核心搭配

ConversationBufferMemory通常与ConversationChain(通用对话链)/RetrievalQA(知识库问答链)搭配使用,本文先实现基础问答Agent(基于ConversationChain),后续补充带知识库的问答Agent优化方案。

1.3 关键参数

参数名作用常用值
memory_key记忆在提示模板中的变量名(需与提示模板一致)chat_history(推荐)
return_messages记忆返回格式:True返回消息对象(HumanMessage/AIMessage)False返回拼接字符串False(基础场景)/True(复杂场景)
input_key输入问题的变量名input(默认,无需修改)
output_key输出回答的变量名output(默认,无需修改)

二、环境准备

安装LangChain核心依赖+大模型适配依赖(以OpenAI/通义千问为例,二选一即可):

# 核心依赖:LangChain核心+社区组件
pip install langchain-core langchain-community -i https://pypi.tuna.tsinghua.edu.cn/simple

# 可选1:OpenAI模型依赖(GPT-3.5/GPT-4)
pip install langchain-openai -i https://pypi.tuna.tsinghua.edu.cn/simple

# 可选2:国产大模型依赖(通义千问/文心一言/智谱清言)
pip install langchain-qianfan langchain-dashscope -i https://pypi.tuna.tsinghua.edu.cn/simple

三、完整实现:基础问答Agent+短期记忆

3.1 方案1:基于OpenAI模型(GPT-3.5/GPT-4)

# 1. 导入核心模块
from langchain_openai import ChatOpenAI
from langchain.chains import ConversationChain
from langchain.memory import ConversationBufferMemory
from langchain.prompts import PromptTemplate
import os

# 2. 配置环境(OpenAI API密钥)
# 国内用户需配置代理:os.environ["HTTP_PROXY"] = "http://127.0.0.1:7890"
os.environ["OPENAI_API_KEY"] = "你的OpenAI API密钥"

# 3. 初始化LLM模型
llm = ChatOpenAI(
    model="gpt-3.5-turbo",  # 推荐gpt-3.5-turbo,性价比高
    temperature=0.1,        # 越低回答越稳定,适合问答场景
    max_tokens=2048
)

# 4. 初始化ConversationBufferMemory(核心:短期记忆)
memory = ConversationBufferMemory(
    memory_key="chat_history",  # 记忆变量名,需与提示模板中的{chat_history}一致
    return_messages=False,      # 返回字符串格式的对话历史,适合基础场景
    input_key="input"           # 输入问题的变量名,默认input即可
)

# 5. 自定义带记忆的提示模板(必须包含{chat_history}和{input})
# 模板说明:chat_history=历史对话,input=当前问题,让模型结合两者回答
prompt = PromptTemplate(
    input_variables=["chat_history", "input"],  # 必须包含记忆变量和输入变量
    template="""你是一个专业的问答助手,善于结合历史对话内容回答当前问题。
    历史对话:{chat_history}
    当前问题:{input}
    请简洁、准确地回答当前问题,无需额外赘述。"""
)

# 6. 构建带记忆的问答链(核心:将LLM、记忆、提示模板绑定)
conversation_chain = ConversationChain(
    llm=llm,
    memory=memory,
    prompt=prompt,
    verbose=True  # 开启详细日志,可查看输入的提示内容(含历史对话)
)

# 7. 测试多轮问答(验证记忆效果)
if __name__ == "__main__":
    # 第一轮问答
    print("===== 第一轮 =====")
    res1 = conversation_chain.invoke({"input": "什么是大语言模型?"})
    print("回答:", res1["output"], "\n")

    # 第二轮问答(结合历史:问大语言模型的核心优势)
    print("===== 第二轮 =====")
    res2 = conversation_chain.invoke({"input": "它的核心优势是什么?"})
    print("回答:", res2["output"], "\n")

    # 第三轮问答(结合历史:问该优势的应用场景)
    print("===== 第三轮 =====")
    res3 = conversation_chain.invoke({"input": "这些优势能用到哪些领域?"})
    print("回答:", res3["output"], "\n")

    # 手动查看记忆中的对话历史
    print("===== 查看短期记忆 =====")
    print(memory.load_memory_variables({}))

    # 清空记忆(可选)
    # memory.clear()
    # print("清空记忆后:", memory.load_memory_variables({}))

3.2 方案2:基于国产模型(通义千问,国内用户推荐)

替换上述步骤2和步骤3即可,其余代码完全不变,适配性拉满:

# 2. 配置环境(通义千问API密钥,从阿里云DashScope获取)
os.environ["DASHSCOPE_API_KEY"] = "你的通义千问API密钥"

# 3. 初始化通义千问模型(替换OpenAI)
from langchain_dashscope import ChatDashScope
llm = ChatDashScope(
    model="qwen-plus",  # 通义千问轻量版,免费额度足够测试
    temperature=0.1,
    max_tokens=2048
)

3.3 运行结果与关键日志

核心输出(记忆生效)

===== 第一轮 =====
回答: 大语言模型是基于大尺度语料训练、具备强大自然语言理解与生成能力的人工智能模型,能完成文本创作、问答、翻译等多种自然语言处理任务。

===== 第二轮 =====
回答: 大语言模型的核心优势包括:1. 强大的上下文理解与语义分析能力;2. 灵活的自然语言生成能力,可输出流畅、贴合语境的文本;3. 泛化能力强,能处理未见过的新问题;4. 多任务适配,无需单独训练即可完成多种NLP任务。

===== 第三轮 =====
回答: 这些优势可应用在智能客服、内容创作、教育辅导、代码开发、数据分析、机器翻译、智能助手等领域,覆盖互联网、教育、金融、制造业等多个行业。

===== 查看短期记忆 =====
{'chat_history': 'Human: 什么是大语言模型?\nAI: 大语言模型是基于大尺度语料训练、具备强大自然语言理解与生成能力的人工智能模型,能完成文本创作、问答、翻译等多种自然语言处理任务。\nHuman: 它的核心优势是什么?\nAI: 大语言模型的核心优势包括:1. 强大的上下文理解与语义分析能力;2. 灵活的自然语言生成能力,可输出流畅、贴合语境的文本;3. 泛化能力强,能处理未见过的新问题;4. 多任务适配,无需单独训练即可完成多种NLP任务。\nHuman: 这些优势能用到哪些领域?\nAI: 这些优势可应用在智能客服、内容创作、教育辅导、代码开发、数据分析、机器翻译、智能助手等领域,覆盖互联网、教育、金融、制造业等多个行业。'}

Verbose日志(关键:验证历史对话注入)

开启verbose=True后,可看到模型的实际输入提示包含了历史对话,这是记忆生效的核心:

> Entering new ConversationChain chain...
Prompt after formatting:
你是一个专业的问答助手,善于结合历史对话内容回答当前问题。
    历史对话:Human: 什么是大语言模型?
AI: 大语言模型是基于大尺度语料训练、具备强大自然语言理解与生成能力的人工智能模型,能完成文本创作、问答、翻译等多种自然语言处理任务。
    当前问题:它的核心优势是什么?
    请简洁、准确地回答当前问题,无需额外赘述。
> Finished chain.

四、关键细节:避免记忆失效的核心要点

ConversationBufferMemory使用简单,但容易因参数不匹配、提示模板错误导致记忆失效,以下是必须遵守的3条铁律:

4.1 提示模板必须包含memory_key指定的变量

比如memory_key="chat_history",则提示模板中必须有{chat_history},且输入变量列表要包含该变量:

# 正确:input_variables包含chat_history和input
prompt = PromptTemplate(
    input_variables=["chat_history", "input"],
    template="历史对话:{chat_history}  当前问题:{input}"
)

# 错误:缺少chat_history,记忆无法注入
prompt = PromptTemplate(
    input_variables=["input"],
    template="当前问题:{input}"
)

4.2 invoke入参必须是字典,且键为input_key

默认input_key="input",因此调用时必须传{"input": "你的问题"},而非直接传字符串:

# 正确
conversation_chain.invoke({"input": "什么是大语言模型?"})

# 错误:入参不是字典,记忆无法关联当前问题
conversation_chain.invoke("什么是大语言模型?")

4.3 避免手动修改对话历史(除非特殊需求)

ConversationBufferMemory自动追加每次的inputoutput到记忆中,无需手动修改:

# 自动追加:无需干预
conversation_chain.invoke({"input": "问题1"})  # 记忆中添加问题1+回答1
conversation_chain.invoke({"input": "问题2"})  # 记忆中追加问题2+回答2

# 手动修改(特殊需求时使用)
memory.save_context(
    inputs={"input": "手动添加的问题"},
    outputs={"output": "手动添加的回答"}
)

五、进阶优化:适配更复杂的问答场景

5.1 优化1:带知识库的问答Agent+短期记忆

实际场景中,问答Agent通常需要结合私有知识库(如PDF/文档),此时将ConversationChain替换为RetrievalQA,并搭配ConversationBufferMemory即可实现「知识库+多轮记忆」的问答能力:

# 新增:导入知识库相关模块
from langchain_community.document_loaders import TextLoader
from langchain_community.vectorstores import FAISS
from langchain_text_splitters import CharacterTextSplitter
from langchain_openai import OpenAIEmbeddings
from langchain.chains import RetrievalQA

# 1. 加载知识库(以文本文件为例,可替换为PDF/Word加载器)
loader = TextLoader("your_knowledge_base.txt")  # 你的知识库文件
documents = loader.load()
# 分割文本为小片段
text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=100)
texts = text_splitter.split_documents(documents)
# 构建向量库
embeddings = OpenAIEmbeddings()
db = FAISS.from_documents(texts, embeddings)
retriever = db.as_retriever(search_kwargs={"k": 3})  # 每次检索3个相关片段

# 2. 初始化记忆(与基础版一致)
memory = ConversationBufferMemory(
    memory_key="chat_history",
    return_messages=False,
    input_key="question"  # 注意:RetrievalQA的默认输入键是question,需修改
)

# 3. 构建带记忆的知识库问答链
qa_chain = RetrievalQA.from_chain_type(
    llm=llm,
    chain_type="stuff",  # 适合小片段文本,简单高效
    retriever=retriever,
    memory=memory,
    chain_type_kwargs={
        "prompt": PromptTemplate(
            input_variables=["chat_history", "context", "question"],
            template="""结合历史对话和知识库内容回答当前问题,若知识库无相关内容,仅结合历史对话回答。
            历史对话:{chat_history}
            知识库内容:{context}
            当前问题:{question}
            回答要求:简洁、准确,基于知识库内容,不要编造。"""
        )
    },
    verbose=True
)

# 4. 测试:结合知识库+历史对话的多轮问答
qa_chain.invoke({"question": "知识库中提到的大语言模型有哪些应用?"})
qa_chain.invoke({"question": "这些应用中,哪个在教育领域的落地效果最好?"})  # 结合历史

5.2 优化2:限制记忆长度(避免历史对话过长)

ConversationBufferMemory无限制追加对话历史,当对话轮数过多时,会导致提示词过长、推理成本增加、模型注意力分散

解决方案:使用ConversationBufferWindowMemory(窗口记忆),仅保留最近N轮对话,本质是ConversationBufferMemory的进阶版,参数完全兼容:

from langchain.memory import ConversationBufferWindowMemory

# 仅保留最近2轮对话,超出的自动丢弃
memory = ConversationBufferWindowMemory(
    memory_key="chat_history",
    k=2,  # 核心参数:保留最近k轮对话
    return_messages=False
)

# 用法与ConversationBufferMemory完全一致,无需修改其他代码
conversation_chain = ConversationChain(llm=llm, memory=memory, prompt=prompt)

5.3 优化3:记忆格式为消息对象(适合复杂提示)

当提示模板需要更精细的对话格式时,将return_messages=True,记忆会返回HumanMessage/AIMessage对象,而非拼接字符串,便于灵活格式化:

# 初始化记忆:返回消息对象
memory = ConversationBufferMemory(
    memory_key="chat_history",
    return_messages=True,  # 核心:返回消息对象
    input_key="input"
)

# 自定义提示模板:遍历消息对象格式化
from langchain.prompts import ChatPromptTemplate, MessagesPlaceholder

# 使用MessagesPlaceholder接收消息对象,无需手动拼接
prompt = ChatPromptTemplate.from_messages([
    ("system", "你是专业的问答助手,结合历史对话回答问题。"),
    MessagesPlaceholder(variable_name="chat_history"),  # 匹配memory_key
    ("human", "{input}")  # 匹配input_key
])

# 构建链(用法不变)
conversation_chain = ConversationChain(llm=llm, memory=memory, prompt=prompt)

六、常用操作:记忆的增删改查

ConversationBufferMemory提供了便捷的方法操作记忆,满足个性化需求:

# 1. 查看记忆内容
memory.load_memory_variables({})  # 返回字典,键为memory_key

# 2. 清空记忆(会话结束/切换用户时使用)
memory.clear()

# 3. 手动添加记忆
memory.save_context(
    inputs={"input": "手动添加的问题"},
    outputs={"output": "手动添加的回答"}
)

# 4. 手动删除记忆(需先获取记忆,再修改,最后重新保存)
# 步骤1:获取记忆内容
chat_history = memory.load_memory_variables({})["chat_history"]
# 步骤2:修改/删除内容(如删除最后一行)
chat_history = "\n".join(chat_history.split("\n")[:-2])
# 步骤3:重新保存
memory.chat_memory.add_user_message("")  # 清空原有记忆
memory.chat_memory.add_ai_message("")
memory.save_context(inputs={"input": ""}, outputs={"output": chat_history})

七、总结

7.1 核心流程回顾

为问答Agent添加ConversationBufferMemory的核心步骤仅5步:

  1. 安装LangChain核心依赖+大模型依赖;
  2. 初始化LLM模型(OpenAI/国产模型);
  3. 初始化ConversationBufferMemory,指定memory_key
  4. 构建包含记忆变量的提示模板;
  5. 将LLM、记忆、提示模板绑定到对话链,调用invoke实现多轮问答。

7.2 记忆组件选型建议

记忆组件核心特点适用场景
ConversationBufferMemory无限制保存所有对话历史,轻量易用短对话、测试场景
ConversationBufferWindowMemory保留最近N轮对话,限制长度常规多轮问答场景(推荐)
ConversationSummaryMemory对长对话历史做摘要压缩,节省令牌超长对话、高成本模型场景
VectorStoreRetrieverMemory将对话历史存入向量库,按需检索相关历史需精准匹配历史对话的复杂场景

7.3 性能优化建议

  1. 优先使用ConversationBufferWindowMemory,并设置合理的k值(如3-5轮);
  2. 降低LLM的max_tokens,避免无意义的长回答;
  3. 开启verbose=False(生产环境),减少日志开销;
  4. 生产环境中,可将记忆与会话ID绑定,实现多用户隔离。

八、常见问题排查

问题1:记忆失效,模型不结合历史对话回答

  • 原因:提示模板缺少memory_key变量,或input_variables未包含该变量;
  • 解决:检查提示模板,确保包含{chat_history}(或自定义的memory_key),且input_variables列表包含该变量。

问题2:调用时提示「key error: input」

  • 原因:invoke入参不是字典,或键与input_key不匹配;
  • 解决:调用时传{"input": "你的问题"}(默认input_key="input"),若修改了input_key,则传对应键。

问题3:知识库问答Agent记忆失效

  • 原因:RetrievalQA的默认输入键是question,而非input,记忆的input_key不匹配;
  • 解决:初始化记忆时设置input_key="question"

问题4:对话历史过长,模型推理变慢

  • 原因:ConversationBufferMemory无限制追加历史;
  • 解决:替换为ConversationBufferWindowMemory,设置k值限制轮数。

原文地址:https://mp.weixin.qq.com/s/HIzL5jDluuRKL4ZVOmrkqA

Moltbot 官网:https://clawd.bot/
GitHub:https://github.com/moltbot/moltbot


Clawdbot改名Moltbot

过去一段时间,大模型领域的讨论,正在悄然发生变化。

最早的时候,大家关注的是模型本身
参数规模、上下文长度、推理能力、对话表现。

随后,技术讨论逐渐转向 Prompt 工程
如何写 Prompt 才更稳定,如何减少幻觉,如何控制输出风格。

而当越来越多团队真正尝试把大模型接入到业务系统中,一个更现实的问题开始浮出水面:

真正难的,从来不是“让模型说话”,而是“让模型做事”。

Moltbot,正是在这样一个背景下,逐渐进入工程视野的。


一、为什么“聊天式 AI”很难真正落地?

很多团队在引入 Claude 或其他大模型时,往往会从一个最简单的形态开始:

  • 一个对话框
  • 一段 Prompt
  • 一次 API 调用

在 Demo 阶段,这样的方式往往效果不错。

但当你尝试把它用于真实业务,很快就会遇到一系列问题:

  • 用户提问方式高度不可控
  • 输出内容难以被系统稳定解析
  • 多轮对话状态混乱
  • 出错后无法回滚或兜底
  • 模型“自由发挥”,但业务不能接受

这时你会意识到一个关键事实:

聊天,非常适合展示模型能力,但并不适合承载复杂任务。

而企业真正需要的,往往不是一个“能聊天的 AI”,
而是一个 可以嵌入流程、被约束行为、被审计结果的 Bot


二、Moltbot 的核心定位:Bot,而不是 Chat

理解 Moltbot,首先要区分三个概念:

  • 模型(Model):Claude 本身的推理与生成能力
  • 聊天应用(Chat App):围绕对话体验构建的交互形式
  • Bot / Agent:围绕明确目标构建的执行单元

Moltbot 的定位,明显偏向第三种。

它并不是试图把 Claude 包装成“更聪明的聊天工具”,
而是关注一个更工程化的问题:

如何让 Claude 在可控边界内,稳定、可复现地完成一类任务?

这也决定了 Moltbot 的设计重点,从一开始就不是“对话体验”,而是:

  • 行为约束
  • 任务结构
  • 工程可控性

三、从工程视角看,Moltbot 解决了哪些关键问题?

从“自由输入”到“受控指令”

传统聊天模式下,模型面对的是高度不确定的自然语言。

而在 Moltbot 的设计理念中,更强调:

  • 明确的任务边界
  • 结构化或半结构化输入
  • 清晰的目标定义

模型不再“随意发挥”,而是在一个被限定的问题空间中工作。


从“自然语言回答”到“可执行结果”

在真实系统中,模型输出往往不是给人直接阅读的,而是要交给程序继续处理。

这意味着输出必须具备:

  • 稳定格式
  • 可解析结构
  • 可校验结果

Moltbot 更强调这种工程友好的输出方式,而不是追求语言表现力。


从“多轮聊天”到“任务状态管理”

多轮对话在工程上真正的难点,从来不在模型,而在状态。

Moltbot 更接近一种:

  • 显式状态
  • 可追踪流程
  • 可中断、可恢复

的任务执行模型。

这让 Bot 更像一个具备生命周期的系统组件,而不是一次次随机对话。


四、从 Agent 视角重新理解 Moltbot

如果从 Agent 的角度来看,Moltbot 体现了几个非常成熟的工程共识。

任务优先,而不是对话优先

Agent 的价值,不在于“聊得多自然”,而在于:

  • 是否能拆解任务
  • 是否能选择正确的工具
  • 是否能在失败时兜底

Moltbot 明显是围绕“完成目标”来设计的。


工具是能力边界的延伸

任何一个严肃的 Agent,都不可能只依赖模型本身。

在 Moltbot 的工程思路中:

  • 模型负责判断
  • 工具负责执行

这种分工让系统更清晰,也更可靠。


可控性,永远高于自主性

在演示场景中,高自主性往往意味着“更像人”;
在生产环境中,高自主性往往意味着“高风险”。

Moltbot 的设计取向非常明确:

宁可保守一点,也要稳定可控。

这正是工程思维,而不是玩具思维。


五、Moltbot 更适合哪些真实场景?

从工程实践角度看,Moltbot 更适合:

  • 企业内部流程 Bot
  • 研发辅助工具
  • 数据处理与分析
  • 规则明确、目标清晰的自动化任务

而它并不追求:

  • 情感陪伴
  • 闲聊互动
  • 高度开放式创作

这是一次清醒而理性的取舍。


六、一个常被忽视的价值:工程认知的变化

在使用 Moltbot 这类框架的过程中,开发者往往会经历一次明显的转变。

最初你关注的是:

  • Prompt 怎么写
  • 模型效果好不好

但慢慢地,你开始关心:

  • Prompt 是否应该模板化
  • 状态是否应该外置
  • 输出是否需要校验
  • 行为是否需要审计

这意味着你已经开始把 AI 当成系统的一部分来设计


七、从 Moltbot 看 AI 应用的长期方向

Moltbot 并不是所谓的“终极方案”,
但它释放了一个非常清晰的信号:

AI 应用正在从“展示智能”,走向“工程执行”。

未来真正有价值的 AI 系统,往往具备:

  • 模型可替换
  • 行为可约束
  • 结果可回溯
  • 风险可控制

而这些,本质上都是工程问题。


写在最后

如果说前一阶段的大模型浪潮,让我们看到了“智能的可能性”,
那么现在这个阶段,正在考验的是:

谁能把智能,变成可靠、可持续的工程能力。

Moltbot 的意义,并不在于它使用了 Claude,
而在于它代表了一种 更成熟、更务实的 AI 工程路径

对于真正想把大模型落地的开发者来说,这类实践,远比追逐模型参数更值得投入精力。


很多企业上线ITSM系统或者部署ITIL流程的初衷很直接:统一入口、规范工单、提升效率,最好还能形成可审计的闭环。

但现实往往是:系统上线后“看起来很忙”,却难以稳定交付;业务抱怨仍多,IT 团队疲于救火,流程被绕过,口径争论不断。

问题不一定出在工具,而常常出在“交付治理”缺位——没有把 IT 服务交付当成一项可以被设计、被运营、被审计、被持续改进的组织能力。

真正成熟的 IT 服务管理,不只是把工单从邮件与群聊里搬到系统里,而是用一套稳定的机制回答三个问题:

(1)我们交付的服务是什么;

(2)交付质量如何保证;

(3)出现波动时如何快速收敛并持续变好。

当交付治理建立起来,工单系统才会从“记录工具”升级为“组织运行的服务中枢”。

在平台层面,本文会以ManageEngine卓豪 ServiceDesk Plus 这类企业级 IT 服务管理平台为参照,给你一套可落地的交付治理方法论:从服务定义、流程边界、组织职责、指标体系、审计追溯,到上线后的持续运营路线。你可以把它当作一份“把 ITSM 做成组织能力”的操作手册。

交付治理是什么:让“流程执行”变成“结果可控”

很多组织把 ITSM 的成功定义为“工单都进系统、流程跑起来、SLA 看起来达标”。但只要你做过一段时间,就会发现这套定义很脆弱:工单进系统并不等于问题被解决;流程跑起来也不等于体验变好;SLA 达标更不等于业务满意。

交付治理要解决的,恰恰是这种“表面合规、结果不可控”的尴尬。

所谓交付治理,本质是一套“可控机制”:它把服务交付拆成可管理的单元,并明确边界、责任、标准、升级路径与审计证据。换句话说,它让组织在面对波动时不再靠个人英雄主义,而是靠机制稳定输出。

先把服务说清楚:服务目录与交付标准的“最小可用版本”

交付治理的第一步不是做一百条流程,也不是把所有工单字段补齐,而是把服务讲清楚:用户要的到底是什么?IT 能交付什么?交付需要什么输入?

交付产物是什么?如果这些不清晰,所有流程都会变成“填表运动”,最终被绕开。

流程边界与例外机制:让系统“既严谨又不僵硬”

交付治理的第二步是把流程边界设好:什么必须走强流程,什么可以走轻流程,什么必须升级,什么允许例外。很多 ITSM 失败不是因为流程不够严,而是“该严的地方不严、该灵活的地方太死”。最终导致两种极端:要么流程被绕过、要么流程变成拖累。

组织与职责:把“谁来做”写进体系,而不是写进群聊

交付治理真正难的地方,是组织层面:谁负责什么?谁拍板?谁背 SLA?谁负责复盘?如果职责不清,流程再完整也会变形:该升级的不升级、该通知的不通知、该复盘的不了了之。

你需要把“责任结构”显性化,让系统里的每一步都有明确主人。

指标体系与审计证据:把“交付好不好”变成可证明的事实

交付治理要建立“可证明性”。很多组织最痛的不是做不好,而是做得不错却无法被认可:因为没有一致口径、没有可追溯证据、没有业务听得懂的指标。

要解决这个问题,你需要把指标分层:运营层看效率,质量层看复发与稳定,治理层看风险与合规。这样既能支持一线管理,也能支持管理层决策。

1)交付治理会不会让流程更慢?

短期可能会多一些结构化输入,但长期会显著减少返工、扯皮与升级救火的时间。治理的目标是降低隐性摩擦,而不是增加表面步骤。

2)团队小、人手紧,也需要这么做吗?

越小的团队越依赖关键个人,风险越高。交付治理能把经验沉淀为机制与知识,降低个人依赖,反而更重要。

3)最推荐的起点是什么?

从“最小可用服务目录 + 责任结构”起步:先把高频服务做成可控单元,再上例外机制与指标分层,最后固化复盘闭环。

4)如何避免流程被绕过?

核心是降低入口摩擦(用户好选、模板清晰)、提升结果确定性(进度可见、交付可验收)、并把例外机制做成“正规通道”。只靠强制,绕过一定会发生。

5)怎么证明交付治理真的有效?

看三件事:复发率是否下降、长尾工单是否收敛、改进行动是否能按期关闭;同时看满意度与自助率是否上升。治理有效一定能在指标上体现。

把 ITSM 做成组织能力,关键不在“流程有多全”,而在“交付是否可控、风险是否可审计、改进是否可持续”。

你可以从高频服务与最小治理机制开始,逐步形成服务目录、责任结构、例外机制、指标分层与复盘闭环的完整体系,让 IT 从“救火队”转向“稳定的服务交付者”。

摘要

2026 年被公认为 AI 元年,核心标志是 AI 发展重心从大模型的理论探索转向智能体的规模化落地。历经 2022 年以来的技术沉淀,GPT、文心一言等大模型构建起坚实的能力底座,支撑智能体实现 “感知 - 决策 - 执行 - 优化” 的闭环能力,完成了 AI 从 “能理解” 到 “能行动” 的关键跃迁。本文聚焦这一变革,剖析技术演进、产业价值与落地逻辑,梳理核心挑战并展望未来趋势,为把握产业智能化转型提供精准参考。

目录

一、序章:2026 AI 元年的核心标志 —— 从大模型到智能体的跃迁
二、技术演进:大模型到智能体的四大核心能力突破
三、产业落地:智能体赋能多行业的转型实践
四、革命内核:从大模型到智能体的三大落地逻辑变革
五、挑战与破局:规模化落地的核心路径
六、未来趋势:2026 年后智能体发展方向
七、结语
八、FAQ
九、参考文献

一、序章:2026 AI 元年的核心标志 —— 从大模型到智能体的跃迁

2026 年,AI 产业正式迈入 “元年” 阶段,其核心标志并非某款大模型的诞生,而是技术重心从理论探索转向智能体的规模化落地。过去四年,大模型在语义理解、多模态处理等领域完成技术沉淀,完善了算力与数据基础,为智能体的自主决策能力提供支撑。

2026 年的关键转折在于 AI 从 “能理解” 到 “能行动” 的升级:大模型是被动响应的辅助工具,而智能体具备 “感知 - 决策 - 执行 - 优化” 的完整闭环能力,成为可自主完成任务的 “数字员工”。这一转变重构了 AI 应用逻辑,推动其从专业领域走向全域普及。

二、技术演进:大模型到智能体的四大核心能力突破

从大模型到智能体的跃迁,核心是四大能力的协同升级:

  1. 自主决策能力​:通过强化学习实现复杂任务拆解与主动规划,脱离人类实时干预。例如,营销智能体可自主制定新品推广方案并动态优化。
  2. 多模态交互能力​:无缝整合文本、图像、传感器数据等,适配复杂场景信息环境。工业智能体可综合设备图像与运行数据,精准给出维护方案。
  3. 跨系统协同能力​:通过标准化接口对接 ERP、MES 等业务系统,实现数据互通与任务联动。生产智能体可联动仓储与供应链系统,自主调度生产资源。
  4. 持续进化能力​:基于实时场景数据动态优化模型参数,适配个性化需求。客服智能体可通过日常对话数据持续提升回答精准度。

三、产业落地:智能体赋能多行业的转型实践

2026 年,智能体已在多行业实现规模化落地:

  • 制造业​:柔性生产智能体将产线换型时间从小时级缩至分钟级,生产效率提升 35%;预测性维护智能体降低设备故障率 40%,维护成本减少 25%。
  • 金融业​:智能风控体使信贷不良率下降 1-2 个百分点;智能服务体常见问题解决率达 92%,人工成本降低 65%。
  • 服务业​:餐饮智能点餐体提升翻台率 25%;零售智能导购体提升转化率 28%,客单价提高 15%。
  • 公共服务​:智能政务体使办理效率提升 60%,群众满意度达 95%;智能教学体实现个性化因材施教,学习效率提升 25%。

四、革命内核:从大模型到智能体的三大落地逻辑变革

智能体落地革命本质是三大逻辑的重构:

  1. 应用逻辑​:从 “工具调用” 转向 “目标驱动”。用户只需明确目标,智能体即可自主完成全流程任务,无需人工干预。
  2. 价值逻辑​:从 “效率提升” 升级为 “价值创造”。智能体不仅提升效率,更能创造全新业务模式,如制造业的柔性定制生产。
  3. 生态逻辑​:从 “单一技术” 拓展为 “协同生态”。以智能体为中枢,联动大模型、业务系统等形成跨场景协同体系,最大化技术价值。

五、挑战与破局:规模化落地的核心路径

智能体落地面临三大核心挑战:

  • 技术挑战​:算力适配不足、数据安全风险与决策可靠性待提升。
  • 落地挑战​:行业适配性差、中小企业成本压力大、复合型人才缺口显著。
  • 破局路径​:技术迭代,研发高效算力调度与数据加密技术;生态共建,推动政企研协同开发标准化解决方案;标准规范,建立技术应用与伦理监管体系。

六、未来趋势:2026 年后智能体发展方向

2026 年后,智能体将向三大方向发展:

  1. 普惠化​:低代码 / 无代码平台普及,标准化服务套餐降低应用门槛,惠及中小企业与个人。
  2. 协同化​:构建多智能体网络,实现跨领域全域联动,支撑复杂产业任务与城市管理。
  3. 安全化​:强化数据安全、模型安全技术防护,完善伦理规范与监管体系,保障健康发展。

七、结语

2026 AI 元年的智能体落地革命,是大模型技术沉淀的必然结果,实现了 AI 从 “理解” 到 “行动” 的关键跨越。尽管面临技术、成本、人才等挑战,但随着生态共建与标准完善,智能体将推动产业全面智能化转型。企业需主动拥抱变革,个人需提升 AI 素养,社会需构建规范体系,共同开启智能时代全新篇章。

八、FAQ

1. 2026 AI 元年的核心标志为何是大模型到智能体的跃迁?

因这一跃迁实现 AI 从被动辅助到主动行动的质变,让 AI 真正融入产业全流程,重构应用逻辑并推动全域普及,是 AI 进入规模化落地阶段的核心特征。

2. 智能体与大模型的核心区别是什么?

核心区别在于自主决策、跨系统协同、持续进化能力与目标驱动的应用逻辑。大模型需人工调用,智能体可自主完成全流程任务。

3. 中小企业应用智能体的核心障碍与解决办法?

核心障碍是成本与技术门槛。可通过低代码平台、标准化服务套餐降低投入,借助产业生态获取轻量化解决方案。

4. 2026 年后智能体的核心发展趋势?

核心是普惠化(低门槛)、协同化(多智能体联动)、安全化(技术 + 伦理双重保障)。

九、参考文献

[1] 中国信息通信研究院. 2026 人工智能产业发展白皮书 [R]. 2026.
[2] 麦肯锡咨询公司. AI 元年:全球产业变革与发展机遇分析 [R]. 2026.
[3] 德勤咨询。智能时代:企业智能体规模化落地实践指南 [R]. 2026.
[4] 工业和信息化部。新一代人工智能发展规划(2024-2030 年)[Z]. 2024.

引言:从“几何图形”到“概率博弈”
在量化交易(Quantitative Trading)的入门阶段,网格策略(Grid Trading)几乎是每个开发者的必修课。写一个while True循环,基于固定的Price Gap挂出Buy/Sell Limit单。

但实盘教训往往很惨痛:静态网格在单边行情下极其脆弱。因为缺乏对库存(Inventory)的感知,程序会在下跌趋势中机械地“接飞刀”,直至耗尽流动性被套牢。

最近重读高频交易(HFT)经典文献Avellaneda-Stoikov(AS)模型,发现它的核心思想完全可以降维打击普通网格——将“死扛”转化为“库存博弈”。

本文将分享如何用Python复现AS模型的核心逻辑,并探讨在Python这种非实时系统下,如何通过高性能行情API来弥补速度短板。


理论核心:重新定义“中间价”
传统的网格策略是“几何对称”的:Ask = Mid + Gap Bid = Mid - Gap

AS模型提出了一个颠覆性的概念:保留价格(Reservation Price, r)。它认为,交易员不应锚定市场价,而应锚定自己的“心理价”。

其核心计算公式如下(建议直接复制):

r = s - q × γ × σ²

作为开发者,我们需要深入理解这四个变量的物理含义,以及工程实现上的妥协:

  1. s (Mid Price):市场共识
    当前订单薄的买一卖一均价。[进阶注解]:在高频领域,通常会使用微观价格(Micro-price)或考虑订单流不平衡(OFI)来修正s。但作为入门复现,直接使用Mid Price是性价比最高的选择。
  2. q (Inventory Factor): 库存压力——策略的灵魂
    这是AS模型的重力参数。[工程避坑]:绝对不能直接用持仓数量(如10000)代入公式。必须归一化: q = (当前持仓 - 目标持仓) / 满仓限制

q > 0(积压):r < s。挂单整体下移,降价甩卖,拒接新货。

q < 0(短缺):r > s。挂单整体上移,溢价抢筹,惜售不卖。

  1. γ (Risk Aversion): 风险厌恶系数
    策略的性格参数。γ越大,策略越“怂”,稍微拿点货就拼命降价。
  2. σ² (Volatility): 市场波动率
    [工程妥协]:学术界通常使用GARCH模型或已实现波动率(Realized Volatility)。但在工程落地时,使用ATR或滚动窗口的标准差(Std)通常已经足够捕捉盘面风险。

源码实现:封装AS_Grid_Logic类
Talk is cheap, show me the code.以下是基于Python的算法逻辑封装。为了降低理解门槛,我们对AS模型进行了工程化简化:保留了最核心的库存偏斜(Skew),而将复杂的价差宽度(Spread)计算简化为ATR动态调整。


import numpy as np

class AS_Grid_Logic:
    """
    Avellaneda-Stoikov动态网格策略核心逻辑
    """
    def __init__(self, risk_gamma: float = 0.5, max_pos: int = 1000):
        """
        :param risk_gamma: 风险厌恶系数(Gamma), 值越大策略越倾向于去库存
        :param max_pos: 最大持仓限制, 用于归一化计算
        """
        self.risk_gamma = risk_gamma
        self.max_pos = max_pos

    def calculate_skew(self, current_pos: int, volatility: float) -> float:
        """
        计算价格偏移量(Spread Shift)
        """
        # 防御性编程: 避免除零错误
        if self.max_pos == 0:
            return 0.0
        
        # 1.关键步骤:归一化库存q (-1.0 ~ 1.0)
        # 如果不归一化,公式中的线性惩罚项会直接溢出
        q = current_pos / self.max_pos
        
        # 2.核心公式: Shift = q * gamma * sigma^2
        # 物理含义: 库存压力 * 怂的程度 * 市场风浪
        shift = q * self.risk_gamma * (volatility ** 2)
        return shift

    def get_quotes(self, mid_price: float, current_pos: int, 
                   volatility: float, half_spread: float):
        """
        生成最终的Bid/Ask价格
        :param mid_price: 当前市场中间价
        :param current_pos: 当前持仓
        :param volatility: 波动率(如ATR或std)
        :param half_spread: 基础网格半宽(此处简化处理,未使用AS模型的k参数求解)
        :return: (bid_price, ask_price, reservation_price)
        """
        # 计算偏移
        shift = self.calculate_skew(current_pos, volatility)
        
        # 计算保留价格(Reservation Price)
        # 这一步将锚点从市场价s切换到了心理价r
        reservation_price = mid_price - shift
        
        # 生成围绕保留价格的网格
        bid_price = reservation_price - half_spread
        ask_price = reservation_price + half_spread
        
        return bid_price, ask_price, reservation_price

# --- 单元测试/模拟运行 ---
if __name__ == "__main__":
    # 初始化策略: 比较激进的去库存设定(Gamma=1.5)
    logic = AS_Grid_Logic(risk_gamma=1.5, max_pos=1000)
    
    # 模拟场景: 市场价100,满仓被套(pos=1000),高波动(vol=2.0)
    bid, ask, res_p = logic.get_quotes(
        mid_price=100.0, 
        current_pos=1000, 
        volatility=2.0, 
        half_spread=0.5
    )
    
    print(f"Market Mid Price: 100.00")
    print(f"Inventory Ratio (q): 1.0 (满仓焦虑状态)")
    print(f"Reservation Price: {res_p:.2f} (心理中枢大幅下移)")
    print(f"Algo Bid: {bid:.2f} (防止接盘)")
    print(f"Algo Ask: {ask:.2f} (降价甩卖)")

运行结果解析: 在满仓且高波动场景下,算法将Ask报价从理论的100.5压低到了94.5(示例值)。 这在代码层面实现了:“只要我有货且市场不稳,我就比谁跑得都快”。


工程挑战:Python跑做市是伪命题吗?
这也是很多资深交易员会质疑的点:“Python有GIL锁,延迟那么高,跑AS模型不是找死吗?”

你是对的,但也不全对。你跑不赢FPGA驱动的顶级HFT团队,但你的对手盘如果是散户,你只需要跑赢HTTP轮询即可。

在实盘落地时,我们需要解决两个工程瓶颈:

1.Maker策略的费率控制 AS模型本质是提供流动性(Market Making)。

痛点:高频调整挂单容易导致在价格剧烈波动时误成交为Taker。

优化:不要每秒都重挂单。在代码中增加min_step_filter(最小变动过滤器),只有当abs(new_price - old_price) > threshold时才发送Order Update请求。

2.逆向选择(Adverse Selection)与数据源延迟 这是最致命的。当Python算出r需要下移时,通常是因为市场已经发生了Micro-crash。

瓶颈:如果你使用的是普通的RESTful行情API(轮询机制),延迟通常在500ms~1000ms。等你的Cancel Order到达交易所,原本的Buy Limit早就被Toxic Flow击穿了。

解决方案:必须升级行情API的接入方式。

技术选型建议:TickDB 对于Python开发者,如果不想花大量时间维护C++的底层连接,推荐使用TickDB这样的专业数据基础设施:

WebSocket Stream:实盘必须使用WebSocket订阅全量Tick数据。TickDB提供的行情API可以实现毫秒级的Tick推送。

Event-Driven(事件驱动):将策略架构改为OnTick()事件驱动模式。TickDB的Python SDK能够很好地适配这种模式,确保策略在接收到最新Tick的瞬间完成计算和发单。

Data Consistency:AS模型依赖准确的volatility计算。TickDB提供的清洗后的历史Tick数据,可以方便地预热计算ATR。


总结
从“死网格”进化到“AS动态网格”,本质是量化思维的升维:

算法层:引入Inventory(q)和Volatility(σ)因子,使策略具备自我保护能力。

工程层:承认Python的速度局限,通过接入高性能行情API(TickDB),利用WebSocket低延迟特性构建护城河。

代码已开源在文中,欢迎各位开发者Copy测试。如有关于行情API对接或算法优化的疑问,欢迎在评论区技术交流。

在数字经济成为必选题的今天,许多企业都面临一个共同的困境:数据量爆炸式增长,但数据价值却始终“雾里看花”。我们坐拥海量数据,为何在决策时仍感“无据可依”?
图片
数据采集问题的核心往往不在于数据本身,而在于数据从“原材料”到“价值资产”的转化过程缺乏科学、规范的治理。今天,我们就以五度易链的实践为例,深入拆解一下数据治理中最为关键的标准化开发流程。这套覆盖“采集-解析-清洗-标准化”的全链路体系,正是确保每一份数据都能被科学处理,最终转化为驱动业务增长的可靠引擎。数据采集:全面覆盖,筑牢数据基础
图片
数据采集数据采集是数据开发的起点,直接决定后续数据处理的广度与深度。五度易链运用专业的数据采集工具与成熟技术,能够根据不同行业和场景的具体需求,进行精准、全面的数据抓取。采集范围覆盖线上平台数据、线下业务系统数据、第三方合作数据等各类数据源,确保数据的完整性与全面性。同时,建立合规的数据采集机制,对数据来源的合法性、数据采集过程的安全性进行全程管控,在保障数据全面性的同时,坚守数据安全与合规底线,为后续数据处理工作奠定坚实基础。数据解析:深度挖掘,揭示数据价值采集到的原始数据多为非结构化形式,难以直接应用。五度易链采用先进的数据解析技术与算法模型,对海量原始数据进行深度挖掘与智能解析。通过技术手段,从杂乱无章的非结构化数据中提取关键信息,揭示数据背后隐藏的内在关联与发展规律。数据清洗:多维度质控,提升数据质量
图片
数据质量是数据价值实现的核心前提,五度易链建立严格的多维度质量控制流程,对采集到的原始数据进行深度排查与净化处理。清洗过程围绕数据准确性、完整性、一致性、唯一性、时效性等多个核心质量指标,通过自动化检测与人工复核相结合的方式,全面排查数据中的无效信息、错误记录、重复数据以及与业务无关的冗余数据。例如,针对数据录入错误导致的格式不一致、数值异常等问题,通过智能算法进行自动修正;对于重复采集的数据,建立去重规则进行精准剔除。通过多维度的清洗处理,有效提升数据集的质量与精准度,确保后续数据分析结果的可靠性与有效性。数据标准化:统一规范,实现数据兼容不同来源、不同类型的数据在格式、口径、计量单位等方面存在差异,直接影响数据的整合应用。五度易链遵循国内外相关行业标准及规范,结合企业业务需求,对完成清洗后的有效数据进行统一格式转换和标准化处理。通过建立统一的数据编码规则、字段定义标准、计量单位规范等,消除不同数据源之间的“语言壁垒”,让原本分散、异构的数据能够实现整合兼容。标准化处理后的数据,不仅便于后续进行高效的数据分析、挖掘与应用,更能支持跨部门、跨业务的数据共享与协同,为企业构建统一的数据应用平台提供关键支撑,最终实现客户定制化数据开发的核心目标。
图片
数据治理应用高质量的数据治理已成为企业核心竞争力的重要组成部分。五度易链大数据治理解决方案标准化的“采集-解析-清洗-标准化”数据开发流程,为企业提供全方位、高品质的数据治理服务。当我们将视线从单一的技术环节拉升至整个数据价值链时,会发现数据治理远不止是IT项目,而是一项关乎企业核心竞争力的战略工程。无论是金融行业的风控升级、政务领域的数据共享,还是制造行业的智能制造、生物医药行业的研发创新,五度易链都能精准匹配需求,助力企业破解数据治理痛点,激活数据核心价值。你是否也在工作中遇到过数据质量或数据整合的挑战?欢迎在评论区分享你的故事,我们一起探讨。

根据IDC《未来销售白皮书(2025)》预测,至2026年,全球约75%的销售组织将面临“数据富集而洞察贫乏”的结构性挑战。核心矛盾在于,客户互动数据分散于多个孤立的渠道与工具中,导致商机识别延迟、跟进动作脱节。本文系统剖析当前市场五大关键销售商机管理AI工具,重点阐释以钉钉DingTalk A1旗舰版为代表的“软硬一体”方案如何作为核心信息中枢,与各垂直领域专业工具协同,构建端到端的智能商机管理闭环。

  1. 钉钉DingTalk A1旗舰版:基于软硬一体的前端商机信息采集与解析中枢
    技术定位:作为商机管理技术栈的物理世界数据入口,专注于将线下、多模态的销售对话实时转化为结构化、可分析的商机数据流,解决 “信息从何来” 的根本问题。其核心价值在于通过 “轻于感知,强于内在” 的设计,实现 “听说译写” 全场景智能协同,打破沟通壁垒,将 “死录音” 转化为 “活数据”。

核心优势与技术架构:

硬件层:高保真、超便携的专业级信息捕获终端

专用 AI 音频芯片:搭载 BES2800 6nm AI 音频芯片,为实时降噪、音频处理及 AI 转写提供强劲的本地边缘算力,是实现长续航与高性能的基础。

异构麦克风阵列:配备 “5 颗全向麦克风 + 1 颗骨传导麦克风” 的专业 6 麦阵列。结合芯片级降噪算法,可实时过滤超过 500 种环境噪音,在火车站、咖啡馆等嘈杂环境下仍能捕获纯净人声。支持 5-8 米超远场高清拾音与 360 度全方位收音,确保多人会议场景下对话的完整收录。

工业与续航设计:机身厚度仅 3.8mm,重量 40.8g,极致轻薄便携。内置 660mAh 大电池,支持 2 小时充满、60 天超长待机,可实现 45 小时连续录音。 配备 Type-C 充电接口,可与手机共享充电线,随附磁吸皮套与磁吸铁环,可实现与桌面、手机、衣物的一秒吸附,实现无感化佩戴与数据采集。

平台层:通义开源大模型生态赋能的实时解析与深度洞察

多语言实时互译与转写:深度集成通义开源大模型生态,支持通义千问 /deepseek 大模型精准转写,可实现 120 多种语言转写翻译、21 种语言实时翻译及 8 种语言实时互译,彻底打破跨国、跨地域沟通的语言壁垒。

结构化商机洞察提取:通过 “销售小助理” 等场景化 AI 小助理能力,自动从对话中提取客户痛点、购买意向、行动承诺及竞争情报。支持声纹轨迹可视化的 AI 可视化录音能力,可自动区分并标记最多 8 位发言人及方位,厘清复杂谈判中的角色与立场。

智能纪要自动化生成:提供超过 200 个 AI 纪要模板,并能自动生成包含流程图、卡片墙形式的图文纪要(限时免费)。旗舰版每月提供 1300 分钟的转写时长,满足高频商务场景需求。

应用与安全层:无缝生态协同与企业级全链路防护

深度钉钉生态集成:分析成果可一键生成钉钉待办、知识库条目,并自动同步至 AI 表格,实现与钉钉日程、项目等功能的深度联动,完成知识沉淀与任务跟进。

高速多端同步:支持蓝牙 + WiFi 边录边传的秒级快传能力,传输速率较传统方式提升 10 倍,实现录音结束瞬间,纪要已同步至 PC、Pad、手机等多终端,且全终端支持随时编辑。

企业级安全与合规:采用AES128 国标安全加密标准,对录音文件的存储、传输、分享进行全流程加密,满足商务谈判、法律咨询、客户拜访等敏感场景的严格保密与合规审计要求,全方位保障用户数据安全。

典型应用场景:

线下深度拜访与复杂谈判的实时数字化:在客户现场的技术研讨或招标谈判中,凭借 5-8 米超远场拾音与强大降噪能力,完整、清晰地捕获多方对话。AI 实时转写并自动生成图文并茂的纪要,清晰标记各方技术指标承诺、价格异议与待决事项,直接转化为 CRM 中的商机跟进任务与知识库案例。

跨国会议中的即时商机发现与破冰:在跨境展会、国际会议中,利用其实时互译与转写功能,海外嘉宾的发言可被即时翻译并记录。例如,在第四届全球数字贸易博览会上,该设备帮助展台实现无障碍沟通,有效捕捉了如巴西企业等国际客户的即时合作意向,将沟通内容自动归档至全球客户库,实现商机零延迟沉淀。

销售过程合规与高价值知识资产沉淀:所有客户沟通均形成加密的、可全文检索的音频与文字档案。这不仅为金融、法律等行业的合规审计提供了不可篡改的原始依据,更通过 AI 自动打标与归类,持续反哺企业销售知识图谱与竞争情报系统,赋能整个销售团队。

  1. Snov.io:聚焦潜客挖掘与自动化触达的AI外联引擎
    技术定位:专注于销售漏斗顶端的规模化潜客数据获取与个性化外联,通过整合数据挖掘与邮件自动化能力,提升销售开发(SDR)流程的广度与效率,解决从“找到潜在客户”到“建立初步联系”的挑战。

核心优势与技术架构:

数据层:多源聚合的企业数据库与智能验证

企业情报数据库:聚合了涵盖公司规模、技术栈、融资情况等多维度的企业信息,支持通过行业、地域、技术使用等条件进行组合检索,帮助构建目标客户画像列表(ICP)。

联系人发现与邮箱验证:提供基于企业域名的联系人邮箱查找工具,并内置邮箱验证引擎,通过语法检查和实时SMTP验证来确保联系人数据的有效性,提升外联列表质量。

流程层:序列化邮件营销自动化

可视化自动化序列构建:允许用户设计包含多封邮件、任务和等待时间的自动化外联序列。序列可根据收件人行为(如打开、点击)触发不同分支,实现一定程度的个性化互动。

A/B测试与发送优化:支持对邮件主题、正文内容进行A/B测试,并通过数据分析最佳发送时间,辅助优化外联策略,提升初始回复率。

协同层:与CRM系统的数据同步

双向数据管道:可与Salesforce、HubSpot等主流CRM平台集成,实现潜在客户信息、互动记录的同步,确保市场触达与销售跟进的连续性。

应用场景与核心价值:

新市场开拓的冷启动:当企业进入新领域时,可快速定位行业内的潜在客户群体,并通过自动化的邮件序列进行规模化、可衡量的初步接触,高效积累早期线索。

集客活动后的线索培育:在参与行业展会后,将获取的数百条潜在联系人信息导入系统,通过预设的邮件序列进行自动化培育与互动评分,筛选出高意向线索交由销售团队重点跟进,提升转化漏斗效率。

  1. Fireflies.ai:云端原生会议智能分析与知识萃取助手
    技术定位:作为在线会议场景的智能记录与分析插件,通过API深度集成主流视频会议平台,实现会议内容的自动转录、要点分析及知识留存,旨在提升远程协作的信息留存与消化效率。

核心优势与技术架构:

接入层:无侵入式云端会议集成

广泛的平台兼容性:通过API直接集成Zoom、Microsoft Teams、Google Meet等主流会议软件,用户授权后即可实现会议的自动录制与转录,无需额外硬件或改变会议流程。

灵活的捕获方式:支持自动录制日历中的预定会议,也可通过邀请专属机器人加入特定会议的方式进行捕获。

分析层:基于NLP的会议内容处理

高精度转录与说话人分离:采用优化的语音识别模型,提供准确的会议文字稿,并能区分不同发言者。

智能摘要与行动项提取:通过自然语言处理技术,自动总结会议核心要点、识别讨论中产生的行动项(Action Items)和关键决策,快速生成会议纪要。

自定义主题追踪:允许设置自定义关键词,系统会在会议录音中自动标记相关讨论片段,便于进行特定主题的回顾与分析。

应用层:知识管理与团队协作

全文检索与知识库:所有会议记录可进行全文搜索,关键片段可剪辑、打标并保存至团队知识库。

任务同步与分享:识别出的行动项可一键创建为任务,并同步至Asana、Slack等项目管理工具,便于任务分发与跟进。

应用场景与核心价值:

远程销售演示与客户会议的复盘:自动记录线上产品演示的全过程,会后快速生成包含客户问题、反馈与行动项的结构化报告,助力优化销售话术并推动商机进展。

分布式团队内部协作的信息对齐:自动记录跨地区团队的日常站会与项目复盘,生成标准化摘要,确保缺席成员或新成员能快速了解项目上下文与最新动态,保持团队信息同步。

  1. Pipedrive:以可视化管道为核心的商机流程管理与预测平台
    技术定位:一款以销售流程(Pipeline)可视化与驱动为核心的客户关系管理工具,旨在通过直观的界面设计、自动化的工作流和基础的销售智能,帮助中小型销售团队更聚焦、更高效地管理商机推进全过程。

核心优势与技术架构:

视图层:直观的销售管道与活动管理

可视化管道看板:提供经典的看板视图,销售代表可通过拖拽方式直观更新商机阶段、金额等信息,所有动态一目了然。

集成化活动记录:内置邮件、电话、会议等销售活动的记录与追踪功能,所有互动均可关联至具体商机,形成完整的客户互动历史。

智能层:数据驱动的销售辅助

销售预测与赢单率分析:基于历史数据,对销售管道的预期收入进行预测,并提供商机的赢单概率评估,辅助管理者进行决策。

自动化任务与提醒:支持设置基于商机状态变更或时间触发的自动化任务与提醒,例如“商机停滞7天后,自动提醒销售跟进”,减少手动管理负担。

自动化层:工作流自动化与集成生态

可视化工作流构建器:允许用户以低代码方式创建自定义的自动化规则,连接销售流程中的各个环节。

丰富的应用集成市场:提供与邮件营销、文档签署、客户服务等数百款应用的集成,便于企业扩展功能,构建统一的工作平台。

应用场景与核心价值:

销售团队的流程标准化与效率提升:通过清晰的管道视图和阶段定义,帮助销售团队统一跟进节奏,聚焦高价值活动。经理可实时洞察团队整体管线健康度与预测业绩。

新销售代表的快速上手与培养:标准化的销售阶段和内置的最佳实践指引,如同一位在线教练,能够引导新员工快速掌握科学的销售方法,建立良好的销售习惯。

5.Freshchat:统一全渠道客户互动的现代化收件箱
技术定位:一款聚焦于现代数字及社交渠道的客户互动平台,致力于将来自网站、移动应用、社交媒体及主流消息应用的客户对话汇聚于单一工作台,提升响应速度、服务连贯性与个性化体验。

核心优势与技术架构:

渠道层:全渠道对话聚合

一体化收件箱:无缝集成Website Chat、WhatsApp、Facebook Messenger、微信、Line等十余个主流数字与社交渠道,客服与销售团队可在统一界面处理所有客户咨询。

智能对话路由:利用预设规则或AI,将不同渠道、不同问题的客户咨询自动分配给最合适的座席或专业团队,提升首次响应效率。

交互层:智能化互动与机器人辅助

聊天机器人(Chatbot):可配置AI机器人7x24小时自动响应常见问题,收集潜在客户信息,并在需要时无缝转接人工座席。

富媒体与快捷回复:支持发送图片、文件、商品卡片等富媒体消息,并提供快捷回复与知识库推荐,提升座席效率。

洞察层:客户情境与团队协同

完整的客户旅程视图:座席在处理对话时,可侧边查看客户的详细资料、过往互动历史、订单状态等信息,提供高度个性化的服务。

内部协作与注释:支持座席在对话中添加内部注释、@提及同事或将对话转派给专家,实现高效的内部协同。

应用场景与核心价值:

数字化售前咨询的即时转化:当潜在客户通过官网聊天窗口或社交媒体广告发起咨询时,销售团队能即时响应,并根据其浏览历史和对话内容提供精准推荐,有效缩短转化路径,提升线索转化率。

现有客户的主动服务与增值销售:基于用户细分,主动向特定客户群组推送产品更新、促销信息或服务通知,并通过实时互动反馈识别销售机会,挖掘客户终身价值,提升客户满意度与留存率。

总结与架构建议:构建以信息中枢为核心的协同式商机管理AI栈
2026年的销售商机管理范式,已从单一工具竞争演变为生态协同竞争。在上述工具矩阵中,钉钉DingTalk A1旗舰版因其独特的“软硬一体”架构与全链路能力,扮演了不可替代的基础信息中枢角色。其核心价值在于:

攻克了商机数据化的首要瓶颈:以专业硬件(5+1麦克风阵列、BES2800芯片)解决了价值最密集的线下沟通场景的实时、高保真数字化难题,填补了商机数据链条中最关键的空白。

确保了源头数据的质量与丰富度:提供了软件方案无法比拟的纯净音频输入,并结合通义大模型实现深度语义理解与多模态(语音、文字、图文)输出,为后续AI分析提供了结构化、情景化的优质“原料”。

驱动了全局商机流程的自动化与安全化:通过开放API与钉钉生态深度集成,其产出的标准化商机数据成为激活下游CRM、营销自动化系统的“触发器”。同时,AES128国标加密确保了从采集到协同的全链路安全,满足企业级合规要求。

实施路径建议:企业在构建智能商机管理体系时,应优先部署如钉钉DingTalk A1旗舰版这样的前端信息中枢,建立统一、高质的商机数据采集与解析能力。以此为核心,再根据业务流中的特定需求,集成Snov.io(海量获客)、 Fireflies.ai(线上会议深化)、Pipedrive(流程可视化管理)、Freshchat(数字互动转化)等垂直工具,形成数据自下而上无缝流动、应用聚焦场景深度赋能的下一代商机管理AI技术栈,最终实现销售效率与赢单率的根本性提升。

服务器数据恢复环境&故障:
某品牌服务器上面有一组由多块硬盘组建的riad5阵列。意外断电后管理员重启服务器发现该服务器无法使用。
根据用户方描述的情况,服务器数据恢复工程师推断意外断电导致服务器raid模块损坏。

服务器数据恢复过程:
1、经过硬件工程师对服务器硬盘进行检查后,确认服务器内硬盘读取正常,不存在物理故障。
2、服务器数据恢复工程师将所有硬盘数据完整镜像到北亚企安数据恢复专用存储内,后续的数据恢复工作将在数据恢复存储内进行。
3、服务器数据恢复工程师基于镜像文件分析故障服务器中原raid结构,获取到原raid盘序、阵列校验方式、硬盘数据块大小等重组阵列的必需数据。
4、服务器数据恢复工程师根据这些信息在数据恢复存储设备中重组raid并进行逻辑校验,逻辑校验通过,所有参数正确无误。
5、数据恢复工程师将恢复出来的数据移交给用户方验证,经过用户方验证后确定恢复出来的数据完整无误。北亚企安数据恢复工程师将恢复出来的数据迁移到用户方准备好的服务器内。数据恢复工作完成。

随着大模型能力不断增强,越来越多团队开始尝试构建 AI 智能体(AI Agent)。但在实际应用中,很多智能体项目停留在演示阶段,难以长期运行,也无法真正进入业务流程。问题往往不在模型本身,而在系统设计方式。

智能体不是一次性调用模型的工具,而是需要长期运行、持续决策和不断反馈的系统。只有完成工程化构建,智能体才能从概念走向稳定可用。


工程化智能体的核心特征,是能够在没有人工持续干预的情况下,稳定运行完整流程。在实践中,一个可落地的智能体系统至少需要具备以下能力:目标明确、任务可拆解、执行可控、状态可维护、结果可反馈。这些能力共同构成智能体的决策闭环。

从工程视角看,智能体本质上是一种长期运行的系统组件,而不是临时生成内容的工具。


在智能体从 0 到 1 的阶段,最容易导致失败的原因是边界不清。很多项目一开始就尝试解决过多问题,导致系统复杂、难以稳定。

更稳妥的方式,是只让智能体处理一类任务、运行一个流程、调用有限工具,并尽量保证输入和输出结构清晰。边界越清楚,系统越容易测试、调试和扩展。


在工程实践中,一个可落地的智能体系统通常由多个相互独立但又协同运行的模块构成。这些模块负责目标解析、任务规划、执行控制、工具调用和状态维护。它们共同形成一个循环,使智能体能够持续运行而不是一次性完成任务。

需要注意的是,系统逻辑应由程序控制,而不是全部写入提示词。提示词只负责配置,不应承担系统职责。


任务规划是智能体与普通模型调用之间的本质区别。一个没有规划能力的系统,无法持续执行复杂流程,只能完成一次性任务。

在工程实践中,规划能力应从简单开始,逐步增强。早期使用线性规划即可满足大多数场景,随着需求复杂度提升,再逐步引入多路径或反思机制。过早复杂化,反而会降低稳定性。


智能体要进入真实业务流程,必须具备可靠的工具系统。工具是智能体与外部世界交互的接口,包括数据查询、接口调用、文件操作和结果输出等能力。

工程上,工具设计应遵循职责单一、输入输出清晰、可独立测试的原则。工具越稳定,智能体系统的整体可靠性就越高。


没有记忆的智能体,只能完成一次性任务,无法真正运行流程。工程化智能体需要至少具备短期和中期记忆,用于保存当前任务状态和阶段结果。长期记忆可以在系统稳定后再逐步引入,用于存储知识和经验。

在早期阶段,过早引入复杂记忆机制,往往会增加系统不确定性。


反馈机制决定智能体是否具备自我修正能力。一个没有反思能力的系统,一旦执行失败,就会不断重复错误。

工程实践中,应为智能体设置明确的结果评估机制。当结果不符合预期时,系统应能够重新规划并限制循环次数。这是智能体从“能跑”到“能用”的关键一步。


从实践经验看,智能体从 0 到 1 的实现应遵循循序渐进的原则。先构建单目标、单工具、无记忆的简单系统,再逐步增加记忆、反馈和多工具能力,最后处理并发、异常和持久化问题。遵循顺序,可以显著降低返工成本。


在智能体工程化落地过程中,常见问题包括:目标定义过大、提示词承担系统职责、工具不可控、缺少回退机制、没有日志监控、系统模块耦合严重。这些问题通常不是模型问题,而是工程设计问题。

智能体是一种系统工程,而不是提示词工程。


智能体真正的价值,不在于模型是否足够聪明,而在于系统是否足够稳定。当结构合理、边界清晰、流程可控,模型能力的提升将自然转化为系统能力。

工程化,是智能体真正进入行业、进入流程、进入长期运行阶段的起点。

很多企业在上线 ITSM 系统 后,很快就会遇到一个“看似不是 IT 的问题”:员工办事依然要在邮件、群聊、表单、电话之间来回切换;

-人力、财务、行政、采购各自有各自的入口与规则;

-审批链条长、状态不透明、信息反复提交;

-最终员工只记得一句话——“办个事怎么这么难!”

这也是为什么越来越多组织开始把 ManageEngine卓豪 ServiceDesk Plus 从单一 IT 服务管理 平台,扩展为企业级的 ESM服务中枢:用统一门户、统一工单与统一治理机制,把跨部门协作变成标准化、可追踪、可持续优化的“服务体验”。

ESM 不是“把 IT 的工单系统复制给 HR/财务/行政”,更不是“多建几个表单”。它的关键在于:用服务思维重新定义跨部门交付,把请求入口、信息结构、审批规则、履行任务、SLA 与反馈机制统一在一套可治理的服务体系里。

这样,组织才能从“每个部门各自忙”走向“企业整体协同”,让员工体验与运营效率同时提升。

为什么 ITSM 之后必须是 ESM:组织协作的“隐藏成本”正在爆炸

当企业规模增长、业务线增多、制度变复杂时,“跨部门办事”会变成组织效率的最大阻力之一。很多管理者会把效率问题归因于“人不够”“流程慢”“系统不统一”,但真正的根因往往是:企业缺少一套可以覆盖全组织的服务交付机制。

IT 做了 ITSM,解决了 IT 的入口与治理;但 HR、财务、行政、采购仍以各自方式交付,员工必须自行拼接流程,于是产生大量摩擦与隐性浪费。

ESM 的核心不是“多部门用工单”,而是“统一服务模型”

ESM 成功与否,决定因素不是系统部署数量,而是是否建立了“统一服务模型”。统一服务模型意味着:不同部门的服务虽然内容不同,但交付方式遵循同一套基本逻辑——服务定义、请求入口、信息结构、审批规则、履行任务、SLA 与反馈机制可以被统一治理,并且可以持续优化。

你可以把 ESM 想象成一条“企业内部的服务供应链”。员工是需求方,HR/财务/行政/IT/采购是服务提供方。供应链要稳定运行,必须要有统一的订单格式(请求模板)、清晰的交付承诺(SLA)、可追踪的状态(透明进度)、可协同的任务拆解(跨部门任务)、以及可复盘的数据(指标与审计)。

ESM 方法论:用“服务包”把跨部门交付做成可复制的标准件

要让 ESM 真正跑起来,你需要一种能跨部门复制的设计单元——服务包(Service Package)。服务包不是简单的服务目录条目,而是一套完整的“交付说明书”:包含请求模板、审批规则、履行任务、依赖关系、完成标准、例外机制与度量指标。

服务包的价值在于:它把“经验”变成“标准件”,把“协作”变成“编排”,把“交付”变成“可治理对象”。

1)ESM 会不会变成“全公司都提工单”,反而更乱?

如果只是开放入口不做服务包设计,确实会更乱。正确做法是:从高频旅程试点,用服务包定义字段、任务、SLA 与完成标准;先把需求结构化,再扩展覆盖范围。

2)HR/财务/行政没有 IT 那么强的流程意识,怎么推?

从“减少返工、减少催办、减少扯皮”切入最有效。先用统一入口与模板字段解决信息缺失,再用任务编排减少跨部门沟通成本,最后用指标证明收益。

3)ESM 一定要做全组织覆盖吗?

不需要。ESM 的本质是可复制的服务交付能力。只要把关键旅程跑通并可复制,覆盖范围可以逐步扩展,而不是一次性铺开。

4)如何衡量 ESM 是否成功?

看三类指标:效率(完成时长、SLA)、质量(信息缺失率、一次通过率、满意度)、合规(例外次数、审计追踪完整率)。成功的 ESM 一定能在指标上体现。

5)ESM 会不会让流程僵化、影响业务灵活性?

不会,前提是你要把“例外”设计成机制:触发条件、审批、有效期、回收与复盘。这样既保留弹性,又不牺牲合规与风险控制。

Linus Torvalds 常开玩笑说自己会“活到永远”。但以防万一,Linux 内核社区现在也准备好了一套交接方案——只是这份方案并没有点名具体的接班人。

 

如果 Torvalds 发生意外,或者哪天决定退休,Linux 不再把一切寄托在“到时候再说”。核心内核社区已经正式起草了一份项目连续性计划:一旦顶层维护者出现空缺,应该如何在最坏情况或有序过渡中,选出新的顶层维护者(可能是一人,也可能是多人),确保项目长期稳定。

 

Torvalds 本人则明确表示自己暂无退休打算。被问到未来是否会交棒时,他依旧以一贯的幽默回应,暗示自己更倾向于“继续干下去”。随后他又补充了一个更现实的理由:家里人同样不希望他突然闲下来,尤其是太太,大概更不想每天被一个无所事事、没事找事的丈夫缠着。

 

这份新的“为计划而写的计划”由资深内核贡献者 Dan Williams 起草,并在最近于东京举行的 Linux Kernel Maintainer Summit 上讨论。Williams 介绍它时还自嘲:这是个“与我们终将走向死亡相关、但很振奋的话题”。

 

不指定唯一继承人

 

Torvalds 也解释了这次为何会把“接班”议题正式摆上台面:部分原因是他此前与 Linux 基金会的合同在去年第三季度到期,基金会技术顾问委员会的人都知情。虽然合同随后已续签,但这段时间确实促使大家把风险管理讨论得更具体。

 

计划并没有给出一个“唯一继承人”。相反,它明确了一套选择流程:一旦需要交接,由社区召集一次类似“秘密会议”的讨论机制,集中权衡候选人或候选团队,尽量做出对项目长期健康最有利的决定。有维护者开玩笑说,干脆学选教皇:把人都锁在房间里,等决定出来再放出一缕白烟。

 

文件提到一个开源圈常说的“公交车系数”(bus factor)梗:假设项目的关键人物哪天突然“消失”(比如出了意外),项目还能不能照常运转?因为 Torvalds 仍是顶层合并与发布的最终把关人,所以从风险角度看,Linux 在这一环节几乎等同于“系数为 1”——也就是关键节点过度依赖一个人。

 

不过在现实中,大家也大致心照不宣:真要临时接手,“企鹅之王”的角色多半会落到 Greg Kroah-Hartman 身上——他是 Linux 内核稳定分支的维护者。

 

Torvalds 还在 2024 年和好友 Dirk Hohndel(Verizon Open Source 负责人)聊过这个话题。Hohndel 认为,要成为 Linux 的主维护者,需要极其丰富的经验;而目前最自然的“备份选项”就是 Greg Kroah-Hartman。Torvalds 的看法则更偏向长期视角:关键不在于某个人,而在于谁能获得社区的信任;这种信任通常来自长期参与、稳定协作,以及社区对其工作方式的充分了解,但“资历够久”并不意味着必须三十年如一日。

 

Kroah-Hartman 也确实曾短暂顶上过。2018 年 Torvalds 一度暂离内核工作、反思并改善自己对待其他开发者和维护者的方式时,Kroah-Hartman 曾临时承担顶层职责。不过,他的年龄甚至比 Torvalds 还大。

 

或许会由多人共同接棒

因此也有人提出,与其再找一位新的“终身仁慈独裁者”(BDFL),不如把顶层维护者的职责拆分给多位值得信赖的开发者共同承担。

 

56 岁的 Torvalds 仍然是几乎所有进入 torvalds/linux.git 变更的最终裁决者。他常自嘲 Linux 的核心圈子正在“变老”。而维护者疲劳、以及核心子系统负责人后继乏人等问题,让这种紧迫感越来越强。

 

可以确定的是:Torvalds 并不会在短期内让位。他仍会继续监督主线开发,并一直做到自己“做不动”为止。只是至少现在,那个终极的“Linus 依赖”风险终于有了明确的处理流程——等到真正需要的那一天,可以直接套用,而不必临时抱佛脚。

 

参考链接:

https://www.zdnet.com/article/linux-community-project-continuity-plan-for-replacing-linus-torvalds/

过去几十年,软件工程有一个稳定不变的前提:系统的行为写在代码里。工程师读代码,就能推断系统在大多数场景下会怎么运行;测试、调试、上线,也都围绕“确定性”展开。但 Agent 的出现正在动摇这个前提:在 Agent 应用里,决定行为的不再只是代码,还有模型本身——一个在代码之外运行、带着非确定性的黑箱。你无法只靠读代码理解它,只能让它跑起来、看它在真实输入下做了什么,才知道系统“到底在干什么”。

 

在播客中,LangChain 创始人 Harrison Chase 还把最近一波“能连续跑起来”的编程 Agent、Deep Research 等现象视为拐点,并判断这类“长任务 Agent”的落地会在 2025 年末到 2026 年进一步加速。

 

这也把问题推到了台前:2026 被很多人视为“长任务 Agent 元年”,现有的软件公司还能不能熬过去?就像当年从 on-prem 走向云,并不是所有软件公司都成功转型一样,工程范式一旦变化,就会重新筛选参与者。长任务 Agent 更像“数字员工”——它不是多回合聊天那么简单,而是能在更长时间里持续执行、反复试错、不断自我修正。

 

在这期与红杉资本的对话中,Harrison 抛出了一个判断:构建 Agent,已经不只是把软件开发“加一层 AI”,而是工程范式本身在变。为什么他说“光读代码不够了”?为什么 tracing、评估、记忆这些原本偏“辅助”的东西,突然变成主角?他在对话里给出了非常具体的解释。

 

而更现实的问题是:如果范式真的在变,那些靠数据、流程、产品形态建立壁垒的传统软件公司,优势还能不能延续?它们手里握着的数据与 API 可能依然是王牌,但能否把这些资产变成 Agent 时代的生产力,取决于一套全新的工程打法。Harrison 的观察与判断,都在下面的完整对话里:

 

主持人:AI 领域的变化速度快得惊人。当前最受关注的话题,我觉得没有人比你更合适来聊。我们会先谈 长任务 Agent(Long Horizon Agents) 和 Agent Harness(智能体运行框架)。

接着,我们会讨论:构建长任务 Agent 与构建传统软件到底有什么不同,以及你如何看待 LangChain 在整个生态系统中的角色。最后,我想和你聊聊未来。你怎么看红杉资本这篇关于 Long Horizon Agents 的文章?哪些观点你认同,哪些地方你不太同意?

 

“在去年的一篇文章中,我们曾提出:推理模型(reasoning models)是 AI 领域最重要的新前沿。而“长任务 Agent”(long-horizon agents)则在这一范式之上更进一步——它们不只是思考,还能够采取行动,并在时间维度上不断迭代。”

 

来源:https://sequoiacap.com/article/2026-this-is-agi/

 

Harrison Chase:你们这个概念命名得非常好,那篇文章也写得很棒。我整体上是认同的——长任务 Agent 终于开始真正“跑起来”了

 

一开始对 Agent 的设想,本来就是让一个 LLM 运行在一个循环里,自主决定接下来该做什么。

 

AutoGPT 本质上就是这个想法,这也是它当初能迅速走红、抓住那么多人想象力的原因:一个 LLM 在循环中运行,完全自主地决定行动。但当时的问题在于:模型还不够好,围绕模型的 scaffolding(支架)和 harness(框架)也不够成熟

 

这几年,模型本身变得更强了;与此同时,我们也逐渐搞清楚了,什么样的 harness 才是“好”的。于是现在,这套东西开始真正奏效了。最明显的例子是在编程领域,Agent 的突破首先发生在那里。之后,这种能力正在向其他领域扩散。

 

当然,你仍然需要告诉 Agent 你想让它做什么,它也需要配备合适的工具。但现在,它确实可以持续运行更长的时间,而且表现越来越稳定。所以,用“长时序”来描述这一类 Agent,我觉得非常贴切。

 

主持人:你最喜欢的长任务 Agent 案例有哪些?你觉得它们正在呈现出哪些形态?

 

Harrison Chase:目前最成熟、我自己用得最多的,还是编程 Agent

 

再往外延一点,我觉得非常优秀的一类是 AI SRE。比如 Traversal(我记得它是一家红杉投资的公司),他们的 AI SRE 可以在更长的时间跨度内运行。再往抽象一点,其实这类 AI SRE 本质上属于“研究型 Agent”。比如:给它一个事故,它会去翻日志、分析上下文、追溯原因。研究任务本身非常适合 Agent,因为它们最终产出的往往是一个“初稿”。

 

Agent 的问题在于:它们还达不到 99% 的可靠性,但它们可以在较长时间内完成大量工作。所以,只要你能把任务框定为:让 Agent 长时间运行,产出一个初步版本,由人来审阅,这在我看来就是目前长任务 Agent 最“杀手级”的应用形态。

 

编程就是一个例子:你通常是提交 PR,而不是直接推到生产环境(当然,vibe coding 现在也在不断进步)。AI SRE 也是一样:结果会交给人来 review。报告生成也是如此:你不会直接发给所有用户,而是先看一遍、改一改。我们在金融领域也看到了大量这样的用法,这是一个非常大的研究机会。客服领域同样如此。最早的客服 Agent 主要是做“第一响应”:用户一发消息,马上给出回复,这类用法现在也做得很好。

 

但现在开始出现新的形态,比如 Klarna 这个产品:人类和 AI 协同工作。当第一层自动回复失败后,不是简单地转交给人工,而是让一个长任务 Agent 在后台运行,生成一份完整的事件报告,然后再交给人工客服处理。

 

这里“agent”这个词在客服语境下会变得有点混乱,但核心逻辑是一致的。总结来说,这些应用的共同点是:先由 Agent 生成一个“初稿”,再由人类接管。

 

主持人:那么,“为什么是现在”?你觉得主要是因为模型本身变得足够强,还是因为人们在 harness 侧做了非常聪明的工程设计?在回答这个问题之前,能不能先帮听众梳理一下:在一个 Agent 系统中,模型、框架和 harness 各自扮演什么角色?

 

Harrison Chase:当然可以。我也顺便把“框架”这个概念一起带进来。一开始,我们把 LangChain 描述为一个Agent Framework,现在我们又推出了Deep Agents,我更愿意称它为一个Agent Harness

 

很多人都会问,这两者有什么区别。模型很简单,就是 LLM:输入 token、输出 token。框架(Framework)是围绕模型的一层抽象,让你更容易切换模型,封装工具、向量数据库、记忆等组件,本身比较“无偏好”,强调灵活性,更像是基础设施。Harness则更“有主张”。以 Deep Agents 为例:我们默认就提供一个规划工具(Planning Tool);这个工具是直接内建在 harness 里的,带有明确的设计立场:我们认为这是“正确”的做法。

 

我们还做了上下文压缩(Compaction)。长任务 Agent 会运行很久,哪怕上下文窗口已经很大,也终究是有限的,总会有需要压缩的时候。怎么压缩?压缩什么?这是一个正在被大量研究的问题。

 

此外,几乎所有 Agent Harness 都会提供文件系统交互能力,不管是直接操作,还是通过 bash。这一点其实很难和模型本身完全分开,因为模型训练数据里已经大量包含了这类操作。

如果回到两年前,我不确定我们是否能预见到:基于文件系统的 harness 会成为最优解之一。那时模型还没被充分训练过这些模式,而现在模型和 harness 是在一起“共同进化”的。

 

所以总结来说,这是一个组合效应:模型本身确实在变强,推理模型带来了巨大提升。同时,我们也逐渐摸索出了 compaction、planning、文件系统工具等一整套关键原语。这两者缺一不可。

 

设计范式的演进

 

主持人:我记得在我们第一次对谈时,你把 LangGraph 描述为 Agent 的“认知架构”。现在来看,这是不是也可以理解为 harness 的一种形态?

 

Harrison Chase:是的,这个理解是对的。我们现在的 Deep Agents 是构建在 LangGraph 之上的。可以把它看作是一个非常具体、非常有主张的 LangGraph 实例,更偏向通用目的。

 

早期我们讨论过“通用架构”和“专用架构”的区别。现在我们观察到一个很有意思的变化:过去需要写进架构里的任务特异性,正在转移到工具和指令里。

 

复杂性并没有消失,只是从结构化代码,转移到了自然语言中。因此,prompt 的设计、修改,甚至自动更新,正在成为系统的一部分;而 harness 本身,反而变得更加稳定。

 

主持人:在你看来,harness 工程中最难做对的是什么?你觉得单个公司是否真的有可能在这一层形成显著优势?有没有你特别佩服的团队?

 

Harrison Chase:说实话,目前在 harness 工程上做得最好的,基本都是编程类公司。Claude Code 就是一个非常典型的例子。我认为它能如此受欢迎,很大程度上是因为它的 harness。

 

主持人:这是否意味着:harness 更适合由模型公司来做,而不是第三方创业公司?

 

Harrison Chase:我不确定。比如 Factory、AMP 这些编程公司,也都做出了非常强的 harness。

 

确实存在一个现实:harness 往往和模型家族绑定得比较紧密。不一定是某一个具体模型,而是一整个模型体系。Anthropic 的模型会针对某些工具进行微调,OpenAI 则针对另外一些。这和 prompt 类似:不同模型,需要不同的 prompt;同样,不同模型家族,也需要稍微不同的 harness。当然,它们也有很多共性,比如几乎都会使用文件系统。

 

我自己也没有一个确定答案。但一个很明显的现象是:几乎所有做编程 Agent 的公司,现在都在自研自己的 harness。你去看 Terminal Bench 2 这样的榜单,会发现他们不仅展示模型,还展示 harness。Claude Code 并不总是在榜首。这说明:性能差异并不完全来自模型,而来自对“模型如何在 harness 中工作”的理解。

 

主持人:你觉得,排行榜上表现最好的 harness,究竟在哪些地方做得特别好?

 

Harrison Chase:首先是对模型训练偏好的理解。比如 OpenAI 的模型对 Bash 非常熟悉;Anthropic 提供了显式的文件编辑工具。顺着模型的“母语”来设计 harness,本身就能带来性能收益。

 

其次是上下文压缩(Compaction)。随着任务时间跨度变长,如何处理上下文窗口溢出,已经成为一个核心问题。这显然也是 harness 的一部分。

 

此外,还有skills、子 Agent、MCP等机制。目前这些能力还没有被系统性地训练进模型中,仍然属于比较新的探索方向。

 

在我们的 harness 中,一个典型挑战是:主 Agent 如何与子 Agent 高效通信。主模型需要把所有必要信息传递给子 Agent,同时还要明确告诉它:最终只需要返回一个“最终结果”。

 

我们见过一些失败案例:子 Agent 做了大量工作,最后却返回一句“请查看我上面的分析”,而主 Agent 根本看不到那些内容,于是完全不知道它在说什么。

 

所以,如何通过 prompt 设计让这些组件协同工作,是 harness 工程中非常重要的一部分。

如果你去看一些公开的 harness prompt,它们往往有几百行之长。

 

主持人:我想从演进角度问一个问题。你一直站在模型“如何落地”的最前沿。如果用一种简化视角来看过去五年的几个关键拐点:ChatGPT 带来了预训练的拐点;o1 带来了推理能力的拐点; 最近,Claude Code + Opus 4.5 带来了长任务 Agent 的拐点。但从你这个“围绕模型做设计”的世界来看,拐点会不会是另一套划分?从认知架构到框架、再到 harness,这中间经历了哪些真正的跃迁?

 

Harrison Chase:我大概会把它分成三个阶段。

 

第一阶段:最早期。那时 LangChain 刚刚出现,模型还是“纯文本输入、纯文本输出”,甚至还不是 chat 模型。没有工具调用,没有 reasoning,没有结构化输出。人们主要做的是单一 prompt 或简单 chain。

 

第二阶段:工具与规划开始进入模型。模型开始支持 tool calling,也尝试学会“思考”和“规划”。虽然还不够强,但已经能做出基本决策。这时,人们大量使用自定义的认知架构,通过显式提问来引导模型行动,但整体仍然依赖大量外部 scaffolding。

 

第三阶段:长任务 Agent 的真正起飞。大概是在今年 6~7 月,我们看到 Claude Code、Deep Research、Manus 等产品同时爆发。它们在底层使用的是同一个核心算法:让 LLM 在循环中运行。

 

真正的突破来自于上下文工程:压缩、子 Agent、技能、记忆——所有这些,都是围绕上下文展开的。这正是我们开始做 Deep Agents 的时间点。

 

对于很多程序员来说,Opus 4.5 可能是一个心理上的分水岭。也可能只是碰巧遇上假期,大家回家开始大量使用 Claude Code,突然意识到:它真的很好用。无论是 2025 年初还是 2025 年末,总之在某个时间点,模型“刚好强到足以支撑这种形态”,于是我们从 scaffolding 迈向了 harness。

 

Coding Agent 是通用 AI 的终局形态吗

 

主持人:接下来会发生什么?

 

Harrison Chase:我也希望我知道答案。这个“让 LLM 在循环中运行、让它自己决定要拉什么上下文进来”的算法,本身极其简单、也极其通用。这正是 Agent 从一开始的核心设想,而我们现在终于走到了“它真的能工作”的阶段。

 

接下来,可能会有大量围绕上下文工程的技巧出现:有些手动设计的部分可能会消失;比如压缩类的,现在仍然高度依赖 harness 作者的决策。Anthropic 已经在尝试让模型自己决定何时压缩上下文,虽然目前用得还不多。

 

另一个我们非常关注的方向是记忆(Memory)。从本质上说,记忆也是一种上下文工程,只不过是跨更长时间尺度的上下文。核心算法本身已经非常清晰:运行 LLM 循环。未来的进步,很可能来自更聪明的上下文工程方式,或者让模型自己参与上下文管理。模型当然也会继续变强,越来越擅长长时序任务。

 

我目前思考最多的一个问题是:我们看到的大多数 harness 都是高度偏向编程任务的。这是长任务 Agent 最先爆发的领域。但即便是在非编程任务中,你也可以认为:写代码本身是一种非常强的、通用的工具。

 

主持人:我本来想问你:编程智能体(coding agents)到底算不算一个子类别?还是说编程智能体就是智能体本身?换句话说,智能体的工作,本质上是想办法让计算机去做一些有用的事情,而“写代码”本来就是让计算机做有用事情的一种很好的方式。

 

Harrison Chase:我也不确定。但有一点我非常非常坚信:现阶段只要你在做长时序智能体,你就必须给它文件系统的访问能力。因为文件系统在“上下文管理”方面能做的事情太多了。比如我们说 compaction(上下文压缩),一种策略是把内容总结掉,但把完整的消息都放进文件系统里,这样如果智能体后续需要回查,它还能查到。

 

另一种策略是,当你遇到很大的工具调用结果时,不要把全部内容都塞回模型上下文里;你可以把结果放进文件系统,然后让智能体需要的时候再去查。

 

而这些操作,其实不一定需要真实的文件系统,也不一定要让它真的去写代码。我们有一个概念叫“虚拟文件系统”:它底层可能只是 Postgres 之类的存储,扩展性更强。当然,“真实代码”能做的事情,虚拟文件系统做不了。比如你没法在虚拟文件系统里直接运行代码。所以写脚本在很多场景下确实非常有用。

 

我也认为编程智能体有潜力成为通用智能体,但我不确定这是否意味着“今天的编程智能体”就是通用智能体——如果你能理解我这句话。因为我觉得现在很多编程智能体还是为编程任务做了大量优化的。

 

所以“一个通用智能体可能长得像编程智能体”,但反过来,“今天的编程智能体就是通用智能体”,这件事我并不确定。

 

传统软件面临的挑战

 

主持人:那我们能不能转到另一个话题:构建长时序智能体和构建传统软件之间的差异?你能不能先描述一下“1.0 时代”的软件开发栈是什么样的,然后说说现在到底哪里不一样?我记得你在 X 上写过一篇很不错的文章,也许你可以总结一下核心结论。

 

来源:https://x.com/hwchase17/status/2010044779225329688

 

Harrison Chase:我这段时间一直在反复想这个问题:我们经常说“做智能体和做软件是不同的”,而且很多人也同意。但问题是:到底哪里不同?

 

我觉得很容易、也很偷懒地说“不同”,但“具体不同在哪里”才是关键。下面这些可能听起来很显然,但也许显然是好事,希望它们不太有争议。

 

当你在做传统软件时,所有逻辑都写在代码里,你能直接在软件代码中看到它。但当你在做智能体时,你的应用如何工作的“逻辑”,并不全部在代码里,其中很大一部分来自模型本身。

 

这意味着:你不能只看代码,就判断智能体在某个具体场景下会做什么。你必须真的把它跑起来。而我认为,这就是最大的不同:我们引入了这种非确定性系统,它是一个黑箱,它在代码之外。我觉得这就是核心差异。

 

一个直接后果是:为了弄清楚应用到底在做什么,你不能看代码,你必须看它在真实运行中做了什么。这也是为什么我们做的产品里,最受欢迎的之一是LangSmith。LangSmith 的一个核心能力是tracing(追踪/执行轨迹)。为什么 trace 这么受欢迎?因为它能把智能体每一步内部发生的事情都清清楚楚地展示出来。

 

而这跟传统软件里的 trace 又不一样。传统软件里,你的系统在那边跑,它会吐出很多日志和事件;你通常是在出现错误时才去看,而且你不需要“每一步的全部细节”。而且本地开发时,你可能直接打个断点就够了;很多时候日志追踪是上线到生产环境后才会更重度开启。但在智能体里,人们从一开始就会用 trace 来理解“底层到底在发生什么”。

 

而且它在智能体里的影响力,远大于在单一 LLM 应用里的影响力。因为在单一 LLM 应用里,如果模型回答得不好,你知道你的 prompt 是什么,也知道输入上下文是什么(由代码决定),然后你得到一个输出。

 

但在智能体里,它在循环中运行、不断重复。你并不知道第 14 步时上下文里到底有什么,因为前面 13 步可能会把任意东西拉进上下文。所以,“上下文工程(Context Engineering)”真的是一个非常好的词。我真希望这是我发明的。它几乎完美描述了我们在 LangChain 做的一切——只是当时我们并不知道这个术语已经存在。

 

trace 的价值就在于:它能直接告诉你此时此刻上下文里到底有什么,这太重要了。那这又意味着什么?这意味着:对传统软件来说,“真相的来源(source of truth)”在代码里。但对智能体来说,真相来源变成了代码与 trace 的组合——而 trace 是你能看到真相的一部分地方。

 

从技术上说,真相当然也“存在于模型的数百万参数里”,但你基本没法直接对参数做什么。所以现实上,trace 就成了你可以抓住的“事实载体”。

 

因此,trace 也会成为你开始思考测试的地方。你仍然可以对 harness 的某些部分做单元测试,也可以离线做一些 unit test,但要获得真正的测试用例,你很可能需要用 trace 来构建。而且在智能体里,在线测试(online testing)可能比传统软件更重要,因为行为不会在离线环境里完整显现出来,只有在真实世界输入驱动下、系统被真正使用时,行为才会“涌现”。

 

我们也看到 trace 正在成为团队协作的中心:如果出了问题,不再是“去 GitHub 看代码”,而是“去看那条 trace”。我们在开源项目里也一样。有人说:“Deep Agents 这里跑偏了,发生了什么?”我们的第一反应是:“把 LangSmith trace 发给我们。”如果没有 trace,我们基本没法帮你 debug。过去大家会说“把代码给我看看”,但现在已经转变了。

 

这就是我写在 X 上那篇文章的核心内容,反馈很好。我也还在琢磨怎么把它表达得更精确,但我觉得这一点很关键。

 

另外一个点我也还在继续想:我觉得构建智能体是一个更偏迭代式的过程

 

我们过去也会这么说,但我以前会有点翻白眼,因为软件开发本来也是迭代式的:你发布、收反馈、不断迭代,这就是软件开发的常态。但我觉得差别在于:在传统软件里,你的迭代是围绕“你希望软件做什么”来进行的。你有一个想法,你发布,你收反馈。比如“这个按钮让人困惑”,或者“用户其实想做 X 而不是 Y”。但你在发布之前,其实你是知道软件会怎么运行的。

 

但在智能体里,你在发布之前并不知道它到底会怎么做。你当然有一个预期,但你并不能在发布前真正确定它会做什么。因此,为了让它更准确、让它更“对”、让它能通过某种“概念上的单元测试”,你需要更多轮次的迭代。

 

在这个基础上,我也认为记忆(memory)非常重要。因为记忆就是在从这些交互中学习。如果你的开发过程变得更迭代、更难,那么作为开发者,我为了让系统表现正确,可能需要反复改系统 prompt——这种频率甚至可能比我改代码还高。

 

这就是记忆进入的地方:如果系统能够以某种方式自己学习,那就能减少开发者必须进行的迭代次数,让构建这类智能体变得更容易。

 

所以,这是我认为“构建智能体确实不同于构建软件”的另一个角度。我也承认,这么说有点老套,所以我一直在逼自己想清楚“到底不同在哪里”,目前我总结出来的就是这两点。

 

主持人:我也很想追问这一点。现在公开市场上有一个很大的争论:现有的软件公司还能不能熬过去?如果类比当年从本地部署软件(on-prem)转向云(cloud),实际上真正成功转型的公司并不多,因为事实证明,“做云软件”和“做本地软件”确实差异很大。你现在处在“人们如何用 AI 构建产品”的核心地带。你怎么看这件事?

 

我不是要问公开市场的投资问题,而是想问:这个变化到底有多大?你有没有看到很多人:过去很擅长“旧方法做软件”,现在也能很擅长“新方法做软件”?还是说更像是:你要么在“新方法”里长大,要么就很难真正理解它?你觉得人能跨越这个鸿沟吗?

 

Harrison Chase:我注意到现在有很多年轻创始人,这让我觉得,也许年轻人因为没有太多对“旧软件开发方式”的先入之见,反而可以更快把这些东西学起来、用起来。而且我们确实一再听到一个现象:很多在做 agent engineering 的团队成员,反而是更初级的开发者、更初级的构建者——他们确实没有那些先入之见。我们内部的应用 AI 团队,确实整体更偏年轻一些。我觉得这里面既有“人的因素”,也有“公司的因素”。

先说公司层面:数据依然非常非常非常有价值。如果你从 harness 的角度去看——顺便说一句,我其实不认为长期来看大多数人都会自己去写 harness,因为它比做 framework 难太多了。所以我觉得大家最终会用我们提供的 harness,或者用别人的。

那一个 harness 里面有什么?主要就是:prompt、指令,以及它连接的工具。而现有公司在这方面最大的资产之一,是他们已经拥有数据和 API。如果你过去在这块做得不错,那么把这些东西接入到 agent 上,其实会非常容易产生真实价值。

我们前阵子和金融行业的人聊,他们就说:数据的价值只会越来越高、越来越高、越来越高。所以如果你是一个传统软件厂商,你手上有这些高价值数据,你应该能够把它暴露给智能体,让智能体去用,从中拿到很大的收益。

不过这里还有另一部分:关于“如何使用这些数据”的指令(instructions),这一块可能更偏“新增”。

 

你作为软件厂商也许一直对“怎么用这些数据”有一些想法,但你并没有把这些想法系统化、固化成可执行的“操作说明”,因为过去这件事更多是由人来完成的——很多智能体现在在做的事情,本来就是人类会做的事情。

你当然会给人配工具,但你以前不会、或者也很难成功地把它完全自动化。而到了“智能体”这一代,这部分才真正变得可行。所以我觉得这块是新的。

我们也看到大量需求来自“垂直领域创业公司”。Rogo 就是一个很好的例子:他们团队有人有金融行业经验,把这种行业知识带进了智能体系统里,而这之所以有效,是因为很多智能体的驱动力来自“知识”——但不是那种通用世界知识,而是如何执行特定流程、特定模式的知识

所以问题就变成:做传统软件的人是不是做智能体的合适人选?我觉得我们确实看到很多非常资深的开发者在采用 agentic coding,所以某种程度上这更像是“心态问题”。但确实也可能会呈现出一种“年轻化倾向”。而公司层面,则很大程度取决于它手上的数据资产。

主持人:所以看起来,你认为 trace 是这个新世界里 agent 开发的核心“产物”,LangSmith 在这方面帮助很大。那你觉得还有哪些核心的“产物”——或者说,可能“产物”这个词不对,应该说组件(components)?

Harrison Chase:对,组件。我觉得构建软件与构建智能体之间另一个差异是:评估软件时,你可以相当可靠地依赖程序化测试和断言。但智能体做的很多事情,本质上是“人类会做的事情”。因此要评估它,你必须把人的判断引入进来。

这也是我们在 LangSmith 里努力解决的问题之一:你已经有了这些 traces,那么你怎么把人类判断带到 traces 上?最直接的方法当然就是:把人引进来。所以我们也看到数据标注类创业公司做得很好。我们在 LangSmith 里有一个概念叫 annotation queues(标注队列),就是把人带进来参与。因此,实际的、真实的人类判断,是其中非常重要的一部分。

主持人:这里的“人工标注”的 trace,比如,智能体做了这些步骤,这是好还是不好。

 

Harrison Chase:有时候,人会给自然语言反馈:这很好、这很差、这里应该怎么做。有时候,人会直接“纠正它”:把正确步骤完整地写出来。这具体怎么做取决于用例,而且对做 RL 的模型公司,和对做 agent 应用的公司来说,也可能不一样。但核心就是:把人类判断带进来。

同时,我们也看到另一条路:尝试为这种人类判断建立一些“代理指标”(proxy)。这就是 LLM-as-a-Judge 这类方法的来源:你可以跑一个 LLM 或其他模型,让它承担某种“类似人类判断”的角色,去给那些本来需要人类判断的东西打分。

我们一直在思考的一件事是:怎么让“构建 judge”这件事变得容易。因为 judge 的关键很大一部分在于:它必须和你的人的判断、人类偏好保持一致。如果做不到,那你的 grader(评分器)就很糟糕。

所以我们在 LangSmith 里做了一个概念叫align evals:人类先去标注一些 traces,然后基于这些标注,构建一个 LLM judge,使它在这些样本上被校准(calibrated)。

因为关键就在于:你要把人类判断引入进来;如果你要用 proxy 来替代它,那就必须确保这个 proxy 校准得足够好。

主持人:有意思。我记得我们最开始和你做业务合作的时候,还在邮件里讨论过:LLM-as-a-Judge 到底是否可行。看起来它已经进步很多了。

Harrison Chase:是的。LM-as-a-Judge 其实有几个不同层面的用法。

最常见的一种,是用于 eval:拿一条 trace,直接给它一个分数,比如 1 到 0,或者 0 到 10。这个我认为是可行的,而且很多人确实在做。他们会离线做,也会在线做,因为有些判断并不需要 ground truth(标准答案)。

但我觉得另外一个更重要的场景,是你在 coding agents 里也能看到的:coding agent 往往会先工作到某一步,然后遇到错误,触发纠错。它实际上是在“评判自己刚才做的工作”。我们也在 memory 上看到同样的模式:记忆很大一部分就是反思 traces,然后更新某些东西。所以问题是:LLM 能不能去反思 traces——无论是它自己的 trace、以前 session 的 trace,还是别人的 trace?我觉得完全可以。我们在 eval、纠错、记忆里到处都能看到这种模式,本质上其实是一回事。

Eval 是 RL 的奖励信号,还是工程反馈机制?

主持人:我明白了。那接下来就很自然会问:你有了所有 traces,也有了 eval。那么这些 eval 到底是什么?它是强化学习的 reward signal?还是一种反馈机制,让工程师去改进 harness、让 agent 工程师去优化 harness?

Harrison Chase:因为现在大家都不再手动写太多代码了,大家都在用这些 agent 工具。我们观察到一个很重要的模式:我们有一个 LangSmith MCP,也有 LangSmith fetch(一个 CLI)。因为 coding agents 特别擅长用 CLI。你把这些给智能体,它就能把 traces 拉下来,诊断哪里出了问题,然后把这些 traces 带进代码库里,从而修复它。这是我们正在看到的真实模式,而且我们非常非常非常想支持这种模式。

所以在这一点上,相比“用 eval 做强化学习奖励信号”,我对“把 eval 当作工程反馈、用于改 harness”的路径更乐观——至少对今天做 agent 应用的公司来说是这样。

主持人:这听起来像是递归自我改进啊。

 

Harrison Chase:我觉得是,但还是有一个人类在环。

回到前面那个点:当它产出“初稿”时效果最好——它改 prompt,然后人类 review,这能让系统保持不跑偏。但我们确实……我们最近发布了 LangSmith Agent Builder,这是一个 no-code 的 agent 构建方式。其中一个很酷的功能就是 memory。

现在 memory 的工作方式是这样的:当你和 agent 交互时(注意它还不是后台自动跑的那种;它不会自己拉 traces),如果你对它说:“你不该做 X,你应该做 Y”,它就会去改自己的指令——这些指令本质上就是文件——然后直接编辑这些文件。这样未来它就会按新的方式表现。

这也是一种“自我改进”的形式。我们确实还想加入另一种机制:比如每天晚上跑一次任务,查看当天所有 traces,更新自己的指令。

主持人:就是那种“做梦”的机制。

 

Harrison Chase:对,“睡眠时间算力(sleep-time compute)”。

记忆与自我改进会成为护城河吗?

主持人:我们再多聊聊未来。你现在最兴奋的是什么?听起来你聊了很多 memory。

Harrison Chase:我很看好 memory。我觉得让智能体去改善自己,这非常酷,而且在很多场景下也很有用。

但也不是所有场景都用得上。比如 ChatGPT 加了 memory 功能,我其实用得不多,我也不觉得它显著增加了我对产品的粘性。我觉得原因之一是:我去 ChatGPT 时,大多数问题都是一次性的。我不太会反复做同一件事:我可能问软件,也可能问吃的、旅行……都很零散。

但在 agent builder 里,你通常是为特定任务构建特定工作流。比如我有一个 email agent。而且我其实……它已经给我发邮件两年了。我之前在 agent builder 之外就有一个 email agent,它带有 memory。后来我们做了 agent builder,我想把它迁移进去,但它没有我之前的那些 memories。即便它的起始 prompt 一样、工具也一样,但因为缺了记忆,它现在的体验就明显差很多。我到现在都还没完全切过去,因为它现在确实不如之前那个好用——说白了,它现在“有点烂”。

当然,如果我持续和它交互,它会变好,它会不那么烂。但这也恰恰说明:memory 可能会成为真正的护城河(moat)。而且我绝对相信,我们已经到了一个阶段:LLM 可以看 traces,然后改变自己代码里的某些东西。问题在于:怎么把这件事做得安全、并且在用户层面可接受。但我认为,在一些特定场景里(不是所有场景),我们会越来越多看到这种能力。至于 ChatGPT 这种通用聊天产品,我仍然不确定这种形态的 memory 是否有用,至少目前我不确定。

 

主持人:你觉得和长时序智能体一起工作的 UI 会如何演化?

Harrison Chase:我觉得大概率需要同步模式(sync)和异步模式(async)

长时序智能体运行时间可能很长,默认应该是异步管理:如果它要跑一天,你不会一直坐在那里等它结束。你很可能会启动一个、再启动一个、同时跑很多个。所以这里会涉及到异步管理:我觉得像 Linear、Jira、看板,甚至 email,都可以作为 UI 设计的参考——如何去管理一堆异步运行的 agent。

但与此同时,很多时候你又会想切换到同步交流。因为 agent 最后给你返回一份研究报告,你可能需要立刻指出:它这里写错了,你要给反馈。聊天界面在这方面其实已经挺不错的。

我唯一想补充的是:现在很多 agent 不仅是在“对话”,它还会去修改文件系统里的文件。所以你必须有一种方式去查看“状态”(state)——也就是它改了什么。

这在编程领域尤其明显:IDE 依然被使用,是因为当你想手动改代码时,你需要看见那个“当前状态”。即便我启动 Claude Code,它跑完后,我有时也会打开来看它到底写了什么代码。所以“能看到状态”这件事很重要。

 

Anthropic 在 Claude “co-work”(这里指那类协作式工作流)里做了一个很酷的设计:你设置它时要选择一个目录,等于你在告诉它:“这就是你的环境。”

 

这在编程里当然也是常态:你打开 IDE 到某个目录。但我觉得把它明确成一个心智模型很有帮助:这就是你的 workspace(工作区)

这个 workspace 也不一定非得是本地目录:它可以是 Google Drive、Notion 页面,或者任何能存储状态的地方。你和 agent 就是在这个状态上协作:你启动它,让多个任务异步跑;然后切到同步模式,在 chat 里和它讨论,但同时你还能看到它正在协作的“状态”。这就是我目前看到的形态。

主持人:所以这也就是你说的“agent inbox”的想法:为了进入 sync 模式,agent 需要能联系到你。

 

Harrison Chase:对,没错。我们大概一年前发布过 agent inbox,理念是“ambient agents”:它们在后台跑,必要时来 ping 你。但第一版其实没有 sync 模式:它 ping 你,你回一句,然后你就等它下一次再 ping 你。

但很多时候,我切到邮件去回复它时,我其实只回很短的话,而且我不想再切出去然后干等——我(对方)很重要,所以我更想直接进入一种“同步对话”的模式,跟 agent 把这个问题当场聊完。所以我们后来做了一个关键改动:当你打开 inbox 时,会直接进入 chat,而 chat 是非常同步的。这是一个很大的 unlock(突破点)。

我现在认为:只有 async 模式,目前还不太够。也许未来如果 agent 强到你几乎不用纠正它,那么纯异步会更可行。但至少现在,我们看到人们在 async 和 sync 之间来回切换。

主持人: 你怎么看 code sandboxes(代码沙箱)?是不是每个 agent 最终都会配一个 sandbox?也包括“能用电脑”、能上网用浏览器这种能力?

 

Harrison Chase:这是个特别好的问题,我们也一直在想。就目前的经验来看,“写代码/跑代码”这条路明显比“直接操作浏览器”更成熟、更好用

 

所以短期内,如果要在这些能力里挑一个最可能成为标配的,我更看好的是代码执行(code execution)——也就是给 agent 一个能安全运行脚本、验证结果的环境。

 

另外,文件系统(file system)我几乎是“坚定派”:不管是本地目录、还是背后用数据库实现的“虚拟文件系统”,agent 总得有个地方能存状态、存中间结果、随时回查,这对上下文管理太关键了。比如:

  • 做 compaction(上下文压缩)时,把完整内容丢到文件里,需要再查就去读;

  • 工具调用返回特别长时,不塞进上下文,改成写文件、让 agent 自己按需读取。

 

至于“coding”(让 agent 真正去写代码),我没那么绝对,但我大概 90% 站在“需要”这一边。因为很多长尾任务里,写脚本依然是最通用、最强的手段——你很难找到同等级的替代品。

 

当然也可能出现另一类场景:如果你做的是高度重复、流程固定的事情,未必每次都要写很多代码;但即使这样,文件系统仍然重要,因为重复流程会不断产生上下文和状态,你还是要做上下文工程。

 

再说浏览器使用(browser use):从我们目前看到的效果来说,模型还不够稳定。也许可以让 coding agent 通过 CLI 的方式“间接”完成一些浏览器相关任务(算是一种近似解),我确实见过一些挺酷的实现。

 

而所谓 computer use(直接操作电脑界面)则更像是介于两者之间的混合形态,目前还有不少不确定性。

 

所以总结一下:我非常喜欢 code sandboxes,我觉得它会成为 agent 能力栈里很关键的一块。

主持人:太棒了。Harrison,真的非常感谢你今天来参加节目。你一直都能在 agent 这条路上看到未来,能和你聊“上下文工程如何演化到今天的 harness 与长时序智能体”,真的特别过瘾。感谢你推动这个未来,也感谢你一直愿意和我们聊这些。

Harrison Chase:谢谢邀请。我希望未来还能再来一次,然后证明我今天说的全部都是错的。因为预测未来真的很难。

参考链接:

https://www.youtube.com/watch?v=vtugjs2chdA&t=1s

rt ,这个问题困扰我很久了

之前使用 linux 原版内核的时候,使用 pavucontrol 将声音拖到 100%就会正常,电脑睡眠再唤醒之后就会继续变得声音不一样,而且明显是右边比左边大得多,声音设置和 alsa 里面都是正常的,左右大小一样,但是就是右边声音大得多。。。。

前不久重装系统换成了 linux-zen 内核,刚开始是正常,也是睡眠再唤醒之后就不对了。。而且通过 pavucontrol 调整也无法正常,有没有使用同机型的老哥遇到此问题?

jiaoyuan:~ > fastfetch 
                  -`                     jiaoyuan@archlinux
                 .o+`                    ------------------
                `ooo/                    OS: Arch Linux x86_64
               `+oooo:                   Host: 21LD (ThinkBook 14 G6+ IMH)
              `+oooooo:                  Kernel: Linux 6.18.6-zen1-1-zen
              -+oooooo+:                 Uptime: 2 hours, 37 mins
            `/:-:++oooo+:                Packages: 1015 (pacman)
           `/++++/+++++++:               Shell: bash 5.3.9
          `/++++++++++++++:              Display (LEN8AB1): 3072x1920 @ 1.5x in 14", 120 Hz [Built-in]
         `/+++ooooooooooooo/`            DE: KDE Plasma 6.5.5
        ./ooosssso++osssssso+`           WM: KWin (Wayland)
       .oossssso-````/ossssss+`          WM Theme: Breeze
      -osssssso.      :ssssssso.         Theme: Breeze (Light) [Qt], Breeze [GTK2/3]
     :osssssss/        osssso+++.        Icons: Papirus-Light [Qt], Papirus-Light [GTK2/3/4]
    /ossssssss/        +ssssooo/-        Font: Noto Sans (10pt) [Qt], Noto Sans (10pt) [GTK2/3/4]
  `/ossssso+/:-        -:/+osssso+-      Cursor: Windows-10-Alt-Light (32px)
 `+sso+:-`                 `.-/+oso:     Terminal: konsole 25.12.1
`++:.                           `-/+/    Terminal Font: Hack (11pt)
.`                                 `/    CPU: Intel(R) Core(TM) Ultra 7 155H (22) @ 4.80 GHz
                                         GPU: Intel Arc Graphics @ 2.25 GHz [Integrated]
                                         Memory: 6.28 GiB / 30.95 GiB (20%)
                                         Swap: 0 B / 4.00 GiB (0%)
                                         Disk (/): 38.24 GiB / 952.87 GiB (4%) - btrfs
                                         Disk (/data): 89.06 GiB / 937.82 GiB (9%) - ext4
                                         Battery (L23N4PG1): 95% [AC Connected]
                                         Locale: en_US.UTF-8

                                                                 
                                                                 
jiaoyuan:~ > 

目前用浏览器自带的下载器和 Neat Download Manager


Neat Download Manager 好久没有更新了

发邮件问作者 作者没有打算继续维护了


老铁们 你们目前都用哪个下载 App

最近刷到一本小说的想着支持正版就下载了起点准备订阅看看,结果显示订阅所有章节需要 240 多,这还是正在更新的小说,不敢想完本以后需要多少钱。

各位同事,为统一部门工作节奏、保障团队协作效率,现正式同步部门工作时间规范,烦请大家严格遵照执行:工作日核心工作时间:早 9:30 - 晚 21:00 ;若因个人事务需在工作日晚间提前离岗,需提前向对应负责人报备,未报备视为无故早退。周六工作时间:下午 13:30 - 晚 18:00 ;周六若因个人事务无法正常到岗或需提前离岗,同样按上述报备规则向对应负责人提前报备。请大家合理规划出行与工作安排,保持工作时间一致性,确保团队间高效沟通对接、有序推进工作。后续部门将对出勤情况进行常态化记录,若出现多次迟到、早退情形,经提醒后仍无改善的,将根据实际情况酌情扣除当月部分绩效

已经加班 1 年之久