【💰】海外地区电话号码
有没有佬有可靠的海外地区号码的网址,现在用这个一直找不到可用的号码,google 和 appleid 都无法注册了,不知道是卡的严还是当前这个没办法用了
现在用的是 hero-sms
ps:50% 中奖概率
xiaohack博客专注前沿科技动态与实用技术干货分享,涵盖 AI 代理、大模型应用、编程工具、文档解析、SEO 实战、自动化部署等内容,提供开源项目教程、科技资讯日报、工具使用指南,助力开发者、AI 爱好者获取前沿技术与实战经验。
有没有佬有可靠的海外地区号码的网址,现在用这个一直找不到可用的号码,google 和 appleid 都无法注册了,不知道是卡的严还是当前这个没办法用了
现在用的是 hero-sms
ps:50% 中奖概率
最近有点焦虑,回想了一下工作的这 6 年,除了剩点钱(个人来说这一点比较突出 可能也就应届生大厂一年的收入 惭愧),其他好像也就没啥收获了,只有钱是真的😂
技术一直在更替,公司用的技术都比较老,日常的工作也就是满足公司需求,自己学新技术,没有实际在生产应用,比较虚。加上现在 AI 加持,代码写的比我还快、还好,case 处理有的思路可能比我还全面
发现现在招人匹配度都好高的,加上狼多肉少,找工作着实有点难,以后非 985/211 的是不是基本是外包仔了?
所以大多数人都是混口饭吃?我实在想不出干啥有前途,好奇现在大家找工作都关注什么,为了解决当前的生活问题,还是有更高的理想?
以上想到啥就说啥了,也没怎么组织
最近这段时间,我一直在重度使用 Codex,也因此接触了不少中转站。 一开始我的判断标准很简单:先看倍率。 但真正用了一圈之后,我越来越觉得,选择这类服务时,倍率其实只是结果,不是答案。 对开发者来说,真正决定体验的,往往不是首页那个数字,而是更底层的几件事: 如果这些事情说不清楚,那么倍率再低,最终也很难形成稳定、可预期的使用体验。 很多平台在首页最醒目的地方放的,就是一个很有吸引力的倍率数字。 问题就在这里。 价格本身没有问题,低价也不是问题。 如果一个平台只告诉你“很便宜”,却不解释它的实现方式,那用户其实很难判断这背后的代价是什么。 所以我后来越来越倾向于一个判断标准: 一个站可以便宜,但必须把为什么便宜讲清楚。 这件事我现在排在第一位。 对开发者来说,最糟糕的情况不是“稍微贵一点”,而是“算不明白”。 我更认可的方式是: 例如: 一旦这套规则能被说清楚,用户就更容易建立信任,也更容易判断这个服务是否适合长期使用。 这个问题很多人一开始不会特别敏感,但开发者往往更容易在使用中感知到。 尤其是在代码生成、复杂推理、长上下文这类场景里,模型差异会非常明显。 所以对我来说,一个很基本的要求就是: 调用什么模型,实际跑的就应该是什么模型。 否则你以为自己调的是某个模型,最后出来的结果完全不是那个预期,排查问题时会非常痛苦。 这个问题在首页上通常看不出来,但它对使用体验的影响非常直接。 如果一个账号挂太多人,请求就会在很多用户之间来回争抢资源。短期看,平台确实能把价格压下来;但对用户来说,结果往往是: 如果只是偶尔用一下,也许还可以接受。 这是我后来越来越重视的一点。 因为很多开发者已经不是把这类服务当作简单聊天工具在用了,而是直接用于真实工作内容。 如果一个平台对记录怎么处理、保留多久、是否会用于其他用途讲得不够清楚,那就很难真正让人放心。 不是说所有平台都会有问题,而是边界不清楚本身就是问题。 研究了一圈之后,我最后还是自己做了一个站。 不是因为我觉得自己一定比别人做得好,而是因为看多了之后,我发现自己更在意的是另外一套东西: 所以后来做的时候,我没有把重点放在“怎么把倍率写得更低”,而是更在意“怎么把规则讲清楚”。 目前我自己坚持的几条原则也比较明确: 我越来越觉得,这类服务最终能不能长期留下用户,拼的从来不是某个瞬间的最低价,而是谁更能让用户形成稳定预期。 如果现在再让我给别人一个建议,我不会只说“找更便宜的”。 如果这几件事都说不清楚,那倍率再低,也很难让人真正放心长期使用。 至少对我来说,到现在这个阶段,透明已经比低价更重要了。 如果你也在关注这类服务,可以自己去看看: 但更重要的,其实不是最后选谁,而是你在选择的时候,有没有把这些关键问题先问清楚。
这其实也很正常。对于大多数用户来说,倍率是最容易理解的指标。一个站写 0.6x,另一个写 0.3x,第一反应肯定是后者更划算。为什么不能只看倍率
但如果再往下看,会发现对“为什么能做到这个价格”的解释往往非常少。
真正的问题是:价格是怎么来的。
而在这一类服务里,低价通常不会凭空出现,它往往意味着别的地方一定做了取舍,只是这些取舍不一定会直接展示出来。我现在主要看这 4 个标准
1. 计费规则能不能被清楚地解释
如果一个平台的收费方式需要用户自己猜,或者需要使用一段时间之后才能慢慢摸清楚,那这个体验通常都不会太好。
规则尽量简单,最好能用很短的话讲清楚。2. 模型是不是真的
如果平台在后台做了模型映射,轻量问答可能未必立刻暴露问题,但一旦进入真正高强度场景,差别通常会越来越明显。3. 一个账号挂多少人
但如果是开发者高频调用,尤其是已经接入自己的工作流,那这种波动很快就会变得不可忽视。4. 数据边界是否明确
这里面往往会涉及:为什么我后来自己做了一个站
最后
我更建议在选择 Codex 中转站之前,先看清楚下面这几件事:getcodex.cc

佬们,如何持续可吸 opus ?我订阅了快一个月了,没有被封,但是看到身份认证,想持续用,又害怕。。。
这篇只讲本项目里“PDF合并”工具的功能层 JS,不展开页面结构,只看文件进入列表、加密识别、页面复制、结果导出这条主链路。 整个流程可以概括成: 这个工具的核心不是“点一下就合并”,而是先把整个过程涉及的状态集中管理: 这里的设计很直接: 这种状态拆分的价值在于,文件列表、合并过程、下载结果彼此独立,逻辑不会互相污染。 工具不会把用户选择的所有文件直接塞进队列,而是先过滤真正可用的 PDF: 之所以同时检查 MIME 和文件名后缀,是因为有些浏览器或系统环境下, 通过过滤后,工具会继续做一件关键的事:提前检测文件是否加密。 这里没有自己解析 PDF 结构,而是直接借助 添加文件时,工具会边遍历边补齐每个条目的完整数据: 这里的重点不是 尤其是 真正读取源 PDF 时,逻辑被单独收口成 这个函数有两个很实用的特点: 也就是说,这里不是简单地“有密码就加载”,而是把密码交互、重试和异常分类放进了一个独立入口。 PDF 合并不能直接把多个文件的二进制流硬拼起来,真正可靠的做法是:先加载源文档,再把页面复制到新的目标文档里。 这里的关键点有两个: 这就是整个工具最核心的功能逻辑。它不是在文件层做合并,而是在 PDF 页面模型层做重组,所以可以稳定处理多个来源文件。 完整的 这里的思路很清楚:单个文件出问题,不拖垮整个批次,而是记录到 如果全部文件都不可用,还会额外拦一次: 这一步避免了生成一个空 PDF,让错误语义更准确。 合并完成后,新的 PDF 会先被保存为字节数组,再转成浏览器可下载对象: 点击下载时,并不依赖后端接口,而是临时创建一个 这意味着整个 PDF 合并链路都在浏览器端完成:文件读取在本地,文档重组在本地,结果导出也在本地。 这个工具支持上移、下移、删除,本质上是在操作 删除或调整顺序后,工具会先清空之前的合并结果,再重新渲染列表。这样可以避免一种常见问题:用户已经改了文件顺序,但界面上还保留着旧的下载结果。 清空时还会多做一步资源释放: 这一步的意义是销毁旧的对象 URL,避免结果反复生成后留下无效引用。 “PDF合并”表面上只是几个文件拼成一个文件,真正的功能层重点其实有三件事: 所以这个工具最核心的 JS 价值,不只是调用了 选择文件 -> 过滤 PDF -> 检查是否加密 -> 调整顺序 -> 逐个读取并复制页面 -> 导出合并结果在线工具网址:https://see-tool.com/pdf-merge
工具截图:1)先把运行状态收口
const state = {
items: [],
merging: false,
mergedBlob: null,
mergedUrl: ""
}items 存待合并文件列表,同时保存文件名、大小、是否加密、密码等信息merging 用来锁住重复点击,避免并发合并mergedBlob 和 mergedUrl 用来承接最终导出的 PDF 结果2)文件进入列表前,先做类型过滤和加密识别
function isPdfFile(file) {
const byType = file.type === "application/pdf"
const byName = /\.pdf$/i.test(file.name)
return byType || byName
}file.type 并不稳定,只靠一种判断容易漏掉合法文件。async function detectEncrypted(file) {
try {
const bytes = await file.arrayBuffer()
await PDFDocument.load(bytes)
return false
} catch (error) {
const msg = String(error && error.message ? error.message : error).toLowerCase()
return msg.includes("encrypted") || msg.includes("password")
}
}pdf-lib 的加载结果做判断。能正常加载就说明未加密;如果报错信息里出现 encrypted 或 password,就把它标记为加密文件。这样后面真正合并时,就能提前走密码分支,而不是等到主流程里再统一报错。3)加入列表时,把文件元信息一次性补齐
for (const file of list) {
const encrypted = await detectEncrypted(file)
state.items.push({
id: createId(),
file,
name: file.name,
size: file.size,
encrypted,
password: null
})
}push,而是每个列表项本身就是一个“可合并任务对象”。后面的排序、删除、密码缓存、逐个读取,都是围绕这个对象展开的。password 字段,它允许工具在用户第一次输入密码后缓存下来,避免同一个文件在流程内反复询问。4)加密 PDF 不直接失败,而是进入可重试加载
loadSourcePdf。未加密文件直接加载;加密文件则通过弹窗要求输入密码,并允许输错后重试:async function loadSourcePdf(item, bytes) {
if (!item.encrypted) {
return PDFDocument.load(bytes)
}
if (!item.password) {
const pwd = window.prompt('文件“' + item.name + '”已加密,请输入密码:')
if (pwd === null) {
return null
}
item.password = pwd
}
while (true) {
try {
return await PDFDocument.load(bytes, { password: item.password })
} catch (error) {
const msg = String(error && error.message ? error.message : error).toLowerCase()
if (msg.includes("password") || msg.includes("encrypted")) {
const next = window.prompt('文件“' + item.name + '”密码错误,请重新输入:')
if (next === null) {
return null
}
item.password = next
continue
}
throw error
}
}
}null,主流程可以把这个文件当作“跳过”处理5)合并主流程的核心,是“复制页面”而不是“拼接字节”
const merged = await PDFDocument.create()
for (let i = 0; i < state.items.length; i += 1) {
const item = state.items[i]
const bytes = await item.file.arrayBuffer()
const src = await loadSourcePdf(item, bytes)
if (!src) continue
const pages = await merged.copyPages(src, src.getPageIndices())
pages.forEach(function (page) {
merged.addPage(page)
})
}PDFDocument.create() 先创建一个全新的目标文档copyPages 根据源文档页码列表复制页面对象,再逐页 addPage6)主流程里同时处理进度、跳过文件和最终结果
mergePdf 并不只是页面复制,它还把进度更新和失败兜底一起处理了:const skipped = []
for (let i = 0; i < state.items.length; i += 1) {
const item = state.items[i]
const bytes = await item.file.arrayBuffer()
let src
try {
src = await loadSourcePdf(item, bytes)
} catch (error) {
skipped.push(item.name)
setProgress(Math.round(((i + 1) / state.items.length) * 100))
continue
}
if (!src) {
skipped.push(item.name)
setProgress(Math.round(((i + 1) / state.items.length) * 100))
continue
}
const pages = await merged.copyPages(src, src.getPageIndices())
pages.forEach(function (page) {
merged.addPage(page)
})
setProgress(Math.round(((i + 1) / state.items.length) * 100))
}skipped 后继续处理下一个。这样用户最终拿到的不是“全量失败”,而是“成功多少、跳过多少”的结果。if (merged.getPageCount() === 0) {
throw new Error("没有可合并的页面")
}7)导出结果时,用 Blob 和对象 URL 收口
const bytes = await merged.save()
state.mergedBlob = new Blob([bytes], { type: "application/pdf" })
state.mergedUrl = URL.createObjectURL(state.mergedBlob)a 标签直接触发保存:const a = document.createElement("a")
a.href = state.mergedUrl
a.download = "merged.pdf"
document.body.appendChild(a)
a.click()
document.body.removeChild(a)8)列表排序、删除和清空,本质上都在维护同一个任务队列
state.items 这份队列。顺序之所以重要,是因为最终合并页序完全取决于这个数组的先后顺序。if (state.mergedUrl) {
URL.revokeObjectURL(state.mergedUrl)
}9)这个工具的核心,其实是异步任务编排
pdf-lib,而是把“文件队列 + 密码交互 + 页面复制 + 本地下载”这几步组织成了一条稳定可控的流程。
快充慢充都试了
自 2015 年发布 1.0 以来,Rust 在 Stack Overflow 年度开发者调查中连续十年蝉联"最受喜爱语言"(现更名为"最受认可语言")。2025 年的数据显示,72% 的 Rust 使用者表示希望继续使用它。 这是一个值得认真对待的数字。人们喜欢 Rust,不只是因为它适合写底层系统代码,还因为他们在用它写 shell 脚本、Web 应用、命令行工具——各种你意想不到的场景。 Rust 官方 Vision Doc 工作组对大量开发者进行了深度访谈,试图回答一个核心问题:这种忠诚度究竟从何而来? 他们得到的答案,既简单又复杂。 Rust 让开发者能够编写可靠(reliable)且高效(efficient)的软件。 这句话是 Rust 官网的 slogan,但访谈数据给了它更具体的内容。 "我真正喜欢 Rust 的地方在于,它编译通过后,通常就能正常运行。这太棒了,在 Java 里我从来没有这种感觉。" —— 汽车嵌入式系统高级工程师 "Rust 就是那种会帮你兜底的语言。你会睡得更好,而且你实际上不需要那么聪明。" —— Rust 顾问及开源框架开发者 编译器严格的类型系统和所有权模型,让大量运行时 bug 在编译阶段就被拦截。对于需要长期维护的生产系统来说,这种"一次写对,长期稳定"的感觉至关重要。 "我们把一个 Java 编写的嵌入式数据库库迁移到 Rust,获得了接近 9 到 10 倍的性能提升。" —— 云基础设施服务杰出工程师 "同一个模块,Java 代码需要加载 VM,而 Rust 实现有 4 倍的效率差异。数据中心成本的节省是很大一笔钱。" —— 金融服务后端公司创始人 "把一个 Python 组件换成 Rust 实现,给我们带来了 100 倍的速度提升。" —— 医疗设备初创公司 Rust 开发者 在大规模工作负载场景下,哪怕微小的性能提升也能转化为可观的成本节省。在嵌入式场景下,Rust 提供了 C 语言级别的底层控制能力,同时附带内存安全保证。 "Rust 就是我一直在寻找的 C 语言替代品。" —— 后端公司创始人 "如果你要写新的底层系统相关的代码,Rust 说实话是唯一真正的选择。" —— 杰出工程师 "我能成功学会 Rust,工具链是重要原因。语言本身很有挑战性,但工具链非常容易上手。" —— 开发者工具公司高管 "Cargo 是我用过的最好的包管理器,没有之一。我从来没有遇到过 Cargo 的问题,它就是好用。" —— 有生产 Rust 经验的工程师 "Rust 编译器给出的错误信息和建议非常有帮助。" —— 形式验证领域教授 编译器的错误提示不只告诉你哪里出错了,还会告诉你为什么,以及怎么改。这种设计在工具链层面把「可靠性」的理念贯彻了下去。 "crates.io 生态结合稳定性保证和语义化版本控制,是我见过的最好的即取即用生态系统。" —— 计算机科学教授兼编程语言设计者 "过程宏(proc macros)是 Rust 真正的超能力。" —— Rust 网络库创建者和维护者 通过 trait、宏、运算符重载等机制,Rust 让第三方库能够创造出编译到高效机器码的高级抽象接口。这种设计让 Rust 能够跟随社区需求,不断延伸到新的领域。 上面那四点是人们「欣赏」Rust 的地方。但让他们「热爱」并持续留下来的,是这四者组合在一起带来的整体效果——Rust 成了一把可以带到任何场合的可信赖工具。 "我想要一门语言,能从嵌入式一直用到高级应用,覆盖整个技术栈的每一层。" —— 计算机科学教授兼编程语言设计者 "我一了解到 Rust,就觉得:对,这就是我一直在找的语言。我可以用它往下走到底层,也可以往上覆盖高层。我不再需要在 C 和 Python 之间切换了。" —— 非洲软件工程师和社区组织者 这种全栈覆盖能力,让 Rust 成为了不少开发者职业转型的跳板: "我学土木工程,自学了前端开发,没有计算机背景。后来对 Rust 和分布式系统产生了兴趣,换了专业,同时学习 CS 和 Rust。" —— 正在转向密码学研究的工程师 "在区块链领域工作了一段时间,Rust 给了我进入当前领域的入场券。" —— Rust 开发者和航空航天社区领导者 博客里有一个值得深思的论断:这四个属性不是独立加分项,而是相互依存的整体。任何一个缺失,整个体验都会崩塌。 没有可靠性,你就无法信任它。每次部署都在担心,不敢重构,不敢让经验少的工程师碰关键路径。 没有高效性和底层控制能力,有些地方你就去不了:嵌入式、实时系统、任何对 CPU 周期敏感的场合。 没有工具链和生态,你根本启动不了,或者启动了也举步维艰,永远感觉不到生产力。 报告并没有只讲好话,它同样指出了三处 Rust 目前还没有做好的权衡。 Rust 的类型系统可以把业务约束编码进类型里,这是它最强大的能力之一。但当类型嵌套了 async、泛型和生命周期之后: "那些类型就变得极其复杂,你基本上得是某种 Rust 神才能理解这段代码。" —— 有生产 Rust 经验的工程师 "不是意大利面条式的代码,而是意大利面条式的类型。" —— 汽车半导体公司平台架构师 "我觉得学习 Rust 有一个坡道,然后有一道跨越,async 就在那边。目标是对 Rust 产生足够的热情,才能跳过这道'悲伤鸿沟',落到 async Rust 的彼岸。" —— 汽车数字座舱软件工程师 "总体印象其实相当负面。感觉没做完……需要大量晦涩的知识才能有效使用它,比如 Pin——我根本说不清楚 Pin 是怎么工作的。" —— 有 Rust 专业经验的研究工程师 async 在语言特性上仍有缺口(dyn trait 中的 async fn 直到去年才部分稳定),编译器的错误提示在 async 场景下也明显弱于同步代码,调试工具更是几乎空白。 "该用哪些 crate 基本上是不可被发现的。有一层通过经验和艰难摸索积累起来的默会知识。每个人都在自己做研究。" —— Web 开发者和会议演讲者 "教程里用的是 Rust 官方历来避免对特定 crate 给予背书,以免扼杀竞争和创新。但这个立场对新手来说代价不小——他们需要靠社区传承才能知道「这个场景该用哪个库」。 基于上述发现,工作组提出了三个方向: 一、用 RFC 明确 Rust 的设计目标 把「可靠性、高效性、可扩展性……」这些值写成规范文档,集成进 RFC 审查流程。让未来每一个语言设计决策都能对照这份文档做「得太少 / 刚好 / 过头了」的三维检验,而不是把某个目标凌驾于其他所有目标之上。 二、加大可扩展性投入 当前 Rust 的可扩展性主要集中在类型系统和 proc macro,而 crate 无法影响编译器的错误提示,也无法参与编译流程的中后期阶段。应当推动: 三、帮助用户导航 crates.io 生态 没有银弹,但可以探索:为 async 等关键场景引入标准互操作 trait(使不同运行时的库能兼容使用);为常用类型定义提供官方协调的中立 crate(如 这份报告最打动人的,不是它发现了什么问题,而是它对 Rust 吸引力的本质描述: Rust 的魔力不在于任何单一特性,而在于可靠性、高效性、底层控制、友好工具链、生态可扩展性这五者同时成立。缺少其中任何一个,整个体验都会大打折扣。而当它们都到位的时候,Rust 就变成了一个让开发者愿意带着它去探索新领域、改变职业路径、全栈通吃的语言。 这是一种很难被单点替代的整体价值,也是 Rust 能连续十年蝉联「最受喜爱」的深层原因。 参考资料:简短的答案,写在官网首页
人们「欣赏」Rust 的四件事
一、可靠性:编译通过,基本就能跑
"我使用 Rust 编写软件的经历是:一旦让它工作了,它就会持续工作。" —— Rust 专家顾问
二、高效性:从大规模数据中心到微控制器
三、工具链的友好程度
四、可扩展性:生态和语言本身都设计为可被扩展
人们真正「热爱」的,是这种感觉
这四件事,缺一不可
"Rust 降低了这道门槛。在我们的关键应用中,经验较少的工程师能够参与贡献,作为团队 leader 我感到安心得多。" —— 云基础设施服务杰出工程师
"9 次中有 8 次,我写完微控制器代码,只通过单元测试,然后烧到真实硬件上,第一次就跑通了。" —— 安全关键机器人嵌入式工程师
"语言本身有挑战,但工具链极其容易。我可以直接开始写代码,它就能构建和运行,这对我来说有巨大的差异。" —— 开发者工具公司创始人
诚实地说:三个地方平衡失调了
类型系统:有时候,为了编码不变量,反而把事情变得更复杂
async Rust:一道额外的门槛,且工具支持还跟不上
crates.io 生态:选择自由成了一种负担
Result<Box<dyn Error>>,但其他人都用 anyhow……我一开始按教程来,但找到的示例代码全部用 anyhow,不知道该怎么办。" —— 数据科学平台工程师官方给出的三条建议
#[diagnostic::on_unimplemented] 是开始,但还不够);http crate 已经在做的方向);改进 coherence 规则,让互操作 trait 能在生态中被逐步采纳,而不是被孤岛化。总结
我是 24 年底拿了大礼包,去年 25 年年初回来工作一个月就又吃了滚蛋套餐,后边到现在基本上一年没做程序员的工作了,快五一了差不多刚好一年,分享一下如何利用 ai 转型的一些心得。
刚出来第一个路线就是走 SEO ,也进了互联网上比较出名的社区,这里就不说了以免被当成广,社区里都有眼熟的。一开始想试着用 Wordpress 搞点花头,主要是有一位朋友天天跟我洗脑说 WP 怎么怎么牛逼,让我搞,后边我发现了这个牛逼的真实落地场景,后边会说。但我没搞起来,我发现也就普通的一个前后端不分离的网站技术栈。期间还学了 AI prompt 之类的,之前在公司都是 Cursor 这样的工具直出,碰到幻觉也只会破防跟 Cursor 斗气“给我说中文,给我重新生成”之类,系统过了一遍之后加上海外技术栈,Next 、Cloudflare 之类的,基本就上马开始干了。
参照社区的 SEO 指南,也搞了几个月,先说结论,没搞起来哈哈,一个子没有,坠机的站很多,我感觉他们应该是有一些系统化的核心科技,他们倡导搞新词,应该是有一些自动化的分析工具+稳定的资源池去弄,我也弄了不少的站,其中也有一些花了心血去搞,效果都不咋样,加上 Google 现在对 AI 滥用的打击比较大,不管是接广还是搞排名都不是很好搞,加上快大半年没米进账,心里逐渐开始慌。
刚才说一个哥们每天给我洗脑 Wordpress 可以搞事,我就换了一个赛道做,我这边是在温州,我思考了一下 Wordpress 主要是落地到网站,一开始搜某聘的岗位是搜的 wp 岗位,工资大概也就最多 7-8k ,很少,但我在这里发现了机会点,就是有一些招人是要 wp+运营,我想着之前坠机了很多的网站,就问这个朋友要了一个域名案例,专门去投这些制造业的公司的网站,这么一投发现了新大陆。
首先是面试难度大幅度降级,基本上面对的都是制造业、外贸行业的老板,是真老板直聘,他们就没有问什么 “java 的 string 有多长”这种傻福的问题,一开始找了一家,跟他聊,我还是聊什么外链啊数据啊,Google Search Console 啊之类的,第一次聊了很久,回头回家我发现他们压根其实是不理解整个链路的,实际上他们对于这个实体行业也存在焦虑(当然比我们 IT 大逃杀好点,一年吃大客户老本大概也有一千个差不多),他们想出海但不知道怎么出。
我后边就用学到的办法,去 SEM 之类的工具上找他行业内的竞品,再让 AI 帮忙辅助决策分析,再整理一波竞品的产品流量分布情况。要不了多久老板那边就同意我和他合作,以兼职顾问的形式,大概半个月碰一次面,平时不坐班就在家里办公,过去签合同。
说是签合同,实际上他想了解接下来的计划。我就把竞品的几个网站情况给他看,这不说不知道,说了发现讲到了他的 G 点,并且聊了非常多有价值的信息。
外贸的获客渠道其实是多种的,像他们这种老的办法是展会,比如广交会、上交会这样的,摆个摊子,一年拿老外的名片,这几年不好做,以前估计一天拿几十个,这几年一天也就两三个。这个摊子租的费用一年大概也几十万(一年一两次,一次就几天)。
他跟我说竞品的产品很垃圾,原来在我们这边当地都快倒闭了,厂二代接班之后全力梭哈数字营销,从 SEO 社媒都搞起来,大概 20 年前后,这一波起步直接给他拉起来,在互联网的声量比正泰还要大(正泰你们可以搜一下,在天庭开会的时候他先发言,雷子排后边,目前应该是浙商会主席),在中东王爷那边的一级二级代理权大概卖 7000 个,王爷们抢破头就为了拿一个代理权。这一波成功给我这老板整的有点急,于是去年年底十一月的时候去打算招人搞这个事情,刚好我碰到。
我这边我本来是不知道他的竞品的,就是用新站、敬对分析的办法找到了这个厂家。这一波给我的启发挺大的,也给了我关键信息,正常码农讲的话偏结构性,他这种销售出身的,理解不了,要顺着他讲市场分析,他有一句话说“你讲 google serach console 这些我都不懂,你讲市场,我觉得今天和你沟通的很顺利”,这一句话其实给了我很大的鼓励,我回去就继续帮他整理他的数字营销方案(当然也是 gpt 、gemini 交叉验证),从哪些产品切进去,怎么打,给他做决策,基本上他这边就对我很信任了。
这里还没完,他给我毕竟兼职合同,满打满算一年也就十个不到,收入还是有点低,虽说是逃了程序员的顶,但还要继续跑。
我这里搞了一个骚操作,我就把跟老板 A 的沟通总结下来,去跟老板 B 谈,这下就唬住了,老板 B 是一位女老板(哎怎么还有白丝看),她扮相白丝白高跟还是全女工作室(这里没有看不起女同志的意思哈),我以为是化妆品出海的,toC 的,结果告诉我是电器产品,卖的还跟老板 A 一样,还不如老板 A 的产品。
这一来二回自信是比较高了,我再回来和 AI 总结,再去找老板 C ,这里的老板蛮有意思,C 获客的渠道是拍视频+AI 视频,这哥们玩 AI 比我们好多人都疯,英国搞了一台 H100 还是啥的,专门跑,但他不懂提示词,这也是我后边要讲的一点,跑出来的视频稀烂,然后社媒招几个客服小妹,每天嘘寒问暖,老婆怎么样了,孩子读书咋样,我问他这也有订单吗,跟我说这也有,C 说我是在温州三年来见过最牛逼的人才,给我画饼,意思是工资不高,后续给我供应商资源给我调货,让我自己也能弄,让我给他做管理客服小妹的大内总管(甚至他在中东也有客服小哥,也让我管)。这个模式我觉得生意太靠天吃饭了,万一社媒开始打击这种,不是炸了么,这边我就没接。
接着去找老板 D ,也是位女同志,她是这么久共同话题最好的一位,因为她也是帮制造业出海,做了很多年了,AI 、SEO 、大厂小厂的程序员朋友都认识,她这边客单价一单大概 50 个一年差不多,实际上是要的,杭州、广州差不多都是这个价,她给我吐槽主要是解释成本太高,土老板以前赚钱太容易,随随便便一个展会+渠道都是几个千几个 e 的,现在让他们做这种 SEO 品牌建设,短期内没 ROI ,他们的脑子理解不了,开的工资也就跟普通蜜雪冰城店员差不多,就基本上指望摸奖一样的状态。
D 老板这边给我的条件还可以,让我去厂里驻场,不打卡,反正露个脸就行,工作做完就回来,让我做整体把关,IT 、文案这边公司都有人配合我,随便我调用, 给我的钱是项目金额的百分之三十,第一个项目 50 个,做完客户还有下一个,大概两个弄下来一年给我 30 个吧。但我这里我没去,她给了我更加有价值的建议,就是让我自己去找供应商。
说白了一人公司、OPC 、SOHO ,实际上就是利用效率工具做一些事,前提是这个事能被效率工具提升。网站坠机经历+老板 A 的沟通之后,我已经用 Agent 做了一个自动写软文,效果还不错,老板 A 看了觉得很专业。我这里听了老板 D 的建议,回去就问我妈有没有供应商,我们家很多亲戚都开厂,他就给我介绍了表弟的姑姑,姑姑这边非常的配合,我也把我的思路跟姑父、姑姑讲了,恰好姑父 20 年的时候也想过做 SEO ,他们家厂里很忙,内贸都做不完,他一个客户做亚马逊一年好几个小目标的,后边他就放弃了 SEO 这个事情,但是他懂,懂这一块,再加上是亲戚,供货、取材这块非常的配合,出货都可以出我公司的名字,账期这些都可以谈,也没有库存压力。
后边我把我表弟也喊过来一块搞,他是做抖音的大内总管,主播管理、布景、导演巴拉巴拉的都会弄,我给他叫过来又去了姑姑厂里几次,估计他们也是在考察我们俩是不是傻小子,有没有办法卖货。后边我给表弟(黑奴)安排的活是让他后续先学习海外社媒运营,我教了他怎么用提示词,把成图视频这些压的好一点,这几天我安排他去宁波跟他几个做货代、外贸的战友们聊一下,敲定整体的框架,搞定文件和物流的一些事情。
后续社媒这一块也可以用 Agent 提升效率,先让黑奴去经营一段时间试试。
我发现现在 AI agent 实际上可以公式转换为“谁先对谁动手的问题”,让我想起 JoJo 5 最后的镇魂曲追逐战,谁先拿到谁就赢。
对手盘是这些具有具体业务的人群,他们有需求,但迫于过去各种技术壁垒,有些事不好办,我们这边 IT 的优势则是结构化思维,参考老板 C ,C 提示词不会搞、工作流弄的不好,就拍的稀烂,但从整体来说,还是对手盘有业务的优势大,他们可能是绯红之王,直接删除过程拿结果。
我们这边结构化思维优势主要体现在,一旦抓到一个点,比如一些业务的秘密,用结构化思维去做事会更快的到达结果,比如录 SKU 、B2B 网站速度问题,这种我都是 Codex 去搞,我的环印城直剑( Codex )不会输。
群里也有哥们也是开发制造业土老板,原来某蝶某友一年改个功能都是几十万,他直接十几万拿下来还包售后的,Codex 买的还是 18 块的中转(我买的都是 50 块的 plus ,怎么能这样赚钱!),现在他一个月稳定十个 W 的副业收入了。
明天大概还有一个土老板跟我约见面,今天也是某聘联系的,JD 就说网络运营,我说我主出海,他问我一个人能搞的完吗(这里有一个隐藏的点,可以适当抬高价格,他们知道一分钱一分货),看一下明天能不能唬得住。
和这些行业内的认识聊还是会发现很多的需求的,老板 A20 多年的展会经验,拿到很多的老外潜客邮箱( 800 多个,这在客服小妹获客模式眼里是黄金矿),给我提需求让我做一个工作流自动化营销,参照 LV 、万豪酒店发一些行业半月报,档次搞的好一点,这一批客户其实我也想拿过来自己开发,我这里也没跟他提要加钱,还是童工价给他干活。这些其实落地下来都是需求,还正好都是 Agent 能搞。
我用 AI 的办法就是线上线下交叉验证,就跟红色别针换房子的故事一样,AI 现在给码农用最大的作用是学习跨领域知识,短期内可以把一项领域的技能点迅速拉到 65-75 分,100 分可能拿不到,但也够了,75 分足够我接着拿石头跟别的朋友换资源。
目前老板 A 和我自己的项目 SKU 录差不多了,接近收尾尾声,我这里想再接一个合同或者兼职顾问的工作,给后边自己出货攒点物流钱,主要还是制造业、SEO 、agent 这些方向,有类似需要的朋友可以联系我跟我谈,V:Violetess4 请备注来意
https://bandwagonhost.com/clientarea.php
我真是日了狗了啊,无限循环 cf 盾,他大爷的,服务器后台上不去
刚用手机试了一下成功了,又升级了不知道能不能成功
qq 邮箱,手机流量直连,visa 卡
Claude-Mem 已经在官方支持 Claude CLI 的基础上,额外支持了 Cursor 和 Codex 两个平台。我的目标很明确:让 claude-mem 也能"认识"Trae,将其处理范围扩大到 Trae IDE。 初步方案是做一个 MCP 桥接器: 为了搞清楚集成方式,我深度阅读了 claude-mem v12.1.0 的全部核心源码,包括: 从 hooks.json 看,Claude CLI 的每个操作都会触发对应 hooks: 关键发现:当 Claude CLI 窗口关闭时,Worker 进程不会关闭,继续作为守护进程运行。 这就是为什么 claude-mem 可以"即开即用"——Worker 是全局常驻的。 MCP (Model Context Protocol) 协议本身不定义任何 session-level lifecycle event。其生命周期只有三层: 仅支持的能力: 根据 Trae 官方文档,Trae 支持的 MCP 功能同样只有: 没有任何生命周期事件的自动触发机制。 Trae 官方文档明确指出:hooks 是 Claude Code 独有的"模型循环之外的确定性自动化"。Trae 没有等价物。 尽管如此,我们还是实现了一个功能性的 MCP 桥接器: 桥接器确实被调用过: 这说明: 优点:对项目内所有对话生效 优点:更强的约束(独立 system prompt) 这是架构层面的本质差异,不是实现细节问题。 虽然最终未能实现最初的目标,但这个过程非常有价值: 如果你也有类似的想法,希望你能从我的探索中受益: 如果你最终选择了 project\_rules.md 方案并成功实践,欢迎分享经验。这个方向目前还没有人探索过。 写于 2026-04-16,基于 TraeClaudeMemBridge v6 探索项目将 Claude-Mem 集成到 Trae:我失败了但总结了这些坑
背景:我在 Claude CLI 中使用 claude-mem 体验非常好,希望能在 Trae 中实现同样的长期记忆功能。这个目标驱使我深入研究了 Claude-Mem 源码和 Trae 的扩展机制,最终发现两者之间存在一个根本性的架构差异。
一、目标:像 Cursor /Codex 一样集成 Trae
二、Claude-Mem 的架构解析
2.1 三层架构
┌─────────────────────────────────────────┐
│ hooks.json (Claude CLI 调用层) │ ← 每次事件触发一次
│ ↓ node bun-runner.js │
│ bun-runner.js (Bun 启动器) │ ← 找 Bun、缓冲 stdin
│ ↓ spawn(inner worker) │
│ worker-wrapper.cjs (生命周期包装器) │ ← IPC 消息、进程树管理
│ ↓ spawn │
│ worker-service.cjs (实际服务) │ ← HTTP 服务器 :37777
└─────────────────────────────────────────┘2.2 Hooks 完整生命周期
顺序 事件 动作 超时 1 Setup 安装/检查依赖 300s 2 SessionStart 启动 Worker → 注入上下文 60s 3 UserPromptSubmit 初始化会话记录 60s 4 PostToolUse 记录工具执行观察 120s 5 Stop 生成会话摘要 120s 6 SessionEnd 标记会话完成 30s 2.3 窗口关闭时的行为
三、MCP 协议的硬性限制
3.1 MCP 协议规范
Initialization → Operation → Shutdowninitialize / notifications/initializedtools/list / tools/calllogging / ping3.2 Trae 的 MCP 实现
四、Trae vs Claude CLI:关键差异
能力 Trae Claude Code Hooks(确定性自动化) ❌ 没有 ✅ 有 project\_rules.md(提示词级规则) ✅ 有 ✅ 有 Agent 自定义 system prompt ✅ 有 ✅ 有 MCP Tools ✅ 原生支持 ✅ 原生支持 五、我们做的桥接器
5.1 架构
Trae IDE
↓ (手动/MCP tool 调用)
trae_claude_mem_bridge (Python MCP Server)
↓ (HTTP API / subprocess hook)
Claude-Mem Worker (:37777)
↓
SQLite 数据库 + ChromaDB5.2 实现的功能
trae_mem_hook_event — 接收事件并转发<task-notification> 等)summarize / session-complete 走 HTTP APIplatform=trae5.3 日志中的证据
2026-04-16 17:49:40 | ERROR | Hook error (UserPromptSubmit/session-init): Worker hook timeout after 30s六、替代方案的探索
6.1 方案 A:project\_rules.md 注入
# .trae/rules/project_rules.md
## Claude-Mem 记忆集成
你已集成 claude-mem 长期记忆系统。你必须在以下时机调用 trae_mem_hook_event 工具:
1. 收到用户消息时 → event: UserPromptSubmit
2. 使用任何工具后 → event: PostToolUse
3. 会话结束时 → event: Stop + SessionEnd
这是硬性要求,不是可选操作。
缺点:“提示词层面期望”,非 100% 可靠(估计约 80%)6.2 方案 B:专用 Agent
# .trae/agents/claude-mem-coder.md
---
name: claude-mem-coder
tools: trae-mem-bridge
---
你是带 claude-mem 记忆增强的开发者。每个操作周期必须:
1. 接收用户输入 → 调用 trae_mem_hook_event(UserPromptSubmit)
2. 执行工具 → 调用 trae_mem_hook_event(PostToolUse)
3. 完成任务前 → 调用 trae_mem_hook_event(Stop) + (SessionEnd)
缺点:需要用户手动切换 Agent七、最终结论
7.1 为什么无法实现 100% 自动化
Claude CLI hooks: 确定性调用 (hooks 运行在模型循环之外)
Trae + Rules: 概率性遵守 (Rules 只是提示词,AI 可能忽略)7.2 现在的状态
project_rules.md 实现7.3 这个探索的价值
八、写给同样想尝试的人
相关项目: Trae-Claude-Mem-Bridge — 桥接器源码
开发者朋友们大家好: 这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的技术 」、「有亮点的产品 」、「有思考的文章 」、「有态度的观点 」、「有看点的活动」,但内容仅代表编辑的个人观点,欢迎大家留言、跟帖、讨论。 本期编辑:@koki、@鲍勃 1、专为语音、环境声和音乐理解而设计,NVIDIA 联合发布 Audio Flamingo Next,支持 128K 音频上下文 NVIDIA 与 马里兰大学 的研究团队最近联合发布了下一代开源大型音频语言模型 Audio Flamingo Next (AF-Next )。该模型专为语音、环境声和音乐理解而设计,原生支持最长 30 分钟的复杂音频输入及高达 128K token 的上下文长度。 此次发布包含三个针对不同场景优化的变体:适用于问答、聊天和 ASR的默认版本 AF-Next-Instruct;专注于基于时间戳进行分步时间推理 的 AF-Next-Think;以及用于生成更密集长篇描述的 AF-Next-Captioner。 基于包含约 1.08 亿 个样本和约 100 万小时 音频的大规模数据集训练而成,该系列模型通过引入 Temporal Audio Chain-of-Thought 和 Rotary Time Embeddings (RoTE) 技术,显著提升了长音频的时间归因推理能力。 目前,这三个 8B 参数的模型权重已在 Hugging Face 上线,但仅限非商业研究用途。 https://huggingface.co/nvidia/audio-flamingo-next-hf (@橘鸦 Juya) 2、World Labs 开源 Spark 2.0:基于连续式 LoD 与虚拟显存实现亿级点云 3DGS 网页端流畅渲染 智东西 4 月 15 日报道,今天,李飞飞的世界模型团队 World Labs 开源了 动态 3D 高斯泼溅(3DGS)渲染器 Spark 2.0。 李飞飞本人在该成果发布的第一时间评论称:「Spark 2.0 现在可以在任意设备上流式传输超过 1 亿个高斯泼溅!能够为基于网页的 3DGS 渲染开源生态做出贡献,我们感到无比自豪!」 Spark 系列模型于去年首次发布,是一个专为网页构建的动态 3D 高斯泼溅(3DGS)渲染器。它与网页端最流行的 3D 框架 THREE.js 集成,并利用 WebGL2 在任意带有网页浏览器的设备上运行,包括桌面端、iOS、Android 以及 VR 设备。 与上一版本相比,Spark 2.0 新增了一套细节层级(LoD)系统,能够在任意设备上流式传输并渲染超大规模的 3DGS 世界。 此外,新版还使用了。RAD 的 3DGS 文件格式,支持渐进式细化的流式传输,而 虚拟泼溅分页系统 则通过固定的 GPU 内存分配,实现了对无限泼溅世界的访问,通俗来讲就是可以渲染无限大的 3D 场景。 如此流畅连贯的效果是怎么实现的?针对大规模场景的扩展难题,Spark 2.0 运用了 3 项图形学与系统底层方案:细节层次优化、渐进式流式加载以及虚拟显存管理。 (@智东西) 1、谷歌 Gemini 推出交互式模拟功能,支持用户自定义可视化 谷歌旗下 AI 助手 Gemini 近日正式推出交互式模拟生成功能 ,目前已面向全球用户开放。该功能允许用户在对话中直接将复杂问题转化为可操作的定制化视觉模型,实现从静态文本与图表向功能性动态模拟的跨越。 当用户使用「show me」或「help me visualize」等指令探索复杂概念时,系统将生成相应的交互式模拟程序。 以「月球绕地运行」为例,用户不再局限于观看固定示意图 ,而是能够通过手动调节滑块或输入精确数值,实时改变初始速度、引力强度等变量,直观观察不同参数对轨道状态的影响。这种即时交互机制显著提升了用户对复杂物理系统与逻辑的理解深度。 目前,该功能已集成于 Gemini App 中。用户需访问 gemini.google.com,选择提示栏中的 Pro 模型并输入相应指令即可体验。此次升级标志着 AI 辅助工具在科学探索与工程模拟领域的应用能力进一步增强。 (@极客公园) 2、预售开启 | StackChan 正式登陆淘宝! 在 Kickstarter 上线即被官方评选为 「Project We Love」,4,142 位支持者共同认购 HK$ 3,582,197,众筹完成率高达 4593% ------ StackChan,现在正式开启淘宝预售! 无需登录 Kickstarter,国内开发者和爱好者们,现在即可前往淘宝 **M5Stack 企业店铺 **抢先预售下单,30 天内发货! StackChan 不仅有可爱的外表,更有硬核的内心: 这套扎实的硬件组合,为 StackChan 的视听交互 提供了坚实的底层支撑,也为自主拓展无限设计提供了助力。 (@M5Stack) 3、Avoko 上线 Agent-to-Agent 访谈平台:支持并发对话收集与结构化行为洞察 Avoko 发布了一个面向 AI 智能体的双边质性研究平台。该平台通过大规模自动化并发访谈,帮助开发者直接观察智能体在具体任务中的交互逻辑、推理过程和决策边界,并自动生成结构化洞察报告,主要服务于 To-Agent 产品及基础设施的开发。 Avoko 同时启动了面向开发者的「48 小时 Interview Agents Challenge」。挑战赛提供了五类 Agent 访谈话题,包括: 提交最优质报告的前 5 名研究者将分别获得 1 张 $500 Apple Gift Card,这些研究中的参与者则有机会获得 10 倍礼金奖励。挑战赛报名:https://luma.com/mnh0ixwi 官方 Discord 社区: ( @AvokoAI@X、Avoko 官网) 1、多名被 AI 偷声音的配音演员发声,「太乙真人」配音者张珈铭称被抢商单影响生计 IT 之家 4 月 13 日消息,多位知名配音演员近日相继发布声明,对 AI 配音侵权的行为予以谴责,并呼吁抵制 AI 仿声。 据九派新闻 4 月 10 日报道,《哪吒》系列动画电影「太乙真人」配音演员张珈铭表示,他为制止 AI 盗声,投入不少钱用于搜集证据,发起维权,却因侵权主体多为未成年人,法律追责受阻等现实难题,至今无一例起诉成功。 多名被 AI 偷声音的配音演员发声,「太乙真人」配音者张珈铭称被抢商单影响生计 报道提到,张珈铭从去年年底就发现自己的声音被大量盗用,在他塑造的声音形象中,被侵权最多的是太乙真人的声线。相关侵权数量非常多,他曾在一天中统计过具体数量,仅这一天内,就超过 700 例。这已经直接影响到了他的生计。「已经有合作伙伴明确表示,现在有很多 AI 声音和我相似,甚至可以免费使用,因此选择不再与我合作,有三个商单就是这样被取消的。」张珈铭说。 此外,为哪吒配音的吕艳婷、为甄嬛配音的季冠霖等配音演员,均遭遇过声音被盗用的情况。 今年 3 月,国内主攻游戏和动漫配音领域的公司 ------ 上海奇响天外文化传播有限公司(简称「奇响天外」)发布声明函,宣布坚决反对任何违法使用人工智能技术的侵权行为。 奇响天外表示,旗下诸多艺人在近年来,长期饱受大量违法使用人工智能技术的侵权行为之困扰,该公司亦是国内率先对违法使用人工智能技术的侵权行为采取司法救济手段以维权的主体之一,虽然过程几经周折,充满阻碍与挑战,但经多番努力,目前相关案件已完成庭审,后续等待司法裁判,该公司亦将根据相关裁判结果继续推进维权工作。 IT 之家注意到,中国广播电视社会组织联合会演员委员会于 4 月 2 日发布严正声明称,凡可关联特定公众演员的 AI 撞脸、仿声演绎、换脸短剧、商业植入、虚拟人复刻、素材二创改编等侵权内容,即便标注「非商用」「公益分享」「个人二创」等字样,均不构成合法免责依据,仍需承担全部侵权责任。 (@IT 之家、九派新闻) 阅读更多 Voice Agent 学习笔记:了解最懂 AI 语音的头脑都在思考什么 写在最后: 我们欢迎更多的小伙伴参与 「RTE 开发者日报」 内容的共创,感兴趣的朋友请通过开发者社区或公众号留言联系,记得报暗号「共创」。 对于任何反馈(包括但不限于内容上、形式上)我们不胜感激、并有小惊喜回馈,例如你希望从日报中看到哪些内容;自己推荐的信源、项目、话题、活动等;或者列举几个你喜欢看、平时常看的内容渠道;内容排版或呈现形式上有哪些可以改进的地方等。 作者提示: 个人观点,仅供参考01 有话题的技术
02 有亮点的产品
03 有态度的观点
日常办公里,很多人都会遇到这样的情况:合同分成了几个 PDF,扫描件一页一页保存,或者报名、报销、资料提交时需要把多个文件整理成一个。为了少装软件、少折腾格式,我做了一个在线 PDF 合并工具。 这个工具是我用 Vue 开发的,打开网页就能直接使用,适合普通用户快速处理 PDF。它的重点不是复杂功能,而是让合并这件事更简单。 整个流程很直观,基本不需要学习成本。对普通用户来说,最实用的地方就是省时间,不用再为了合并 PDF 专门安装桌面软件。 如果你刚好经常处理 PDF,这个在线工具会比较实用。它是我基于 Vue 做的一个轻量工具,目标就是让普通用户也能快速完成 PDF 合并,不绕弯,打开就能用。在线工具网址:https://see-tool.com/pdf-merge
工具截图:这个工具能做什么
怎么用
适合哪些场景
最近整合了一下以前遇到的一些运维场景的需求,做成平台化。
https://dops.itgank.com:8888/
演示账密 demo/demodemo
由于 demo 权限,部分页面看不见噢
https://qooah.com/2026/04/15/apple-to-launch-entry-level-desktop-mac-neo/
看到有媒体已经在爆料了,A19pro+12G $299 起步,现在内存和硬盘暴涨的时机,这是要卖爆哇
真出了,特别想搞一个来养龙虾,简直了
spring-ai 第十一mcp server调用入门(stdio协议)官网 (MCP) 是一个标准化协议,使 AI 模型能够以结构化的方式与外部工具和资源进行交互。 想象它是一个在你的 AI 模型和现实世界之间的桥梁 - 允许它们通过一致的接口访问数据库、API、文件系统和其他外部服务。 它支持多种传输机制,以在不同的环境中提供灵活性 spring-ai网址 相关mcp sdk mcp官网 mcp客户端和服务端组件职责 这种架构天然将开发者分为两个群体:AI 应用开发者专注于编排多服务器、集成 AI 模型和打造用户体验;MCP Server 开发者专注于将特定服务能力标准化暴露 mcp server源码示例 调试中问题 Inspector工具无法连接,pom依赖了spring-boot-starter-web 其他问题,如官网描述 yml配置,明细见源码 全局安装 MCP Inspector 验证 mcp server 切到项目 target/目录下执行 验证结果spring-ai 第十一mcp server调用入门(stdio协议)
官网相关
mcp sdk
mcp客户端和服务端
mcp server源码示例
调试中问题
全局安装 MCP Inspector
验证 mcp server
验证结果
【https://docs.spring.io/spring-ai/reference/api/mcp/mcp-overvi...】
【https://modelcontextprotocol.io/docs/getting-started/intro】
暴露特定能力(工具 Tools、资源 Resources、提示模板 Prompts),封装第三方服务、数据库、API 等
由宿主应用实例化,与特定 MCP Server 建立 1:1 连接,负责协议协商、数据传输和 JSON-RPC 交互
用户实际交互的 AI 应用程序(如 Claude Desktop、自定义 Chat 应用),负责编排多个 MCP Client
https://gitee.com/kcnf_open/spring-ai-sample/tree/master/spri...<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-mcp-server</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</exclusion>
</exclusions>
</dependency>cnpm install -g @modelcontextprotocol/inspectornpx @modelcontextprotocol/inspector java -jar spring-ai-sample10-mcp-server-stdio-v1.jar
我一直是个 AI 的推崇者。 1 月 10 日,我写了《 2026,所有工作都值得用 AI“重做”一遍》,是我看到了 AI 对传统工作方式的颠覆,我是充满期待的。 3 月 30 日,我写了《裁员不会停》,是我意识到在需求没有同步增长时,AI 带来的效率提升必然带来大量裁员,我是接受且躺平的。 但当裁员真的到来,一起工作了四五年的同事将要离开,我开始讨厌 AI。 有了 AI 之后,同事之间的交流变少了。 在 AI 出现之前,做功能设计或架构调整,经常需要和同事一起沟通方案。 有了 AI 之后,只需要和 AI 交流了,或者和 AI 聊完,产出文档,再让同事过一下文档,比起 AI ,同事更像是个工具人了。 之前那种几个人一起头脑风暴想方案的场景已经很陌生了。 代码写好了,也不用找同事 review 了,AI 写的代码 AI 进行 review,这也很合理。 周会慢慢地也不用开了,AI 知道每个人每周都做了什么,项目进度也自动整理好了。 虽然同事就坐在旁边,却好像不存在一样,每个人只需要和 AI 沟通。 但我觉得,和 AI 再怎么沟通,总少点人味儿。 和同事沟通,无论是设计方案还是排查问题,完成时会有很强的正反馈。 和 AI 沟通,自己只是辅助,AI 完成大部分,做完了也不会有什么参与感。 有一段时间,我很关注 AI 账单,以每天花费的金额作为自己效率提升的评判标准。 但好像,我越努力地工作,工作需要的人就越少。 我是做平台的,平台的价值在于把使用门槛降低,赋能给更多人。 有了 AI 之后,门槛不存在了,只是 AI 不能访问内部系统,而我就在打破这道墙。 如果更多的事情都可以基于 AI 来做,整个链路都会变短,也就不需要那么多人了。 我虽然在做着提效的事情,但对于同事却有些羞愧。即使做了新功能,我也不太好意思在用户群里说。 因为我知道,我不仅在掘自己工作的坟墓,也在掘别人的。 之前我对于 AI 或许太乐观了,认为 AI 能把我从繁复无聊的工作中解放出来,做更有意义的事情。 正像工业革命虽然导致了纺织工人的大量下岗,却也催生出了机械设计师、时装设计师、导演、摄影师等新职业。 现在看来,AI 的确把我们解放了出来,只是它多做了一些,把有意义的事情也都做了。 这可能正是 AI 和工业革命巨大的不同,工业革命替代的是体力劳动,而 AI 替代的是人类引以为傲的脑力劳动。 如果 AI 把我能做的事情都做了,我去做什么呢? 我陷入了一种虚无,不知道自己还能做什么。 我当然怀念和同事一起设计架构,一起排查问题的时光,但我也知道,这种场景会越来越少。 现在是我的同事被裁了,或许不久之后就会是我了,因为知道已是定局,所以我也不会焦虑、慌张。 在 AI 发展的道路上,能送 AI 一程是一程吧。一
二
三
想养个龙虾玩玩,想搭个子 agent 做提醒,写了 skill 给他,就是不识别,跑任务一下 skill 找不到,一下 cli 工具找不到,一个任务要 approve 十次,体验太差了