註冊並分享邀請連結,可獲得影片播放與邀請獎勵。

檢索結果 唯一在使用的賬號
唯一在使用的賬號 貼吧
一個關鍵字就是一個貼吧,路徑全站唯一。
建立貼吧
用戶
未找到
包含 唯一在使用的賬號 的搜尋結果
看完了 Claude Code 主席 Boris 的播客采访,他从去年 11 月起没有手写过一行代码,每天提交 10 到 30 个 PR,同时跑 5 个 agent。 听完 Lenny 对他一个多小时的采访,信息密度很高,分享一些我的收获。 1️⃣ Claude Code 的起源:一个人,两个赞 最初就是 Boris 一个人在 Anthropic Labs 搞的 side project,同期他也做了很多其他的side project,大部分都死掉了。 选了终端是因为一个人开发最简单,在内网发了篇帖子介绍,两个赞,没人觉得一个 CLI 能成事。 但是迄今为止这东西贡献了 GitHub 上 4% 的 commit,如果算上私有仓库,这个比例还会更高,Semi-Analysis 预测年底到 50%。 从两个赞到覆盖 50% 的 commit,中间只隔了不到两年,AI时代的产品进化速度可见一斑。 2️⃣ 核心产品哲学:为六个月后的模型而建 Boris 反复强调这一点,Claude Code 早期只能写 20% 的代码,他自己都不信任它。 但产品架构留好了扩展空间,等 Opus 4 一出来,PMF 瞬间 click。 现在做 AI 产品的人,最大的错误就是按今天的模型能力做产品设计。 你应该赌的是下一代模型。赌对了你起飞,赌错了你也没亏多少。 3️⃣ 委派,而非指示 很多人做 AI 产品的思路是给模型设计死板的 step 1 → step 2 → step 3 workflow,把模型当成一个系统里的函数来调用。 Boris 说一年前你确实需要大量 scaffolding 来兜底,但现在完全不需要了。 给模型工具,给它目标,让它自己想办法。 对于 Agent 开发者来说,这点尤其重要。别太迷信 LangChain、LangGraph、AutoGen 这类框架,别尝试用流程图把模型框住。 Agent 应该为目标负责,而不为流程、中间态、执行路径负责。 这就是 Claude Code 一直强调的:delegate, don't dictate。 4️⃣ 编程已经被解决了,接下来是工具和多模态 Boris 认为 coding 对模型来说已经基本解决了接下来的方向是让模型接入更多工具,让 Agent 能操作的东西变多。浏览器、API、数据库、部署流水线,全都会变成模型的手和脚。 更有意思的是他提到一个现象:提升模型 X 方向的能力通常也会提升 Y 方向。模型能力的增长不是线性叠加,而是能力之间互相加速。 这意味着一旦某个能力突破阈值,其他方向也会跟着跳一级。 5️⃣ 软件工程师这个岗位会消失,Builder 会出现 Boris 的判断:也许今年年底,AI 就能包揽 100% 的代码编写。 传统意义上的软件工程师将不复存在。取而代之的是一个集合了产品、研发、测试、部署的综合岗位,大概叫 Builder。 他观察到 Anthropic 内部已经在发生这种融合。设计师在写代码,PM 在跑 Agent,工程师在做产品决策。三个角色的边界已经开始模糊,50% 的日常工作其实是重叠的。 有个数据很说明问题:Boris 在推特做了个调查,70% 的工程师和设计师表示有 AI 之后更享受工作了。不是因为工作变少了,是因为终于可以把时间花在真正重要的事情上。 6️⃣ 自然语言是新时代的编程语言,编程语言是新时代的汇编 未来编程可能就是和 AI 交互。手写代码会变成和今天写汇编一样的存在:深入底层,写一些计算机能直接看懂的东西,极少数人需要做,大多数人永远不碰。 自然语言会变成新时代的编程语言。编程语言会变成新时代的汇编语言。 怎么理解要不要学编程这件事?Boris 给了一个非常精准的历史类比。和程序员最像的历史角色是 1400 年代欧洲的抄写员,垄断了所有的读写工作。古腾堡印刷术出来后 50 年,印刷量超过此前 1000 年的总和,价格暴跌 80%,识字率从 1% 飙到 70%,抄写员这个职业直接消失了。 编程正在经历一模一样的过程,你可以觉得这话狂。但说这话的人,曾在 Meta 负责过 Facebook、Instagram、WhatsApp 的代码质量基础设施,是那个时代最顶级的 infra 工程师之一。 他不是不会写代码,他是写了太多代码之后,深刻认识到代码从来都只是手段,build才是目的。 7️⃣ 200% 的提效,到底意味着什么 Anthropic 工程师人均 PR 数提升了 200%。 200% 听着好像还好,但 Boris 之前在 Meta 就是做工程生产力的,负责 Facebook、Instagram、WhatsApp 全线的代码质量基础设施。 在那个体量的公司里,工程效率提升几个百分点都是巨大的飞跃,足够写进年度 OKR 当 两点。 200%,是完全不同量级的事情。 这就是为什么他每天能 ship 10 到 30 个 PR 还觉得很正常,游戏规则已经彻底变了。 8️⃣ 代码现在是真的廉价 这个观点对老工程师的冲击最大。 AI 现在会写大量的即时代码,用完就丢,只是为了完成某一次任务。跑个数据分析、做个格式转换、写个一次性脚本,用完就删,毫不心疼。 之前代码是很贵的。你需要几年的学习成本才能写出能跑的东西,coding 和 debug 的时间成本都很高昂。 所以老一代工程师对代码有一种天然的珍惜感,写出来的东西要 review、要重构、要维护。 但现在代码的边际成本趋近于零。认识到代码很便宜,非常重要。很多老工程师过不了这个心理关,还在用写精品代码的心态对待每一行输出。这就像印刷术时代还在手抄经文。 9️⃣ 给企业的建议:别限制 token,别省钱 Anthropic 内部有些工程师每月 token 花费过十万美元。 Boris 的建议:给工程师无限 token 预算,让他们可以大胆探索落地想法,甚至允许 token 费用超过工程师本身的薪资。 听着疯狂?对比人均产出提升 200% 的数据,这笔账太好算了。真正有创造力的想法往往来自某个人不计成本地试了一个看起来太疯狂的点子,你限制 token 就是在限制创新的上界。 用 Boris 的话说:先别急着衡量 ROI,先让工程师用起来,价值自己会显现。 🔟 成为通才,而不是单一技能点的专家 Boris 给工程师的职业建议:尝试真正成为一个通才。只会一个垂直能力的人未来会越来越吃亏。 未来几年能获得最大回报的那批人,不只是 AI native、拥抱 AI 的人。还要充满好奇心,知识广博。 你还得懂产品、懂设计、懂用户心理、懂商业逻辑。 单点深入的价值在被 AI 快速拉平,广度 × 判断力才是新的护城河。 1️⃣1️⃣ 一些CC的使用建议 Boris 分享了几个 Claude Code 的实战 tips: 1.一直用最强的模型。经济型模型可能因为能力不够强需要多次尝试,最终的 token 成本也许比最强模型更贵。考虑到时间成本更是如此,目前最强的是 Opus 4.6 2.多用 Plan Mode。先让模型理解全局再动手,效果远好于直接开干 3.尝试多种使用形态。终端、桌面应用、移动端,每种形态适合不同场景。Boris 提到 Anthropic 的设计师更多用 Desktop App 里的 Code tab,不需要打开 IDE 就能调用同等能力 他还推荐写好 CLAUDE.md,这跟我之前分享的 Claude Code 最佳实践完全吻合。 最后的彩蛋:味噌哲学 Boris 是乌克兰人,加入 Anthropic 前住在日本中部乡下好几年,是整个城市唯一的工程师和英语使用者。每周骑车去农贸市场,和邻居交换自制食物,学会了做味噌和发酵食品。 主持人问他 AGI 之后的计划?继续做味噌。 一个在日本乡下做味噌的乌克兰人,回到硅谷造了个改变所有工程师工作方式的工具。 编程是建造的方式,味噌也是。工具会变,建造的欲望不会。 这种人你很难不服。
顯示更多
兄弟们,今晚别再刷抖音消磨时间了 这条 1 小时播客,专访 Claude Code 负责人。 抽出一小时,沉下心来看完这套视频,你对 vibe-coding(氛围式编程)的理解,会超过 100 门付费课程。 它能教会你自主搭建、自动化处理各类事务 今晚认真学完的兄弟,明天醒来就会掌握一项 未来两年里绝大多数人都不具备的硬核ai能力。 而选择跳过的人,或许明年此刻 还在刷着剧,困惑着生活为何始终毫无起色 路怎么走,全看你自己的选择。 积极学习 拥抱ai!
顯示更多
0
3
72
15
轉發到社區
今天 X 又在发工资啦,不知道大家能拿到多少耶 时间线上已经看到不少到账截图,但每次聊到海外平台收款,还是有很多伙伴卡在最基础的一步: 钱赚到了,却没有合适的账户接。 有人没有港卡,有人 Wise 还在排队,也有人之前的账户被风控后,才发现自己从头到尾只有一条收款路径。 更别说做 Web3 的人,经常会遇到海外平台订阅、交易工具付费、活动报名或者临时出入金。 所以我最近觉得,Starryblu 还挺适合圈内人顺手开一个。加上我目前看到可用国内外场景很多,适合配置一下 它不是传统银行,更准确地说,是一款面向跨境用户的多币种账户和支付工具,由新加坡持牌支付机构 WOTRANSFER 运营,背后也是大家比较熟悉的熊猫速汇体系。WOTRANSFER 目前持有 MAS 大型支付机构牌照,用户资金存放在 OCBC 的独立保障账户中。 为什么我觉得可以顺手开一个? 第一,给自己多留一个海外账户入口。 做自媒体、自由职业或者 Web3,海外收入来源越来越多,但收款工具并没有想象中稳定。 Wise 可以用,港卡也可以用,但任何一条链路都不适合被当成唯一答案。Starryblu 最大的价值,不一定是立刻取代谁,而是让你在原来的账户之外,再多一个能收、能换、能转、能消费的备用选项。 平时不用没关系,真遇到平台限制、账户审核或者临时需要海外付款时,手里至少还有后路。 第二,开户门槛相对简单。 整个申请在线完成,官方给出的流程是提交身份资料、完成验证后入金,正常情况下几分钟就能走完基础开户流程,不需要专门飞去新加坡线下办理。 对没有港卡,又暂时开不下 Wise 港户的人来说,这一点很实际。 第三,一个账户可以管理多种常用货币。 目前支持 SGD、USD、HKD、EUR、GBP、JPY、CNH、AUD、NZD、CAD 等 10 种主流货币。海外收款后不一定要马上换成人民币,也可以根据后续的消费、转账或者投资需求继续持有其他币种。 对经常接海外合作、收平台分成的人来说,少一次来回换汇,资金安排也会灵活一点。 第四,不只是收款,国内消费场景也能接上。 Starryblu 已经支持在中国境内扫描微信支付商户码,或者出示付款码完成消费。也就是说,账户里的海外资金不一定非要先转进银行卡,再绕一圈才能花。 这个功能看起来不起眼,但对经常在海外收款、国内生活的人来说,体验会顺很多。 第五,跨境转账和支付可以放在同一个工具里处理。 账户支持多币种管理和国际转账,后续也在推进 Starryblu Card。不过官网中文页面目前仍标注卡片项目需要完成相关监管批准后才会正式生效,所以实体卡这一块别提前当成已经完全落地,等实际开放更稳。 我对这类工具的态度一直很简单:哪个好用用哪个 先开户,小额入金,自己完整跑一次收款、换汇、支付和转出的流程。确认每一步都符合自己的使用习惯,再决定后面怎么用。 Wise 正常就继续用 Wise,港卡能开也照样开,Starryblu 没必要替代谁,能在关键时候多提供一个选择,就已经有价值了。 但真到需要收钱的时候,最好别从开户注册开始研究。 申请链接: 邀请码:MWQK00R 走我链接能获得有20新币消费券 开户资格、汇率、手续费以及新用户奖励可能随地区和活动变化,具体以 App 实际页面为准。 国际支付工具这种东西,真的不嫌多,尤其是经常用 GPT、Claude、海外 SaaS,或者在 Web3 圈里折腾的人,一张能正常处理海外支付的卡,早晚都会用上。
顯示更多
0
97
54
3
轉發到社區
《🔥如何使用DeepSeek选股炒股,让收益跑赢95%的散户?六年股民实战分享!》 本文为入市六年老股民的真实实操心得,全程落地可复制,无空泛理论。 一、炒股六年亏掉一辆车,直到我换了一种选股方式 先上一组真实数据:我今年的收益率是37.6%。不算惊人——肯定比不过那些抓到翻倍妖股的幸运儿。 但支付宝给我弹了一个提示:「你的收益超过了95%的基民和股民」。那会儿我才意识到:原来A股里大部分人今年压根没赚到钱。 我炒股六年,前五年都在亏。不是小亏,是把一辆本田雅阁亏进去的那种。我试过追涨停板、学过波浪理论、研究过缠论、还花过8000块报过一个「游资操盘手」的课。结果呢?亏得更快了。 后来我终于想明白了一件事:我根本不是在做投资,我是在赌博。我所谓的「选股」就是刷雪球看谁被讨论得多、看东方财富的评论区哪只票热度高、看哪个大V又发了代码。 我没有做过哪怕一次完整的公司基本面分析——因为我根本不知道怎么做,也没有时间做。直到DeepSeek出现。 梁文锋的幻方量化是DeepSeek的母公司——中国最顶级的量化对冲基金之一。他们训练出来的AI模型,骨子里就带着金融分析的基因。这个工具让我第一次觉得——原来一个散户也可以像机构那样做研究。 今年我选出来的每一只股票,都经过了DeepSeek至少三个维度的深度分析。没有一只是因为「听别人说好」就买的。这篇文章,就是我今年用DeepSeek选股的全套方法论。 二、DeepSeek选股的「铁三角」——基本面+技术面+情绪面 机构选股不是靠「感觉」或者「消息」——他们靠的是一套系统化的分析框架,覆盖三个核心维度:基本面(这家公司值不值得买)、技术面(现在是不是买入的好时机)、情绪面(市场其他参与者在想什么)。 散户和机构最大的差距就在于——散户三个维度一个都不看(或者只看技术面画几条线),机构三个维度都有专职团队覆盖。DeepSeek帮我把这三个维度的分析能力,从「机构专属」变成了「散户可及」。 三、基本面分析——五个提示词挖出财报里的「隐藏信息」 基本面分析是选股的核心。但A股有5000多家公司,每家公司的年报动辄两三百页——你就是辞职在家全职读也读不完。 DeepSeek的价值就是:它能在几分钟内啃完一份年报,帮你提炼出最关键的信息。但不是你随便问一句「这家公司怎么样」就行——你得问对问题。以下是我反复验证过的五个「挖金问题」,每一个都对应一个具体的选股逻辑。 第一问:盈利质量——公司赚的是真金白银还是纸面利润? 很多公司报表上的净利润很好看,但实际上根本没收到现金——全是应收账款。 你要让DeepSeek帮你做这个「揭老底」的检查:「分析[公司名]最新年报,计算经营性现金流与净利润的比值(近三年趋势),检查应收账款占营收的比例是否异常上升,判断公司的盈利质量是否存在水分」经营性现金流长期低于净利润、应收账款增速持续高于营收增速——这两条红灯同时亮起,直接pass。 我今年用这个提示词排除了至少4只「看上去很美」的股票。 第二问:成长持续性——增长是加速还是减速? 看增长不能只看「有没有增长」,要看「增长的加速度」。连续三年营收增长30%-25%-18%,增速在递减——这是成长性衰竭的信号。 提示词:「分析[公司名]近三年营收和净利润的同比增速变化趋势,计算复合增长率,判断公司的成长是加速还是减速,分析减速的主要原因是否具有持续性。」 第三问:护城河——凭什么竞争对手抢不走它的生意? 毛利率是企业护城河最直观的量化指标。如果一家公司能连续多年维持高于行业的毛利率,说明它有某种竞争对手无法轻易复制的东西——品牌、技术专利、网络效应、规模优势。 提示词:「对比[公司名]与同行业头部公司的毛利率、净利率、ROE三年趋势,分析该公司的竞争优势来自哪里,护城河是变深了还是变浅了,哪些因素可能威胁其竞争地位。」 第四问:隐藏雷区——财报附注里藏着的「定时炸弹」 这是DeepSeek最让我惊艳的能力之一——它真的会去「读」财报附注。而财报附注里往往藏着上市公司最不想让你看到的东西。大额对外担保、关联交易占比异常、商誉减值风险、存货跌价准备不足——这些对于普通散户来说是「天书」一样的存在,DeepSeek能像侦探一样找出来。 提示词:「仔细阅读[公司名]最新年报的附注部分,找出可能存在风险的会计科目(重点关注:商誉、应收账款账龄、关联交易、对外担保、存货减值计提是否充分),逐一评估风险等级。」 第五问:估值合理性——现在的价格到底贵不贵? 最后一步才是看价格——很多散户把这个顺序搞反了,一上来就问「这只票现在能不能买」。正确的顺序是:先确认公司质量过关,再判断价格是否合理。 提示词:「计算[公司名]当前PE/PB/PS,与近五年历史区间和同行业均值进行对比,结合公司的成长性和盈利质量,评估当前估值处于什么水平,是被高估、合理还是低估。」 【基本面分析速记卡——五个必问DeepSeek的问题】 一、盈利质量:经营现金流/净利润比值?应收账款是否异常? 二、成长持续性:近三年营收和利润增速是加速还是减速? 三、护城河:毛利率vs同行?竞争优势在变深还是变浅? 四、隐藏雷区:商誉/关联交易/对外担保/存货减值——逐一排查 五、估值合理性:当前PE/PB处于历史什么位置?和同行比呢? ▲ 五个基本面提示词让DeepSeek在几分钟内完成一个分析师团队几天的工作量 四、技术面分析——用DeepSeek找到「基本面好+买点对」的交集 基本面分析告诉你「这只股票质地好不好」,技术面分析告诉你「现在买时机对不对」。两者缺一不可。好公司在错误的时间买入,照样亏钱。 DeepSeek在技术面分析上有一个独特的优势——因为它背靠幻方量化的技术基因,它对技术指标的解读远比普通的「看图说话」要深度。 我最常用的三个技术面分析方法是: 第一,均线系统——让DeepSeek判断当前股价在所有重要均线(5/10/20/60/120/250日)中的相对位置,是典型的多头排列还是空头排列; 第二,量价关系——成交量是价格走势的「燃料」,放量突破关键压力位是真突破的可靠信号,缩量上涨则需要警惕;第三,技术指标共振——不会只看一个指标,而是让DeepSeek同时检查MACD、KDJ、RSI和布林带,只有在多个指标同时发出相似信号时才认为信号有效。 一个特别实用的提示词模板:「分析[股票名]近三个月的日K线走势。 第一步:判断当前均线排列状态(多头还是空头); 第二步:分析近一周的量价配合情况; 第三步:检查MACD、RSI和布林带是否出现背离或共振信号。 综合以上三个维度,给出当前是否适合介入的技术判断。」 ▲ 技术面不是画几条线就完事了——量价关系+指标共振才是核心 五、情绪面分析——让你在市场疯狂时保持冷静的「AI保险丝」 这个维度是散户最容易被收割的地方。一只股票基本面很好、技术面也发出了买入信号——但如果你是在市场情绪最高涨的时候追进去的,很可能买在了山顶上。 DeepSeek可以做舆情追踪:你让它搜索目标股票最近一周在全网(微博、股吧、雪球、新闻)上的讨论,统计正面/负面/中性评价的比例,再和前一阶段的数据做对比——如果正面情绪在短时间内剧烈升温,往往意味着短期过热。 还有一个冷门但好用的用法:让DeepSeek帮你「反向思考」。 当你特别看好一只股票的时候,不要问它「这只股票有什么投资价值」——你已经先入为主了。而是问它:「如果这只股票未来半年跌了30%,可能是哪些原因导致的?请列出所有可能的风险因素,包括那些市场上目前没有人讨论的潜在风险。」 这种反向提问会让你在情绪高涨的时候保持一份清醒——这份清醒在牛市中可能让你「少赚」,但在熊市中能救你的本金。 ▲ 全网舆情追踪+反向思考——AI帮你在大众疯狂时守住理性 六、我的完整选股流程:从5000只到最终2-3只 以上三个维度单独来看都很有用,但真正的威力在于把它们串成一套系统化流程。以下是我今年优化了至少五个版本之后沉淀下来的完整选股六步流程: 第一步:行业筛选。 不直接从5000多只股票里选——那太多了。先用DeepSeek做行业比较分析,找出当前处于景气上行周期的3-5个行业赛道。 提示词:「对比以下五个行业近期的景气度指标(营收增速、库存周期、政策环境、机构持仓变化),推荐两个最值得关注的行业并说明理由。」这步做完,选股范围从5000只收缩到了大概三四百只。 第二步:基本面初筛。 在目标行业内,用五个基本面提示词(第三节的方法)对行业龙头和主要竞争对手逐一做快速扫描。 重点关注两个「一票否决」指标——经营现金流长期为负的、应收账款增速持续超过营收增速的,直接排除。这步做完,候选池缩小到20-30只。 第三步:财报附注深挖。 对候选池里的每一只股票,用「隐藏雷区」提示词做一次深度排雷。商誉占比过高的、大额对外担保的、关联交易占比异常的——标记出来,结合具体情况判断是否继续保留。 这步很关键——今年帮我在一只非常火的消费股上发现了巨额商誉减值风险,避免了一大笔潜在亏损。 第四步:估值判断。 在排雷之后的池子里,逐一做估值分析。当前价格处于历史估值区间的什么位置?和同行业相比是高是低?结合公司的成长性判断当前估值是否合理。这步做完,候选池缩小到8-12只——剩下的都是「基本面过关+价格合理的优质标的」。 第五步:技术面择时。对着这8-12只股票,逐一用技术面方法判断当前是否适合介入。重点看均线排列状态和量价配合——只有「多头排列+放量企稳」的才列入买入备选。这步做完,真正准备出手的只有3-5只。 第六步:仓位分配和止损预设。最后一步不是选股,是「管钱」。每只股票分配多少仓位?总仓位不超过多少?每只的止损线设在哪里?这些我都会让DeepSeek基于我的风险偏好给一个参考建议,最终自己拍板。 铁的纪律是:任何一只股票,单笔亏损不超过总资金的2%。这个比例看起来很保守,但它保证了你即使连续犯错十次,本金也就亏20%——还能东山再起。 ▲ 六步完整选股流程——从5000只到2-3只,每一步都有明确的筛选逻辑 七、用DeepSeek选股最容易犯的三个致命错误 致命错误一:让DeepSeek直接推荐股票代码。 「帮我推荐三只这个月最值得买的股票」——这是最危险的问题。DeepSeek可能会给你一个答案,甚至包含看起来很具体的目标价和理由。但AI的「推荐」本质上是基于历史数据的模式识别,它既不预测未来,也不为你的亏损负责。 正确的问法永远不是「推荐什么」,而是「帮我分析这个」。你是最终的决策者,AI是你的研究助手——这两个角色绝对不能模糊。 致命错误二:用DeepSeek的结论代替自己的判断。 DeepSeek说「这家公司基本面良好」——你看了觉得有道理——然后买了。请注意你的决策链条:你唯一的判断依据是「AI说的」。这就是所谓的「外包式决策」——看起来你做了研究,实际上你把最关键的判断环节外包给了一个语言模型。 正确的做法是:DeepSeek提供数据和角度,你用这数据和角度形成自己的独立判断。如果DeepSeek的分析中有任何一点你不能用自己的话解释清楚——那就不要基于这个分析做决策。 致命错误三:只分析不跟进——买入之后的监控比买入之前的研究更重要。 选股和买入只是投资的开始。买入之后公司基本面有没有变化?行业环境有没有发生改变?当初买入的理由还成立吗?这些问题的答案每天都在变化。 我给自己定了一个规矩:每两周至少对持仓股做一次快速体检——把最新的公告和新闻喂给DeepSeek,让它判断「买入逻辑是否发生实质性变化」。 如果没有变化,继续持有;如果逻辑被破坏,果断离场——不管盈亏。这一条纪律,比任何选股方法都重要。 ▲ 三个致命错误:让AI直接推荐/外包式决策/买入后不再跟进——每一条都可能让你亏掉本金 八、写在最后:DeepSeek没有让我变成「股神」,但它让我不再当「韭菜」 37.6%的收益率不算高——在牛市中很多人能做到更高。但我的收益率和那些靠运气或者牛市赚到的有一个本质区别:我知道自己为什么赚了这些钱。 我每一次买入都有明确的、可以被事后验证的理由;我每一次卖出都有根据的、可以复盘和反思的逻辑。这种「知道自己为什么赚、为什么亏」的能力,比任何一只牛股都重要——因为牛股是一次性的,而正确的选股方法论是可以复制的。 DeepSeek的母公司幻方量化有一句话我很喜欢:「量化不是预测未来,而是管理不确定性。」 这恰好是对DeepSeek在选股中角色最精准的描述——它不能告诉你下一只翻倍股在哪里,但它能帮你把「不确定的赌博」转变为「被管理好的风险」。 它能让你看到一家公司财报里隐藏的危险信号、让你在情绪过热时多一份冷静、让你在做决策时有数据和逻辑的支撑。 这些事情看起来很朴素,但如果你炒股超过三年就会明白——让人在股市里长期亏钱的不是「运气不好」,而是不懂得避开那些本该提前看到的风险。 DeepSeek帮我的不是「赚得更多」,而是「亏得更少」。而在A股这个市场上,活得久比赚得快重要一万倍。 以上内容为转载,非小龙先生的原创。我在思考,既然DeepSeek可以拿来选股和炒币,当然也可以拿它来选币炒币。我已经在实践了,你也可以的! #DeepSeek# #炒股# #炒币# #AI炒股炒币#
顯示更多
AWS 资深专家解决方案架构师 Daniel Abib 在官方博客里算了一笔账:同步调用时,Lambda 的计费时长几乎等于 agent 思考的时长,等待本身在按全量计算计费。 《在无服务器流水线中异步调用 Amazon Bedrock AgentCore agent 的模式》 在无服务器流水线里异步调用 Amazon Bedrock AgentCore agent,可以消除你的 AI agent 处理请求期间的空转计算成本。一个常见的例子是文档校验:在房地产融资的后台办公室里,agent 可以读取房产记录或贷款合同,推理信息是否完整、一致,然后返回一个下游步骤据此行动的结论。Amazon Bedrock AgentCore 提供了一个平台,让你能用任意框架或模型大规模地构建、连接和优化 agent。 这类 agent 带来一个传统流水线步骤没有的特性:它们在回答之前要思考一会儿。思考多久取决于提示词、模型和文档,但很少是即时的,而这个延迟改变了你调用它的方式。最常见的首版实现是用一个计算服务(比如 AWS Lambda 函数)调用 agent 并等待响应。函数等待期间什么都不做,但它仍在运行,每一秒都在计费。 值得看清成本到底落在哪里,因为调用的两侧计费方式不同。Amazon Bedrock AgentCore runtime(Amazon Bedrock AgentCore 的一项能力)采用基于消耗的计费模型,agent 空闲时不收 CPU 费用。例如,在等待大语言模型生成响应、或等待工具或 Model Context Protocol(MCP)调用返回的这段时间里,你只按内存计费,不按 CPU 计费。调用 agent 的那个计算服务没有这种特性。发出同步调用的 Lambda 函数、容器或 Amazon EC2 实例会一直阻塞,在 agent 响应之前始终持有(并支付)完整的计算配额。所以浪费不在 agent 一侧,而在调用方——它挂在一个打开的连接上空转。 这就让调用方的成本跟着 agent 的运行时间走。阻塞在 agent 上的函数,计费时长几乎等于整个处理时间;而启动 agent 后立即返回的函数,只按短暂的派发计费。解法是在等待期间释放调用方的计算资源,等 agent 出了结果再恢复流水线。本文展示三种做到这一点的模式(task-token 回调、直接服务集成、durable function),并与阻塞式反模式对比。 示例流水线 为了让各模式在同等条件下比较,我们把每个模式都跑在同一条流水线上,只更换调用 agent 的那一步。这条流水线是一个刻意简单、虚构的场景(房地产融资文档校验),选它只是为了把编排讲清楚。它不是本文的重点,它代表任何先调用 agent(或其他慢服务)、再对结果采取行动的流程,你可以把自家用例代入。 流水线有五个阶段: 1. Extract:一个 Lambda 函数对文档做 OCR 和文本提取。(提取是模拟的,所以场景不需要真实文档。) 2. Identify:一个 Lambda 函数对文档分类并设置路由标志(shouldOrganize、shouldValidate)。 3. Route:一个 Choice 状态根据这些标志决定流程走向。 4. Organize and Validate:一个 Parallel 状态在组织文档的同时,让 Amazon Bedrock AgentCore agent 在另一个分支里做校验。这个 Validate 分支是各模式之间唯一变化的部分。 5. Result:一个 Lambda 函数处理 agent 的结论,决定下一步动作(批准,或退回修改)。 图示如下:水平流程依次是 Start、Extract、Identify、Route(Choice)、并行的 Organize-and-Validate 阶段、Result、End,Validate 分支被标为可更换,图例列出了它的四种实现方式:阻塞反模式、模式 1(task token)、模式 2(直接集成)、模式 3(durable function)。流水线本身在每种情况下保持不变,只有 Validate 分支被换掉来演示各自的调用模式。 同一个 Amazon Bedrock AgentCore agent 服务全部四种情况。agent 检查每次调用并选择如何响应:如果收到 AWS Step Functions 的 task token,就在完成时唤醒那个执行;如果收到 durable function 的 callback ID,就唤醒那个 durable function;两者都没收到,就直接在响应里返回结论。这意味着你可以更换编排模式,而不必修改或重新部署 agent。 agent 如何不阻塞调用方就把控制权交回来 机制是 agent 的 action group 里的一个"归还控制权"动作。agent 推理结束后,调用一个 Lambda,把结果和 task token 发回 Step Functions。(后面的模式 2 会让 Step Functions 直接与 AgentCore 集成,完全省掉这个 Lambda。) 下面这段代码是这个 Lambda 的核心: The tool the agent calls once it reaches a verdict @tool def conclude_validation(approved: bool, issues: list, summary: str) -> str: verdict = {"approved": approved, "issues": issues, "summary": summary, "source": "agentcore"} # A Step Functions task token was passed: resume that execution if task_token: sfn.send_task_success(taskToken=task_token, output=json.dumps(verdict)) return "Step Functions resumed." # A durable-function callback ID was passed: resume the durable function if callback_id: lambda_client.send_durable_execution_callback_success( CallbackId=callback_id, Result=json.dumps(verdict).encode("utf-8")) return "Durable function resumed." # Neither was passed: this is a synchronous call, return the verdict inline return "Verdict recorded." 入口函数根据同样的信号决定在后台跑还是同步跑: @app.async_task async def validate_document_async(prompt, document, extracted_text): # Background work; conclude_validation fires the right callback when done agent = build_agent() await agent.invoke_async(message(prompt, document, extracted_text)) @app.entrypoint async def handler(event): task_token = event.get("taskToken") # passed by the task-token pattern callback_id = event.get("callbackId") # passed by the durable-function pattern # Asynchronous: start the work and return "accepted" right away if task_token or callback_id: asyncio.create_task(validate_document_async(...)) return {"status": "accepted"} # Synchronous: run now and return the verdict in the response agent = build_agent() await agent.invoke_async(message(...)) return verdict agent 就位之后,本文剩下的部分聚焦于调用它的四种方式。代码和基础设施定义都是示例中的摘录,用来演示每种模式。 调用 agent:四种方式 先讲阻塞式反模式以确立基准成本,再展示避开它的三个模式。 阻塞式反模式 最直接的实现:在同一个 Lambda 函数里调用 agent 并等待答案。它能用,而且实现简单——这正是它如此常见的原因——但函数在 agent 思考的整个期间一直活着。 // The Lambda function blocks here until the agent responds const response = await agentcore.send( new InvokeAgentRuntimeCommand({ agentRuntimeArn: AGENT_RUNTIME_ARN, payload: new TextEncoder().encode(JSON.stringify(payload)), runtimeSessionId: sessionId, }) ); // The function stays alive and billed for the entire time the agent is thinking. 函数的计费时长最终大约等于 agent 的处理时间。后面三个模式消除这段空闲成本,各自做出不同的取舍。特别是模式 2 使用 Step Functions 对 AgentCore Harness (InvokeHarness) 的优化集成,完全去掉 Lambda。 模式 1:task-token 回调 + 派发函数 这个模式在路径里保留一个 Lambda 做自定义逻辑,但去掉空闲成本。Step Functions 用 waitForTaskToken 集成调用这个函数——传入一个 task token 后暂停执行。函数用这个 token 启动 agent,然后在几秒内返回。执行保持暂停,不产生任何计算计费,直到 agent 用这个 token 调用 SendTaskSuccess 恢复它。 // Start the agent, pass the task token, and return without waiting const response = await agentcore.send( new InvokeAgentRuntimeCommand({ agentRuntimeArn: AGENT_RUNTIME_ARN, payload: new TextEncoder().encode(JSON.stringify({ ...payload, taskToken })), runtimeSessionId: sessionId, }) ); // Returning here does not complete the step. Step Functions stays paused until // the agent calls SendTaskSuccess with this task token. return { dispatched: true }; 对应的状态从上下文取出 token,并设置超时和心跳作为安全网——这样沉默的 agent 会让执行干净地失败,而不是无限期停在那里: "ValidateDispatch": { "Type": "Task", "Resource": "arn:aws:states:::lambda:invoke.waitForTaskToken", "Parameters": { "FunctionName": "${ValidateDispatcherFunctionArn}", "Payload": { "taskToken.$": "$$.Task.Token", "document.$": "$.document", "extractedText.$": "$.extract.extractedText", "executionId.$": "$$.Execution.Id" } }, "TimeoutSeconds": 120, "HeartbeatSeconds": 60, "Next": "AgentCoreValidation" } 成本。 Lambda 函数仍然会跑,但只跑到启动 agent 并返回为止:几秒钟,无论 agent 之后要跑多久。你只为这次短暂派发付费,不为等待付费——因为函数在 agent 干活时已经关掉了。等待由暂停的 Step Functions 执行承担,它不为空闲计算计费。这是与阻塞版本的关键区别:阻塞版本里函数的计费时间跟着 agent 的处理时间走。 模式 2:直接服务集成 当你不需要围绕 agent 调用写自定义代码时,可以去掉派发函数,让 Lambda 完全离开路径。Step Functions 可以通过 AWS SDK 服务集成直接调用 Amazon Bedrock AgentCore,所以 agent 的响应直接流入下一个状态。Validate 分支于是变成单个 Task 状态: "ValidateDirect": { "Type": "Task", "Resource": "arn:aws:states:::aws-sdk:bedrockagentcore:invokeAgentRuntime", "Parameters": { "AgentRuntimeArn": "${AgentRuntimeArn}", "RuntimeSessionId.$": "States.Hash($$.Execution.Id, 'SHA-256')", "Payload.$": "States.JsonToString($.prep.agentInput)" }, "ResultSelector": { "raw.$": "$.Response" }, "TimeoutSeconds": 120, "Next": "ParseVerdict" } 成本。 路径里没有 Lambda,所以没有空闲的 Lambda 计算可付。Step Functions 承担等待,Standard 工作流按状态转换计费而不是按等待时长计费——处理期间的实质成本只有 agent 本身。 模式 3:Lambda durable function 如果你更愿意用代码而不是状态机来表达编排,Lambda durable function 给你同样的成本行为。用 @aws/durable-execution-sdk-js SDK,流水线阶段变成 context.step 调用,并行工作变成 context.parallel,等待 agent 变成 context.waitForCallback。等待期间函数挂起,不计计算费。agent 用 SendDurableExecutionCallbackSuccess 恢复它。 // Suspend the function until the agent calls back const result = await ctx.waitForCallback( "validate-agentcore", async (callbackId) => dispatchAgentCore(callbackId, document, extractedText, executionId), { timeout: { seconds: 120 } } ); 成本。 一个函数承载整条流水线,但挂起等待 agent 期间不按计算计费。你只为挂起之间短暂爆发的那几次执行付费——与 task-token 模式相同的经济性——而不是为等待付费。 测量差异 重点不是某个具体数字。agent 的运行时间随提示词、模型和文档变化。重要的是 task-token 模式里两个值之间的关系:Validate 状态活跃了多久,对比派发函数实际被计费了多久。我们测试中的单次运行让这个关系可见: Step Functions, ValidateDispatch state Returned (TaskSubmitted): 14:08:19 <- the function returned and shut down Resumed (TaskSucceeded): 14:08:34 <- the agent woke the execution State active ........ 19.6s Lambda, dispatcher function (CloudWatch REPORT) Billed duration ..... 4.8s Result: the state was active for 19.6s, but the function was billed for 4.8s. The ~14.8s in between is wait time with no Lambda function running. 在 Step Functions 的事件历史里也能看到同样的事:task-token 模式下,TaskSubmitted 事件(函数返回)与 TaskSucceeded(agent 恢复流程)之间隔着 agent 的处理时间。同步调用没有这样的间隔。 下表总结了每种模式下 Validate 分支(前面图示中高亮的部分)的实现方式: • 编排器:阻塞=Step Functions;模式 1=Step Functions;模式 2=Step Functions;模式 3=Lambda(代码) • 路径中的 Lambda:阻塞=有,存活且计费;模式 1=有,但提前返回;模式 2=无;模式 3=durable function 本身(挂起) • 等待期间的空闲 Lambda 计算:阻塞=为整个等待付费;模式 1=无;模式 2=无;模式 3=无 • agent 调用周围的自定义代码:阻塞=有;模式 1=有;模式 2=有限(状态转换);模式 3=有 • 调用方与 agent 解耦:阻塞=否;模式 1=是;模式 2=否;模式 3=是 • 相对复杂度:阻塞=最低;模式 1=较高(token 和回调的 IAM);模式 2=最低;模式 3=中等(检查点/重放) 读这张表时有一个提醒:总流水线时长不是有用的比较指标,因为它被 agent 自己的推理时间主导——每次运行都不同,而且在所有场景里基本相同。有意义的差异是等待期间你为多少计算付了钱,这由上表和计费时长读数体现。agent 运行时间增长时,派发函数的计费时间保持平稳。上面的数字来自单次运行,把它们当作这个关系的示意而非基准,请测量你自己的负载。 如何选择模式 下表总结了取舍,帮你选择模式: • 调用方成本:阻塞=整个 agent 处理时间;模式 1=几秒(仅派发);模式 2=零(无 Lambda);模式 3=几秒(仅派发) • 集成工作量:阻塞=低;模式 1=中高(IAM、心跳、超时);模式 2=低(单个 Task 状态);模式 3=中等(检查点-重放模型) • 业务逻辑位置:阻塞=在 Lambda(前 + 后);模式 1=在 Lambda(前 + 后);模式 2=只在 Amazon States Language(ASL)(内置函数);模式 3=在 Lambda(顺序代码) • 最适合:阻塞=原型、短 agent;模式 1=自定义前后处理逻辑;模式 2=纯编排、无自定义代码;模式 3=单个函数里的复杂异步工作流 最佳实践 防 agent 永不回答。 给每个 waitForTaskToken 状态设置 TimeoutSeconds,让执行以 States.Timeout 失败,而不是无限期挂起。如果你的 agent 发送心跳,也设置 HeartbeatSeconds 以更快发现死掉的 agent。捕获错误并路由到失败或人工审核路径。 重试时使用稳定的会话 ID。 把 sessionId 设为从执行上下文派生的值(比如 Step Functions 执行名),这样重试会恢复同一个 agent 会话,而不是重新开始。task-token 模式里在派发函数中设置;直接集成模式里在 Task 状态参数中设置。 打开 AWS X-Ray。 在 Step Functions 和 Lambda 配置中启用 Tracing: Active。X-Ray 会精确显示 agent 思考了多久、调用方等待了多久,确认你的模式确实在间隔期间释放了计算。 按速度而不是按 agent 的负载来配派发函数。 派发函数只序列化请求并调用端点。256 MB 内存和 30 秒超时通常就够。重活都在 agent 那边。 成本 这些模式会产生 Lambda 计算、Step Functions 状态转换、durable function 执行存储的费用,以及所有方案共有的 Amazon Bedrock AgentCore runtime 和 Amazon Bedrock 模型推理费用。agent 和模型成本在四种情况下相同。架构只改变编排开销,以及阻塞反模式中浪费的空闲 Lambda 计算。当前价格请查看各服务的定价页。 结论 把 AI agent 放进流水线是简单的部分。让它被经济地调用,才是区分原型与生产设计的地方。阻塞在 agent 上的 Lambda 函数实现简单,却在悄悄烧钱——计费时间里的大部分都在等待。本文展示了三种规避方式:需要在路径里保留 Lambda 时用 task-token 回调;最简单的情况用直接服务集成;偏好用代码表达编排时用 durable function。三者由同一个 Amazon Bedrock AgentCore agent 驱动,它会根据被调用方式调整自己的响应。 完整示例(完整的 agent、状态机定义和 durable function)在 GitHub 的 sample-bedrock-agentcore-async-stepfunctions 仓库。想深入的话,可以看 Amazon Bedrock AgentCore 关于异步任务处理的文档。生产部署请使用 Amazon Bedrock Guardrails,对 agent 的输入输出实施负责任 AI 控制。 原文: #Bedrock# #Serverless# #StepFunctions#
顯示更多
决定代码复杂度的东西不在代码里,在写代码的人的脑子里。LLM 碰不到它。 这是 软件工程师 Pol Alvarez Vecino 读完 Peter Naur 1985 年的论文后得出的结论。 为什么 LLM 没法让你的代码更简单 本文最初发表于 Medium( tl;dr:Peter Naur 的《Programming as Theory building》指出,真正的程序——他称之为 Theory,大写的 T——存在于工程师的脑子里。代码和文档只是下游的(因而不完整的)产物。我对 LLM 最大的抱怨之一,就是它写出来的代码有多啰嗦、复杂度是怎样到处蔓延的。我一直抱着一丝信念:也许我们可以用 LoC 或者独立代码路径数量之类的指标来约束它们。然而,读完 Naur 之后我意识到,我们想降低的那个复杂度是 Theory 的复杂度,不是代码的复杂度,而这方面没有任何可用的度量,因为它非常主观。 我最近读了 Peter Naur 那篇精彩的论文《Programming as Theory building》( LLM 能做什么、不能做什么的看法,也改变了我对如何给它们写提示词、当前 agent 系统的主要局限,以及结对编程为何如此有效的看法。 今天我只聚焦它和代码复杂度的关系。 如果你还没读过这篇论文,我真的建议你读一读。说实话,我写这篇文章的主要目的,就是让一些人去读原论文。它值得花这个功夫。这也是练习(或学习!)在 Solveit 里做精读的绝佳机会,因为在 Solveit 里这要容易得多:你可以在阅读过程中随时提问,钻进任何你感兴趣的兔子洞,或者直接让 Solveit 帮你把语言讲清楚。关于精读的更多信息见这篇博文( fork 我的对话记录快速上手( 话说回来,如果你还是决定不读,这里是论文的 tl;dr: 程序是构建和维护它的人所持有的 Theory:一种理解——程序如何与现实世界的问题相关联,哪些约束和权衡塑造了它,它为什么能工作,以及哪些改动符合它的设计。代码和文档是这套 Theory 的下游产物,永远无法完整地承载它。 工程师通过经验发展出这种理解:与用户交谈、观察故障、学习领域知识、观察系统在真实世界中的表现。这种理解指导着对相关性、相似性、简洁性和良好设计的判断。 LLM 不太擅长持续学习,不擅长和用户交谈,也不擅长在真实世界里体验事物。但这和复杂度有什么关系呢? 我想我们都同意:LLM 总体上倾向于让代码库的复杂度上升,如果没人管的话。原因有很多:它们没意识到某个方法已经存在,于是又写了一遍;它们写过度防御的代码,比如为不可能发生的边界情况做防护;或者过早地过度优化。顺便说一句,大多数前沿实验室从你消耗的 token 里赚大钱,所以它们多少有动机去推广 token 最大化。总而言之,LLM 很少遵循 KISS 原则。这个问题在你不看输出、纯 vibe-coding 的时候最严重。但即使你会审查代码,要想让程序保持简洁,也需要主动付出努力去尽量削减复杂度。 在我天真的日子里(大约两周前),我曾以为我们早晚能爬出这个复杂度的大坑。前沿实验室只需要在 RL 训练里加一些复杂度惩罚就行。他们可以用总 LoC 作为最小化的指标,但我们都同意,有时候一行代码比两三行更复杂。另一个选项是圈复杂度(cyclomatic complexity),它衡量独立代码路径的总数。读完 Peter Naur 之后我意识到,这些东西无法真正解决问题(也许能稍微缓解一点)。我们来看看为什么。 为什么代码复杂度是错的指标 在下面这个(我编的)例子里,我们想支持调用 OpenAI 和 Anthropic。假设所有的消息准备和重试逻辑完全一样,只有请求体参数略有不同,于是我们有两个不同的方法 call_openai 和 call_anthropic。 在第一个朴素版本里,我们有两个不同的类,带重复的样板代码(即 prepare 和 with_retries)。 分开 —— 指标会发现重复 class OpenAIClient: def complete(self, prompt): msgs = prepare(prompt) # 公共样板代码 y = call_openai(msgs) # 唯一不同的一行 return with_retries(y) # 公共样板代码 class AnthropicClient: def complete(self, prompt): msgs = prepare(prompt) y = call_anthropic(msgs) return with_retries(y) 一个直接的 refactor 是创建单个类,做到 DRY。按很多指标看这都是更好的实现:行数更少、Halstead 容量更好(V=N×log2(n),N 为程序长度,n 为词汇量)、可维护性指数(Maintainability Index)也更好。 合并版 —— 按指标看确实更好:DRY,行数更少 class LLMClient: def __init__(self, provider): self.provider = provider def complete(self, prompt): msgs = prepare(prompt) y = call_openai(msgs) if self.provider == "openai" else call_anthropic(msgs) return with_retries(y) 一般来说,第二个版本(或者类似减少 LoC 和重复的版本)复杂度更低。但是,如果我告诉你,下个月我们很可能就停止支持 Anthropic 了呢?在那种情况下,我更倾向于让它们保持分开,这样到时候我只要删掉包含 AnthropicClient 的那个文件就行。 当然,这种简单的例子很容易解决,尤其是现在 LLM 可以帮你写代码。但如果你的目标不是 2 个供应商,而是像 LiteLLM 那样支持 165+ 个供应商呢?那种情况下,直接用 LiteLLM 就行。但那样你就把 120 多万行 Python 代码放到了你和最终供应商之间。值得吗? 设计良好的 API 是抽象复杂度的绝佳方式。你有清晰的契约,不需要理解背后发生了什么。即使 LiteLLM 是一个庞大的包,它也可能不计入你的 Theory 总复杂度。LLM 推理端点早期的日子就是这样:「文本进,文本出」。然而,当契约不再可靠时,这一切就会崩塌。原因可能是它有 bug,可能是 API 背后藏着大量你拿不到的状态,也可能仅仅是你不确定某个新供应商特性是否被支持。 每当你被迫窥视 API 抽象层背后的深渊时,那份复杂度就成了你的问题。这个问题正变得越来越普遍。像 OpenAI 和 Anthropic 这样的供应商,越来越多地把数据藏在服务端,比如加密的压缩数据或推理 token(更多讨论见 如果你在快速推进、只用基础功能、想尝试很多供应商,那么 LiteLLM 或类似的库可能值得用。反过来,如果你看重控制力、调试和对技术栈的理解,那可能就不值得。不存在「正确的」复杂度(虽然我非常偏好第二种选择)。 进入 Theory 决定走哪条路的信息不在代码里。这些信息属于 Naur 所说的程序的 Theory 的一部分。迄今为止,LLM 几乎接触不到这些信息,因为它们活在人的脑子里。它们可以从 IM、邮件或其他书面文档里得到一些线索,但那些永远只是局部的(最好的情况下)。 其中一些信息可以作为上下文提供给 LLM,比如业务优先级、预期的产品变化、运维约束,以及早期决策背后的原因。这样做也许能改善它的选择,但这些仍然只是 Theory 的产物。它们无法完整地传递团队发展出这套 Theory 所依赖的经验和判断。 这些都很好,但如果我全身心投入 vibe-coding 和 token 最大化、完全不在乎代码呢?那样的话,这篇博客后面的内容说服不了你。如果你处于两者之间,我来描述一个我们在 亲身经历的真实情况,关于 Solveit 的计费系统。 剧透警告:在 最初的计费系统 Solveit 是一个平台,你可以在里面用 AI 在一个类 notebook 的环境里工作。环境是持久化的,所以我们对 LLM 用量、CPU、磁盘、内存和带宽收费。 最初的计划是向用户收月度订阅费(比如 5 美元)。这笔月度订阅费变成当月可以消耗的积分(credits),如果全部用完,下个月之前就得充值。我们先在一个更小的项目里测试了这套方法来验证它。 这套方法后来证明比我们想要的更复杂。第一,积分 + 订阅的机制会把人(比如我自己)搞晕。第二,它让代码在多个层面上更复杂。你得处理「先消耗月度订阅积分、再消耗普通积分」的所有逻辑,以及剩下的积分怎么办。在 Stripe 这一侧,它有两个不同的代码路径:手动充值和订阅服务。 对不熟悉的人来说,Stripe 订阅是一个全托管服务。Stripe 管理整个生命周期(扣款周期、发票、重试全在他们那边)。 你大致只需要这样创建订阅: stripe.Subscription.create(customer=cust_id, items=[{"price": "price_5usd_monthly"}]) 然后监听他们的 webhook,在订阅状态变化或付款到达时更新你的数据库(还有很多其他事件可以选择)。 直接收款则需要你启动一个 checkout session,让用户跳转到 Stripe 的域名填卡。这需要你提供一个 customer ID。那应该在什么时候创建 Stripe customer?用户注册时?他们尝试付款时?还是别的时机?全都是合理选项。 stripe.checkout.Session.create(mode="payment", customer=cust_id, line_items=[{"price": "price_5usd", "quantity": 1}], success_url="") 到目前为止还好吧?如果你对 Stripe 或支付没有太多经验,很可能你已经感到吃力,没法把这一切全装进脑子里。也许你设法把它简化成了: • 订阅 → 交给 Stripe 订阅服务管理 • 充值 → Stripe checkout 一个不明显的问题是:使用 Stripe 托管服务意味着你有重复的数据。一半数据在 Stripe 的后端,而你必须保证本地数据库和它同步。另一个问题是,调试的时候,你既要查 Stripe 的服务,又要查自己的数据库。比如,一笔付款没到账,是 Stripe 没发 webhook(「他们的错」),还是我们没把它存进数据库(「我们的错」)? Stripe 订阅服务很棒、很容易上手,但它是为支持海量用例而设计的。这意味着,即使设计得很好(它确实很好),这个 API 抽象最终也相当复杂。在这种情况下,你在用「卷起袖子自己写代码的复杂度」交换「学习 Stripe API 的复杂度」。 LiteLLM 和 Stripe 在不同规模上展示了同一个权衡:只要契约成立,外部抽象能极大地简化你的 Theory;但每当你需要调试、修改或超出契约去推理时,它隐藏的复杂度就变成你的了。 AAI 的做法 在 经过很多天的探索和讨论,我们最终定下了一个简单得多的系统。 首先,我们只做积分(credits),按用量收费。这是一个超级简单的模型(和 Theory!):充值积分,用多少付多少。 订阅一去掉,我们就可以删掉一大块用来保持同步的代码。剩下的付款路径只有两条:手动充值和自动充值。要做自动充值,你需要能保存客户的信用卡,以便随时扣款。而 Stripe checkout 不会保存信用卡,你只是让 Stripe 在他们的 UI 里处理这次付款。 长话短说,我们最终发现最简单的办法是:用户一注册就保存他们的信用卡。卡一旦在档,用户可以用它手动充值,也可以设置成自动充值。因为全部是我们自己处理的,同步问题几乎为零。我们只监听支付成功事件(没有订阅了!)。 结果就是,我们支付系统的 Theory 可以用一句话概括: 客户注册时添加信用卡,之后我们对该卡扣款——要么手动(充值),要么在余额不足时自动扣。 手动充值和自动充值现在走同一条支付路径。我们整个支付技术栈——拆在 Solveit 和 faststripe 之间——大约 300 行代码。 结果是非常低的复杂度,但这是数小时的探索、尝试和讨论换来的。我这里的解释充其量只是触及皮毛。 印度登场 那么上线那天发生了什么?一切顺利吗?没有。上线后我们发现,印度信用卡不支持你想什么时候扣就什么时候扣的 off-session 扣款。手动充值属于 on-session,仍然可以工作,因为用户会在我们的 UI 里看到一个类似 3DS 的验证流程;但自动充值不行。 在寻找解决方案时,我们发现 Stripe 托管订阅在印度确实能工作。为什么?因为 Stripe 替你绕开了所有这些复杂度。他们提前一天创建并持有 off-session 的支付意图(payment intent),这样银行就能在实际扣款前向用户发送预扣款通知或认证请求。 我们迁移出托管订阅时,就失去了这个特性。我问了一个前沿 LLM——我记得是 GPT-5.5——我们该怎么处理这个问题。你猜它给出的方案是什么? 用回 Stripe 订阅来处理 这个 LLM 提议的正是我们刚刚迁移出来的方案。读到这里,你会怎么说?你的意见是什么?我们应该迁回去吗? LLM 列出了两个选项:要么同时支持两套系统(随时可以开工,你一句话就行!),要么完全迁回旧的系统。我们做了什么?什么都没做。我们非常看重 Theory 复杂度,于是我们决定:让印度用户手动充值就好了(抱歉了各位!),换来一个更简单、更健壮的平台。 如果你不同意我们的选择,反思一下为什么不同意。真的,现在就停下来想一想。 这个问题没有正确答案,而这篇博客的目的之一,就是帮你看清你的答案来自哪里。你的论据是什么?更具体地说,它们是从哪里来的? 有很多场景下 Stripe 托管服务是更优的选择。举几个例子: • 公司收入最重要,手动充值的额外摩擦可能会让我们损失一些印度销售额,那我们应该迁回去(或者同时支持两套) • 销售团队用 Stripe Dashboard 的 UI,所有支付信息都放在我们自己的数据库里并不理想,因为他们没法在那里管理 我的观点是:你的代码的复杂度,真的取决于一大堆和代码无关的因素,而那些信息不在代码里。 隐藏的优势 那么为什么不干脆让 LLM 全权处理这些事呢?在我看来,最妙的答案是:我们的工作方式揭示了一个可能的商业机会。印度不支持 debit mandate(借记授权)的方式和世界其他地方不一样。Stripe 试图解决这个问题,但远远不是一个完整的解决方案。 在理解和简化流程与 Theory 的过程中,我们学到了产品之外有价值的东西。在我看来,这类洞察是可以转化为竞争优势的。 努力去理解,本质上就是一个简化 Theory 的过程。如果你放任 LLM 在复杂度上为所欲为,你可以很快产出大量代码。选择简化路线更长、更费劲,但长远来看我认为它是值得的,而且你可能会在路上发现隐藏的宝石。 原文: #LLM# #编程# #代码复杂度#
顯示更多
对于工具的使用,我觉得几乎所有人都是抗拒变化的 改变之所以遭遇抵抗,是因为人愚昧或护住既得的那份租? 还是因为被改造的对象从来不是一张白纸,而是一套没人完整看得见的秩序。 一个铺子的老板说不清他为什么坚持先收现金、为什么这个员工只跟这类客户 可那套做法是十几年试错筛下来的,它的功能常常在使用者的意识之外。 改革者听到的「我说不出理由」,往往被他当成「这里没有理由」——这是把自己的无知误认成洞察。 抗拒因此常常是那个秩序在用它唯一会用的语言发信号: 你动的这根线,接着我看不见的地方。
顯示更多
目前的 AI 编程能力排行榜,中国的开源模型把 TOP5 的 4 名都给占了,上面这些模型基本上都用过,简单聊一下使用感受。 1、Anthropic 的 4.7 是两个月前发布的能力还是第一,更何况还有前端时间封禁的 Fable 刚刚解禁,领先国内半年左右,目前国内顶级模型相当于Opus 4.6(2月5日发布),GLM-5.1是最争气的才 2 个月就追上了4.6大概能达到 90% 的能力,论编程能力还是国内第一。 2、最新的 GPT 5.5 在 codex 里使用能力是最强的,黑话还是很多,而且产品上比 Claude code 做的更好,更适合执行实际的工程任务,边界判断和测试更多。Google 的 Gemini 已经变成美国豆包了,主打性价比。meta 的模型没用过不知道实际能力如何。 3、Qwen 3.7 max(5 月 20 日) 目前综合能力第一,因为有多模态和多语言优势。有专门优化过智能体设计,放到 Claude code、openclaw、hermes 里面都可以很好的使用工具链。 4、GLM-5.1 (4 月 8 日)最早追平Opus 4.6的能力,主打长程任务,一直都被称为 Claude 平替花 20% 的钱达到 90% 的效果,从GLM-4.7发布半年多以来确立领先地位,多次提价依旧火爆,大概领先其他国内模型1个月左右时间。但比较可惜5.1 是一个纯文本模型,还不具备原生多模态能力,一般两个月时间迭代一次,估计下一代快来了。 5、Minimax m3(6 月 1 日) 占了晚发布的优势,也是第一次进入前五,把 minimax 多模态的能力合并进来了,模型参数量也翻倍,所以这次提价也算合理。但实际体验下来m3的规划能力相比来说稍差,同样一个任务需要更多的步骤。 6、Kimi-k2.6(4 月 20 日)Agent 集群协作,是国内里最早支持多模态的,前端审美能力在线,cursor 的编程模型基座就是基于k2.6 7、DeepSeek-V4-Pro(4月24日)和MiMo-V2.5-Pro(4月24日)两个能力接近,DeepSeek还是价格屠夫,API 定价永久 2.5 折,缓存命中率高,不搞 Token plan,因为每个人都是 Token plan。MiMo原来定价偏贵,降价以后两者差距其实不大了。两个模型在写作能力上表现不错,如果你是写文章可以用这两家 8、xAI 表现很拉,唯一强项在 X 的搜索能力,腾讯的hunyuan-hy3也比较一般,但在腾讯产品内有专门调优过,可以跟上其他模型的上一代标准,代码就别指望了。普通的简单任务因为腾讯有更好的数据源,实际表现也不会差太多。腾讯最强的点在于它独有的上下文优势。
顯示更多
🔥ETH多空观点合集:以太坊的价值,能否回流到 ETH? 最近的市场情绪降到冰点。ETH的多空争议,是一场具有风向标意义的“割席”:Bankless 联合创始人 David Hoffman 公开披露已清仓全部 ETH。 相反,市场另一边也有机构在逆势加仓。Tom Lee 旗下 BitMine 近期持续买入 ETH,并将 ETH 提升至公司核心战略。 一边是长期布道者清仓 ETH,一边是上市公司和机构资金继续加仓 ETH。ETH 到底是在失去价值捕获能力,还是正在迎来新一轮机构重估?Biteye帮大家梳理了多空观点👇 🌟看多 看多方并不否认 ETH 短期表现弱,也承认市场正在重新审视 ETH 的价值捕获问题。 但他们认为,ETH 的核心逻辑还没有被破坏。无论是稳定币、RWA、DeFi、L2,还是机构 tokenization 和 Agentic AI,很多新金融活动仍然需要一个安全、中立、可组合的底层网络。而 Ethereum 仍然是最重要的候选者。 所以,多头押注的不是短期费用反弹,而是 ETH 会随着链上金融继续扩张,被重新纳入机构和长期资金的定价框架。 1️⃣Tom Lee@fundstrat|BitMine CEO|XHunt 排名:202 核心观点:短期的下跌是噪音,2026年 ETH 将因tokenization + Agentic AI结构性驱动而走强。他维持2025 年底 7000-15000 美元目标,并称“ETH thesis not broken”。 更重要的是,Tom Lee 不是单纯喊单,而是通过 BitMine 持续买入 ETH。 BitMine 在 6 月 2 日最新买入约 26497 枚 ETH,价值约 5200 万美元;此前 5 月底一周,BitMine 已累计买入 111942 枚 ETH,约 2.37 亿美元,是 2026 年以来最大单周买入之一。 BitMine 的目标是持有 ETH 流通供应的 5%,目前已接近这一目标。 2️⃣Raoul Pal @RaoulGMI|Real Vision CEO|XHunt排名:45 核心观点:ETH 是链上经济的底层操作系统之一。Raoul Pal 的逻辑不是短期价格,而是网络价值:如果今天把 Ethereum 关掉,Layer2、DeFi、NFT、RWA 等大量经济活动都会受到巨大冲击,因此 ETH 当前估值可能仍被低估。 3️⃣Ryan Sean Adams @RyanSAdams|Bankless联合创始人|XHunt排名:115 核心观点:不认同 David Hoffman 全部清仓 ETH 的判断。Ryan 更像是“谨慎看多”:他承认 ETH 的窗口变窄了,但不认为 ETH 的长期潜力已经结束。 在 David Hoffman 卖掉全部 ETH 后,Ryan Sean Adams 将其称为 Bankless “一个时代的结束”,但他本人仍披露持有 ETH,并继续支持 Ethereum 作为机构资产和链上经济底层资产的叙事。 4️⃣Joseph Lubin@ethereumJoseph|Ethereum联合创始人/SharpLink CEO|XHunt排名:56 核心观点:ETH 不只是加密资产,而是未来机构链上金融的重要基础资产。 Joseph Lubin在 5 月底连续转发并补充 SharpLink CEO Joseph Chalom 的文章,明确表达了自己对 Ethereum 的长期判断。 在他看来,稳定币、RWA、DeFi、智能合约金库和 Agentic AI 金融系统,正在共同推动全球金融基础设施重构。而 Ethereum 正是这些资产和应用最重要的底层网络之一。 5 月 29 日,Lubin 表示:Consensys 的机构团队正在把 Ethereum 带入全球主要金融市场基础设施和大型金融机构,并强调:“TradFi keeps choosing Ethereum.” SharpLink 2026 年 Q1 财报显示,截至 2026 年 5 月 4 日,SharpLink 持有 872,984 枚 ETH。 5️⃣William Mougayar @wmougayar|The Business Blockchain作者|XHunt排名:3559 核心观点:ETH被严重低估。 无论稳定币、DeFi TVL、tokenized assets、结算量还是交易量,以太坊在所有关键指标上都稳居第一,市场份额21%-64%,但ETH市值却只占整个加密市场的10%左右,这完全不合理。 “Ethereum是基础设施,就像互联网一样,价值会自然累积到底层,而不是只看App层的收入或费用。” 6️⃣Hayden Adams@haydenzadams|Uniswap 创始人|XHunt排名:25 核心观点:David 卖出 ETH 后,反而更应该承认 “ETH is money” 这个论点是正确的,只是它成立的方式,可能和很多人想象的不一样。 Hayden 认为,未来所有资产都会被 tokenized,人们会持有自己最重视的资产,而不是只把某一种资产当作唯一记账单位。 在这种环境下,真正重要的不是谁成为唯一货币,而是谁能提供低成本、高效率、7×24 小时的资产交换系统。 从这个角度看,Uniswap on Ethereum 本身就是一个去中心化货币系统:它允许不同资产随时交换,让多种形式的“货币”在同一个开放市场里竞争。 7️⃣Jediwolf@Jediwolf| The Doomed DAO 成员|XHunt排名:1650 核心观点:David Hoffman 提出的 “Ethereum is a Giver, not a Taker” 很准确,但结论可能正好相反。 Jediwolf 认为,加密市场太习惯用「榨取价值」的方式理解一条链:高费用、高抽成、价值捕获。但 Ethereum 最特殊的地方,恰恰在于它不是急着从用户身上拿走价值,而是先给生态提供工具、信任和基础设施。 以链上艺术为例,Ethereum 几乎为艺术家和收藏家提供了一整套基础设施:发行、确权、结算、托管、身份、全球流动性和组合性。它不一定直接让 ETH 立刻升值,但会让越来越多艺术家用 ETH 定价、收藏家用 ETH 思考,文化资产围绕 ETH 形成。 🌟看空 除了价格外,2026 年以来以太坊社区内部的人事变化,也成为市场讨论 ETH 的重要背景。 2026 年至今,Ethereum Foundation 已有多位资深研究员、协议负责人和管理层成员离职。其中,仅 5 月就有数位核心成员相继宣布离开。 由于时间高度集中,这轮离职潮被部分社区成员和媒体称为 “Spring 2026 Reshuffle”。 在这样的背景下,一部分投资者开始重新审视 ETH 的长期价值捕获能力,而另一部分人则认为,这只是以太坊迈向新阶段前的必要调整。 1️⃣David Hoffman @TrustlessState|Bankless联合创始人|XHunt排名:59 核心观点:“ETH is Money” 这条叙事窗口已经基本关闭。Ethereum 作为网络仍然成功,能为 L2、DeFi、稳定币、RWA、应用提供安全区块空间和开放基础设施,但这些成功未必会充分回流到 ETH token 本身。也就是说,Ethereum 可能继续增长,但 ETH 未必是最大受益资产。 所以David 卖掉了全部ETH,把资金配置到市场上有更好机会的其他地方。 2️⃣Markus Thielen@markus10x|10x Research 创始人|XHunt排名:60383 核心观点:10x Research 在 2026 年 5 月 16 日发布过 high-conviction short ETH 观点。ETH 当前不仅是价格走弱,而是基本面叙事和机构资金都在变弱,其核心逻辑可以概括为三点: ETH 缺乏传统意义上的现金流。 衍生品市场显示空头更主动。 机构资金也在撤退。 Markus Thielen 随后表示,自该做空观点发布以来,ETH 已下跌约 10%,而他们的看空 thesis 其实早在 2025 年 10 月 31 日就已经形成。 3️⃣Goldman Sachs(高盛)- 从现货敞口转向防御配置 核心观点:高盛没有公开发表强烈看空 ETH 的言论,但从 2026 年 Q1 的 13F 持仓变化看,它明显降低了以太坊现货 ETF 敞口。 13F 文件显示,高盛在 Q1 大幅削减了部分加密 ETF 持仓,尤其是对 ETH 相关 ETF 的配置更加谨慎。 4️⃣Harvard Management Company(哈佛大学捐赠基金管理公司) 核心观点:哈佛没有公开发表看空 ETH 的观点,但它用实际仓位表达了撤退。 Harvard Management Company 在 2025 年 Q4 新建仓 BlackRock 现货以太坊 ETF ETHA,买入约 387.09 万股,持仓价值约 8682 万美元。 但到了 2026 年 Q1,哈佛已经将这笔 ETHA 仓位全部清空。也就是说,这笔以太坊 ETF 敞口只持有了一个季度。 5️⃣eric@econoar|EIP-1559 作者|XHunt 排名:156 核心观点:不怪 David 清仓 ETH,因为 ETH 确实已经连续多年大幅跑输整个加密市场。 eric 表示,David 的很多观点他都认可,自己过去 1–2 年也已经大幅减持 ETH。目前转投的其他资产,都明显跑赢了 ETH。 不过,他并不认为 ETH 跑输一定是因为 Ethereum 本身出现了根本性错误。相反,他认为,一个容易被忽视的原因是:ETH 早期涨幅太剧烈,在很短时间内制造了大量早期暴富者,而这些长期抛压需要很长时间才能被市场完全消化。 所以,eric 的态度不是彻底否定 Ethereum,而是从投资组合管理角度反对 ETH maximalism。 市场不会说谎,没必要和市场对着干。如果 ETH 重新热起来,随时可以买回来。 6️⃣Ignas@DefiIgnas@PinkBrains_io 联合创始人|XHunt 排名:383 核心观点:ETH 已经从共识持有变成反向押注。 Ignas 认为,过去 2–3 年 ETH 的弱势,一部分来自市场风格变化,另一部分也来自 Ethereum 自身的问题:L2 路线导致 L1 价值捕获变弱,L1 scaling 推进较慢,用户体验长期没有明显改善,费用和收入叙事也越来越弱。 他承认 Ethereum 仍有去中心化、抗审查和 cypherpunk 理念这些长期护城河,但市场短期更关心收入、交易量和估值倍数。 这也是 ETH 当前的问题:Ethereum 仍然主导 DeFi TVL,但 TVL 的收益很多流向协议、稳定币发行方和 L2,并不一定回流到 ETH。 同时,曾经的 「ultrasound money」叙事也变弱了。费用下降有利于用户,但如果交易量不能同步放大,ETH 的燃烧和通缩逻辑就很难重新成立。 所以,Ignas 的观点是:ETH 要重新获得市场信心,不能只靠长期理念,还需要把用户、交易量、费用和价值捕获重新带回来。 🌟结尾 这场争议最有意思的地方在于,ETH 已经不再只是加密圈内部的信仰资产。 过去,ETH 的叙事更多围绕技术升级、生态繁荣和开发者网络展开,只要以太坊还在被使用,市场就默认 ETH 会跟着受益。 但现在,这个默认前提正在被重新审视。市场会继续追问:收入在哪里?现金流在哪里?资金为什么要买入而不是买 BTC?机构为什么要长期持有而不是短期交易?生态增长到底有多少会传导到 ETH? 这也是 ETH 当前最尴尬、也最关键的地方。ETH 接下来真正需要证明的,不只是以太坊还会继续存在,也不是生态还会继续繁荣。 而是当更多资产、更多用户、更多机构进入这个网络时,ETH 能否从「被使用的底层设施」,真正变成「被持续买入和持有的核心资产」。 这才是这轮多空争议背后,最核心的问题。
顯示更多
推荐这篇笔记,对 Kimi K3 架构的独立技术拆解。 六个要点——最让人意外的一条:它完全没有使用位置嵌入,在 2.8T 这种规模上仍然是第一个。 Sebastian Raschka 在 Kimi K3 技术报告发布第二天(7/28)写了一篇精炼的架构笔记,今天登上了 HN 首页(#12,419# 分)。文章很短但信息密度高,以下是六个要点。 1. 本质上是 Kimi Linear 的超级放大版 K3 的架构直接继承自去年的 Kimi Linear(48B),只是从 48B 放大到了 2.8T。"K3 是目前最大的开源权重模型。"(注:Kimi K3 有 2.8T 总参数,104B 激活) 2. 唯一新增组件是 LatentMoE 与 Kimi Linear 相比,K3 唯一的新架构组件是 LatentMoE——和 Nemotron 3 Ultra 使用的结构相同。核心思想是把大型线性层压缩(下投影),类似于 multi-head latent attention(MLA)的做法。 3. 整体趋势指向推理效率 K3 延续了 Nemotron 3、DeepSeek V4 等模型的共同方向:用效率优化版替换标准组件。具体来说: • MoE → LatentMoE • 标准 attention → multi-head latent attention + Kimi Delta Attention (KDA) 4. Attention Residuals 是唯一非效率类改动 与 DeepSeek V4 用 mHC(manifold-constrained Hyper-Connections)改进残差路径不同,K3 使用 Attention Residuals——跨层连接残差,连接本身用 attention score 作为重要性/贡献权重。根据技术报告,它一致地改善验证损失和下游性能(少量提升),带来约 4% 的训练成本增加和 2% 的推理成本增加。 5. K3 完全去掉了 RoPE K3 在所有层使用 NoPE(No Positional Embeddings),这也是从 Kimi Linear 继承的。近期其他架构的趋势是在局部 attention 层(如 sliding window attention)使用 RoPE,在全局层使用 NoPE。有过一些纯 NoPE 的架构,但据 Raschka 所知,K3 是第一个达到前沿水平的纯 NoPE 模型。 6. 原生多模态支持 K3 现在原生支持视觉输入——Raschka 把它列为值得关注的新增能力。 Raschka 的结论 "有一些其他有趣的训练细节在技术报告中,但架构方面的要点就是这些。总的来说是一次非常棒的发布。" Raschka 的 LLM 架构画廊(涵盖本文提到的所有组件): 原文: #KimiK3# #LLMArchitecture# #SebastianRaschka#
顯示更多