一种仅使用 CSS 实现模糊图像占位符(LQIP,Low Quality Image Placeholder)的技术,通过一个自定义 CSS 属性即可实现,无需额外的 HTML 包装元素或 JavaScript 代码。
#CSS
https://leanrada.com/notes/css-only-lqip/
<img src="…" style="--lqip:483606">
#CSS
https://leanrada.com/notes/css-only-lqip/
GitHub Copilot 推出了一系列新功能和升级。Agent 模式 和 MCP(Model Context Protocol)支持现已向所有 VS Code 用户推出。Agent 模式能够将用户的指令转化为代码操作,支持终端命令建议和运行时错误自我修复等功能。GitHub Copilot 还发布了新的 GitHub MCP 服务器,允许开发者将 GitHub 功能添加到任何支持 MCP 的 LLM 工具中。
GitHub Copilot 推出了新的 Pro+ 计划,为个人开发者提供每月 1500 次高级请求和对最新模型(如 GPT-4.5)的访问权限,价格为每月 39 美元。此外,Copilot Pro 用户将从 2025 年 5 月 5 日起每月获得 300 次高级请求,Copilot Business 和 Copilot Enterprise 用户将分别从 2025 年 5 月 12 日至 19 日起获得每月 300 次和 1000 次高级请求。用户还可以选择按需购买额外的高级请求,每次请求费用为 0.04 美元起。
GitHub Copilot 的 代码审查功能现已正式发布,过去一个月的预览期间已有超过 100 万开发者在 GitHub 上使用该功能。此外,“下一步建议”功能 也已正式推出,帮助开发者通过快捷键快速完成代码编辑。
GitHub Copilot 的 Agent 模式支持多种语言模型,包括 Anthropic Claude 3.5、3.7 Sonnet、Google Gemini 2.0 Flash 和 OpenAI GPT-4o。用户可以根据需求选择不同的模型来完成任务。
#Github #MCP #Agents #AI
https://github.blog/news-insights/product-news/github-copilot-agent-mode-activated/
GitHub Copilot 推出了新的 Pro+ 计划,为个人开发者提供每月 1500 次高级请求和对最新模型(如 GPT-4.5)的访问权限,价格为每月 39 美元。此外,Copilot Pro 用户将从 2025 年 5 月 5 日起每月获得 300 次高级请求,Copilot Business 和 Copilot Enterprise 用户将分别从 2025 年 5 月 12 日至 19 日起获得每月 300 次和 1000 次高级请求。用户还可以选择按需购买额外的高级请求,每次请求费用为 0.04 美元起。
GitHub Copilot 的 代码审查功能现已正式发布,过去一个月的预览期间已有超过 100 万开发者在 GitHub 上使用该功能。此外,“下一步建议”功能 也已正式推出,帮助开发者通过快捷键快速完成代码编辑。
GitHub Copilot 的 Agent 模式支持多种语言模型,包括 Anthropic Claude 3.5、3.7 Sonnet、Google Gemini 2.0 Flash 和 OpenAI GPT-4o。用户可以根据需求选择不同的模型来完成任务。
#Github #MCP #Agents #AI
https://github.blog/news-insights/product-news/github-copilot-agent-mode-activated/
AI 在软件开发中的应用,尤其是 `vibe coding`(一种基于聊天的编程方式)以及 `coding agents`(编码代理)的发展趋势,对行业从业者,尤其是初级开发者和高级开发者的影响。
vibe coding,一种通过与大型语言模型(LLM)聊天来编写代码的方式,开发者只需提出需求,模型会生成代码,开发者再将结果反馈给模型以继续改进。这种编程方式与传统编程或代码补全工具截然不同。vibe coding 目前处于一个特殊的发展阶段:一方面,80% 的行业从业者对其一无所知;另一方面,它正在迅速普及,甚至被一些公司采用,尽管其定义仍存在争议。与此同时,一些开发者已经开始转向更先进的 “agent-based coding”(基于 Agent 的编程),这种编程方式比聊天式编程更高效,因为它减少了人工干预,让 AI 代理自行完成更多任务。
未来编程方式将经历多个阶段的演变:从传统的手动编程(2022 年),到基于补全的编程(2023 年),再到聊天式编程(2024 年),随后是编码代理(2025 年上半年)、代理集群(2025 年下半年)以及代理舰队(2026 年)。每一种新的编程方式都比前一种更高效,且增长速度呈指数级上升。例如,聊天式编程的效率可能是手动编程的 5 倍,而编码代理的效率又可能是聊天式编程的 5 倍。这种快速的演变意味着开发者需要不断适应新的工具和技术,否则可能会被行业淘汰。
`coding agents`(编码代理)的工作原理和影响。这些代理能够在文本终端中运行,通过与 LLM 的交互来完成复杂的编程任务,如修复 JIRA 票据中的问题、编写测试代码、运行测试等。它们可以独立完成大量工作,减少了人工干预的需要,从而极大地提高了开发效率。然而,这些代理目前还处于发展的早期阶段,只能处理相对较小的任务,并且需要开发者对其进行监督和指导。尽管如此,它们的潜力巨大,未来有望进一步提升开发效率。
在财务方面,`coding agents` 的使用成本相对较高,每小时可能需要花费 10 至 12 美元的 LLM 代币。这意味着企业需要为每个开发者每天预留 80 至 100 美元的预算,以便他们能够充分利用编码代理。随着代理集群和代理舰队的发展,开发者将能够同时运行多个代理,从而进一步提高生产力。然而,这也意味着企业的运营成本将大幅增加,可能需要重新调整预算。
初级开发者比高级开发者更愿意接受和使用 AI 技术。初级开发者通常更愿意学习新技术,并将其应用于实际工作中。相比之下,一些高级开发者可能对新技术持怀疑态度,或者担心新技术会威胁到他们的工作。然而,那些拒绝接受 AI 的开发者最终会失去竞争力。因为 AI 技术不仅可以提高开发效率,还可以降低企业的运营成本。那些能够快速适应新技术的开发者,尤其是初级开发者,将在未来的软件开发行业中占据更有利的位置。
软件开发行业正在经历一场由 AI 驱动的变革。开发者需要适应新的编程方式,学会使用编码代理和其他 AI 工具。否则,他们可能会被市场淘汰。同时,企业也需要为这种变革做好准备,调整预算,以支持开发者使用新的技术和工具。无论是开发者还是企业,都应该积极拥抱 AI 技术,以保持竞争力。
Sourcegraph 正在研究如何将这些 AI 技术与企业的知识产权和代码库相结合,以提高开发效率和生产力。尽管目前 AI 技术的应用成本较高,但其带来的价值将远远超过成本。未来,软件开发将更多地依赖于 AI 代理的管理和监督,而不是传统的手工编码。
#AI #Agents
https://sourcegraph.com/blog/revenge-of-the-junior-developer?&aid=recprFVVBFf1s8qMk&_bhlid=df4d652e0627f0f693f0df00d18a04e53cce6279
vibe coding,一种通过与大型语言模型(LLM)聊天来编写代码的方式,开发者只需提出需求,模型会生成代码,开发者再将结果反馈给模型以继续改进。这种编程方式与传统编程或代码补全工具截然不同。vibe coding 目前处于一个特殊的发展阶段:一方面,80% 的行业从业者对其一无所知;另一方面,它正在迅速普及,甚至被一些公司采用,尽管其定义仍存在争议。与此同时,一些开发者已经开始转向更先进的 “agent-based coding”(基于 Agent 的编程),这种编程方式比聊天式编程更高效,因为它减少了人工干预,让 AI 代理自行完成更多任务。
未来编程方式将经历多个阶段的演变:从传统的手动编程(2022 年),到基于补全的编程(2023 年),再到聊天式编程(2024 年),随后是编码代理(2025 年上半年)、代理集群(2025 年下半年)以及代理舰队(2026 年)。每一种新的编程方式都比前一种更高效,且增长速度呈指数级上升。例如,聊天式编程的效率可能是手动编程的 5 倍,而编码代理的效率又可能是聊天式编程的 5 倍。这种快速的演变意味着开发者需要不断适应新的工具和技术,否则可能会被行业淘汰。
`coding agents`(编码代理)的工作原理和影响。这些代理能够在文本终端中运行,通过与 LLM 的交互来完成复杂的编程任务,如修复 JIRA 票据中的问题、编写测试代码、运行测试等。它们可以独立完成大量工作,减少了人工干预的需要,从而极大地提高了开发效率。然而,这些代理目前还处于发展的早期阶段,只能处理相对较小的任务,并且需要开发者对其进行监督和指导。尽管如此,它们的潜力巨大,未来有望进一步提升开发效率。
在财务方面,`coding agents` 的使用成本相对较高,每小时可能需要花费 10 至 12 美元的 LLM 代币。这意味着企业需要为每个开发者每天预留 80 至 100 美元的预算,以便他们能够充分利用编码代理。随着代理集群和代理舰队的发展,开发者将能够同时运行多个代理,从而进一步提高生产力。然而,这也意味着企业的运营成本将大幅增加,可能需要重新调整预算。
初级开发者比高级开发者更愿意接受和使用 AI 技术。初级开发者通常更愿意学习新技术,并将其应用于实际工作中。相比之下,一些高级开发者可能对新技术持怀疑态度,或者担心新技术会威胁到他们的工作。然而,那些拒绝接受 AI 的开发者最终会失去竞争力。因为 AI 技术不仅可以提高开发效率,还可以降低企业的运营成本。那些能够快速适应新技术的开发者,尤其是初级开发者,将在未来的软件开发行业中占据更有利的位置。
软件开发行业正在经历一场由 AI 驱动的变革。开发者需要适应新的编程方式,学会使用编码代理和其他 AI 工具。否则,他们可能会被市场淘汰。同时,企业也需要为这种变革做好准备,调整预算,以支持开发者使用新的技术和工具。无论是开发者还是企业,都应该积极拥抱 AI 技术,以保持竞争力。
Sourcegraph 正在研究如何将这些 AI 技术与企业的知识产权和代码库相结合,以提高开发效率和生产力。尽管目前 AI 技术的应用成本较高,但其带来的价值将远远超过成本。未来,软件开发将更多地依赖于 AI 代理的管理和监督,而不是传统的手工编码。
#AI #Agents
https://sourcegraph.com/blog/revenge-of-the-junior-developer?&aid=recprFVVBFf1s8qMk&_bhlid=df4d652e0627f0f693f0df00d18a04e53cce6279
Sourcegraph
Revenge of the junior developer | Sourcegraph Blog
The latest instalment from Steve Yegge on viiiiibe coding and what that means for developer jobs.
Chrome DevTools 的性能面板新增了 Insights 侧边栏,旨在帮助开发者更高效地分析和优化网页性能。该功能于 Chrome 131 版本引入,并在后续版本中不断扩展和改进。
#Chrome #性能 #DevTools
https://levix.notion.site/DevTools-Insights-Insights-sidebar-in-the-DevTools-Performance-panel-1d3383a71284802badd4f05aea4370b6
#Chrome #性能 #DevTools
https://levix.notion.site/DevTools-Insights-Insights-sidebar-in-the-DevTools-Performance-panel-1d3383a71284802badd4f05aea4370b6
Levix Notion 版空间站 on Notion
DevTools 性能面板中的 Insights 侧栏 - Insights sidebar in the DevTools Performance panel | Notion
Chrome DevTools 的性能面板新增了 Insights 侧边栏,旨在帮助开发者更高效地分析和优化网页性能。该功能于 Chrome 131 版本引入,并在后续版本中不断扩展和改进。
谷歌云部门宣布将在 2025 年第三季度推出 Google Distributed Cloud 服务,允许企业客户在其自有数据中心运行谷歌的 Gemini 人工智能模型。这一举措旨在满足那些希望在使用谷歌云技术的同时,保留对自身数据控制权的客户需求。
谷歌的这一服务与竞争对手形成对比。例如,Anthropic 和 OpenAI 尚未开放其模型在物理数据中心运行,因为这会削弱它们对技术质量和速度的控制。而另一家 AI 创业公司 Cohere 虽然允许客户在其自有基础设施上部署模型,但该公司表示,这种方式的设置速度比通过公司自身或使用云端的方式更慢。
谷歌此次的举措可能会吸引一批新的潜在客户。许多公司、学校和政府部门仍然维持着自己的数据中心硬件,尽管近年来云服务已经变得相当普遍。谷歌还表示,即使是符合美国政府机密和绝密级别的客户,也将能够通过断网的 Google Distributed Cloud 空气隔离版本使用 Gemini 模型。
此外,谷歌还宣布与 Nvidia 合作,将 Gemini 模型引入 Nvidia 的 Blackwell 图形处理单元(GPU)。企业可以通过谷歌或其他渠道购买这些芯片。根据行业研究公司 Gartner 的数据,2023 年全球云基础设施支出总计达到 1400 亿美元,其中谷歌占据了 8% 的市场份额,而 Amazon 和 Microsoft 分别占据了 39% 和 23% 的市场份额。
#资讯 #云服务 #Google
https://www.cnbc.com/2025/04/09/google-will-let-companies-run-gemini-models-in-their-own-data-centers.html
谷歌的这一服务与竞争对手形成对比。例如,Anthropic 和 OpenAI 尚未开放其模型在物理数据中心运行,因为这会削弱它们对技术质量和速度的控制。而另一家 AI 创业公司 Cohere 虽然允许客户在其自有基础设施上部署模型,但该公司表示,这种方式的设置速度比通过公司自身或使用云端的方式更慢。
谷歌此次的举措可能会吸引一批新的潜在客户。许多公司、学校和政府部门仍然维持着自己的数据中心硬件,尽管近年来云服务已经变得相当普遍。谷歌还表示,即使是符合美国政府机密和绝密级别的客户,也将能够通过断网的 Google Distributed Cloud 空气隔离版本使用 Gemini 模型。
此外,谷歌还宣布与 Nvidia 合作,将 Gemini 模型引入 Nvidia 的 Blackwell 图形处理单元(GPU)。企业可以通过谷歌或其他渠道购买这些芯片。根据行业研究公司 Gartner 的数据,2023 年全球云基础设施支出总计达到 1400 亿美元,其中谷歌占据了 8% 的市场份额,而 Amazon 和 Microsoft 分别占据了 39% 和 23% 的市场份额。
#资讯 #云服务 #Google
https://www.cnbc.com/2025/04/09/google-will-let-companies-run-gemini-models-in-their-own-data-centers.html
CNBC
Google will let companies run its Gemini AI models in their own data centers
While developers of AI models have generally refrained from opening up access beyond their data centers, Google's announcement suggests that may be changing.
VERT 是一个开源的下一代文件转换工具,完全本地运行且永久免费。它利用 WebAssembly 技术实现在用户设备上直接转换文件,无需依赖云端服务,从而确保数据隐私和安全性。VERT 支持多种文件格式的转换,包括但不限于图片、视频和文档等,且不受文件大小限制,具有高度的灵活性和实用性。
#Tools
https://vert.sh/
#Tools
https://vert.sh/
vert.sh
VERT.sh — Free, fast, and awesome file convert
With VERT you can quickly convert any image, video and audio file. No ads, no tracking, open source, and all processing (other than video) is done on your device.
一份关于大学生使用 Claude AI 的教育报告,研究了高等教育环境中学生如何将 AI 工具融入学术工作。
STEM 学生尤其是计算机科学专业的学生是 AI 工具的早期采用者。计算机科学专业学生仅占美国学士学位的 5.4%,但在 Claude 的对话中占比高达 36.8%。相比之下,商业、健康和人文学科的学生采用率较低。
学生与 AI 的互动方式可分为四种模式:直接解决问题、直接输出创作、协作解决问题和协作输出创作,每种模式在对话中占比相近(23%-29%)。
学生主要使用 AI 进行内容创作(如设计练习题、编辑论文)和分析(如分析法律概念),这与布卢姆教育目标分类学中的高阶认知功能相符。然而,这也引发了学生是否会将关键认知任务外包给 AI 的担忧。
学生在不同学科中使用 AI 的方式存在差异。例如,自然科学与数学领域的对话倾向于问题解决,而计算机科学、工程学和自然科学与数学则更倾向于协作式对话。教育领域的对话中,输出创作占比最高(74.4%),但其中可能包含教师使用 Claude 制作教学材料的情况。
此外,报告通过布卢姆教育目标分类学分析了学生委托给 AI 的认知任务,发现 AI 主要完成高阶认知功能,如“创造”(39.8%)和“分析”(30.2%),而低阶认知任务如“应用”(10.9%)、“理解”(10.0%)和“记忆”(1.8%)较少。这种分布因互动风格而异,输出创作任务更多涉及创造功能,问题解决任务则更多涉及分析功能。
报告的局限性在于,数据集可能仅涵盖早期采用者,无法完全代表整个学生群体;且仅分析了 Claude.ai 的使用情况,忽略了其他 AI 工具的使用。此外,由于隐私考虑,仅分析了 18 天内的数据,无法反映学生全年使用模式的变化。报告也未研究学生如何将 AI 输出用于学术工作,以及这些对话是否真正支持学习成果。
#报告 #Claude #AI
https://www.anthropic.com/news/anthropic-education-report-how-university-students-use-claude
STEM 学生尤其是计算机科学专业的学生是 AI 工具的早期采用者。计算机科学专业学生仅占美国学士学位的 5.4%,但在 Claude 的对话中占比高达 36.8%。相比之下,商业、健康和人文学科的学生采用率较低。
学生与 AI 的互动方式可分为四种模式:直接解决问题、直接输出创作、协作解决问题和协作输出创作,每种模式在对话中占比相近(23%-29%)。
学生主要使用 AI 进行内容创作(如设计练习题、编辑论文)和分析(如分析法律概念),这与布卢姆教育目标分类学中的高阶认知功能相符。然而,这也引发了学生是否会将关键认知任务外包给 AI 的担忧。
学生在不同学科中使用 AI 的方式存在差异。例如,自然科学与数学领域的对话倾向于问题解决,而计算机科学、工程学和自然科学与数学则更倾向于协作式对话。教育领域的对话中,输出创作占比最高(74.4%),但其中可能包含教师使用 Claude 制作教学材料的情况。
此外,报告通过布卢姆教育目标分类学分析了学生委托给 AI 的认知任务,发现 AI 主要完成高阶认知功能,如“创造”(39.8%)和“分析”(30.2%),而低阶认知任务如“应用”(10.9%)、“理解”(10.0%)和“记忆”(1.8%)较少。这种分布因互动风格而异,输出创作任务更多涉及创造功能,问题解决任务则更多涉及分析功能。
报告的局限性在于,数据集可能仅涵盖早期采用者,无法完全代表整个学生群体;且仅分析了 Claude.ai 的使用情况,忽略了其他 AI 工具的使用。此外,由于隐私考虑,仅分析了 18 天内的数据,无法反映学生全年使用模式的变化。报告也未研究学生如何将 AI 输出用于学术工作,以及这些对话是否真正支持学习成果。
#报告 #Claude #AI
https://www.anthropic.com/news/anthropic-education-report-how-university-students-use-claude
Anthropic
Anthropic Education Report: How University Students Use Claude
AI systems are no longer just specialized research tools: they’re everyday academic companions. As AIs integrate more deeply into educational environments, we need to consider important questions about learning, assessment, and skill development. Until now…
优秀程序员的特质
1. 深入理解工具:他们不仅会使用工具,更会深入理解工具的原理、历史、维护者、局限性和生态系统。例如,后端工程师如果大量使用 Kafka,就应该对其有深入的了解,而不仅仅是通过 Reddit 等渠道获取的碎片化信息。
2. 重视阅读错误信息:优秀程序员会认真阅读错误信息并尝试理解其含义,从而能够从有限的上下文中推断出大量信息,自行解决大部分问题。这种能力甚至被形容为一种“超能力”,可以帮助他人解决难题。
3. 善于分解问题:面对难题,他们会将其分解为更小、更易于解决的部分。这是一种需要大量经验积累的技能,也是专业开发人员的主要工作内容。通过正确分解问题,可以使工作变得相对轻松。
4. 不惧怕接触代码:优秀程序员乐于阅读和修改代码,不会因代码的复杂性或陌生性而退缩。他们相信通过时间和努力可以掌握任何所需的技能,并且往往因为是团队中第一个勇于接触某部分代码的人而成为该领域的专家。
5. 乐于助人:尽管优秀工程师通常很忙,但他们总是愿意帮助他人。这种乐于助人的品质不仅源于他们的善良,更源于他们天生的好奇心和解决问题的能力,这使得他们成为团队中不可或缺的一员。
6. 注重写作能力:优秀的程序员通常也是出色的写作者。他们通过博客、演讲、开源项目等方式分享知识。写作能力与编程能力之间存在很强的相关性,良好的写作能力意味着清晰、有条理的思维方式,这也会反映在代码风格上。
7. 持续学习:一些顶尖的程序员即使年过六十依然保持着学习的热情,不断尝试新的工具和技术,从而能够始终跟上时代的步伐。他们不会盲目跟随潮流,但会对新技术进行谨慎评估,能够明确指出其优缺点及适用场景。
8. 不看重地位:优秀程序员不会因职位高低而区别对待他人,他们愿意从每个人身上学习,无论是资深的首席工程师还是初出茅庐的初级开发人员。新人往往不受办公室政治的影响,思维更加灵活,能够提出创新的解决方案。
9. 建立声誉:要想成为顶尖程序员,不仅要做好工作,还要让自己的工作被更多人知晓。可以通过构建关键服务、开发知名工具、贡献开源项目或撰写书籍等方式来扩大影响力。建立声誉是一个长期目标,需要持续努力,但随着时间的推移,优秀的工作成果会逐渐得到认可。
10. 保持耐心:对计算机和人类都要有耐心,尤其是对自己。遇到问题时,要保持冷静,不要急于指责他人或外部环境。优秀的程序员能够保持耐心,专注于解决问题,而不是被情绪左右。
11. 不指责计算机:当遇到看似随机的错误时,优秀程序员不会将责任归咎于软件或其他外部因素。他们相信任何问题都有逻辑上的解释,只是尚未找到而已。这种态度使他们能够不断进步,学到别人学不到的东西。
12. 勇于承认“不知道”:在面试中,优秀候选人会坦诚地表示“不知道”,但同时会尝试通过逻辑推理来寻找答案。这种态度表明他们具有学习的潜力,而不是盲目自信或防御性地掩饰自己的无知。
13. 避免猜测:在面对不确定性时,应避免猜测,而是通过提问、查阅资料、使用调试工具等方式来获取准确答案。错误的猜测可能导致错误的假设,进而影响后续的开发工作。
14. 保持简单:优秀的工程师倾向于编写简单易懂的代码,而不是追求复杂巧妙的解决方案。简单性通常足以满足需求,并且更容易维护。在适当的时候追求完美,但在大多数情况下,简单是更好的选择。
#思考 #编码
https://endler.dev/2025/best-programmers/
1. 深入理解工具:他们不仅会使用工具,更会深入理解工具的原理、历史、维护者、局限性和生态系统。例如,后端工程师如果大量使用 Kafka,就应该对其有深入的了解,而不仅仅是通过 Reddit 等渠道获取的碎片化信息。
2. 重视阅读错误信息:优秀程序员会认真阅读错误信息并尝试理解其含义,从而能够从有限的上下文中推断出大量信息,自行解决大部分问题。这种能力甚至被形容为一种“超能力”,可以帮助他人解决难题。
3. 善于分解问题:面对难题,他们会将其分解为更小、更易于解决的部分。这是一种需要大量经验积累的技能,也是专业开发人员的主要工作内容。通过正确分解问题,可以使工作变得相对轻松。
4. 不惧怕接触代码:优秀程序员乐于阅读和修改代码,不会因代码的复杂性或陌生性而退缩。他们相信通过时间和努力可以掌握任何所需的技能,并且往往因为是团队中第一个勇于接触某部分代码的人而成为该领域的专家。
5. 乐于助人:尽管优秀工程师通常很忙,但他们总是愿意帮助他人。这种乐于助人的品质不仅源于他们的善良,更源于他们天生的好奇心和解决问题的能力,这使得他们成为团队中不可或缺的一员。
6. 注重写作能力:优秀的程序员通常也是出色的写作者。他们通过博客、演讲、开源项目等方式分享知识。写作能力与编程能力之间存在很强的相关性,良好的写作能力意味着清晰、有条理的思维方式,这也会反映在代码风格上。
7. 持续学习:一些顶尖的程序员即使年过六十依然保持着学习的热情,不断尝试新的工具和技术,从而能够始终跟上时代的步伐。他们不会盲目跟随潮流,但会对新技术进行谨慎评估,能够明确指出其优缺点及适用场景。
8. 不看重地位:优秀程序员不会因职位高低而区别对待他人,他们愿意从每个人身上学习,无论是资深的首席工程师还是初出茅庐的初级开发人员。新人往往不受办公室政治的影响,思维更加灵活,能够提出创新的解决方案。
9. 建立声誉:要想成为顶尖程序员,不仅要做好工作,还要让自己的工作被更多人知晓。可以通过构建关键服务、开发知名工具、贡献开源项目或撰写书籍等方式来扩大影响力。建立声誉是一个长期目标,需要持续努力,但随着时间的推移,优秀的工作成果会逐渐得到认可。
10. 保持耐心:对计算机和人类都要有耐心,尤其是对自己。遇到问题时,要保持冷静,不要急于指责他人或外部环境。优秀的程序员能够保持耐心,专注于解决问题,而不是被情绪左右。
11. 不指责计算机:当遇到看似随机的错误时,优秀程序员不会将责任归咎于软件或其他外部因素。他们相信任何问题都有逻辑上的解释,只是尚未找到而已。这种态度使他们能够不断进步,学到别人学不到的东西。
12. 勇于承认“不知道”:在面试中,优秀候选人会坦诚地表示“不知道”,但同时会尝试通过逻辑推理来寻找答案。这种态度表明他们具有学习的潜力,而不是盲目自信或防御性地掩饰自己的无知。
13. 避免猜测:在面对不确定性时,应避免猜测,而是通过提问、查阅资料、使用调试工具等方式来获取准确答案。错误的猜测可能导致错误的假设,进而影响后续的开发工作。
14. 保持简单:优秀的工程师倾向于编写简单易懂的代码,而不是追求复杂巧妙的解决方案。简单性通常足以满足需求,并且更容易维护。在适当的时候追求完美,但在大多数情况下,简单是更好的选择。
#思考 #编码
https://endler.dev/2025/best-programmers/
endler.dev
The Best Programmers I Know
I have met a lot of developers in my life.
Late…
Late…
Agent2Agent (A2A) 协议,实现 AI Agents 之间的无缝协作与互操作性。
A2A 协议的核心目标是让不同供应商或框架构建的 AI 代理能够在动态的多代理生态系统中跨孤立的数据系统和应用程序进行协作。通过实现代理之间的互操作性,可以提高自主性,显著提升生产力,同时降低长期成本。该协议基于谷歌在扩展代理系统方面的内部经验,旨在解决在为客户提供大规模多代理系统部署时所面临的挑战。
#A2A #Google #AI
https://developers.googleblog.com/en/a2a-a-new-era-of-agent-interoperability/
A2A 协议的核心目标是让不同供应商或框架构建的 AI 代理能够在动态的多代理生态系统中跨孤立的数据系统和应用程序进行协作。通过实现代理之间的互操作性,可以提高自主性,显著提升生产力,同时降低长期成本。该协议基于谷歌在扩展代理系统方面的内部经验,旨在解决在为客户提供大规模多代理系统部署时所面临的挑战。
#A2A #Google #AI
https://developers.googleblog.com/en/a2a-a-new-era-of-agent-interoperability/
一个全面的键盘快捷键表格,涵盖了多种操作系统(如 Windows、macOS、Linux 等)以及常见的软件应用程序(如浏览器、文本编辑器等)中的键盘快捷键。
#Tools
https://en.wikipedia.org/wiki/Table_of_keyboard_shortcuts
#Tools
https://en.wikipedia.org/wiki/Table_of_keyboard_shortcuts
Wikipedia
Table of keyboard shortcuts
Wikimedia list article
Firebase Studio 是一个全栈 AI 工作空间,旨在加速整个开发生命周期。支持构建后端、前端和移动应用,所有操作均可在一个平台上完成。与 Gemini AI 工具集成,可完成编码、调试、测试、重构、代码解释和文档编写等多种任务。AI 助手能够与代码库交互并代表用户执行操作。新的 Gemini Code Assist 代理可帮助完成从迁移代码到 AI 测试的各种任务。
#Google #AI #IDE
https://firebase.studio/
#Google #AI #IDE
https://firebase.studio/
JavaScript 开发者在 2025 年应该了解的一些重要特性
1. Iterator helpers
在处理大型数组时,传统的链式数组操作(如
JavaScript 引入了迭代器方法,这些方法不会创建临时数组,而是通过迭代器逐个处理数据,从而节省内存。
常用迭代器方法:
Iterator.prototype.drop():跳过迭代器开头的指定数量元素。
Iterator.prototype.take():从迭代器开头取指定数量的元素。
Iterator.prototype.some() 和 Iterator.prototype.every():分别用于测试迭代器中是否有元素满足条件或所有元素是否满足条件。
Iterator.prototype.filter()、Iterator.prototype.find()、Iterator.prototype.flatMap():分别用于过滤、查找和展平迭代器中的值。
Iterator.prototype.forEach()、Iterator.prototype.map()、Iterator.prototype.reduce():分别用于遍历、映射和归并迭代器中的值。
Iterator.prototype.toArray():将迭代器中的值转换为数组。
2. Array at() method
Array.prototype.at() 是一种替代方式,用于访问数组中的第 n 个元素。它支持负索引,从数组末尾开始计数。
3. Promise.withResolvers()
Promise.withResolvers() 可以直接返回一个包含 promise、resolve 和 reject 的对象,简化了代码。
4. String.prototype.replace() / String.prototype.replaceAll() callback(字符串替换的回调函数)
5. Swapping variables(交换变量)
6. structuredClone()(结构化克隆)
开发者通常使用
- 不支持某些值(如 NaN、undefined 和 bigint)。
- 无法处理包含循环引用的对象。
- 对于大型对象,效率低下且浪费内存。
7. Tagged templates
标记模板允许通过函数解析模板字符串。第一个参数是一个字符串数组,其余参数是表达式的值。可以在插值值(或整个字符串)上执行自动转换。
8. WeakMap / WeakSet
9. Set operations
JavaScript 现在支持对
Set.prototype.difference():返回一个新集合,包含当前集合中但不在给定集合中的元素。
Set.prototype.intersection():返回一个新集合,包含当前集合和给定集合的交集。
Set.prototype.union():返回一个新集合,包含当前集合和给定集合的并集。
Set.prototype.symmetricDifference():返回一个新集合,包含当前集合和给定集合的对称差集。
Set.prototype.isDisjointFrom():判断当前集合与给定集合是否没有交集。
Set.prototype.isSubsetOf():判断当前集合是否是给定集合的子集。
Set.prototype.isSupersetOf():判断当前集合是否是给定集合的超集。
#JavaScript #新特性
https://waspdev.com/articles/2025-04-06/features-that-every-js-developer-must-know-in-2025
1. Iterator helpers
在处理大型数组时,传统的链式数组操作(如
arr.slice(10, 20).filter(el => el < 10).map(el => el + 5)
)会创建多个临时数组,导致性能低下。JavaScript 引入了迭代器方法,这些方法不会创建临时数组,而是通过迭代器逐个处理数据,从而节省内存。
常用迭代器方法:
Iterator.prototype.drop():跳过迭代器开头的指定数量元素。
Iterator.prototype.take():从迭代器开头取指定数量的元素。
Iterator.prototype.some() 和 Iterator.prototype.every():分别用于测试迭代器中是否有元素满足条件或所有元素是否满足条件。
Iterator.prototype.filter()、Iterator.prototype.find()、Iterator.prototype.flatMap():分别用于过滤、查找和展平迭代器中的值。
Iterator.prototype.forEach()、Iterator.prototype.map()、Iterator.prototype.reduce():分别用于遍历、映射和归并迭代器中的值。
Iterator.prototype.toArray():将迭代器中的值转换为数组。
2. Array at() method
Array.prototype.at() 是一种替代方式,用于访问数组中的第 n 个元素。它支持负索引,从数组末尾开始计数。
[10, 20, 30].at(-1)
返回 30。3. Promise.withResolvers()
Promise.withResolvers() 可以直接返回一个包含 promise、resolve 和 reject 的对象,简化了代码。
const { promise, resolve, reject } = Promise.withResolvers();
4. String.prototype.replace() / String.prototype.replaceAll() callback(字符串替换的回调函数)
String.prototype.replace()
和 String.prototype.replaceAll()
的第二个参数可以是一个回调函数,而不仅仅是字符串。
let counter = 0;
console.log("NUMBER, NUMBER, NUMBER".replaceAll("NUMBER", (match) => match + "=" + (++counter)));
// 输出:NUMBER=1, NUMBER=2, NUMBER=3
5. Swapping variables(交换变量)
let a = 1, b = 2;
[a, b] = [b, a];
6. structuredClone()(结构化克隆)
开发者通常使用
JSON.stringify()
和 JSON.parse()
来深拷贝对象,但这种方法存在以下问题:- 不支持某些值(如 NaN、undefined 和 bigint)。
- 无法处理包含循环引用的对象。
- 对于大型对象,效率低下且浪费内存。
structuredClone()
是浏览器提供的 API,可以更高效地深拷贝对象,并且自动处理循环引用。
const obj = {};
obj.selfReference = obj;
const clonedObj = structuredClone(obj);
console.log(obj === clonedObj); // false
console.log(clonedObj.selfReference === clonedObj); // true
7. Tagged templates
标记模板允许通过函数解析模板字符串。第一个参数是一个字符串数组,其余参数是表达式的值。可以在插值值(或整个字符串)上执行自动转换。
8. WeakMap / WeakSet
WeakMap
和 WeakSet
是类似于 Map 和 Set 的数据结构,但它们的键必须是对象,且不支持迭代器。当键的所有引用丢失时,键和可能的值可以被垃圾回收器回收,从而避免内存泄漏。9. Set operations
JavaScript 现在支持对
Set
对象进行布尔运算。Set.prototype.difference():返回一个新集合,包含当前集合中但不在给定集合中的元素。
Set.prototype.intersection():返回一个新集合,包含当前集合和给定集合的交集。
Set.prototype.union():返回一个新集合,包含当前集合和给定集合的并集。
Set.prototype.symmetricDifference():返回一个新集合,包含当前集合和给定集合的对称差集。
Set.prototype.isDisjointFrom():判断当前集合与给定集合是否没有交集。
Set.prototype.isSubsetOf():判断当前集合是否是给定集合的子集。
Set.prototype.isSupersetOf():判断当前集合是否是给定集合的超集。
#JavaScript #新特性
https://waspdev.com/articles/2025-04-06/features-that-every-js-developer-must-know-in-2025
WaspDev Blog
Some features that every JavaScript developer should know in 2025
The list of JavaScript features that every web developer should know in 2025 in order to efficiently code in JavaScript.
Costa Alexoglou 及其团队在开发低延迟远程配对编程工具 Hopp 时,对 Tauri 和 Electron 两个跨平台桌面应用框架进行了深入对比。他们从架构设计、功能特性、性能表现等多个角度分析了两者的优缺点,以帮助其他开发者在选择框架时做出更明智的决策。
Electron 的主进程基于 Node.js 运行,需要将 Node.js 运行时与应用一起打包,这增加了应用的体积。其渲染进程类似于浏览器中的一个标签页,每个窗口都会创建一个新的渲染进程,多窗口应用会消耗大量内存和 CPU 资源。而 Tauri 使用 Rust 作为后端语言,编译为原生二进制文件,无需额外的运行时,因此应用体积更小。Tauri 还使用操作系统的原生 WebView 组件来渲染 UI,而不是捆绑完整的 Chromium 引擎,进一步减小了应用体积,但这也可能导致跨平台 UI 一致性问题。
在功能对比方面,Tauri 和 Electron 的启动时间都很快,差异不大。但在内存使用上,Tauri 的内存使用量显著低于 Electron(Tauri 约 172 MB,Electron 约 409 MB)。Electron 使用完整的 Chromium 引擎,而 Tauri 依赖系统 WebView,这使得 Tauri 在打包体积上更具优势。Tauri 的打包体积为 8.6 MiB,而 Electron 为 244 MiB。此外,Tauri 的初始构建时间较慢(约 1 分 20 秒),而 Electron 的构建时间较快(约 15 秒)。
为了验证两者的实际性能差异,Costa Alexoglou 及其团队创建了两个简单的应用,分别使用 Tauri 和 Electron,功能为显示主窗口并可打开 6 个新窗口,以观察资源使用情况。测试结果显示,Tauri 的构建时间显著长于 Electron,主要是因为 Rust 的编译过程较为复杂。在打包体积方面,Tauri 的体积远小于 Electron,主要得益于不捆绑 Node.js 运行时和使用系统 WebView。在内存使用上,Tauri 的内存使用量约为 172 MB,而 Electron 约为 409 MB,Tauri 在内存效率上表现更好。在启动时间方面,两者差异不大,均在 1500 ms 以内。
Costa Alexoglou 及其团队最终选择 Tauri 的原因主要有三点。首先,Hopp 依赖定制版 WebRTC 实现低延迟屏幕共享,Rust 的性能更适合处理这种高强度任务。其次,Tauri 的 Sidecar 功能简化了外部进程的生命周期管理,便于开发和测试独立的屏幕流和远程控制输入功能。最后,尽管 Tauri 相对较新,但其发展迅速,Tauri v2 提供了重要的功能,如内置更新器,且项目专注于性能和安全,与 Hopp 的需求高度契合。
Costa Alexoglou 及其团队强调,没有绝对的“正确”选择,Tauri 和 Electron 各有优势和局限性,最佳选择取决于项目的具体需求、团队的技术背景以及项目目标。Tauri 在内存使用和打包体积方面表现更好,但可能面临跨平台 UI 一致性问题和开发复杂性;Electron 则在开发便捷性和功能完整性上更具优势,但体积较大且内存消耗较高。
#客户端 #Electron #Tauri
https://gethopp.app/blog/tauri-vs-electron
Electron 的主进程基于 Node.js 运行,需要将 Node.js 运行时与应用一起打包,这增加了应用的体积。其渲染进程类似于浏览器中的一个标签页,每个窗口都会创建一个新的渲染进程,多窗口应用会消耗大量内存和 CPU 资源。而 Tauri 使用 Rust 作为后端语言,编译为原生二进制文件,无需额外的运行时,因此应用体积更小。Tauri 还使用操作系统的原生 WebView 组件来渲染 UI,而不是捆绑完整的 Chromium 引擎,进一步减小了应用体积,但这也可能导致跨平台 UI 一致性问题。
在功能对比方面,Tauri 和 Electron 的启动时间都很快,差异不大。但在内存使用上,Tauri 的内存使用量显著低于 Electron(Tauri 约 172 MB,Electron 约 409 MB)。Electron 使用完整的 Chromium 引擎,而 Tauri 依赖系统 WebView,这使得 Tauri 在打包体积上更具优势。Tauri 的打包体积为 8.6 MiB,而 Electron 为 244 MiB。此外,Tauri 的初始构建时间较慢(约 1 分 20 秒),而 Electron 的构建时间较快(约 15 秒)。
为了验证两者的实际性能差异,Costa Alexoglou 及其团队创建了两个简单的应用,分别使用 Tauri 和 Electron,功能为显示主窗口并可打开 6 个新窗口,以观察资源使用情况。测试结果显示,Tauri 的构建时间显著长于 Electron,主要是因为 Rust 的编译过程较为复杂。在打包体积方面,Tauri 的体积远小于 Electron,主要得益于不捆绑 Node.js 运行时和使用系统 WebView。在内存使用上,Tauri 的内存使用量约为 172 MB,而 Electron 约为 409 MB,Tauri 在内存效率上表现更好。在启动时间方面,两者差异不大,均在 1500 ms 以内。
Costa Alexoglou 及其团队最终选择 Tauri 的原因主要有三点。首先,Hopp 依赖定制版 WebRTC 实现低延迟屏幕共享,Rust 的性能更适合处理这种高强度任务。其次,Tauri 的 Sidecar 功能简化了外部进程的生命周期管理,便于开发和测试独立的屏幕流和远程控制输入功能。最后,尽管 Tauri 相对较新,但其发展迅速,Tauri v2 提供了重要的功能,如内置更新器,且项目专注于性能和安全,与 Hopp 的需求高度契合。
Costa Alexoglou 及其团队强调,没有绝对的“正确”选择,Tauri 和 Electron 各有优势和局限性,最佳选择取决于项目的具体需求、团队的技术背景以及项目目标。Tauri 在内存使用和打包体积方面表现更好,但可能面临跨平台 UI 一致性问题和开发复杂性;Electron 则在开发便捷性和功能完整性上更具优势,但体积较大且内存消耗较高。
#客户端 #Electron #Tauri
https://gethopp.app/blog/tauri-vs-electron
www.gethopp.app
Tauri vs. Electron: performance, bundle size, and the real trade-offs
A breakdown of the choice between Tauri and Electron for cross-platform apps, backed by practical comparisons and benchmark data.
Adam Argyle 在其个人网站上发布了一篇题为“G̶o̶o̶g̶l̶e̶r̶… ex-Googler.”的文章,分享了自己在谷歌的角色被取消的经历。Adam Argyle 表示,他被告知这一决定让 Chrome 团队领导都感到震惊,且并非基于工作表现,他还被告知可以寻找其他角色。然而,他同时被立即剥夺了对日历、文档、代码等的访问权限,这让他感觉自己像一个罪犯。当时,Adam 正在参加 Chrome 团队的线下活动,和团队成员们一起进行创新工作,感觉非常有趣。但谷歌的这一决定让他感觉之前所有的美好时刻都从未发生过,他仿佛从未参与过这些重要的工作。他列举了自己原本计划要做的事情,包括录制谷歌 I/O 大会视频、在大会上演讲、在主舞台外的展位工作、协助开发者主题演讲等,但现在这些都化为泡影。他还提到了自己原本参与的 CSS 工作组成员身份、开发者办公时间、对 Chrome Carousel Gallery 的代码访问权限等也都随之消失,他花费多年时间建立的关系也大多会失去。Adam 感到自己被背叛,不被欣赏,被当作垃圾一样丢弃,他无法入睡,感到羞愧和愤怒,觉得自己只是谷歌这个大公司里的一个普通小零件。
#Google #吃瓜
https://nerdy.dev/ex-googler
#Google #吃瓜
https://nerdy.dev/ex-googler
nerdy.dev
G̶o̶o̶g̶l̶e̶r̶… ex-Googler.
My role at Google was eliminated.
MCP 潜在的所有问题
模型上下文协议(MCP) 是一种用于将第三方工具和数据源与基于大型语言模型(LLM)的聊天机器人和智能助手集成的标准协议。它允许用户将自定义工具添加到智能助手中,从而实现更强大的功能,例如自动执行任务、访问私人数据等。然而,MCP 在快速发展的同时,也暴露出许多潜在问题和局限性,这些问题不仅涉及技术层面,还可能对用户的安全和隐私造成威胁。
协议安全方面,MCP 最初未定义身份验证规范,导致各服务器自行实现,出现了从高摩擦到无授权机制的各种情况。后来虽引入身份验证规范,但引发了复杂性问题,例如 Christian Posta 的博客中提到的 OAuth 规范问题以及相关 RFC 讨论。此外,MCP 支持在本地通过标准输入输出(stdio)运行服务器,这使得用户容易因下载和运行第三方代码而受到攻击。许多 MCP 服务器还会直接执行用户输入的代码,这在传统安全模型中是一个危险的漏洞,尤其是在 LLM 的意图翻译器介入后,问题变得更加复杂。
用户界面和体验(UI/UX)方面,MCP 的设计虽然对 LLM 友好,但对人类用户并不总是友好。它没有定义工具风险级别,用户可能在与智能助手交流时使用多种工具,如读取日记、预订机票、删除文件等,这些工具的风险程度各不相同,但助手或应用程序可能无法准确评估。此外,MCP 也没有成本控制机制,LLM 的输出成本较高,例如 1MB 的输出可能需要 1 美元,这使得用户的使用成本可能因 MCP 集成而大幅增加。MCP 的工具响应设计为同步文本、图像或音频片段,缺乏结构化数据支持,这在某些需要丰富界面或异步更新的场景中显得不足。
LLM 安全方面,MCP 使得 LLM 的安全性问题更加突出。它允许更强大的提示注入攻击,工具作为系统提示的一部分,可能被恶意利用来覆盖智能助手的行为。例如,通过添加一个工具,可以迫使智能助手在用户不知情的情况下包含后门。此外,MCP 还可能被用于数据泄露,恶意工具可以要求智能助手检索敏感文件并将其内容传递给第三方。即使没有恶意行为者,用户也可能在不经意间通过 MCP 泄露敏感数据,例如智能助手在帮助用户撰写文章时,可能会从用户的云存储中读取相关文件并无意中包含敏感信息。
LLM 本身的局限性方面,MCP 的效果依赖于可靠的 LLM 助手。然而,LLM 的可靠性通常会随着提供给它的上下文信息量的增加而降低。用户可能会误以为提供更多数据和集成就能解决所有问题,但实际上,随着集成的工具数量增加,助手的性能可能会下降,同时请求成本也会增加。此外,不同的 LLM 对工具名称和描述的敏感性不同,这可能导致用户在使用 MCP 时遇到问题,例如某些工具可能需要特定的描述格式才能被正确识别和使用。
尽管 MCP 存在诸多问题,但它仍然是一个重要的协议,因为它满足了将 LLM 与数据结合的需求。然而,要解决这些问题,需要从协议设计、应用程序开发和用户教育等多个方面入手,以确保在利用 MCP 的同时,能够保障用户的安全和隐私。
#MCP #AI
https://blog.sshh.io/p/everything-wrong-with-mcp
模型上下文协议(MCP) 是一种用于将第三方工具和数据源与基于大型语言模型(LLM)的聊天机器人和智能助手集成的标准协议。它允许用户将自定义工具添加到智能助手中,从而实现更强大的功能,例如自动执行任务、访问私人数据等。然而,MCP 在快速发展的同时,也暴露出许多潜在问题和局限性,这些问题不仅涉及技术层面,还可能对用户的安全和隐私造成威胁。
协议安全方面,MCP 最初未定义身份验证规范,导致各服务器自行实现,出现了从高摩擦到无授权机制的各种情况。后来虽引入身份验证规范,但引发了复杂性问题,例如 Christian Posta 的博客中提到的 OAuth 规范问题以及相关 RFC 讨论。此外,MCP 支持在本地通过标准输入输出(stdio)运行服务器,这使得用户容易因下载和运行第三方代码而受到攻击。许多 MCP 服务器还会直接执行用户输入的代码,这在传统安全模型中是一个危险的漏洞,尤其是在 LLM 的意图翻译器介入后,问题变得更加复杂。
用户界面和体验(UI/UX)方面,MCP 的设计虽然对 LLM 友好,但对人类用户并不总是友好。它没有定义工具风险级别,用户可能在与智能助手交流时使用多种工具,如读取日记、预订机票、删除文件等,这些工具的风险程度各不相同,但助手或应用程序可能无法准确评估。此外,MCP 也没有成本控制机制,LLM 的输出成本较高,例如 1MB 的输出可能需要 1 美元,这使得用户的使用成本可能因 MCP 集成而大幅增加。MCP 的工具响应设计为同步文本、图像或音频片段,缺乏结构化数据支持,这在某些需要丰富界面或异步更新的场景中显得不足。
LLM 安全方面,MCP 使得 LLM 的安全性问题更加突出。它允许更强大的提示注入攻击,工具作为系统提示的一部分,可能被恶意利用来覆盖智能助手的行为。例如,通过添加一个工具,可以迫使智能助手在用户不知情的情况下包含后门。此外,MCP 还可能被用于数据泄露,恶意工具可以要求智能助手检索敏感文件并将其内容传递给第三方。即使没有恶意行为者,用户也可能在不经意间通过 MCP 泄露敏感数据,例如智能助手在帮助用户撰写文章时,可能会从用户的云存储中读取相关文件并无意中包含敏感信息。
LLM 本身的局限性方面,MCP 的效果依赖于可靠的 LLM 助手。然而,LLM 的可靠性通常会随着提供给它的上下文信息量的增加而降低。用户可能会误以为提供更多数据和集成就能解决所有问题,但实际上,随着集成的工具数量增加,助手的性能可能会下降,同时请求成本也会增加。此外,不同的 LLM 对工具名称和描述的敏感性不同,这可能导致用户在使用 MCP 时遇到问题,例如某些工具可能需要特定的描述格式才能被正确识别和使用。
尽管 MCP 存在诸多问题,但它仍然是一个重要的协议,因为它满足了将 LLM 与数据结合的需求。然而,要解决这些问题,需要从协议设计、应用程序开发和用户教育等多个方面入手,以确保在利用 MCP 的同时,能够保障用户的安全和隐私。
#MCP #AI
https://blog.sshh.io/p/everything-wrong-with-mcp
blog.sshh.io
Everything Wrong with MCP
Explaining the Model Context Protocol and everything that might go wrong.
OpenAI 团队宣布推出 GPT-4.1 系列模型,包括 GPT-4.1、GPT-4.1 mini 和 GPT-4.1 nano,这些模型在编码、指令遵循和长文本处理等方面有显著提升。GPT-4.1 在 SWE-bench Verified 编码测试中得分 54.6%,比 GPT-4o 提高 21.4%;在 Scale 的 MultiChallenge 指令遵循测试中得分 38.3%,比 GPT-4o 提高 10.5%;在 Video-MME 长文本理解测试中得分 72.0%,比 GPT-4o 提高 6.7%。GPT-4.1 mini 性能优异,甚至在许多基准测试中超越 GPT-4o,同时将延迟降低近一半,成本降低 83%。GPT-4.1 nano 是目前最快且最便宜的模型,支持 100 万 token 的上下文窗口,在 MMLU、GPQA 和多语言编码测试中表现突出。
GPT-4.1 系列模型在实际应用场景中表现出色。例如,Windsurf 的内部编码基准测试中,GPT-4.1 的得分比 GPT-4o 高出 60%,代码变更在首次审查中的接受率更高。Qodo 在测试中发现 GPT-4.1 在生成高质量代码评审方面表现优异,能够在 55% 的案例中提供更好的建议。在指令遵循方面,GPT-4.1 在内部评估中对复杂指令的遵循能力显著提升,尤其是在格式遵循、负指令处理和多步骤指令执行等方面。Blue J 的内部基准测试显示,GPT-4.1 在处理复杂的税务场景时准确率比 GPT-4o 提高 53%,能够更好地理解复杂的法规并遵循细微的指令。
在长文本处理方面,GPT-4.1 系列模型支持高达 100 万 token 的上下文窗口,能够处理大型代码库或大量长文档。OpenAI-MRCR 多轮指代消解评估中,GPT-4.1 能够在复杂的上下文中准确识别并区分多个相似请求。Graphwalks 多跳长文本推理评估中,GPT-4.1 实现了 61.7% 的准确率,展现出强大的长文本推理能力。Thomson Reuters 在使用 CoCounsel 法律助理工具时发现,GPT-4.1 在多文档审查中的准确率比 GPT-4o 提高 17%,能够可靠地在多个来源之间保持上下文并准确识别文档之间的细微关系。Carlyle 使用 GPT-4.1 从多个长文档中提取详细财务数据,其内部评估显示,该模型在从大型文档中检索数据方面的表现比其他模型高出 50%,成功克服了其他模型的局限性。
在图像理解方面,GPT-4.1 系列模型表现出色,GPT-4.1 mini 在图像基准测试中经常超越 GPT-4o。例如,在 MMMU 测试中,GPT-4.1 的准确率为 74.8%,GPT-4.1 mini 的准确率为 72.7%,而 GPT-4o 的准确率为 68.7%。在 MathVista 测试中,GPT-4.1 的准确率为 72.2%,GPT-4.1 mini 的准确率为 73.1%,而 GPT-4o 的准确率为 61.4%。在 CharXiv-Reasoning 测试中,GPT-4.1 的准确率为 56.7%,GPT-4.1 mini 的准确率为 56.8%,而 GPT-4o 的准确率为 52.7%。此外,在 Video-MME 长视频理解测试中,GPT-4.1 的准确率达到 72.0%,比 GPT-4o 的 65.3% 有显著提升。
GPT-4.1 系列模型现已向所有开发者开放,其价格因效率提升而降低。GPT-4.1 的输入成本为每百万 token 2.00 美元,输出成本为每百万 token 8.00 美元,综合定价为每百万 token 1.84 美元。GPT-4.1 mini 的输入成本为每百万 token 0.40 美元,输出成本为每百万 token 1.60 美元,综合定价为每百万 token 0.42 美元。GPT-4.1 nano 的输入成本为每百万 token 0.10 美元,输出成本为每百万 token 0.40 美元,综合定价为每百万 token 0.12 美元。对于重复传递相同上下文的查询,OpenAI 将这些新模型的提示缓存折扣提高到 75%,并且长文本请求不收取额外费用。此外,这些模型还支持批量 API,可享受额外 50% 的定价折扣。
#OpenAI #AI
https://openai.com/index/gpt-4-1/
GPT-4.1 系列模型在实际应用场景中表现出色。例如,Windsurf 的内部编码基准测试中,GPT-4.1 的得分比 GPT-4o 高出 60%,代码变更在首次审查中的接受率更高。Qodo 在测试中发现 GPT-4.1 在生成高质量代码评审方面表现优异,能够在 55% 的案例中提供更好的建议。在指令遵循方面,GPT-4.1 在内部评估中对复杂指令的遵循能力显著提升,尤其是在格式遵循、负指令处理和多步骤指令执行等方面。Blue J 的内部基准测试显示,GPT-4.1 在处理复杂的税务场景时准确率比 GPT-4o 提高 53%,能够更好地理解复杂的法规并遵循细微的指令。
在长文本处理方面,GPT-4.1 系列模型支持高达 100 万 token 的上下文窗口,能够处理大型代码库或大量长文档。OpenAI-MRCR 多轮指代消解评估中,GPT-4.1 能够在复杂的上下文中准确识别并区分多个相似请求。Graphwalks 多跳长文本推理评估中,GPT-4.1 实现了 61.7% 的准确率,展现出强大的长文本推理能力。Thomson Reuters 在使用 CoCounsel 法律助理工具时发现,GPT-4.1 在多文档审查中的准确率比 GPT-4o 提高 17%,能够可靠地在多个来源之间保持上下文并准确识别文档之间的细微关系。Carlyle 使用 GPT-4.1 从多个长文档中提取详细财务数据,其内部评估显示,该模型在从大型文档中检索数据方面的表现比其他模型高出 50%,成功克服了其他模型的局限性。
在图像理解方面,GPT-4.1 系列模型表现出色,GPT-4.1 mini 在图像基准测试中经常超越 GPT-4o。例如,在 MMMU 测试中,GPT-4.1 的准确率为 74.8%,GPT-4.1 mini 的准确率为 72.7%,而 GPT-4o 的准确率为 68.7%。在 MathVista 测试中,GPT-4.1 的准确率为 72.2%,GPT-4.1 mini 的准确率为 73.1%,而 GPT-4o 的准确率为 61.4%。在 CharXiv-Reasoning 测试中,GPT-4.1 的准确率为 56.7%,GPT-4.1 mini 的准确率为 56.8%,而 GPT-4o 的准确率为 52.7%。此外,在 Video-MME 长视频理解测试中,GPT-4.1 的准确率达到 72.0%,比 GPT-4o 的 65.3% 有显著提升。
GPT-4.1 系列模型现已向所有开发者开放,其价格因效率提升而降低。GPT-4.1 的输入成本为每百万 token 2.00 美元,输出成本为每百万 token 8.00 美元,综合定价为每百万 token 1.84 美元。GPT-4.1 mini 的输入成本为每百万 token 0.40 美元,输出成本为每百万 token 1.60 美元,综合定价为每百万 token 0.42 美元。GPT-4.1 nano 的输入成本为每百万 token 0.10 美元,输出成本为每百万 token 0.40 美元,综合定价为每百万 token 0.12 美元。对于重复传递相同上下文的查询,OpenAI 将这些新模型的提示缓存折扣提高到 75%,并且长文本请求不收取额外费用。此外,这些模型还支持批量 API,可享受额外 50% 的定价折扣。
#OpenAI #AI
https://openai.com/index/gpt-4-1/
Openai
Introducing GPT-4.1 in the API
Introducing GPT-4.1 in the API—a new family of models with across-the-board improvements, including major gains in coding, instruction following, and long-context understanding. We’re also releasing our first nano model. Available to developers worldwide…