惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Docker
云风的 BLOG
云风的 BLOG
IT之家
IT之家
The Register - Security
The Register - Security
博客园_首页
博客园 - 聂微东
MongoDB | Blog
MongoDB | Blog
Blog — PlanetScale
Blog — PlanetScale
The GitHub Blog
The GitHub Blog
博客园 - 【当耐特】
腾讯CDC
F
Full Disclosure
F
Fortinet All Blogs
T
The Blog of Author Tim Ferriss
Google DeepMind News
Google DeepMind News
Recorded Future
Recorded Future
MyScale Blog
MyScale Blog
T
Tailwind CSS Blog
Jina AI
Jina AI
月光博客
月光博客
A
About on SuperTechFans
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
H
Help Net Security
博客园 - Franky
Vercel News
Vercel News
美团技术团队
C
CERT Recently Published Vulnerability Notes
Security Latest
Security Latest
Scott Helme
Scott Helme
P
Proofpoint News Feed
博客园 - 三生石上(FineUI控件)
www.infosecurity-magazine.com
www.infosecurity-magazine.com
SecWiki News
SecWiki News
The Last Watchdog
The Last Watchdog
U
Unit 42
The Cloudflare Blog
N
News and Events Feed by Topic
T
Threat Research - Cisco Blogs
TaoSecurity Blog
TaoSecurity Blog
T
Tenable Blog
V
Vulnerabilities – Threatpost
GbyAI
GbyAI
B
Blog
Webroot Blog
Webroot Blog
A
Arctic Wolf
S
SegmentFault 最新的问题
aimingoo的专栏
aimingoo的专栏
AWS News Blog
AWS News Blog
I
Intezer
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com

元视角

.NET 生态下的 Agent 框架选型:从 ReAct 到原生推理 - 元视角 从「能用」到「好用」:LLM 流式响应实现方式的探索之路 - 元视角 当我用 2000 条聊天记录,让 AI 为我画一幅自画像 - 元视角 基于 Supabase 的 AI 应用开发探索 - 元视角 微博 × MCP:社交媒体新玩法解锁 - 元视角 Semantic Kernel × MCP:智能体的上下文增强探索 - 元视角 基于 K-Means 聚类分析实现人脸照片的快速分类 - 元视角 容器技术驱动下的代码沙箱实践与思考 - 元视角 温故而知新:后端通用查询方案的再思考 - 元视角 浅议 CancellationToken 在前后端协同取消场景中的应用 - 元视角 Semantic Kernel 视角下的 Text2SQL 实践与思考 - 元视角 关于 ChatGPT 的流式传输,你需要知道的一切 - 元视角 RAG 的是与非、Rewrite 和 Rerank - 元视角 使用 EFCore 和 PostgreSQL 实现向量存储及检索 - 元视角 基于 LLaMA 和 LangChain 实践本地 AI 知识库 - 元视角 使用 llama.cpp 在本地部署 AI 大模型的一次尝试 - 元视角 如何为 Git 配置多个 SSH Key - 元视角 C# 使用 LibUsbDotNet 实现 USB 设备检测 - 元视角 基于 C# 实现样式与数据分离的打印方案 - 元视角 基于 SVG 的图形交互方案实践 - 元视角 前端视频播放技术概览 - 元视角 温故而知新,再话 Python 动态导入 - 元视角 后 GPT 时代,NLP 不存在了? - 元视角 视频是不能 P 的系列:使用 Milvus 实现海量人脸快速检索 - 元视角 GDI+下字体大小自适应方案初探 - 元视角 小爱音箱集成 ChatGPT 的不完全教程 - 元视角 程序员视角下的三体世界随想 - 元视角 关于 Docker 容器配置信息的渐进式思考 - 元视角 在 Docker 容器内集成 Crontab 定时任务 - 元视角 为你的服务器集成 LDAP 认证 - 元视角 似花还似非花 - 元视角 视频是不能 P 的系列:使用 Dlib 实现人脸识别 - 元视角 浅议分布式链路追踪与日志的整合 - 元视角 关于 Git 大文件上传这件小事 - 元视角 .NET 进程内队列 Channel 的入门与应用 - 元视角 使用 Fody 实现 .NET 的静态编织 - 元视角 .NET Core + ELK 搭建可视化日志分析平台(下) - 元视角 聊一聊前端图片懒加载背后的故事 - 元视角 支持外部链接跳转的 Vue Router 扩展实现 - 元视角 视频是不能 P 的系列:OpenCV 和 Dlib 实现表情包 - 元视角 不得不说的 ASP.NET Core 集成测试 - 元视角 再议 DDD 视角下的 EFCore 与 领域事件 - 元视角 Vue.js 前端项目容器化部署实践极简教程 - 元视角 再见,人间四月天 - 元视角 Python 图像风格化迁移助力画家梦想 - 元视角 利用 ASP.NET Core 中的标头传播实现分布式链路追踪 - 元视角 利用 gRPC 实现文件的上传与下载 - 元视角 七种武器:延迟队列的原理和实现总结 - 元视角 gRPC 流式传输极简入门指南 - 元视角 Envoy 集成 Jaeger 实现分布式链路追踪 - 元视角 浅议非典型 Web 应用场景下的身份认证 - 元视角 gRPC 借助 Any 类型实现接口的泛化调用 - 元视角 分布式丛林探险系列之 Redis 集群模式 - 元视角 分布式丛林探险系列之 Redis 主从复制模式 - 元视角 通过 Python 预测 2021 年双十一交易额 - 元视角 gRPC 搭配 Swagger 实现微服务文档化 - 元视角 SSL/TLS 加密传输与数字证书的前世今生 - 元视角 使用 Python 自动识别防疫健康码 - 元视角 你不可不知的容器编排进阶技巧 - 元视角 ASP.NET Core 搭载 Envoy 实现 gRPC 服务代理 - 元视角 再话 AOP,从简化缓存操作说起 - 元视角 ASP.NET Core 搭载 Envoy 实现微服务身份认证(JWT) - 元视角 ASP.NET Core 搭载 Envoy 实现微服务的监控预警 - 元视角 ASP.NET Core 搭载 Envoy 实现微服务的反向代理 - 元视角 ASP.NET Core gRPC 打通前端世界的尝试 - 元视角 EFCore 实体命名约定库:EFCore.NamingConventions - 元视角 ASP.NET Core gRPC 集成 Polly 实现优雅重试 - 元视角 ASP.NET Core gRPC 健康检查的探索与实现 - 元视角 ASP.NET Core gRPC 拦截器的使用技巧分享 - 元视角 SnowNLP 使用自定义语料进行模型训练 - 元视角 使用 HttpMessageHandler 实现 HttpClient 请求管道自定义 - 元视角 ABP vNext 的实体与服务扩展技巧分享 - 元视角 ABP vNext 对接 Ant Design Vue 实现分页查询 - 元视角 源代码探案系列之 .NET Core 跨域中间件 CORS - 元视角 源代码探案系列之 .NET Core 限流中间件 AspNetCoreRateLimit - 元视角 源代码探案系列之 .NET Core 并发限制中间件 ConcurrencyLimiter - 元视角 通过 EmbededFileProvider 实现 Blazor 的静态文件访问 - 元视角 低代码,想说爱你不容易 - 元视角 记一次失败的 ThoughtWorks 面试经历 - 元视角 从 C# 1.0 到 C# 9.0,历代 C# 语言特性一览 - 元视角 通过 Python 分析 2020 年全年微博热搜数据 - 元视角 基于 Python 和 Selenium 实现 CSDN 一键三连自动化 - 元视角 使用多线程为你的 Python 爬虫提速的 N 种姿势,你会几种? - 元视角 实现网页长截图的常见思路总结 - 元视角 温故而知新,由 ADO.NET 与 Dapper 所联想到的 - 元视角 视频是不能 P 的系列:OpenCV 人脸检测 - 元视角 作为技术宅的我,是这样追鬼滅の刃的 - 元视角 使用 Python 抽取《半泽直树》原著小说人物关系 - 元视角 厉害了!打工人用 Python 分析西安市职位信息 - 元视角 使用 dotTrace 对 .NET 应用进行性能分析与优化 - 元视角 一道 HashSet 面试题引发的蝴蝶效应 - 元视角 基于选项模式实现.NET Core 的配置热更新 - 元视角 Dapper.Contrib 在 Oracle 环境下引发 ORA-00928 异常问题的解决 - 元视角 .NET Core 中对象池(Object Pool)的使用 - 元视角 利用 MySQL 的 Binlog 实现数据同步与订阅(下):EventBus 篇 - 元视角 利用 MySQL 的 Binlog 实现数据同步与订阅(中):RabbitMQ 篇 - 元视角 利用 MySQL 的 Binlog 实现数据同步与订阅(上):基础篇 - 元视角 记一次从已损坏的 Git 仓库中找回代码的经历 - 元视角 .NET Core 原生 DI 扩展之属性注入实现 - 元视角 .NET Core 原生 DI 扩展之基于名称的注入实现 - 元视角
四点钟海棠花未眠 - 元视角
飞鸿踏雪 · 2025-04-18 · via 元视角

无论你内心期盼过多少次的春和景明,夏天终归如约而至,春天则不情愿地悄然谢幕。虽未至立夏,可空调、风扇的争相开启,无一不在昭示着春天的形同虚设。西安的春秋季节向来短暂,一场清明时节的沙尘暴,便轻易地带走了我们对春天的全部幻想。踏青赏花、旅行露营,世间美好与你环环相扣。遥想当年,魏晋风流人物,于兰亭集会,引以为流觞曲水,想来不会比此刻更添雅致。可惜,“向之所欣,俯仰之间,已为陈迹”,今人与古人的感慨,竟是如此的不谋而合。第一次读到川端康成那句“凌晨四点钟,看到海棠花未眠”,令我心动的是这个意象中蕴藏着的深邃美感。然而,当我有一天站在真正的海棠花前却认不出它时,我终于意识到自己的浅薄。在一个同样无眠的夜晚,我决定写一篇文章,借以描摹我此刻的心境,以及这一个月以来关于 AI 协同、日本战国历史、 Agent 设计的种种心绪。

新主题

如你所见,我给博客更换了一个新主题,该主题移植自 imsyyvitepress-theme-curve。至此,使用了三年多的 hugo-theme-stack 主题正式宣告退役。当然,我想表达的是,这个移植工作是由我和 Cursor 一起完成的。作为一名后端工程师,当我从 Hexo 切换到 Hugo 时,我曾经做过类似的尝试,可无一例外均以失败告终。所以,除了惊叹于 AI 带来的这种生产力的放大,我实在想不出还有什么更令人叹服的东西,以一言蔽之,接受 AI 比自己强大。

新版博客主题 新版博客主题

有趣的地方在于,我前面三次尝试让 Cursor 完成这个任务,收获到的是不同程度的失败。例如,移植后主题运行报错、移植后主题没有遵从原主题的结构或样式等,哪怕我使用的是 Cursor 的 Agent 模式。直到第四次的时候,一切开始步入正轨。最终,它变成了你现在看到的这个新主题。如果说第四次尝试有什么魔法的话,那一定是我的脑海中有了一个更详细的移植计划,我开始主导我和 AI 整个会话过程,而不是像一个新手或者小白一样狂按 Tab 键。

Git 见证了主题的移植过程 Git 见证了主题的移植过程

首先,一个博客至少需要两种布局,即:文章列表、文章详情。基于这个认知,我开始尝试将原主题中的 Vue 组件与 Hugo 中的 list.html 以及 single.html 对应起来。这种对应并非简单地将其添加到 Cursor 的上下文中,而是提前建好基本的目录结构、同时在提示词里面写清楚相对路径。对于页面中的子组件,我允许 Cursor 先创建一个空白的文件充当占位符。其次,在和 AI 互动的过程中,对于可工作的产物需要及时提交到 Git 中,从而避免程序被 AI 改坏。我认为,这是一个非常重要的技巧,敏捷开发中“可工作的软件”这一理念,得以在这一刻被具象化。

全新的书音影页面 全新的书音影页面

如今,LLM 和人类的注意力都非常宝贵,在和 Cursor 交互的过程中有意识地控制上下文的范围非常重要。正如我们人与人之间交流,上下文并不是越多越好,任何时候你都应该注意,不向对方提供对方不需要的上下文。诚然。Cursor 中的 Codebase 可以自动索引不同的文件,可如果你有机会缩小检索范围,何乐而不为呢?难道大海捞针是一件值得推崇的事情吗?在移植了主要的布局、样式以后,我开始逐个移植其中的子组件,于我个人而言,这其实是一堂面向大模型的沟通课,相比于人类的言不由衷,同大模型交流需要的是足够的真诚,可对人类而言这恰恰是一种稀缺资源。雷总说,“真诚是必杀技”,可我们好像更喜欢不好好说话。情绪价值充满字里行间的时候,信息密度就会低到令人发指,低幼化的语言表达,犹如微小剂量的砷,无形中变成了我们和 LLM 之间的沟通障碍。

link-img

15. 言语犹如微小剂量的砷

随着模型能力的不断升级,现在人们好像随便输入一通,就能得到非常不错的结果。于是,有人开始说,提示工程不存在了,甚至连 Agent 都不存在了。可我始终相信一个经典的理论:Garbage In,Garbage Out,向对方清楚地表达出你的意愿,这并不是什么高标准,而是一个基本要求。可惜,在人类世界里待久了,有喜欢揣摩潜台词的人,就有喜欢模棱两可的人。我始终认为,人类和 AI 在未来应该是一种平等的、合作的关系,我们不该在这种关系中代入类似上下级、老板/员工这样的不对等的关系。要求别人或者 AI 正确地揣摩你的意图,这并不是 NLP 技术或者情感陪伴类产品中的刚需,而是一种隐形的情绪霸凌,因为你本可以选择更清晰的表达方式,可你偏偏没有这样做。

全新的关于页面 全新的关于页面

在这个时代,AI 具有化“腐朽”为“神奇”的能力,可首先你需要能正确地写出“腐朽”两个字。AI 并非中世纪的巫术、魔法,相反,其背后是建立在数学和统计基础上的机器学习、神经网络,无论你是否认同这一点,请至少做到清楚地向别人表达你的意愿。有默契、一切尽在不言中、心领神会……固然令人心驰神往,可真正能流传下来的东西,往往是那些经过反复打磨与清晰表达的想法。目前,这个新主题大概率会遇到各种 Bug,欢迎大家给我留言,如果你能描述清楚,我相信我和 AI 一定能帮你修复好它,而这便是我对于世间万物所建立的某种信任。

历史的天空

《刺客信条:影》的发布,于我而言,是一次完善日本战国史的重要契机。为了搞清楚游戏剧情,我花了点时间来阅读各种资料。自此,飞鸟、奈良、平安、镰仓、室町、江户、明治,千百年的时光以一种压缩到极致的形态在眼前展开。鉴真东渡,空海西行,一来一往,辗转腾挪出来个平安京。身在长安,心在洛阳,忽然感觉身体里关于《长安十二时辰》《妖猫传》 的神经元被再次激活。我想,《浪客剑心:京都大火篇》中,剑心一行人阻止反派志志雄真实火烧京都时,内心定然是不愿意看到这座古老城市付之一炬。

日本是公家、武家的二元政治,天皇作为象征性权威,而幕府将军是实际统治者。对此,美国人有个更形象的比喻,即:菊与刀。其中,菊象征皇室,刀代表武士。我不太清楚,日本皇室的“十六瓣八重表菊纹”,是否源于战国时期的家纹传统。可当你再次回顾这段历史,你会发现它本质上是一个“公家不断被弱化、武家不断被强化”的过程。在经历藤原氏、平氏、源氏的动荡后,源赖朝建立了首个武士政权——镰仓幕府,天皇权力被架空,武家政治正式确立。可惜,源赖朝的冷酷残忍,冥冥中注定了源氏将军的三代而亡。此后历代幕府将军,无一不是北条氏的傀儡。百年后,丰臣秀吉流放外甥丰臣秀次、并命其切腹自尽的时候,不知是否会想起源赖朝、源义经兄弟二人的相爱相杀?

育碧新作《刺客信条:影》 育碧新作《刺客信条:影》

在育碧的世界观中,即使是马西亚夫,依然不能阻止蒙古帝国的入侵。宋元交替之际,忽必烈先后两次对日发动战争,游戏《对马岛之魂》便是在讲述这段历史。尽管镰仓幕府成功抵御蒙古人的侵略,可这个政权同样走到了历史的尽头。此时,代表公家的后醍醐天皇试图夺回权力,先后三次发动倒幕运动,最终推翻幕府统治。历史有趣的地方在于,无论你是否吸取历史的教训,历史总会向着它既定的方向行进。从足利尊氏与后醍醐天皇分道扬镳,到后醍醐天皇被迫让出象征皇权的三神器,历史分分合合、治乱交替,应仁之乱的爆发,象征着日本战国时代的开启。

现在回过头再看《真田丸》,其错综复杂的人物关系,此刻如同抽丝剥茧一般澄澈。在这个“天下英雄如过江之鲫”的乱世,我看到的是潜藏于历史洪流之下的挣扎。甲斐群山间奔腾的赤备骑兵,深得武田信玄“风林火山”战术之要,可依旧抵不过织田信长的“火绳枪”、“三段击”;身着南蛮胴具足的织田信长,高呼“天下布武”,试图用武力统一日本,可最终等来的是本能寺的晨钟,果然“人生五十年,如梦亦如幻”;丰臣秀吉晚年权欲熏心,发动文禄·庆长之役,最终落得一个郁郁而终的下场;德川家康在关原合战中击败石田三成领导的西军,确立霸主地位,自此此开创两百余年江户幕府。许多年后,当末代幕府将军德川庆喜乘军舰逃回大阪时,不知他是否会梦回大阪之阵呢?

大阪之阵中的真田幸繁 大阪之阵中的真田幸繁

英雄们用献血和生命谱写的史诗,是否只是一种螳臂挡车式的悲愿,终难逃脱被历史的车轮无情碾压的宿命?我隐约觉得真田信繁身上有些许姜维的神韵,一个人早早看清自己的命运,这最多算作是智者。可明知不可为而为之,甚至义无反顾地去做这件事情,便不可不谓之“勇”。《真田丸》大结局,上杉景胜眼含热泪称赞真田信繁不愧为“日本第一兵”。也许,在他眼中,信繁比他更像一名真正的武士。因为,相比于被称为“越后之龙”的上杉谦信,他先投靠秀吉,后臣服家康,注定要被父辈的荣光掩盖。可在璀璨夺目的“战国三杰”面前,谁又不是萤火之光呢?唯有信繁这种以凡躯为柴薪的“愚者”,在历史的暗夜里留下了永不熄灭的磷火。原来,比征服更永恒的,是被碾碎时迸发的光芒。这次《刺客信条:影》里的圣殿骑士,可以说是历代作品中最没有存在感的,甚至还不如刺客一揆的隐藏主角䌷结出彩。毕竟,在群雄逐鹿的战国,充满人格魅力的人们,如同皓天星辰一般数不胜数

我理解的 Agentic

在当今这个信息爆炸的时代,知识被高度碎片化、极限压缩,我们难免陷入一种“知识代糖”的幻觉,甚至主动放弃思考过程,仿佛大模型的推理过程可以替代人类思考。正如苏格拉底所言,“我唯一知道的是我一无所知”。如今,当我们重新审视这句话时,或许会解读出新的含义——因为,比一无所知更可怕的,是一知半解。每当看到媒体对 AgentMCPFunction Calling 等概念含糊其词时,我常常在思考一个问题:如果你承认人类之间存在认知水平的差异,为什么会相信他人的思维模式能够解决你的问题,尤其是在彼此之间尚未完成对齐的前提下?

吴恩达教授眼中的 Agent 吴恩达教授眼中的 Agent

AI 行业日新月异,一路走来,CoTReActReflection、RFT、MCP、A2A,每天都有新的词汇出现,甚至这些概念从来都只是概念,你从未真正动手实践过。也许你会问:知道这些,对于我使用 AI 有帮助吗?的确如此。但这恰恰是 AI 最具迷惑性的地方,它就像某种代糖,给予你一种“甜”的错觉,让你误以为“获取信息”就等同于“完成思考”。经常看到有人不断放大 Agent 的定义,在我看来,吴恩达老师早已给出了清晰的框架,即:Agent = LLM + Memory + Planning + Execute + Tools。基于这个认知,你就会明白,目前 MCP 最多只是解决了 Execute 和 Tools 的问题,而其中真正困难的部分——Memory 和 Planning,并没有得到实质性的解决。

Anthropic 眼中的 Agent Anthropic 眼中的 Agent

Manus 以及 OpenManus 出来以后,对我最大的启发是 Planning 和 Execute 分离的设计思路。DeepSeek R1 发布以来,我一直在考虑的方向是基于工具的推理。因为目前推理模型的“思考”,更像是一种自说自话,它并不能在推理过程中调用工具。不过,这个思路怎么看,都更接近一个 Agent 而不是一个模型。于是,有好事者造了一个新词——Agent 模型。其次,从我个人角度,我一直希望将 RAG 升级为 Agentic RAG,这显然符合我过去的认知和观点,即:“RAG 的尽头是 Agent”。我希望 RAG 变成 Agent 中的一个工具,无论它是以本地函数还是 MCP Server 的形式出现。为了实现这一目标,我尝试了下面的基于有向无环图(DAG)的任务编排策略:

通过 DAG 描述子任务及其依赖关系 通过 DAG 描述子任务及其依赖关系

如图所示,我们可以将一个任务分解为多个相对独立的子任务。一旦我们将子任务看作节点,子任务间的依赖关系看作边,这样就构成了有向无环图,即:DAG,因为显然子任务不会在经过一系列节点后指向自身。通过拓扑排序,我们可以确定子任务的执行顺序以及执行策略。例如,入度为 0 的节点表示没有任何节点指向该节点,这意味着这类节点没有依赖项,可以并行化处理。对于有依赖项节点,可以结合入度、任务 Id 串行化处理。作为图论领域的核心算法之一,拓扑排序在任务调度、编译器的依赖解析、课程安排等需要处理有序依赖关系的领域中发挥着重要作用。针对 Agent 的任务调度需求,DAG 适逢其时,从 Planning 到 Execute 的整个流程在理论层面完成了闭环。

DAG 拓扑排序算法过程演示 DAG 拓扑排序算法过程演示

对于具体的执行层面而言,Function Calling 的根本问题是,工具列表到底以哪种形式告知大模型。对于支持 Function Calling 的模型,可以放在 tools 参数里面;对于不支持 Function Calling 的模型,可以放在提示词里面。所以,在这里我还是准备沿用此前的 ReAct。当然,为了减少 token 的消耗,我选择在规划阶段向子任务提供可用的工具列表,从而减少 Agent 在执行阶段 token 的消耗。这个策略目前来看的话,基本上是可以实施的。问题在于,ReAct 的重试不一定能真正解决问题。与此同时,整个流程缺少一个结果验证的环节。在这种情况下,你会真正并深刻地意识到,决策层与执行层天然存在着某种断层。例如,决策层目光长远、谋定高远,然而细节疏漏;执行层流程娴熟、执行有力,可惜视野局限。如果从这个角度来看,Agent 的设计是否更接近管理学的范畴?

通过大模型规划子任务 通过大模型规划子任务

Agent 执行子任务以及生成答案 Agent 执行子任务以及生成答案

如图所示,我们可以借鉴 OpenManus 或是 Grok 以及 Genspark 实现一个 Planning + Execute 的 Agent。可正如“一千个读者眼里有一千个哈姆雷特”,每个人的心中同样有自己的 Agent 定义。我并不打算参与到这场毫无意义的争论中去,我唯一能做的事情,就是将我心中的 Agent 写出来并分享给你们。

结语

夏日将至,剪完头发走在路上,理清思绪的一刻,我仿佛完成了一次同自己的对话。决策从来不是终点,更像一次冒险的起点。每一个 Agent 任务、每一个被连接的子节点,都像极了我们与世界互动的方式——在不完整中寻找秩序,在混沌中追寻意义。从“凌晨四点的海棠花”到 Agentic RAG 的 DAG 编排,我关心的,从来都不是只有技术,而是技术背后“人之为人”的部分。我始终认为,我们与 AI 的关系,不是驾驭,更不是依附,而是在反复试错、理解与表达中,共同探索一出种新的协作方式。人类的独特之处,不在全知,而在于愿意理解、愿意表达,愿意相信彼此终将理解彼此。Agentic,同样不是工具的堆叠,而是一种基于表达、拆解与信任的协作共识。凌晨四点钟,海棠花未眠,除了那份川端康成式的寂静美学,或许更多的是一种自我唤醒?