自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 A2A协议深度解析(流式返回以及多agent协同)

为了简化链路,机票Agent的内部并没有真的去请求航空公司的API,它返回的都是固定文案,这个大家不必在意,只需要保证A2A协议的链路是真的就可以了。来到Wireshark这里面大体看一下,可以看到一共是拿到了六个请求,其中前两个请求的是天气Agent的Agent Card,这两个请求其实都一样,随便打开一个来看一下,这个就是天气Agent的相关的信息了,中间的这两个则是请求了机票Agent的Agent Card,同样它们两个也是基本类似,所以跳看一下,这个就是机票Agent的相关信息了。

2026-06-03 00:37:26 353

原创 A2A协议深度解析(双agent同步调用场景)

官方提供了Python SDK,但是它的例子是用自家的ADK(Agent Development Kit)改写的,我也去专门学了一下ADK,我觉得A2A的示例代码还是有些小问题的,不过不管怎么样,毕竟能拿到的资料太少了,所以我才专门写了这篇文章,把最核心的交互流程给大家拆解清楚。在前面的环节中聊到了一个使用了三个Agent的链路,不过这个链路稍显复杂,因此先把机票Agent从这个链路里面去掉,再把问题换一下,只问天气相关的问题,这样整个链路就只剩下两个Agent了。二、平台,这个是我起的名字。

2026-06-03 00:12:12 208

原创 agent-skills从使用到原理,一次性讲清

那能不能做到暗中的暗中?Claude Code 接到大模型的响应之后,会去会议总结助手那个目录里面读取完整的 skill.md 正文,这个时候读取的才是 skill.md 的全部内容,之前就只是名称和描述。在拿到了会议总结助手的 skill.md 内容后,Claude Code 会把用户的请求和完整的 skill.md 内容发给大模型,大模型会根据 skill.md 的要求来生成响应,并且把响应发给 Claude Code,Claude Code 进而会把这个响应发挥给用户,这样用户就会看到结果了。

2026-06-02 00:43:33 278

原创 harness-engineering是噱头吗?

AI 圈最近又冒出了一个新名词(prompt-engineering、context-engineering之后)从今年2月份开始,这个词频繁的在 AI 圈里面出现。opening AI 专门发了一篇文章(https://openai.com/zh-Hans-CN/index/harness-engineering/),讲他们怎么用 Harness engineering,在5个月内写了将近100万行代码。Anthropic 也紧接着发文分享了自己如何使用精心设计的 Harness 架构来驱动(https:

2026-06-02 00:33:03 239

原创 context-engineering概念与技术实现深度解析

简单来说,context engineering 关注的不是怎么训练模型,而是怎么精心设计给模型的输入内容,让模型在有限的 context window 里面尽可能理解得更准,答得更好,花的更少。不管产品手册有几十页还是几百页,甚至几千页,我们都直接扔给模型好了,不用管产品手册里面哪些内容与用户问题相关,哪些内容与用户问题无关,反正 context window 这么大,全部丢给模型就行了,肯定是没问题的,答案肯定能出来。单纯从外部来看,大模型就像一个函数,你给它输入,它就会给你输出。怎么解决这些问题的?

2026-06-01 22:59:39 332

原创 temperature && top-p

如果你经常使用大模型,那你肯定见过temperature和top_p这两个参数。比如在google studio聊天界面,你就可以找到设置这两个参数的地方,这里是temperature,这里就是top_p。除了聊天界面之外,它们也经常会在大模型api的入参中出现,比如chatgpt的入参中就有它们俩的身影。但它们到底到底是什么?temperature是温度,大模型还分冷热?top_p这又是什么神秘代码?有些细心的同学可能会去查一查,然后就得到了答案,这俩都是用来控制大模型回答的随机性的。temperatur

2026-05-29 00:34:33 335

原创 Token原理

实际上一个只有单字的词表完全就可以当成一个简易的tokenizer来使用,但是只用单字的话效率太低了,我们希望每一个词都是一个token,比如“马克”、“喜欢”、“人工智能”等等,让这些常见的词作为token才是最佳方案,这样模型的输入就会从原来的9个减少到现在的4个,模型的推理速度也就更快。有人可能说是“马克”,有人可能说是“喜欢”,不过这都不太对,这次要合并的是“人工”和“智能”,它们在一起一共是出现了3次,比“马克”和“喜欢”出现的频率都要高,所以我们要把它们合并为“人工智能”。

2026-05-29 00:14:32 233

原创 agent概念、原理与构建模式

目前这种先规划再执行的Agent构建模式并没有一个统一的名字,我们今天来讲一个其中比较有名的实现,便是LangChain搞出来的Plan-and-Execute模式,它也是遵循了先规划再执行的流程,不过它的流程引入了一些动态修改规划的环节,我们就用这个模式为例,来看看这种先规划再执行的Agent构建模式是如何运作的。哎,好像所有的任务都已经完成了,没错,所有的步骤都已经做完了,最新的执行计划就是第三个执行计划,它里面只有一步且已经完成了,所以最新的执行计划就不是新的执行计划了,而是最终答案。

2026-05-28 00:32:14 405

原创 mcp vs function calling

乍一看这种说法好像是对的,毕竟这两者做的都是调用工具相关的事情,而 MCP 更加的标准,那肯定是 MCP 取代 Function Calling 了。为了帮助大家搞清楚 Function Calling 和 MCP 之间的关系,我整理了本篇文章,给大家全方位介绍一下 Function Calling,主要是覆盖了 Function Calling 的具体概念、使用方法和协议细节,让大家彻底明白 Function Calling 到底是个什么东西?与 MCP 的关系到底是怎么样的?

2026-05-27 00:45:32 410

原创 mcp基础篇

MCP 无疑是近期 AI 领域的热点话题,你可能已经看过一些文章或者是技术文章或者技术的博客,但有没有觉得关于它的运行原理还总是有点摸不着头脑?特别是对于想深入使用甚至自己动手开发 MCP 相关工具的开发者来说,很多教程可能只是浮于表面,看完之后似乎懂了又似乎没懂。这个就是我今天在这里的原因,我想做一期与众不同的 MCP 教程,一期真正能够让你从底层理解到动手实践的深度教程。我们会先打好基础,弄懂 MCP 的核心概念、数据流转过程和基本用法。然后我们将一起挑战进阶,不仅要从零构建一个 MCP Server,

2026-05-21 23:53:32 383

原创 AI核心概念说明

根据用户的要求,如果是下雨,那我还得查一下附近卖雨伞的店,这里有一个店铺工具可以调用下,调用店铺工具,搜索雨伞,参数是经度 - 74,纬度 40。(请注意,这里,非常容易引起误解,这里只是说明,工具的可以不用重复,即相同的工具不用写三份,有一个标准的协议,就可以复用这个工具,但是对于平台来说,是没有办法复用的,在模型与平台的交互过程中,不同的模型实现不同,平台要支持多模型,也必须进行额外支持工作)这样有了用户问题,有了对话历史,模型每次看到的就是完整的对话内容了,所以它才能够知道之前发生了些什么。

2026-05-20 00:30:08 341

原创 leetcode100 142-279

利用归并排序实现空间复杂度 $O(1)$ 的做法(注:递归实现实际空间复杂度取决于深度)。:计算在不能偷窃相邻房屋的情况下,能够偷窃到的最高金额。:计算网格中岛屿的数量('1'代表陆地,'0'代表水)。:判断链表是否有环,有则返回入环节点,无则返回空。:在未排序的数组中找到第 $k$ 个最大的元素。:寻找数组中出现次数大于 $n/2$ 的元素。:通过拓扑排序判断是否可以完成所有课程的学习。:要求 $O(\log n)$ 时间复杂度。:将数组中的元素向右轮转 $k$ 个位置。:寻找两个链表相交的起始节点。

2026-05-09 11:31:54 48

原创 leetcode111-141

这个题目求的是序列,并且要求时间复杂度是O(n),既然这道题目要求的是O(n)的时间复杂度,那么这到题目就不可以进行排序,在工程学里面,排序最好的时间复杂度是O(n),这里介绍一种做法,借用辅助结构set,有两个作用,第一个作用,去重,原始数组有可能存在重复数字,需要进行去重,第二个作用,方便进行计算,能够在O(1)的时间复杂度里面找到是否存在某个数字。注意:拆分时可以重复使用字典中的单词。本题有个小优化,当发现了长度超过数组的长度的一半的时候,已经不可能存在一个序列超过这个长度了,因此直接返回结果。

2026-05-07 16:07:48 312

原创 leetcode top100 73-108

若要实现 O(1) 空间复杂度,可利用矩阵的第一行和第一列作为标记位。:Code 105(构造思想)、Code 098(BST 特性)。:Morris 遍历是实现 O(1) 额外空间复杂度的关键。:Code 094(中序遍历递增也是 BST 的特性)。:同步递归比较左树的左与右树的右,左树的右与右树的左。:与求最小深度逻辑相似,但注意叶子节点的处理差异。:头 -> [左子树] -> [右子树]:[左子树] -> 头 -> [右子树]:左 -> 头 -> 右。:滑动窗口的通用模板。:选取中点作为头节点。

2026-05-07 10:43:51 202

原创 leetcode top 100 liked 21-30

注意:不是在无路可走的位置建桥 而是发现无路可走的时候 时光倒流到能跳到最远点的位置造桥 换句话说,在无路可走之前 我们只是在默默地手机信息,没有实际造桥 当发现五路可走的时候 才从收集到信息中 选择最远点造桥 所建造的这座桥的左端点在我们当前走的这座桥中间 而不是桥的末尾。给定一个长度为N的0索引整数数组nums,初始位置为数组的第一个元素 数组中的每个的元素代表你在该位置上可以跳跃的最大长度 你的目标是是使用最少的跳跃次数到达数组的最后一个元素。一开始 你在0位置 将要去的位置是n-1。

2025-10-13 16:03:22 1321

原创 leetcode top liked 100(11-20)

2.第三步,交换完成之后,为什么依然满足条件,我们在第二步做的决定是,从右往左找到第一个比index位置大的数,意味着,我们找到的数的过程中的数都是比index位置的数要小的,至于原始数组,本身就是从大到小的,那么交换之后,后续数组依然是有序的。我们要找到的数是,第一次index位置的数比index+1小的数,意味着从index+1到nums.length -1位置的数,一定满足,nums[index] >=nums[index+1],否则,当前位置的数就求错了。做完这三步之后,就能得到下一个排列。

2025-09-28 11:03:07 840

原创 leetcode top liked 100(1-10)

最近刷完了leetcode top liked 100 写几篇博客记录一下自己的心路历程,这100道题目基本都实现了最优解,部分题目还实现了高阶算法,以及部分题目提供了模板化的解题思路,

2025-09-17 19:19:25 1109

原创 lvs02-lvs模型推导

假设我们使用Tomcat作为的负载均衡器的话,Tomcat是应用层的应用,与Tomcat进行交互的话,意味着,必须要进行建立连接,以及分手的过程,另外,上文讲到内核态与用户态,Tomcat的运行是在jvm虚拟机只上的,数据的传输,必须要经过的jvm虚拟机再与kernel进行交互,涉及到用户态内核态的转换,效率比较低下。如上图,经过上文的过程之后,我们的数据包到了路由器的位置,下一跳就是负载均衡器,假设均衡器能够直接将数据包在这里进行转发到后端服务,这时候,负载均衡器有没有与用户的请求建立tcp连接?

2023-03-19 16:42:00 86

原创 lvs01-网络协议原理

我们在学习,网络的模型的时候,经常出现OSI七层网络模型、五层网络模型,那么这七层、五层都分别是什么东西?在实现负载均衡的过程中,有三种模型,NAT DR TUU,这三种模型都分别是怎么产生,为什么这么做?接下来的文章,或许会对你有所帮助首先,我们先看一张图,这张图在我们学习网络模型的时候经常出现,即我们熟知的osi七层模型,这七层网络模型构成了现代网络的基本单元。在这个七层的网络模型中,我们要知道一个东西,那就是在我们实际的使用过程当中,例如。我们发送一个http请求出去,这些过程都分别是啥样?

2023-03-19 14:59:30 158 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除