Java开发AI Agent实战:不靠Python,关键在循环、工具与记忆
写这篇复盘之前先交代一下背景。我做了13年Java后端从订单系统一路写到中间件技术栈闭着眼睛都在Spring生态里打转。去年开始带着一个小团队做AI Agent方向的项目身边不少朋友的第一反应都是你一个写Java的跑去搞AI Agent不先啃Python怎么玩说实话我刚开始也半信半疑真上手之后被现实反复教育才慢慢意识到“不会Python就做不了Agent”这个认知入口本身就是个坑。这篇复盘重点想聊两件事。第一Java老兵做AI Agent为什么真不用把Python当成绕不开的坎第二90%的人挂在同一个坑上这个坑到底是什么我又是怎么从坑里爬出来的。我会把选型过程、架构设计、代码骨架、踩坑记录和最后的交付效果全部摊开讲尽量给同样背景的Java开发者一些能直接上手的参考。1. 先破一个执念做AI AgentJava完全接得住1.1 “Python才是AI入场券”这个说法是怎么来的先讲讲根。Python在AI领域的主导地位主要来自两个历史事实而不是什么技术必然。第一个事实是早期主流深度学习框架几乎都优先提供Python接口TensorFlow、PyTorch这代东西团队先做的是Python绑定Java接口要么没有要么地位靠后。那会儿搞研究和训练模型的人基本等于和Python绑定。第二个事实是研究社区习惯用Python写实验代码。快速验证、快速调参、快速出图表这类体验Python确实顺手导致大量论文和开源示例都以Python为第一语言。这两个原因叠加形成了“AI等于Python”的大众印象。但别忽略一个关键点这是研究侧和训练侧的逻辑跟工程侧的落地是两码事。我做了多年后端早期也不会写Python。真正上手之后发现调大模型接口、做数据结构转换、处理JSON输出、做异常重试——这些活用Java和用Python写出来的复杂度差异根本没有想象中那么大。真正决定项目成败的不是语言而是你怎么设计Agent的行为边界、怎么管理多轮状态、怎么编排工具调用、怎么保证系统在模型抽风时还能兜住。1.2 换个视角看AI Agent的真实技术栈我把一个完整的AI Agent项目链路拉出来看无非这么几层模型接入、指令模板、上下文管理、工具注册与调用、记忆管理、安全校验、结果输出。你逐项对照Java生态每一环都有成熟方案。模型接入层可以用Spring的RestClient或者WebClient调OpenAI、国内各大模型也可以直接用一些封装好的SDK。指令模板本质上是字符串模板拼接Java的字符串处理能力一点没输。上下文管理就是要细心控制窗口长度做截断和摘要这是数据处理逻辑数据库都写得飞起的Java人处理这点东西毫无压力。工具注册与调用在我眼里就是个“服务路由参数校验结果规整”的问题这恰好是Java后端最擅长的事。记忆管理要么用Redis做短期窗口要么用向量库做长期存储同样的基础设施Java生态用得已经很熟。安全校验和限流熔断Spring Cloud那套现成组件直接搬。我经常用一句话给团队打比方做Agent有点像盖房子Python是某种顺手的装修工具但房子结构怎么设计、承重墙怎么搭、水电管线怎么走靠的是建筑学思维不是装修工具。Java老兵手里最值钱的恰恰是这套工程化、模块化、高可用的建筑学思维。1.3 我为什么敢在项目里放弃Python我那段时间试图硬啃Python前前后后折腾了两周语法又在LangChain源码里翻了很久越学越焦虑。后来有个瞬间突然想明白——我给公司交付的是稳定可维护的Agent系统不是一篇AI论文也不是一个深度学习模型。训练模型、调参这种活根本不在我们团队服务范围里。我们的任务是调用大模型能力把业务流程串起来做成一个用户能用的产品。搞清楚了这一点我果断放弃Python做主力回到Java主战场。结果证明Spring AI和LangChain4j这两个框架把LangChain那套Agent循环、工具调用、记忆管理的概念用Java重新实现了一遍很多设计是直接照着LangChain做的但和Spring Boot的集成深度反而更好。团队零成本上手因为我只需要把“Python版LangChain”的概念图对应到“Java版LangChain4j”的类结构上。2. 90%的人挂在同一个坑把Agent做成一次性的接口调用现在回到标题里说的那个坑。我观察过不少Java背景的转型者也复盘过自己的第一版代码发现大家掉进去的坑几乎一模一样——把Agent设计成了一个“Controller收到请求调一次大模型把结果返回给前端”的传统接口。这个错误的本质是把“生成式交互”做成了“一次性查询”。一个人的工作习惯会深深刻在代码里做Java后端久了习惯了确定的体系一个请求进来经过参数校验、业务逻辑、数据落库、结果返回每一步都可控、可回滚、可监控。这种思维在传统系统里是巨大的优势但放在Agent场景里就是地雷。2.1 这个坑的具体表现掉坑的人做出来的系统一般都有这么几个共同特征。第一没有循环。模型做完一次输出就结束了它不会根据这个输出结果再次思考、再次决定下一步动作。一次问答还好稍微复杂一点的任务比如“先查询库存再看是否下单最后生成采购单”这种需要模型连续使用多个工具的场景单次调用根本跑不出来。第二没有工具反哺。模型在对话里说“我查一下库存”但代码里根本没有一个工具层能接住这句话。模型说了等于白说它只能靠自己“脑补”库存数据回答自然不可信。我见过最离谱的版本是把工具的数据硬拼到提示词里让模型“假装自己查过”结果数据一变就要重新拼字符串维护成本直接爆炸。第三没有状态管理。多轮对话或者长链路任务一跑起来上下文越积越多要么截断混乱要么直接超出模型窗口报错。用户前一轮说的事情后一轮系统完全不记得交互体验支离破碎。这三个问题凑在一起做出来的东西说白了就是一个“智能点的搜索接口”距离真正的Agent差很远。2.2 为什么Java老兵特别容易踩这个坑我认真想过这个问题结论是Java老兵踩坑不是能力问题是思维惯性问题。传统后端对系统稳定性的要求极高我们习惯了每个流程都要确定、每个数据都要落库、每一步都要能看到异常栈。这种思维在“程序按照既定逻辑运行”的系统里非常正确。但Agent的核心特征是自主决策。模型会根据当前上下文自己决定调用哪个工具、是否继续追问、是否结束任务。它不是一个直线流程是一个循环。比如处理一个“用户要报销差旅费”的任务Agent可能需要读报销单 - 查差旅标准 - 校验发票 - 计算金额 - 返回审批意见。走完一轮发现发票金额超限还得回到标准库再查一次更详细的条款。这个流程不是事先画死的而是模型一步步动态决策的。用我以前做“流水线车间”的思维去设计一个“带大脑的调度员”第一版必然翻车。我自己第一版代码就是把一次模型调用包装成一个Service接口结果模型一本正经地胡说八道因为全程没有任何工具能帮它拿到真实数据也没有循环机制允许它自我纠错。2.3 我总结的破坑口诀踩坑之后我把经验浓缩成三句话团队所有成员做设计前先过一遍这个口诀“循环、工具、记忆三件套缺一不可输出只是中间态决策才是终点没有兜底的Agent一定会闯祸。”循环指的是Agent必须能“思考-行动-观察”多次迭代直到模型自己判断任务完成工具指的是Agent必须有能力触碰外部真实系统而不是靠模型记忆脑补数据记忆指的是上下文要分短期和长期管理让Agent既记得住当下要做什么也记得住历史关键信息。设计Agent时还要多问自己几个工程问题如果模型做错决定了怎么办如果工具调用超时了Agent是直接崩掉还是走降级路径如果同一时刻一千个用户同时触发Agent我把状态放哪里这些问题一问出来Java老兵的工程直觉就会被激活后面做的设计自然就不会飘。3. Java生态做AI Agent的选型与落地实操3.1 我用下来最顺手的几个Java框架先不说代码说说框架选型。Java生态里现在做Agent主流有三套可以选我都实际试过各有优缺点。LangChain4j这个名字基本就是致敬LangChain的。它把LangChain里最经典的AgentExecutor、Tool、Memory、LLM抽象全部用Java重写了一遍概念迁移成本最低。我团队里几个没接触过LangChain的同事看官方文档两天就上手了因为类的命名方式和设计思路跟后端开发者的直觉高度一致。Spring AI起步稍微晚一点但和Spring Boot的集成体验是三个里最好的如果你需要快速做一个从零到一的Demo它的起步最快很多配置都是自动化的。Semantic Kernel的JVM版背后的设计思路更强调整体调度适合希望把Agent能力嵌进企业级应用框架的场景不过文档相对前两个要薄一些。我的最终选型是以Spring Boot为底座配合LangChain4j做Agent循环。核心考虑有两点第一团队所有人都熟Spring这是零成本项第二LangChain4j对Agent循环、工具调用、ChatMemory这些概念的实现最完整不容易自己踩底层实现的坑。3.2 落地架构拆解五层都别省一个稳定可交付的Java Agent系统我习惯拆成五层。这不是学院派的设计是每一层解决一个切切实实的工程问题。接入层负责统一管理入口不管是网页端、微信端还是企业内部IM都通过这一层进来同时做会话隔离A用户的Prompt不能串到B用户的上下文中。模型路由层负责屏蔽不同模型厂商的接口差异切换供应商、请求重试、限流都在这一层收敛出问题不会污染上层代码。Agent执行层是整个系统的核心它实现“规划-行动-观察”的循环我的所有编排逻辑、循环上限、兜底策略都集中在这一层。工具层把团队内部所有可调用的业务能力统一注册、统一鉴权、统一参数校验这里非常贴近我们后端熟悉的“微服务调用”场景。记忆层管理短期上下文和长期记忆短期用内存或Redis存对话窗口长期用向量数据库做历史检索。这五层里3、4、5层的工程含量极高恰恰是Java生态的传统优势区。很多人以为Agent的难点是模型在我实际交付经验里模型的调用已经被框架处理得很透明了真正考验人的是Agent执行层的循环设计、工具层的稳定性和记忆层的可靠性。3.3 核心代码骨架一个能跑的最小Agent循环下面是Agent执行层最核心的循环代码骨架我用的是简化版去掉了可观测性和重试细节只保留主干方便理解。// 极简Agent循环骨架 public class AgentLoop { private final ToolRegistry tools; // 工具注册中心 private final LLMClient llm; // 大模型客户端 private final MemoryStore memory; // 记忆存储 public String execute(String userInput) { memory.append(user, userInput); int maxTurns 5; // 循环上限防止死循环 for (int i 0; i maxTurns; i) { String context memory.buildContext(); AgentResponse response llm.chat(context); if (response.isFinished()) { return response.getContent(); // 模型自己认为任务完成 } // 模型决定调用某个工具 ToolCall call response.getToolCall(); if (call ! null) { String result tools.invoke(call.getName(), call.getArgs()); memory.append(system, 工具 call.getName() 返回: result); } else { // 没结束也没有工具调用说明模型在“空转”兜底返回 return response.getContent(); } } return 执行超过最大轮数已转人工兜底; } }代码不多但每一行背后都有讲究。maxTurns的循环上限必须加这是我对所有做Agent的同学的第一个建议。大模型有时会陷入自我对话连续五六轮都在“思考”却不上手做任何事如果没有上限一次请求能把你的模型预算烧光。我见过一个线上问题某个Agent在无人干预的情况下连续循环了十七轮每轮都在重复“让我再想想”。AgentResponse里那个isFinished方法判断逻辑一般是看模型的输出里有没有结束标记或者模型回复类型是否是普通文本而非工具调用。工具注册中心做的事情是把字符串形式的工具名、方法真实地址、参数schema对应起来这样模型说“查库存”程序才能找到对应的“查库存”方法。整个循环能跑通的前提其实是模型输出的结构稳定性。3.4 为什么模型输出一定要“结构化”很多Java新手做Agent时会踩一个大坑用自然语言处理模型的输出比如直接调一次提问然后把return回来的字符串塞给下游。这在简单Demo里能跑但一上生产全是问题。我的做法是强制模型按结构化格式输出。比如每次要工具调用时模型输出的内容必须是严格的JSON格式包含工具名和参数对象。LangChain4j这类框架本身就支持定义Java类来接收模型输出它内部会做解析和校验。我们在团队内部还封了一层转换器任何一次模型返回都要经过“原始字符串 - 结构体 - 业务可用对象”的流程解析失败的返回触发重试。这个约束就保证了Java代码能稳稳妥妥地接住模型的输出而不是面对一段自由的文本手足无措。4. 转型复盘的完整路径从接需求到交付出一个能用的Agent4.1 模拟项目X的原始需求具体讲一个我用Java做下来、可完整复盘的内部项目为了叙述方便后面统一叫它模拟项目X。项目X的需求来自公司客户支持部门。团队成员每天要处理大量工单人工分类慢、历史记录查得费劲、处理建议依赖个人经验。他们当时提的需求是做一个工单智能处理助手能自动读取工单正文判断工单类型比如咨询、故障、投诉、退换货查历史处理记录给出处理建议最后交给人工复核。这个需求看起来不复杂但特别适合用来展示Agent和普通接口的本质区别——因为工单处理不是一个单轮的问答而是一个需要多步查询、多步判断的决策流程。4.2 方案设计我是怎么把需求翻译成Agent架构的我按前面说的五层架构做了一个完整设计。接入层做的是企业IM机器人和内部Web表单两路接入保证用户在哪个入口提交工单都能进同一个Agent流程。模型路由层接了一个通用大模型同时配置了失败重试和超时降级。Agent执行层做的是循环编排设定了最大轮数5单轮超时30秒。工具层注册了四个工具查工单详情、查历史处理记录、查知识库、写处理日志。记忆层用内存保存当前工单的整个处理上下文超过窗口长度时对历史做摘要。指令模板的设计也花了不少功夫。系统提示词要求模型严格按照流程走先归类再查历史再建议最后把结果格式化为固定结构。每一步内部都做了约束不让模型跳步因为现实里的工单处理顺序错了建议质量就差很多。4.3 落地过程串闭环、加保护、上追踪整个开发过程我严格执行四条原则顺序很重要。先串最小闭环。第一版不追求功能完整只接一个工具让Agent能读工单、能分类型就行。先把“用户提问-模型决策-调用工具-返回结果”这条主线跑通。闭环通了以后再逐个加其他工具每加一个就验证一次避免排查问题时不知道是哪一环出的错。然后加上工程保护。循环上限、超时时间、工具异常拦截、模型响应异常重试这些全部在第二版补上。没有这层保护任何一次模型抽风都可能把整个任务卡死。紧接着加可观测性。这是Java后端最擅长的领域我把模型的每一步思考轨迹、每次工具调用的参数和返回值全部记录到结构化日志里。线上出问题时直接翻日志看Agent是怎么一步步走到错误结果的定位速度比以前调试普通接口还要快。最后跑自动化验证。我把常见的工单样本整理成测试集用固定返回值的假模型做单元测试不花钱调真实模型先把逻辑链路测稳。逻辑稳定之后再在测试环境接真实模型做集成验证。4.4 踩过的三个经典坑第一个坑是模型返回JSON格式不稳定。有的渠道返回工具调用参数时会把数字拼成字符串有的渠道会在JSON前后加多余文本。我的方案是写了解析容错层先把非JSON内容剥离干净再用严格校验器做二次检查失败就触发一次重试重试仍然失败就降级到人工处理。第二个坑是上下文爆掉。工单处理链路一长模型要接受的文本越来越多一旦超过窗口长度要么报错要么“忘记”开头信息。我做的处理是按字符数做动态截断同时保留最新的完整对话把早期历史合并成摘要塞回去。第三个坑是工具调用参数的类型转换。模型输出说数量是3Java这边拿到的是字符串“3”但工具方法签名要求Integer。不加转换层的话就会在运行时抛类型异常。这类问题看似低级线上出现频率却非常高因为模型并不保证输出类型和你的Java方法完全对齐。解决方案是在工具注册层统一做参数适配。4.5 交付效果交付上线后团队在模拟环境里做了一轮效果评估。自动分类准确率能到86%左右处理建议被人工复核采纳的比例约70%单张工单的平均处理时间从原来的8分钟降到2分钟以内。这两个数字谈不上惊艳但足够实现“先给客服减负”的预期目标也为后续扩展更多工具和更复杂的多轮Agent打下了基础。5. 常见问题排查速查表与独家避坑技巧5.1 高频问题速查表这半年里线上线下的问题五花八门我把遇到最多的几类整理成了一张表团队新人排查问题都会先看一遍。现象可能原因解决方案模型答非所问系统指令太模糊上下文拼接顺序有误细化指令固定角色-背景-任务-输出格式工具调用完全不生效模型没有得到工具的描述或返回JSON不符合预期检查工具schema注册确认工具描述清晰开启结构化输出解析Agent陷入死循环缺少循环上限或模型自我往复强制设置maxTurns超限后走“人工兜底”出口多轮对话“失忆”记忆窗口截断策略太粗暴历史信息被丢用“保留最新完整窗口早期摘要”的双层记忆策略工具返回了但模型还是错工具返回数据格式复杂模型没有有效理解优化工具返回值摘出结论性字段简洁优先线上调用模型成本飙升单次任务模型调用次数没有预算控制对单Agent会话设置模型调用次数上限并对超时重试做退避这张表的价值在于大部分问题都不是模型能力不行而是工程防护没到位。5.2 独家避坑技巧我再给几个常规文档里不会写的建议。第一永远不要信任模型输出的格式永远加一层解析校验。把模型当供应商它的输出就是外部接口的返回报文你得按外部系统对接的方式处理校验、容错、重试、降级。这套思路Java后端做外部API对接时早就练熟了。第二日志一定要留“思考链”轨迹。很多人只记录最终结果问题一来完全无从下手。我的做法是记录模型每次完整思考输出、每一步工具调用的入参出参、每一步循环的状态切换。这样就能精确复现Agent的决策过程而不是看着最终结果瞎猜。第三单元测试用假模型别拿真实模型跑自动化测试。真实模型耗钱、慢、输出不稳定不适合做回归测试。我团队的做法是定义了一个MockLLMClient测试时让它返回预设的AgentResponse序列专门验证循环逻辑和工具调用分支。只有集成测试阶段才用真实模型而且固定样本量、并发上限、每日预算防止测试费用失控。第四给Agent写“失败预案表”。把常见的失败场景全部列出来比如何处理工具超时、模型无响应、参数校验失败、连续空转逐个写清楚预设动作。我见过太多团队只关注“正常流程跑通”一旦遇到异常就全链路卡死。Agent系统的不确定性比传统系统高得多没有预案表等于裸奔。5.3 技术之外的转型心得转型过程中技术只是其中一半另一半是调整工作理念。我最大的感触是当你不再把模型当成一个“查表函数”而是当成一个“需要管理的合作者”时很多设计自然就通了。这个合作者能力很强但它需要制度约束需要有边界需要有人兜底。你不可能指望一个模型自己像系统一样稳定但你能让一个系统把模型的不稳定消化掉。我常跟团队说Agent开发的核心已经从“写代码实现功能”转移到了“设计规则并维护秩序”。十三年的Java工程经验恰恰积累的是设计约束、维护秩序的能力这比一门语言的语法值钱得多。6. 回头再看学习路径与实战顺序复盘最后分享一条我亲自验证过的转型路径按这个顺序走会比刚上来就啃大模型算法轻松很多。第一步先建立整体认知。把LangChain和LangChain4j的官方文档精读一遍不需要纠结每个API重点是理解Agent循环、工具、记忆、向量存储这些核心概念是怎么配合的。第二步找一个最小业务场景练手我推荐“工单助手”这类任务因为它工具简单、决策链路清晰。第三步把工程保护设施全部加上循环上限、超时、重试、结构化日志一个都不能少。第四步跑真实模型做集成验证这个阶段才让成本开始产生。第五步做效果评估和优化围绕着准确率、工具调用成功率、人工复核采纳率这几个指标去迭代。我个人最大的体会是一定不要用“学会Python”来给自己设置转型的前置门槛。我们完全可以以Java为主力技术栈完成Agent项目的交付把Python当作偶尔查阅研究代码时的辅助阅读工具。两个多月做下来真正让你在项目里站住脚的是工程系统设计能力而不是语言切换能力。这个领域变化很快但底层逻辑是稳定的Agent的价值不是模型单点有多强而是系统的组织力有多强。Java老兵做这个方向不叫转型叫带着积累换了一个新场景你的工程本能换个战场照样是核心竞争力。

相关新闻

2026年API聚合平台评选指南:词元之河(TokenRiver.ai)与OpenRouter深度对比

2026年API聚合平台评选指南:词元之河(TokenRiver.ai)与OpenRouter深度对比

大模型迭代速度不断加快,个人开发者与企业在搭建 AI 应用时,越来越多地把目光投向 API 聚合平台。本文从性能、模型覆盖、国内访问便利性与计费模式等维度,对国际代表 OpenRouter 与国产代表词元之河(TokenRiver.ai) 做一次深度对比&#xff…

2026/10/19 2:04:31 阅读更多 →
手把手教你|投票制作怎么做:数据导出 + 防刷票,年会 / 比赛评选该选哪个(附对照表)

手把手教你|投票制作怎么做:数据导出 + 防刷票,年会 / 比赛评选该选哪个(附对照表)

后台问得最多的三个问题是:投票页面到底怎么做出来?票数能不能导出给自己做二次统计?刷票怎么防得住?其实投票制作就三步——先定规则、再选工具、最后导数据收尾。多数人卡在第二步:工具挑错了,视频传不上…

2026/10/18 13:36:15 阅读更多 →
Java+AI全栈开发工程师:核心能力、技术栈与实战指南

Java+AI全栈开发工程师:核心能力、技术栈与实战指南

1. 这个岗位到底在招什么人“JavaAI 全栈开发工程师”这个岗位名称,这两年在招聘市场上出现的频率越来越高。我翻了不少岗位描述,也跟几个正在招这类人的团队负责人聊过,发现大家对这个角色的期待其实相当一致:你既要能扛住传统Ja…

2026/10/18 6:37:55 阅读更多 →

最新新闻

RustFS 该跟 stable 还是 nightly?两条版本线的分工、风险与回退,一张表说清

RustFS 该跟 stable 还是 nightly?两条版本线的分工、风险与回退,一张表说清

9 月 16 日装的 1.0.0,10 月 3 日 release 页冒出 1.0.1,同页每个平台还多挂了一个 -latest.zip;另一条线上,每天北京时间 0 点 07 分 CI 会打出一个按日期命名的 nightly 包。跟版本号、跟 latest 别名、跟 nightly,三…

2026/10/19 2:04:29 阅读更多 →
等了六年,IDEA 2026.3终于要实现这个新特性了

等了六年,IDEA 2026.3终于要实现这个新特性了

我虽然用了5年多的IDEA,但是今天先说一个我忍了idea很久的小事 我用 IDEA 写代码的时候,有个习惯:眼睛时不时往右下角瞟一眼,看看当前 Git 分支是什么。这个动作我一天要做几十次,纯属肌肉记忆。 结果有一次 IDEA 升级…

2026/10/19 2:04:29 阅读更多 →
猫狗图像分类实战:CNN/DNN/RNN对比与训练调优全指南

猫狗图像分类实战:CNN/DNN/RNN对比与训练调优全指南

简介:基于Python实现猫狗图像分类的完整项目资源,面向深度学习与计算机视觉入门者,围绕CNN、DNN、RNN三种网络结构,系统演示图像分类任务从数据预处理、模型搭建、训练评估到保存部署的完整链路。CNN部分借助卷积、池化与全连接层…

2026/10/19 2:04:29 阅读更多 →
AI Agent 架构设计与工程实践:从工具调用到上下文管理的完整指南

AI Agent 架构设计与工程实践:从工具调用到上下文管理的完整指南

1. 从"能聊"到"能干":AI Agent 到底在解决什么问题大多数人第一次接触 AI Agent 这个词,脑子里浮现的画面可能是一个能自动帮你订机票、写周报、回邮件的"数字助理"。这个印象不算错,但太表面了。我做了两年多…

2026/10/19 2:04:29 阅读更多 →
Hadoop第二篇:别再一封一封翻告警邮件了:AI SSH 运维 Agent 多主机值守实战

Hadoop第二篇:别再一封一封翻告警邮件了:AI SSH 运维 Agent 多主机值守实战

—— 系列第二篇:十几台机器怎么盯?抖动过滤、三路告警、AI 预判,一套配全本篇定位:上一篇讲了 AI SSH 运维 Agent 是什么、怎么上手。这一篇只解决一件事——人盯不过来的机器,交给它盯。从录入主机、写巡检规则&…

2026/10/19 2:04:29 阅读更多 →
c语言:对比szeof和strlen

c语言:对比szeof和strlen

1.szeof 是运算符&#xff0c;求【占用内存字节的大小】 它算的变量/类型所占的总字节数&#xff0c;包括\0 注意&#xff1a;一个数字&#xff0c;字母算一个字节&#xff0c;一个汉字算两个字节 2.strlen是库函数 需要头文件&#xff1a;#include<string.h> 它算的是\0…

2026/10/19 2:03:29 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介&#xff1a;本资源为电源技术方向的学术研究文档&#xff0c;聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略&#xff0c;面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址&#xff1a; https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集&#xff0c;共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →