工具
采纳
-
51. Renovate
Renovate 已经变成了我们很多团队在依赖项版本管理工具的首选。虽然Dependabot仍然是 GitHub 仓库的一个安全默认选项,我们依然推荐评估 Renovate,因为它提供了更全面且可定制的方案。为了最大程度发挥 Renovate 的优势,应配置它来监控并更新所有依赖项,包括工具、基础设施以及私有或内部托管的依赖项。同时为了减少开发者的工作量,可以考虑自动合并依赖更新的 PR.
-
52. uv
自上一次技术雷达以来,我们积累了更多关于 uv 的实践经验,并收到了团队的极大好评。uv 是一个由 Rust 编写的下一代 Python 包和项目管理工具,其核心价值主张是“极快的速度”。在基准测试中,uv 的性能远超其他 Python 包管理工具,加速了构建和测试周期,显著提升了开发者体验。除了性能,uv 还提供了统一的工具集,有效取代了像 Poetry、pyenv 和 pipx 等工具。然而,我们对包管理工具的担忧依然存在:一个强大的生态系统、成熟的社区和长期支持至关重要。由于 uv 相对较新,将其移至 Adopt 阶段是一个大胆的决定。然而,许多数据团队都渴望 摆脱 Python 的传统包管理系统。而我们的前线开发者也一致推荐 uv,认为这是目前最好的工具。
-
53. Vite
自从 Vite 上次出现在 radar 以来,它的影响力在进一步提升。作为一个高性能的前端构建工具,Vite 提供了快速热重载的特性。它正在被众多前端框架采用并推荐为默认选择,比如 Vue, SvelteKit,以及最近 废弃了 create-react-app的 React。此外 Vite 最近获得了重大投资,这促成了VoidZero 的成立。VoidZero 是一个专注于 Vite 发展的组织,这笔投资预计将加速 Vite 的开发,并提升其项目的长期可持续性。
试验
-
54. Claude Sonnet
Claude Sonnet 是一款擅长编码,写作,分析和视觉处理的先进语言模型。它可在浏览器,终端和大多数主流 IDE 中使用,并支持与GitHub Copilot 集成。截至目前的基准测试显示,该模型在 3.5 和 3.7 版本中的表现显著优于早前推出的模型。它还擅长解析图表并从图片中提取文本,同时提供以开发者体验为中心的特性,譬如它在浏览器 UI 中的“Artifacts”功能,用于生成和交互动态内容(如代码片段和 HTML 设计)。
我们在软件开发中较为广泛地使用了 Claude Sonnet 的 3.5 版本,并发现它在多个项目中显著地提高了生产力。它在从零开始的项目(greenfield projects)中表现尤为出色,特别是在协同软件设计和架构讨论方面。尽管目前还难言有 AI 模型是“稳定”的编码助手,但 Claude Sonnet 已经是我们使用过的模型中最可靠的一个。截至撰写本文时,Claude 3.7也已发布,并展现出很大潜力,但我们尚未在生产环境中进行全面测试。
-
55. Cline
Cline 是一个开源的 VSCode 扩展程序,目前在监督型 软件工程代理领域中是最强有力的竞争者之一。它让开发者能够完全通过 Cline 聊天来驱动实现,并与他们已经使用的 IDE 无缝集成。Cline 的核心功能包括计划与执行模式(Plan & Act mode)、透明的 token 使用跟踪以及 MCP 集成,帮助开发者高效地与 LLM 交互。Cline 展现了在处理复杂开发任务方面的高级能力,尤其是在结合 Claude 3.5 Sonnet 时表现突出。它支持处理大型代码库、自动化无头浏览器测试,并能够主动修复错误。与基于云的解决方案不同,Cline 通过本地存储数据增强了隐私保护。其开源特性不仅确保了更高的透明度,还支持社区驱动的改进。需要注意的是,由于 Cline 的代码上下文编排虽然高效,但资源消耗较高,因此开发者需关注 token 使用成本。另外,Cline 可能面临 速率限制 的潜在瓶颈,这可能会减慢工作流。在此问题解决之前,建议使用像 OpenRouter 这样提供更优速率限制的 API 提供商。
-
56. Cursor
我们依然对 Cursor 这款以 AI 为核心的代码编辑器印象深刻,它在竞争激烈的 AI 代码辅助领域依然保持领先地位。其代码上下文编排功能十分高效,并支持多种模型,包括使用自定义 API 密钥的选项。Cursor 团队经常在其他厂商之前推出创新的用户体验功能,并在聊天功能中集成了丰富的上下文提供者,例如 Git 差异对比(git diffs)、先前的 AI 对话、网络搜索、库文档以及 MCP 集成等。与 Cline 和 Windsurf 等工具类似,Cursor 也因其强大的智能代理编码模式而脱颖而出。该模式允许开发者直接通过 AI 聊天界面指导实现过程,工具可以自主读取和修改文件,并执行命令。此外,我们还欣赏 Cursor 在检测生成代码的 lint 及编译错误方面的能力,它能够主动识别并进行修正。
-
58. Databricks Delta Live Tables
Delta Live Tables(DLT)在简化和优化数据管道管理方面持续展现出其价值,通过声明式方法支持实时流处理和批量处理。通过自动化复杂的数据工程任务(如手动检查点管理),DLT 减少了运营开销,同时确保了端到端系统的稳健性。其简化管道编排的能力,几乎无需人工干预,大大提升了可靠性和灵活性。此外,像物化视图这样的功能为特定用例提供了增量更新和性能优化。
然而,团队需要深入理解 DLT 的细节,才能充分利用其优势并规避潜在的陷阱。作为一种有主见的抽象层,DLT 自行管理表数据,并限制每次仅允许单个管道插入数据。流式表仅支持追加操作,这需要在设计中仔细考量。此外,删除 DLT 管道时会同时删除底层表和数据,可能带来一定的操作性问题。
-
59. JSON Crack
JSON Crack 是一个用于在 Visual Studio Code 中将文本数据渲染为交互式图表的扩展工具。尽管其名称中包含“JSON”,但它实际上支持包括 YAML、TOML 和 XML 在内的多种格式。与 Mermaid 和 D2 不同,这些工具通过文本形式生成特定的可视化图表,而 JSON Crack 则是一个用于直观查看以文本格式存储数据的工具。其布局算法表现良好,并且支持选择性隐藏分支和节点,是探索数据集的绝佳选择。此外,它还提供了一个基于 Web 的配套工具,但我们对在线代码格式化或解析服务的依赖仍需保持谨慎。需要注意的是,JSON Crack 有节点数量的限制,对于超过几百个节点的文件会引导用户使用其商业版工具。
-
62. NeMo Guardrails
NeMo Guardrails 是 NVIDIA 提供的一个易于使用的开源工具包,可帮助开发者为用于对话式应用的大型语言模型实施“护栏”。自我们上一次在技术雷达中提到它以来,NeMo 在团队中的应用显著增加,并且不断改进。最近对 NeMo Guardrails 的更新主要集中在扩展集成能力和加强安全性、数据管理及控制方面,与该项目的核心目标保持一致。
NeMo 的文档进行了重大改进,提高了可用性,并新增了多个集成,包括 AutoAlign 和 Patronus Lynx,同时支持 Colang 2.0。关键升级包括增强了内容安全性和安全功能,以及最近发布的支持通过输出轨道流式处理 LLM 内容的功能,从而提高性能。我们还看到新增了对 Prompt Security 的支持。此外,NVIDIA 还发布了三种新的微服务:内容安全微服务、主题控制微服务 和 越狱检测微服务,这些微服务都已集成至 NeMo Guardrails。
基于其不断扩展的功能集和在生产中的日益广泛使用,我们将 NeMo Guardrails 的状态提升至试验(Trial)。建议查看最新的发布说明,以全面了解自我们上次提到以来的所有更新内容。
-
63. Nyx
Nyx 是一个多功能的语义化版本发布工具,支持各种软件工程项目。它对编程语言无依赖,并兼容所有主流的持续集成和源代码管理平台,具备极高的适配性。尽管许多团队在 主干开发 中使用语义化版本管理,Nyx 还支持 Gitflow、OneFlow 和 GitHub Flow 等工作流。在生产环境中,Nyx 的一大优势是其自动生成变更日志的能力,并且内置支持 Conventional Commits 规范。
如前几期技术雷达中所提到的,我们对依赖长期分支的开发模式(如 Gitflow 和 GitOps)持谨慎态度,因为这些模式引入了许多挑战,即使是像 Nyx 这样强大的工具也难以完全解决这些问题。我们强烈推荐在 CI/CD 工作流中尝试 Nyx,尤其是在主干开发中,我们已经多次见证其成功应用。
-
64. OpenRewrite
OpenRewrite 一直是我们进行大规模代码重构的得力工具,尤其适用于基于规则的重构场景,例如迁移到广泛使用的库的新 API 版本,或对从相同模板创建的多个服务进行更新。除了对 Java 的强大支持外,OpenRewrite 还引入了对 JavaScript 等语言的支持。在框架(如 Angular)采用短期 LTS 发布周期的背景下,保持项目及时升级变得越来越重要,而 OpenRewrite 在这一过程中表现出色。虽然使用 AI 编程助手是另一种选择,但对于基于规则的更改,AI 通常运行较慢、成本更高且可靠性较低。我们特别欣赏 OpenRewrite 内置的丰富规则集(recipes),这些规则明确描述了需要执行的更改。其重构引擎、内置规则集以及构建工具插件均为开源软件,这为团队在需要进行大规模代码更新时提供了更大的便利和灵活性。
-
66. 软件工程代理(software engineering agents)
自我们六个月前首次讨论 软件工程代理(software engineering agents) 以来,行业内仍然缺乏对“代理(Agent)”这一术语的统一定义。然而,一个重要的进展已经浮现——并非完全自主的编码代理(其能力仍然令人怀疑)——而是在 IDE 内的监督代理模式(supervised agentic modes)。这些模式允许开发者通过聊天驱动实现,工具不仅可以修改多个文件中的代码,还能执行命令、运行测试并响应 IDE 反馈(如 linting 或编译错误)。
这种方式有时被称为“面向聊天的编程(chat-oriented programming,CHOP)”或“从提示到代码(prompt-to-code)”,它让开发者保持控制的同时,将更多责任转移给 AI,这跟传统的自动补全类辅助工具有很大不同。该领域的领先工具包括 Cursor、Cline 和 Windsurf,而 GitHub Copilot 稍显落后,但正在快速追赶。这些代理模式的有效性取决于所使用的模型(以 Claude's Sonnet 系列为当前业界领先)以及工具与 IDE 集成的深度,为开发者提供良好的体验。
我们发现这些工作流具有吸引力且潜力巨大,并显著提高了编码速度。然而,保持问题范围小有助于开发者更好地审查 AI 生成的更改。这种方法在低抽象提示以及AI 友好的代码库中效果最佳——这些代码库结构良好且经过充分测试。随着这些模式的改进,它们也会加剧开发者自满于 AI 生成的代码。为了缓解这一问题,我们建议采用结对编程和其他严格的审查实践,尤其是在生产代码中。
-
67. Tuple
Tuple 是一款专为远程结对编程优化的工具,最初设计是为了填补 Slack 的 Screenhero 停止服务后留下的空白。自我们上次在技术雷达中提到它以来,Tuple 已获得更广泛的应用,并解决了之前的诸多问题和限制,现在还支持 Windows 平台。一个关键的改进是增强了桌面共享功能,新增的隐私功能允许用户在共享屏幕时隐藏私人应用窗口(如短信),同时专注于共享工具(例如浏览器窗口)。此前,UI 限制让 Tuple 更像是一个专用的结对编程工具,而不是通用的协作工具。随着这些更新,用户现在可以在 IDE 之外的内容上进行协作。
但需要注意的是,远程结对的伙伴可以访问整个桌面。如果没有正确配置,这可能会成为安全隐患,尤其是在结对伙伴不够值得信任的情况下。我们强烈建议在使用 Tuple 之前,教育团队了解其隐私设置、最佳实践和使用礼仪。
我们鼓励团队将最新版 Tuple 纳入开发工作流中进行尝试。它与我们的务实的远程结对建议一致,提供了低延迟的结对体验、直观的用户体验(UX)和显著的易用性改进。
-
68. Turborepo
Turborepo 通过分析、缓存、并行化和优化构建任务,帮助管理大型 JavaScript 或 TypeScript monorepo,从而加速构建过程。在大型 monorepo 中,项目之间通常存在相互依赖关系;每次更改时重新构建所有依赖项既低效又耗时,而 Turborepo 简化了这一过程。与Nx 不同,Turborepo 的默认配置使用多个
package.json
文件(每个项目一个)。这种方式允许在单个 monorepo 中包含不同版本的依赖项(如不同版本的 React),而 Nx 并不提倡这种做法。尽管这可能被视为一种反模式,但它确实能够解决某些特定用例,例如从多仓库迁移到 monorepo 的过程中,团队可能暂时需要多个版本的依赖项。根据我们的经验,Turborepo 设置相对简单且性能表现优秀。
评估
-
69. AnythingLLM
AnythingLLM 是一个开源桌面应用程序,可以与大型文档或内容交互,支持开箱即用的大语言模型(LLMs)和向量数据库集成。它具备可插拔的嵌入模型架构,可以与大多数商业化 LLM 以及由 Ollama 管理的开源模型一起使用。除了支持 检索增强生成(RAG) 模式外,用户还可以创建和组织不同技能作为代理(agents)来执行自定义任务和工作流。AnythingLLM 允许用户将文档和交互分组到不同的工作空间中,这些工作空间类似于长生命周期的线程,每个线程都有独立的上下文。最近,它还新增了通过简单的 Docker 镜像部署为多用户 Web 应用的功能。一些团队已将其用作本地个人助手,发现它是一个强大且实用的工具。
-
70. Gemma Scope
机械解释性(Mechanistic Interpretability)——理解大型语言模型的内部运行机制——正在成为一个日益重要的领域。像 Gemma Scope 和开源库 Mishax 这样的工具,为 Gemma2 系列开源模型提供了深入的洞察。这些解释性工具在调试模型的意外行为、识别导致幻觉、偏见或其他失败案例的组件方面发挥了关键作用,并通过提供更深入的可见性来建立对模型的信任。虽然这一领域对研究人员尤其具有吸引力,但需要注意的是,随着 DeepSeek-R1 的近期发布,模型训练正在成为超越传统大玩家的更多企业的可行选择。随着生成式 AI 的不断发展,解释性与安全性的重要性只会与日俱增。
-
71. Hurl
Hurl 是处理一系列 HTTP 请求的利器,这些请求可通过使用 Hurl 特定语法的纯文本文件定义。除了发送请求以外,Hurl 还可以验证响应数据,确保请求返回特定的 HTTP 状态码,使用 XPATH, JSONPath 或者正则表达式断言响应头和内容,以及提取相应数据到变量之中,以便在链式请求之中调用。
凭借这些特性,Hurl 不仅可以胜任简单的 API 自动化工作,而且也能作为 API 的自动测试工具使用。它支持生成基于 HTML 或 JSON 格式的详细测试报告,这使它在测试流程中更具实用性。虽然像 Bruno 和 Postman 这样的专业工具提供了图形用户界面以及更丰富的功能,但 Hurl 更以简洁著称。和同样使用纯文本文件的Bruno类似,Hurl 的测试文件也可以存储在代码仓库中。
-
72. Jujutsu
Git 是当前占据主导地位的分布式版本控制系统(VCS),拥有绝大多数的市场份额。然而,尽管 Git 已在过去十多年中占据主导地位,开发者仍然在其复杂的分支、合并、变基以及冲突解决工作流中苦苦挣扎。这种持续的挫败感催生了一系列旨在缓解痛点的工具——有些通过可视化方式简化复杂性,有些则提供图形界面以完全抽象操作过程。
Jujutsu 更进一步,提供了一个完整的 Git 替代方案,同时通过 使用 Git 仓库作为存储后端 保持兼容性。这使开发者能够继续使用现有的 Git 服务器和服务,同时受益于 Jujutsu 简化的工作流。Jujutsu 将自己定位为“既简单又强大”,强调为不同经验水平的开发者提供易用性。其一大亮点是 一流的冲突解决功能,这一特性有潜力显著改善开发者的使用体验。
-
73. kubenetmon
监控和理解与 Kubernetes 相关的网络流量可能是一项挑战,尤其是当您的基础设施跨多个可用区、区域或云时。由 ClickHouse 构建并最近开源的 kubenetmon,旨在通过提供主要云提供商之间详尽的 Kubernetes 数据传输计量解决这一问题。如果您正在运行 Kubernetes 并对账单中不清晰的数据传输成本感到困扰,不妨探索一下 kubenetmon。
-
75. ModernBERT
BERT(Bidirectional Encoder Representations from Transformers)的继任者 ModernBERT 是一系列新一代的 encoder-only transformer 模型,专为广泛的自然语言处理(NLP)任务设计。作为一个可直接替代 BERT 的升级版本,ModernBERT 不仅提升了性能和准确性,还解决了 BERT 的一些局限——特别是通过引入“交替注意力”(Alternating Attention)实现了对极长上下文长度的支持。 对于有 NLP 需求的团队,在默认选择 通用生成式模型 之前,请优先考虑 ModernBERT。
-
76. OpenRouter
OpenRouter 是一个统一的 API,可以用于访问多个大型语言模型(LLM)。它为 主流 LLM 提供商 提供了单一的集成点,简化了实验过程,降低了供应商锁定的风险,并通过将请求路由到最合适的模型来优化成本。像 Cline 和 Open WebUI 这样的流行工具都使用 OpenRouter 作为它们的端点。在我们的技术雷达讨论中,我们质疑大多数项目是否真的需要在模型之间切换,尤其考虑到 OpenRouter 为了盈利,在这一封装层之上需要增加价格加成。然而,我们也认识到 OpenRouter 提供了多种负载均衡策略,有助于优化成本。其一项特别有用的功能是绕过 API 速率限制。如果您的应用程序超出了单一 LLM 提供商的速率限制,OpenRouter 可以帮助您突破这一限制,实现更高的吞吐量。
-
77. Redactive
Redactive 是一个企业级 AI 赋能平台,专为帮助受监管的组织安全地为 AI 应用(例如 AI 助手和协作工具)准备非结构化数据而设计。它可以与像 Confluence 这样的内容平台集成,创建用于 检索增强生成(RAG) 搜索的安全文本索引。通过仅提供实时数据并从源系统强制执行实时用户权限,Redactive 确保 AI 模型访问的是准确且授权的信息,而不会影响安全性。此外,它还为工程团队提供工具,支持他们安全地使用任何大语言模型构建 AI 应用场景。对于正在探索 AI 驱动解决方案的组织,Redactive 提供了一种简化的数据准备和合规方法,在安全与可访问性之间取得平衡,为团队在受控环境中试验 AI 能力提供支持。
-
78. System Initiative
我们对 System Initiative 依然感到非常兴奋。这款实验性工具为 DevOps 工作开辟了一条全新的激进方向。我们非常欣赏该工具背后富有创造性的思考,并希望它能够激励更多人突破基础设施即代码(Infrastructure-as-Code)的现状。System Initiative 目前已结束 Beta 阶段,并以 Apache 2.0 许可的形式免费开源。尽管其开发者已经在生产环境中使用该工具来管理基础设施,但它在满足大型企业需求的规模化能力方面仍有改进空间。然而,我们依然认为值得一试,以体验一种与众不同的 DevOps 工具方法。
-
79. TabPFN
TabPFN 是一个基于 Transformer 的模型,专为在小规模表格数据集上实现快速而准确的分类而设计。它利用了上下文学习(In-Context Learning, ICL),直接从标注样本中进行预测,无需超参数调整或额外训练。TabPFN 在数百万个合成数据集上预训练,因而能够很好地泛化到不同的数据分布,同时对缺失值和异常值具有较强的处理能力。它的优势包括高效处理异构数据以及对无信息特征的鲁棒性。
TabPFN 尤其适用于对速度和准确性要求较高的小规模应用场景。然而,它在处理大规模数据集时面临扩展性挑战,并且在回归任务中能力有限。作为一项前沿解决方案,TabPFN 值得评估,尤其是在表格分类任务中,它有潜力超越传统模型,并为 Transformer 在表格数据中的应用开辟新可能性。
-
81. Windsurf
Windsurf 是 Codeium 推出的 AI 编程助手,以其“代理型”(agentic)能力而闻名。类似于 Cursor 和 Cline,Windsurf 允许开发者通过 AI 聊天驱动实现代码的导航、修改以及命令的执行。它经常发布针对“代理模式”的全新功能和集成。例如,最近它推出了一个浏览器预览功能,使代理能够轻松访问 DOM 元素和浏览器控制台,还提供了一个网页研究功能,让 Windsurf 在适当情况下可以在互联网上查找文档和解决方案。Windsurf 支持多种主流 AI 模型,用户可以启用并引用网页搜索、库文档以及 MCP(Model Context Protocol)集成作为额外的上下文提供者。这些能力让 Windsurf 成为开发者高效工作的强大工具。
暂缓
无法找到需要的信息?每期技术雷达中的条目都在试图反映我们在过去六个月中的技术洞见,或许你所搜索的内容已经在前几期中出现过。由于我们有太多想要谈论的内容,有时候不得不剔除一些长期没有发生变化的条目。技术雷达来自于我们的主观经验,而非全面的市场分析,所以你可能会找不到自己最在意的技术条目。