自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

csdn闻声即知人的博客

目前还是默默无闻的码农

  • 博客(92)
  • 收藏
  • 关注

原创 antigravity运行vibecoding一般工作原理

本文主要阐述antigravity软件交互模块实现的具体原理与流程。

2026-09-19 22:42:14 165

原创 读懂AI-Agent项目Career-ops项目的底层原理

本文分析了开源项目career-ops与Antigravity IDE/Agent CLI的交互机制,涵盖技能自动发现、提示词动态路由、全局行为准则注入及工具闭环调度。通过语义匹配触发技能,结合SKILL.md与modes/*.md实现意图路由,调用本地脚本完成职位扫描、简历生成与状态更新,并严格遵循数据契约与防幻觉规则,实现安全高效的求职自动化。

2026-09-13 21:08:34 223

原创 AIAgent-为什么选择LangGraph而不是选择其他框架?

答:在选择Agent的循环框架时,有认真对比过CrewAI 、 AutoGen以及原生 ReAct Loop这几个框架不同的特点,其中CrewAI 或 AutoGen 更多依赖 Agent 之间的自由对话或自主 ReAct 轮次,极易出现死循环、上下文爆炸或不可预期的幻觉扩散。实现了增量式、不可变的评估结果收集,这保证了每个Agent的专业见解Append到了全局状态中,无法篡改其他Agent的结论,为后续的不可审计性提供了天然的数据底座。再者,LangGraph采用强类型的状态契约,利用。

2026-09-09 14:36:03 221

原创 打造工业级多智能体量化交易闭环:基于 Alpaca、LangGraph 与双轨执行的智能投资与持仓治理系统

AiAgentForTrading 成功将大语言模型的推理与辩论能力,与传统量化金融的确定性风控、期权工程定价及自动化运维守护深度融合,实现了从 “宏观感知→→智能体辩论→→双轨资产规划→→硬风控拦截→→人机协同审批→→24/7 持仓自愈” 的全链路闭环。🔮 未来演进路线(Roadmap)多腿复杂期权策略扩展:进一步引入 Iron Condor(铁鹰价差)、Bear Put Spread(熊市看跌价差)等全天候期权策略;

2026-09-07 21:48:36 309

原创 AI Agents in LangGraph-6 构建一个自带“思考与复盘”的 AI 论文写作系统

task: str # 用户的写作任务/主题plan: str # 生成的大纲draft: str # 当前文章草稿critique: str # 教师 Agent 给出的审查/修改意见content: List[str] # 搜索引擎检索到的外部资料列表revision_number: int # 当前迭代轮次max_revisions: int # 最大迭代轮次限制这套基于 LangGraph 的多 Agent 方案展示了现代 LLM 应用的核心哲学:用结构化的工作流补充单模型能力的不足。

2026-08-04 01:54:46 175

原创 AI Agents in LangGraph-5 人机协作(Human-in-the-Loop)深度实践

本文介绍了如何基于LangGraph框架构建支持人机协作的智能Agent系统。文章首先分析了LangGraph相较于传统链式框架的优势,包括状态持久化、中断机制和状态分支能力。然后详细讲解了通过自定义Reducer实现消息动态更新的技术方案,以及如何利用interrupt_before参数在工具执行前设置人工审批点。文章还展示了三种人机协作维度:工具调用审批、运行时状态修改和状态回滚。这种架构既能保持Agent的自动化能力,又能通过人工干预确保关键操作的安全性,为构建可靠的人机协作系统提供了技术实现方案。

2026-08-02 01:48:55 217

原创 AI Agents in LangGraph-4 持久化和流式处理

文章摘要: 本文介绍了如何利用LangGraph框架解决AI Agent的两个核心问题:缺乏长期记忆和响应延迟。通过SqliteSaver检查点机制实现对话状态的持久化存储(支持多轮对话),并利用astream_events事件流实现实时响应。具体步骤包括: 定义状态(AgentState)和持久化存储(SQLite); 构建Agent图结构,集成LLM节点、工具节点和条件路由; 通过thread_id区分会话,演示多轮对话的上下文保持能力; 流式输出优化用户体验,减少等待时间。 代码示例展示了如何结合La

2026-07-29 21:20:26 220

原创 AI Agents in LangGraph-3 Agentic Search Tools

本文对比了Agentic Search(以Tavily为例)与传统爬虫检索(DuckDuckGo+BeautifulSoup)的技术差异。传统方式需经过搜索、请求、解析、清洗多步骤(链路复杂且易受反爬限制),而Agentic Search通过API直接返回结构化数据,具有更高效率和稳定性。示例显示,Tavily能直接输出Nvidia Blackwell GPU的提炼信息,而传统方法需要处理HTML噪声并面临解析失败风险。关键差异包括:Agentic Search降低复杂度、提升鲁棒性、规避反爬问题,并返回精

2026-07-29 03:37:24 248

原创 AI Agents in LangGraph-2

本文介绍了如何利用LangGraph构建一个基于状态图的循环智能体,使其具备自主迭代能力(思考→调用工具→执行→反馈)。主要内容包括:1) 通过环境变量加载API密钥;2) 定义智能体状态结构,使用TypedDict和Reducer机制管理消息流;3) 设计核心Agent类,包含状态图初始化、节点注册(LLM思考和工具执行)、条件路由(判断是否需要调用工具)和工具绑定等功能。该智能体能自动处理工具调用结果,并将执行反馈重新输入模型形成闭环,展示了如何通过状态机模式实现AI代理的自动化工作流。

2026-07-28 02:47:29 228

原创 AI Agents in LangGraph-1

本文介绍了如何从零实现一个基于ReAct范式的智能Agent。ReAct(Reasoning + Acting)是一种结合推理与行动的工作流,核心机制为:用户提问→思考→工具调用→暂停等待→观察结果→输出答案。 文章分四个部分展开: 基础准备:初始化OpenAI客户端并验证API密钥 Agent类封装:维护对话历史记忆,实现可调用接口 系统提示与工具定义:通过prompt规范Agent行为,注册计算和查询工具 执行引擎:使用正则解析Agent输出,自动调用工具并循环处理 实现特点包括: 完整的对话历史维护

2026-07-25 22:24:33 229

原创 【K8s】什么是K8s?

Kubernetes(K8s)是谷歌开源的一款容器集群管理系统,基于其内部Borg系统技术。它提供容器化应用部署维护、负载均衡、集群调度、自动伸缩等功能,支持无状态和有状态服务,并具备良好的扩展性。K8s简化了容器管理,适用于跨机器和跨地区的应用部署场景。

2025-09-16 12:16:54 317

原创 大模型-微调

微调是对通用大模型进行领域适配的关键技术,其核心在于调整模型的行为模式而非知识储备。通过特定领域数据训练,微调可实现输出格式标准化(如客服话术)、行业术语适配(医疗/法律)、任务性能优化(分类/摘要)、降低提示词依赖性,以及保障数据隐私(企业内循环)。这种技术使大模型能更精准地满足垂直场景需求,在保持基础能力的同时实现深度定制化。

2025-08-28 01:04:47 205

原创 【架构图】营销平台整体架构

2025-08-25 23:32:01 429

原创 Agent框架能力流程图

2025-08-24 18:28:22 330

翻译 【AI Agent】Openai的function calling解读

文章摘要:OpenAI的函数调用功能允许模型与外部服务交互,通过定义函数模式实现数据获取和操作执行。示例展示了天气查询和邮件发送的函数调用流程,包括定义函数、模型响应、执行代码和整合结果。最佳实践建议编写清晰的函数描述、应用软件工程原则、减轻模型负担并限制函数数量以提高准确性。整个过程分为五个步骤:调用模型、获取函数调用、执行代码、返回结果和模型整合回复。

2025-08-24 13:58:42 313

原创 AI-agent【MCP协议】简单介绍

MCP协议是一种标准化应用程序与大型语言模型(LLMs)交互的开放协议,类似AI应用的"USB-C接口"。它提供了统一的数据源和工具连接方式,支持代理和复杂工作流构建。MCP采用客户端-服务器架构,包含主机应用、客户端、服务器等组件,既能连接本地数据源,也能集成远程服务。其优势包括丰富的预置集成、灵活的LLM切换能力以及数据安全保障,为AI应用开发提供了标准化解决方案。

2025-07-31 16:02:13 405

原创 【idea】工具使用报错记录

IDEA运行测试时报错"No tests found",原因是测试运行配置问题。将Run tests using选项从Gradle改为IntelliJ IDEA后解决。具体操作:在IDEA设置中找到Build Tools下的Gradle,将测试运行方式切换为IntelliJ IDEA即可正常运行测试用例。

2025-06-12 21:10:22 495 1

原创 服务器静态文件防篡改

本文调研了对CDN静态资源进行篡改的几种攻击手段,针对每种攻击手段,也调研了相应的防护手段,对于这些防护手段,思考服务器端有哪些可以做的防护措施。篡改CDN静态资源的几种常见攻击手段。

2024-06-19 20:50:44 1368

原创 生成能够精确匹配原字符串的正则表达式

需要将不同的公司名称归一化比如namecheap, NAMECHEAP. INC. 等表示同一含义,但是规则不,需要归一化为同一个文本含义。同本文使用java语言实现了由一串字符串自动生成正则表达式,并介绍了归一化不同表达方式的公司为同一个公司的方案。

2024-04-26 13:54:55 1202

原创 使用Spring进行文件的上传和下载

本文主要介绍在Spring框架下面调用微服务的dubbo rpc接口进行文件的上传和下载,以及记录在实现过程中遇到的一些容易出错的地方。我们构建的RPC接口采用的是dubbo框架,最初始的接口设计,将HttpServletResponse作为接口的参数类型传参,结果报错。HttpServletResponse不能被dubbo作为接口参数序列化,于是转而求其次,将可序列化的类型byte[]作为传输流的参数。

2024-04-17 17:46:23 1479

原创 JavaMail实现邮件的回复

实现回复邮件,实际上就是实现邮件的发送,在邮件发送的基础上加上要回复邮件的信息,发送邮件的实现中存在一些坑,在后文中会有说明。

2024-01-26 15:14:20 1090 1

原创 NIO原理浅析(三)

epoll在内核中使用红黑树这个数据结构来保存文件描述符,红黑树这个数据结构的增删改的时间复杂度为O(logn),select/poll每次监听套接字,都需要将套接字列表整个复制到内核态,而epoll使用epoll_ctl,每次将一个监听套接字复制到内核态,这明显减少了用户空间到内核态的大量数据拷贝和内存分配。:本函数用于监控事件的发生,当epoll监控的事件中存在已经发送的事件,那么就可以将此事件收集起来。如果为0,表示已经超时;返回值:如果成功,返回epoll专用的文件描述符,如果失败,则返回-1。

2023-09-05 10:54:44 747 1

原创 NIO原理浅析(二)

IO分类阻塞和非阻塞阻塞IO:用户空间引发内核空间的系统调用,需要内核IO操作彻底完成之后,返回值才会返回到用户空间,执行用户的操作。阻塞指的用户空间程序的执行状态,用户空间程序需要等到IO操作彻底执行完毕。java中,默认创建的socket是阻塞的。非阻塞IO:用户空间引发内核空间的系统调用,不需要等待内核IO操作彻底完成,内核立即给用户返回一个返回值。用户空间程序继续执行用户的操作,处于非阻塞的状态。有兴趣,也可以参考java中关于Socket这个类的同步和异步。

2023-08-30 17:14:58 658

原创 先加密后签名还是先签名后加密?

先说结论,签名算法计算出来的签名是为了验证消息的完整性,签名算法有比如HMAC-SHA256,加密算法则是为了保证消息的机密性,类似AES-GCM、AES-CBC,这两种加密算法的安全性并不一致。GCM的填充方式更加的安全,CBC则不然。如果先加密的话,因为加密之后值会随着随机因子的变化而变化,此时去校验加密之后密文的完整性是没有意义的,因为你只能校验加密之后密文的完整性,而加密之后密文的完整性是可以通过解密的过程来校验的。那谁来校验加密之前的消息的完整性呢?假设是先加密后签名,会发生什么事情?

2023-08-24 15:40:12 4116 2

原创 NIO原理浅析(一)

IO的定义,Input/Output,输入和输出,通常指数据在存储器或者其他周边设备之间的输出和输入,输入是系统接收到信号或者数据,输出则是从系统发送的信号或数据。

2023-08-24 12:18:59 494

原创 零知识证明技术概述

零知识证明又被称为零知识协议,利用数学知识在双方不需要直接传递信息本身的前提下来验证信息的正确性。这个思想首先被发表在1985年出版的MIT的论文里。

2023-08-06 17:32:13 1198 2

原创 RSA原理

M *(1 + N的倍数)^{k} + N的倍数^d。= M^{kφ(N) + 1} + N的倍数^d。= M * M^{kφ(N)} + N的倍数^d。= M * M^{φ(N)K} + N的倍数^d。攻击者要破解C得到M,必须要知道d,攻击者只能拿到N、e、C。= M^{ed} + N的倍数^d。C^d = (M^e + N的倍数)^d。-> 要知道φ(N),必须要知道P、Q。

2023-07-16 22:33:46 608

原创 RestfulAPI接口设计指导

互联网的兴起,研究者思考如何开发以网络为基础的软件。Fielding提出了解决这个问题的软件架构原则:REST(Representational State Transfer),表现层状态转化。符合REST原则的架构,被称为RESTful架构,是目前互联网最流行的一种软件架构。REST的主语是Resource,即资源的表现层转化。资源:是网络上的具体信息,可以是文本、图片、歌曲、服务等,使用URI指向它,一般也把资源称为对象。

2023-07-11 20:32:56 415

原创 Java中ThreadLocal简要介绍

在这篇文章中,我们将会介绍ThreadLocal在java.lang这个包中是如何被构造的。ThreadLocal提供了在当前线程中单独存储数据,并能将特殊类型的对象保存在ThreadLocal里面的能力。

2023-07-09 20:14:06 371

原创 Java多线程--什么是线程安全?

也就是保证在多线程环境下,共享的、可修改的状态的正确性,这里的状态反映到程序中就是数据。线程安全是一个多线程环境下正确性的概念。

2023-07-03 19:56:19 195

原创 redis相关基础知识

redis默认有16个数据库,默认使用第0个数据库可以使用select进行数据库的切换用显示数据库的大小dbsize查看数据库所有的key,通过get方法可以得到所有的值keys *清除当前数据库flushdb清除数据库所有的内容flushallredis是单线程的!redis是基于内存操作的,CPU不是redis的性能瓶颈,redis的瓶颈是根据机器的内存和网络带宽redis单线程还这么快?

2023-05-17 00:20:56 393

原创 【回溯法】-----求一个集合的子集问题

首先这个问题,是一个求子集的问题,求子集问题可以联想到组合问题和分割问题,如果把求解后两个问题的遍历过程形式化为树,我们可以认为组合问题和分割问题是求整棵树的叶子节点的过程。子集问题也可以认为是组合问题和分割问题,但是在求得整棵数的叶子节点之后,在求集合的并集时,需要去掉重复的子集,这个过程时间复杂度有点高,可以规避。按照此方法取出的节点,最终得到的集合中的子集是不会重复的。本题给出的nums里面的元素是。

2023-04-16 15:55:19 464

原创 go语言实现指令集和解释器

指令集和解释器Java虚拟机指的是一台虚拟的机器,字节码就是运行在这台虚拟机器上的机器码。每个类或者接口都会被Java编译器编译成一个class文件,类或者接口的方法信息放在class文件的method_info结构中,如果方法不是抽象方法,也不是本地方法,方法的Java代码就会被编译器编译成字节码,存放在method_info结构体的Code属性中。每条字节码指令是以一个单字节的操作码(opcode)开头,这就是字节码名称的由来。

2023-03-20 00:11:03 294

原创 Java虚拟机的运行时数据区-go语言实现

线程私有的区域包括了PC(程序计数器)和java虚拟机栈,Java虚拟机栈又由栈帧构成,帧保存了局部变量和操作数栈信息。一类时多线程共享的,一类时线程私有的。对于Java虚拟机栈,我们常用链表数据结构来实现,这样栈就可以按需使用内存空间,而且弹出来的帧可以被Go的垃圾收集器回收。虚拟机栈可以时连续的空间,也可以时不连续的,可以时固定大小,也可以时在运行时动态扩展。多线程共享的区域包括类和实例对象,实例对象保存在堆中,类保存在方法区中,其中类数据包含了类的方法、字段、方法字节码还有常量池信息。

2023-03-05 17:30:22 555

原创 解析Java中的class文件

解析class文件需要把class文件当成文件流来处理,定义ClassReader结构体go语言中的reslice语法可以跳过已经读过的数据。ClassFile结构体如实反映了Java虚拟机规范定义的class文件格式。class文件的魔数为0xCAFEBABE占四个字节minorVersion为class文件的次版本号majorVersion为class文件的主版本号constantPool为常量池acessFlags为class的可访问标识。

2023-02-22 13:00:10 593

转载 如何做一次合格的胶片演讲

ppt制作与演讲技巧

2023-02-13 01:33:54 206

原创 Go语言实现搜索class文件工具

答:不同虚拟机的实现,决定了不同的搜索方法,Oracle的Java虚拟机实现根据类路径(class path)来搜索类。ZipEntry类表示ZIP或者JAR文件形式的类路径,该类的初始化方法中,打开ZIP文件,然后遍历ZIP压缩包文件,然后找到class文件,将class内容读出来。所有的类都实现了Entry这个接口,该接口有两个方法,readClass方法根据类路径访问类和字节数组,String方法返回类的名字。ClassPath类里面有三个成员变量,分别存放三种路径,通过Parse函数初始成员变量。

2023-02-06 00:25:04 539

原创 Go语言处理命令行参数

java命令行的选项可以分为两种:标准选项和非标准选项。标准选项比较稳定,不会轻易变动,非标准的选项以-X开头。非标准选项中有一部分是高级选项,以-XX开头。go语言的os包中定义了一个Args变量,用来存放传递给命令行的全部参数。如果给出了-jar选项,则第一个非选项参数表示JAR文件名,java命令必须从这个JAR文件中寻找主类。javaw和java命令唯一的区别在于,javaw显示命令行窗口后不会堵塞,会继续执行接下来的命令。选项由减号(-)开头,第一个非选项名给出了主类的完全限定名。

2023-01-27 22:27:54 522

原创 【ECDH java后端和javaScript前后端互通实现】

Elliptic-curve Diffie-Hellman(ECDH)是一种通过两方达成密钥协商的密钥生成算法,每一方都有一个椭圆双曲线的公私钥对,双方在不安全的通信通道间传递信息达成密钥生成协议。在初始时刻,Alice和Bob共享了些域的参数(p a,b,G,n,h),Alice在整数范围[t,n-1]中随机选择一个私钥d,并通过计算(Q=d·G)web前端和后端之间的通信不一定可靠,如果不方便使用预共享密钥的方式完成身份的确认,那么可以使用ECDH密钥协商算法在前端和后端进行密钥间的协商。

2022-12-12 00:33:59 1777

原创 工厂模式相关总结和使用

工厂方法模式对于Pizza的创建方式进一步解耦,如果orderPizza发生变化,比如需要订购不同种类的pizza,不会改变pizza的实现,如果需要改变Pizza的创建构成,也不需要改变orderPizza方法,满足对修改关闭,对扩展开放的开闭原则。简单工厂模式中,Pizza作为一个接口,里面包含了多种功能,包括prepare、bake、cut、box,Pizza被实现成多个产品。工厂方法模式将产品的实现从使用中解耦,如果需要增加产品或者改变产品的实现,创建接口creator相关代码不需要做任何改变。

2022-09-06 00:57:33 427

空空如也

空空如也

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

TA关注的人

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