CI/CD流水线集成Trivy与Grype:构建容器镜像安全门禁实战指南
1. 项目概述为什么CI流水线必须嵌入镜像安全扫描最近在梳理团队的CI/CD流水线发现一个挺普遍但容易被忽视的问题我们花了大量精力做代码扫描、单元测试但最终打包出来的容器镜像其内部依赖的安全性却成了一个“黑盒”。一个典型的场景是开发同学更新了某个基础库的版本CI流水线顺利通过镜像也成功推送到仓库。但没人知道这个新引入的库版本是否包含一个已知的高危漏洞。直到安全团队例行扫描或者更糟的是直到线上出了安全事件我们才后知后觉。这就是“容器镜像安全门禁”要解决的核心问题。它不是一个独立于CI/CD之外的工具而是必须内嵌到持续集成流程中的一个强制性检查环节。其目标很明确在镜像构建完成、即将被推送到仓库或用于部署的“最后一公里”对其进行一次彻底的安全体检只有体检合格的镜像才能进入下一个环节。这相当于在软件供应链的“出厂质检”环节加装了一道安全过滤网。目前实现这个目标的主流开源工具是Trivy和Grype。它们都专注于扫描容器镜像、文件系统、仓库中的已知漏洞CVE。选择它们而不是重量级的商业方案原因在于轻量、快速、易于集成并且能与现有的GitLab CI、Jenkins、GitHub Actions等流水线工具无缝结合。这个项目就是探讨如何将Trivy或Grype作为安全门禁深度集成到你的CI流水线中实现“安全左移”让每一次构建都自带安全属性。2. 工具选型解析Trivy与Grype的深度对比在决定把哪个工具塞进流水线之前我们得先搞清楚它们各自的脾性。虽然目标一致但设计哲学、资源消耗和输出结果上存在差异这直接影响了集成体验和后续维护成本。2.1 核心能力与设计哲学Trivy由 Aqua Security 开源它的口号是“简单而全面”。这里的“全面”不仅指漏洞数据库它集成了多个来源如NVD、Red Hat、Debian等更指其扫描范围除了容器镜像它还能扫描文件系统、Git仓库、基础设施即代码IaC配置、甚至密钥。在CI场景下这种“一站式”的能力很有吸引力你或许可以用同一个工具完成多项安全检查。Trivy的漏洞匹配策略相对激进旨在减少漏报因此报告的漏洞数量可能较多需要团队有一定的漏洞评估和筛选能力。Grype是 Anchore 公司 Syft 项目的“伴侣”工具。Syft负责生成软件物料清单SBOMGrype则利用这个SBOM去匹配漏洞。它的设计非常“Unix哲学”一个工具只做好一件事并且通过管道pipe与其他工具协作。因此Grype本身非常轻量、快速它假设你已经通过Syft或其他方式获得了准确的SBOM。这种设计使得它在CI中扫描镜像时速度极快因为SBOM可以缓存或复用。它的漏洞匹配策略可能更精确一些但同样依赖于后端数据库的质量。2.2 性能与资源消耗对比在CI环境中每一秒的构建时间都是成本。因此工具的扫描速度和对Runner资源的消耗是关键考量。我实测过在同一个GitLab Runner4核8G上对一个约500MB的Node.js应用镜像基于node:18-alpine进行扫描Trivy: 首次扫描需要下载漏洞数据库耗时约1-2分钟取决于网络。后续扫描数据库已缓存通常在20-40秒内完成。内存占用峰值在300-500MB左右。Grype: 需要配合Syft。流程是syft image -o json sbom.json然后grype sbom:sbom.json。Syft生成SBOM约10秒Grype扫描SBOM约2-3秒。总耗时在15秒以内内存消耗显著低于Trivy。从纯速度角度看GrypeSyft的组合在重复扫描时优势明显尤其适合拥有大量微服务、构建频繁的团队。Trivy的首次启动和数据库更新是主要耗时点但其一体化体验减少了流水线步骤的复杂度。2.3 输出报告与集成友好度门禁不仅要能发现问题还要能清晰地报告问题并且最好能无缝对接现有的协作平台如GitHub、GitLab、Jira。报告格式两者都支持多种格式JSON, SARIF, CycloneDX, GitHub Markdown等。Trivy的默认表格输出在命令行中可读性极佳能快速看到漏洞严重性分布。Grype的默认输出更简洁。集成友好度这是决定性的因素。两者都有丰富的集成示例。Trivy拥有几乎“开箱即用”的GitHub Action、GitLab CI模板、Jenkins插件。其SARIF格式输出可以直接被GitHub的代码扫描Code Scanning功能解析在Pull Request界面上直接显示安全警报体验非常流畅。Grype作为更底层的工具集成时需要多写一些脚本例如先调用Syft生成SBOM再调用Grype扫描最后将结果转换为需要的格式。虽然步骤稍多但灵活性更高你可以完全控制整个流程。选择建议如果你的团队追求快速落地、最小化配置并且主要使用GitHub或GitLabTrivy是更省心的选择。如果你的CI环境复杂、对构建速度有极致要求或者已经计划引入SBOM作为标准实践那么Grype Syft的组合会给你带来更大的灵活性和性能优势。3. 门禁策略设计不只是“有漏洞就失败”把扫描工具扔进CI流水线然后设置“发现任何漏洞就失败”这是最简单粗暴的做法但在实际项目中几乎不可行。它会带来大量的构建失败严重干扰开发节奏最终导致门禁被绕过或关闭。一个有效的安全门禁核心在于策略Policy。3.1 漏洞严重性分级与阈值管理我们需要建立一个允许通过的“基线”。通常基于CVSS通用漏洞评分系统分数来划分严重Critical: CVSS 9.0。这类漏洞通常允许远程代码执行必须零容忍。一旦发现立即失败。高危High: 7.0 CVSS 9.0。需要重点评估可以设定一个容忍数量例如最多允许1个未修复的高危漏洞但必须附带工单Issue链接说明修复计划。中危Medium和低危Low: 可以设置更宽松的阈值或者仅作为警告Warning输出到报告不阻塞构建。这避免了因大量中低危漏洞其中很多可能是误报或实际风险极低而阻塞关键功能上线。工具都支持按严重性过滤输出。例如Trivy可以用--severity HIGH,CRITICAL只关注高危以上漏洞。3.2 漏洞忽略列表.trivyignore 或 .grype.yaml这是策略落地的关键文件。对于以下情况我们可以将特定漏洞加入忽略列表误报工具将某些行为误判为漏洞。风险可接受漏洞存在于测试工具、调试组件中在生产环境中不可访问。修复中漏洞已确认修复方案已定但修复版本尚未发布此时需要临时豁免并关联到跟踪工单。上游基础镜像问题漏洞来自官方基础镜像如ubuntu:latest我们无法直接修复只能等待上游更新。忽略的格式必须规范。以Trivy为例在项目根目录创建.trivyignore文件# 忽略特定CVE ID并注明原因和工单 CVE-2021-12345 # 误报组件仅用于构建阶段见ISSUE-101 CVE-2022-67890 # 上游alpine镜像问题跟踪上游更新 # 忽略某个包的所有特定版本漏洞 library:libssl1.1 # 版本1.1.1n-r0计划在下季度升级关键点忽略列表必须被纳入代码库进行版本管理任何修改都需要通过Code Review。同时每个忽略项都应附带注释说明原因、负责人和过期时间并定期复审清理。3.3 基线镜像管理与自动修复最有效的漏洞修复方式是使用一个干净、安全的基础镜像。门禁策略应鼓励甚至强制使用团队维护的“黄金镜像”作为所有应用镜像的起点。这个黄金镜像需要定期如每周用Trivy/Grype扫描并及时更新。更进一步可以探索自动修复。例如在CI中配置一个夜间任务当扫描发现基础镜像有新的高危漏洞时自动触发一个Pull Request将Dockerfile中的FROM node:18-alpine更新为FROM node:18-alpinesha256:最新安全版本的摘要。这能将安全维护的负担从每个开发团队转移到平台团队实现规模化治理。4. 集成实战以GitLab CI为例的完整流水线配置理论说再多不如一行代码。下面我们以GitLab CI为例展示如何将Trivy深度集成实现一个具备策略判断能力的门禁。4.1 基础扫描阶段配置首先在.gitlab-ci.yml中定义一个扫描阶段。stages: - build - test - security-scan - deploy trivy-scan: stage: security-scan image: name: aquasec/trivy:latest entrypoint: [] variables: # 设置仅扫描CRITICAL和HIGH级别漏洞 TRIVY_SEVERITY: CRITICAL,HIGH # 输出格式设为JSON便于后续脚本处理 TRIVY_FORMAT: json # 非零退出码让扫描失败能导致作业失败 TRIVY_EXIT_CODE: 1 # 跳过数据库更新在独立作业中统一更新以提高速度 TRIVY_SKIP_DB_UPDATE: true script: # 扫描最新构建的镜像输出结果到文件 - trivy image --skip-db-update --severity $TRIVY_SEVERITY --format $TRIVY_FORMAT --output trivy-report.json $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA artifacts: reports: # 将报告作为制品上传可以在GitLab界面查看 container_scanning: trivy-report.json # 仅对合并请求或默认分支如main的推送触发避免每个特性分支都跑 rules: - if: $CI_PIPELINE_SOURCE merge_request_event - if: $CI_COMMIT_BRANCH $CI_DEFAULT_BRANCH这个配置做了几件事使用官方Trivy镜像只关注高危以上漏洞输出JSON报告并上传为制品并且通过rules限定触发条件节约资源。4.2 实现策略判断与门禁控制上面的配置一旦发现高危漏洞就会失败。现在我们要加入策略判断允许存在不超过1个HIGH漏洞但CRITICAL必须为零。我们需要一个脚本解析JSON报告并做出判断。在项目根目录创建脚本scripts/check-trivy-report.sh#!/bin/bash REPORT_FILEtrivy-report.json if [ ! -f $REPORT_FILE ]; then echo 错误未找到扫描报告 $REPORT_FILE exit 1 fi # 使用jq解析JSON报告统计CRITICAL和HIGH数量 CRITICAL_COUNT$(jq [.Results[].Vulnerabilities[]? | select(.Severity CRITICAL)] | length $REPORT_FILE) HIGH_COUNT$(jq [.Results[].Vulnerabilities[]? | select(.Severity HIGH)] | length $REPORT_FILE) echo 扫描结果统计 echo CRITICAL 漏洞数: $CRITICAL_COUNT echo HIGH 漏洞数: $HIGH_COUNT # 门禁策略判断 FAILEDfalse if [ $CRITICAL_COUNT -gt 0 ]; then echo ❌ 发现 $CRITICAL_COUNT 个CRITICAL级别漏洞构建失败。 FAILEDtrue fi if [ $HIGH_COUNT -gt 1 ]; then echo ❌ 发现 $HIGH_COUNT 个HIGH级别漏洞超过最大允许数量(1)构建失败。 FAILEDtrue elif [ $HIGH_COUNT -eq 1 ]; then echo ⚠️ 发现1个HIGH级别漏洞请确保已在ISSUE中登记修复计划。 # 这里可以添加逻辑检查是否有关联的Issue编号在提交信息中 fi if [ $FAILED true ]; then exit 1 else echo ✅ 安全门禁通过。 exit 0 fi然后更新CI配置在扫描后调用这个脚本trivy-scan: stage: security-scan image: name: aquasec/trivy:latest entrypoint: [] variables: TRIVY_SEVERITY: CRITICAL,HIGH TRIVY_FORMAT: json TRIVY_EXIT_CODE: 0 # 改为0让Trivy本身不失败由我们的脚本控制 before_script: - apk add --no-cache jq # 安装JSON解析工具jq script: - trivy image --skip-db-update --severity $TRIVY_SEVERITY --format $TRIVY_FORMAT --output trivy-report.json $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA - chmod x ./scripts/check-trivy-report.sh - ./scripts/check-trivy-report.sh artifacts: reports: container_scanning: trivy-report.json rules: - if: $CI_PIPELINE_SOURCE merge_request_event - if: $CI_COMMIT_BRANCH $CI_DEFAULT_BRANCH这样我们就实现了一个有弹性的门禁允许1个HIGH漏洞但需要人工介入确认但对CRITICAL零容忍。4.3 数据库更新优化与缓存Trivy每次扫描都更新漏洞数据库会非常慢。最佳实践是设置一个独立的、定期如每天运行的作业来更新数据库并将其缓存起来供扫描作业使用。添加一个更新数据库的独立作业.trivy-db-updater: trivy-db-updater stage: .pre # 使用.pre阶段在所有阶段之前运行 image: name: aquasec/trivy:latest entrypoint: [] cache: key: trivy-db paths: - /root/.cache/trivy/ script: - trivy --cache-dir /root/.cache/trivy/ image --download-db-only rules: - if: $CI_PIPELINE_SOURCE schedule # 计划任务触发 - changes: # 或者当Dockerfile等关键文件变更时也触发更新 - Dockerfile - package.json - requirements.txt tags: - shared # 确保在有缓存能力的Runner上运行 # 然后修改扫描作业继承缓存并跳过更新 trivy-scan: stage: security-scan cache: key: trivy-db paths: - /root/.cache/trivy/ policy: pull # 只拉取缓存不上传 variables: TRIVY_SKIP_DB_UPDATE: true # 跳过更新使用缓存 # ... 其余配置不变通过缓存机制扫描作业的耗时可以稳定在20秒左右大大提升了流水线效率。5. 进阶技巧与避坑指南在实际落地过程中你会遇到一些工具文档里不会写的细节问题。这里分享几个踩坑后总结的经验。5.1 处理私有镜像仓库与网络代理扫描工具需要拉取镜像进行分析。如果你的镜像存储在私有仓库如Harbor, GitLab Container Registry或者CI Runner处于内网需要代理就需要配置认证和网络。私有仓库认证最安全的方式是使用Runner预先配置的Docker认证。对于GitLab CI可以使用内置的$CI_REGISTRY_USER和$CI_REGISTRY_PASSWORD变量。对于Trivy需要通过环境变量传递trivy-scan: variables: TRIVY_USERNAME: $CI_REGISTRY_USER TRIVY_PASSWORD: $CI_REGISTRY_PASSWORD TRIVY_REGISTRIES: | my.private.registry: username: $CI_REGISTRY_USER password: $CI_REGISTRY_PASSWORD网络代理如果Runner需要通过代理访问外网更新漏洞数据库需要在容器内设置代理环境变量。注意aquasec/trivy镜像基于Alpine使用HTTP_PROXY和HTTPS_PROXY。trivy-scan: variables: HTTP_PROXY: http://your-proxy:port HTTPS_PROXY: http://your-proxy:port5.2 扫描超时与大型镜像处理扫描一个包含大量软件包如一个完整的Ubuntu系统镜像的镜像可能会超时或内存溢出OOM。超时处理CI作业默认有超时限制如1小时。对于大型镜像需要增加作业超时时间。在GitLab CI中可以在作业中定义timeout。trivy-scan-large: timeout: 2h script: ...内存优化Trivy扫描时内存占用与镜像层数和包数量正相关。如果遇到OOM可以尝试为Runner分配更多内存例如从4G提升到8G。使用--skip-files和--skip-dirs参数排除一些非必要的扫描路径如日志目录、缓存目录但这会降低检测覆盖率需谨慎。考虑在镜像构建阶段就优化使用多阶段构建确保最终产物镜像只包含运行时必需的文件这本身就是容器最佳实践。5.3 结果可视化与历史跟踪门禁的阻塞作用很重要但让团队能看到安全趋势、了解改进效果同样关键。GitLab/GitHub集成如前所述将报告格式设为SARIF并上传可以在Merge Request的界面上直接看到内联的安全警告这是最高效的反馈方式。独立安全仪表盘对于想要集中监控多个项目的团队可以将每次扫描的JSON结果推送到一个中心化的存储如S3/MinIO然后使用Elasticsearch Kibana或者Grafana Loki来构建可视化仪表盘。这样可以追踪“平均每个镜像的漏洞数”、“高危漏洞趋势图”等指标。与Jira/飞书等协作工具联动可以在门禁失败时通过Webhook自动创建一个Jira任务或发送一条飞书群消息指派给镜像对应的项目负责人。这需要编写一个简单的后置脚本调用相关API。5.4 门禁的“熔断”机制即使策略再完美也可能遇到紧急情况需要紧急上线一个热修复但镜像里有一个暂时无法解决的高危漏洞。此时门禁不应该成为业务连续性的障碍。我们需要一个受控的“熔断”机制。一种常见的做法是引入“门禁豁免”流程。在Merge Request描述中添加一个特定的关键词如[SECURITY-WAIVER]。在CI脚本中检测到这个关键词时安全扫描作业变为“仅报告”模式即TRIVY_EXIT_CODE: 0不会导致构建失败。但同时该作业必须安全团队和相关负责人并在输出中高亮显示“本次构建已豁免安全门禁”。这个豁免的Merge Request必须获得更高层级如技术负责人或安全负责人的批准才能合并。这个机制确保了灵活性但所有豁免都是透明的、可审计的并且需要高级别审批避免了门禁被随意绕过。6. 从门禁到左移构建更完整的安全供应链镜像安全门禁是CI流水线中至关重要的一环但它应该是安全链条上的一环而不是唯一一环。真正的“安全左移”意味着将安全检查渗透到更早的阶段。开发阶段在本地IDE或Git提交钩子pre-commit中集成扫描对代码中引用的依赖包进行漏洞检查。可以使用Trivy的fs命令扫描本地node_modules或vendor目录。依赖管理阶段在CI的install或build阶段之前加入对软件物料清单SBOM的生成与检查。使用Syft生成SBOM并归档作为制品的组成部分。这不仅是安全需求也越来越成为合规要求。基础设施即代码IaC阶段在部署之前对Terraform、Ansible、Kubernetes YAML文件进行安全扫描避免配置错误导致的安全风险。Trivy同样支持IaC扫描。运行时阶段门禁无法覆盖零日漏洞或运行时才暴露的风险。因此需要结合运行时安全工具如Falco进行异常行为检测。将Trivy/Grype嵌入CI流水线作为镜像安全门禁是一个投入产出比极高的安全实践。它用自动化的方式在软件生命周期的关键节点设立了一道坚实的防线。实施的关键不在于追求100%的漏洞检出率而在于建立一个平衡了安全与效率的、可执行的策略并通过持续的优化和团队协作将其转化为开发流程中自然而然的一部分。当每一次代码合并请求都伴随着一次自动化的安全体检时整个团队的安全意识和软件产品的安全基线都会在潜移默化中得到显著的提升。

相关新闻

密码学与逆向工程入门,攻克 CTF 难点题型

密码学与逆向工程入门,攻克 CTF 难点题型

破局 CTF:从密码学迷雾到逆向工程深处在 CTF(Capture The Flag)的赛场上,Web 和 Misc 方向往往因为上手快、反馈直接而成为新手的“舒适区”。然而,真正决定比赛上限的,往往是那些让人望而生畏的 Crypto&am…

2026/7/28 23:27:36阅读更多 →
Kali Linux 工具链详解,渗透测试必备神器清单

Kali Linux 工具链详解,渗透测试必备神器清单

为什么 Kali Linux 是渗透测试的“瑞士军刀”在网络安全的学习路径中,工具的选择往往决定了实战的效率。对于初学者而言,面对琳琅满目的安全软件,最容易陷入“收藏党”的误区——下载了一堆工具却不知从何下手。Kali Linux 之所以成为行业标准…

2026/7/28 23:27:36阅读更多 →
从 CTF 做题到挖洞赚钱,新手变现实操指南

从 CTF 做题到挖洞赚钱,新手变现实操指南

CTF:从解题到挖洞的低成本试错场很多刚接触网络安全的朋友,往往被“黑客”、“渗透”这些词汇背后的法律风险和高门槛劝退。大家心里都有个疑问:我想靠技术赚点零花钱,但还没本事去碰真实网站,怎么办?其实&…

2026/7/28 23:27:36阅读更多 →
KEYSIGHT是德科技 E8362C PNA系列20 GHz高性能微波矢量网络分析仪

KEYSIGHT是德科技 E8362C PNA系列20 GHz高性能微波矢量网络分析仪

KEYSIGHT(原Agilent)E8362C是一款PNA系列20 GHz高性能微波矢量网络分析仪,依托是德科技40年的微波测量技术积累,在测试速度、动态范围和功能扩展性上具备行业标杆表现,广泛用于射频、微波器件的高精度参数测试场景。核…

2026/7/29 0:47:55阅读更多 →
求职补贴1500元怎么发到位:就业SaaS系统通知触达+过程追踪3步走

求职补贴1500元怎么发到位:就业SaaS系统通知触达+过程追踪3步走

摘要:2026届困难高校毕业生一次性求职补贴1500元/人已全面启动申领,覆盖7类困难群体,申领窗口集中在7月至8月。就业中心面临的痛点不是学生不需要补贴,而是手工通知手动追踪的模式在暑期攻坚期难以穿透到每个符合条件的学生。就业…

2026/7/29 0:47:55阅读更多 →
4G/5G布控球接入国标GB28181视频监控平台EasyCVR:应急指挥现场画面秒级回传的实战方案

4G/5G布控球接入国标GB28181视频监控平台EasyCVR:应急指挥现场画面秒级回传的实战方案

当突发事件发生时,指挥中心的第一反应永远是:"现场画面传回来了吗?“传统方案从架设设备、调试网络、到画面回传,少则半小时,多则数小时。而5G布控球EasyCVR的组合,真正实现了"到现场即开即传”—…

2026/7/29 0:47:55阅读更多 →
B3865 [GESP202309 二级] 小杨的 X 字矩阵 题解

B3865 [GESP202309 二级] 小杨的 X 字矩阵 题解

题目描述小杨想要构造一个 的 X 字矩阵( 为奇数),这个矩阵的两条对角线都是半角加号 ,其余都是半角减号 - 。例如,一个 55 的 X 字矩阵如下:--- --- ---- --- ---请你帮小杨根据给定的 打印出对应的“X 字…

2026/7/29 0:47:55阅读更多 →
零代码自动化企业级AI模型工作站/企业AI算力工作站DLTM如何让安防监控真正“看懂”场景?

零代码自动化企业级AI模型工作站/企业AI算力工作站DLTM如何让安防监控真正“看懂”场景?

引言安防行业正经历一场从"被动录像"到"主动预警"的深刻变革。传统视频监控系统虽然能724小时不间断记录画面,但绝大多数时候,海量视频数据只是安静地躺在硬盘里,直到事故发生后才被调取回看——这时的"证据"已…

2026/7/29 0:47:55阅读更多 →
AI 世界模型(World Models)深度解析:从 JEPA 预测嵌入到 DreamerV3/Genie 2/Sora 的下一代 AI 规划与推理架构演进

AI 世界模型(World Models)深度解析:从 JEPA 预测嵌入到 DreamerV3/Genie 2/Sora 的下一代 AI 规划与推理架构演进

AI 世界模型(World Models)深度解析:从 JEPA 预测嵌入到 DreamerV3/Genie 2/Sora 的下一代 AI 规划与推理架构演进 核心痛点:当前大模型在语言理解与生成上已接近人类水平,却仍然缺乏对物理世界运行规律的内部建模能力——这导致它们无法在复杂动态环境中进行可靠的长期规…

2026/7/29 0:45:55阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/28 4:06:39阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/28 2:08:06阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/28 1:38:28阅读更多 →
28. Agent 执行到一半想暂停?用 interrupt 给它设个“关卡“!

28. Agent 执行到一半想暂停?用 interrupt 给它设个“关卡“!

28. Agent 执行到一半想暂停?用 interrupt 给它设个“关卡“! 在构建复杂的 Agent 系统时,我们经常会遇到这样的场景:Agent 正在执行一个多步骤的任务,比如“下单购买商品”,但执行到一半时,我们…

2026/7/29 0:01:46阅读更多 →
自律同行,突破无界!NANK南卡正式官宣曾舜晞成为品牌代言人

自律同行,突破无界!NANK南卡正式官宣曾舜晞成为品牌代言人

近日,国际专注开放式技术研发的声学品牌Nank南卡,正式官宣实力艺人曾舜晞担任品牌代言人。消息一经发出便轰动全网。为什么耳机品牌不选择流量明星、老牌歌手?而且是选择曾舜晞?让我们一起来探索一下!比起短期的流量&a…

2026/7/29 0:01:46阅读更多 →
【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

一、本文介绍 🔥本文在RT-DETR多模态融合目标检测中引入RLAB残差线性注意力模块,可在不同模态特征交互阶段进行多次残差细化,使可见光、红外等特征在尺度、语义和空间位置上更好对齐;随后将细化特征与解码器输出拼接并生成Q、K、V,通过线性注意力自适应强化关键通道、目…

2026/7/29 0:01:46阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/28 20:22:24阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/28 3:17:03阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/28 2:35:58阅读更多 →