2026年3月

OpenCode 出的 Go 套餐,首月 5 刀续费 10 刀,也是按照 5 小时、每周、每月的限额,不过它是按照不同模型的成本计算,5 小时 12 刀额度,不同模型 1M token 的输入输出和缓存价格都不同。

不知道这个价格比起国内的 Coding Plan 有没有什么优势,因为我现在有字节的和智谱的 Coding Plan ,这一周都用得太难受了。字节的用 auto 模型勉强能用,指定模型非常的慢。智谱这周用 4.7 模型都直接弹限流了。

想想要不要直接换一个海外的服务商,毕竟 10 刀现在约等于 70 一个月,也贵不了多少

Glanceway 是一个轻量的 macOS 状态栏信息聚合工具,想解决的问题很简单:把你日常关注的各种信息源( RSS 、V 站、新闻、股票等等)聚合到菜单栏,方便上班摸鱼。

特性

RSS

支持 RSS ,使用 RSSHub 就能覆盖大部份信息源了

可编程信息源

如果没有 RSS ,可以编写简单的 Javascript 脚本获取信息。开发文档

也可以先到官网看看是否已经有相关信息源插件 https://glanceway.app/sources/

又或者添加 skill 给 Claude 让它生成你需要的信息源插件

MCP

Glanceway 公开了拉取信息的 API ,供其他应用使用。

  • Claude Desktop: 提供一键安装的 .mcpb 文件
  • Claude Code: claude mcp add glanceway -- npx -y glanceway-mcp

其他

这个工具本质上只是一个定时任务执行器,并且有个信息展示小窗口,所以能做的事情还有很多。比如用来监控服务状态、定时问你的 openClaw 是否有未完成的任务……

App Store

官网

深夜福利:

9KYPL7R3EEYF
7W64P694NEYE
AP3T9KF7TYHY
N9EA4N94M4HP
ELPEATY37R74
P344PNW9HJRY
Y7RMFLNXK63P
RNWMHHY3434E
4MR9XM7M4KNN
RL7RLLKXMN6Y

在企业微信的群聊场景中,最高优先级的消息通知莫过于“@全体成员”。这一功能在官方API中受到严格限制,通常仅支持群主或管理员手动操作。然而,企业微信ipad协议通过对底层消息结构的深度适配,将这一高权重能力转化为可编程的接口服务。本文从协议字段构造与内存权限调整两个维度,解析@全体成员的技术实现路径。

企业微信ipad协议中,@全体成员并非简单的文本拼接,而是通过特殊的消息属性字段标识。在发送文本消息的Protobuf结构中,存在一个at_list数组字段,用于存放被@成员的wxid。对于@全体成员,协议层识别一个特定的占位符常量(在不同协议版本中可能表现为announcement_allnotify_all),客户端接收到该占位符后,会自动渲染为“@所有人”的UI样式。

以下是一个简化的消息构造示例,展示如何在协议层设置@全体成员标志:

import json

def build_at_all_message(content):
    """
    构造@全体成员的消息体
    实际协议中需转换为TLV格式,此处以JSON示意
    """
    message = {
        "msg_type": "text",
        "content": content,
        "at_list": ["@all"],  # 协议层识别的特殊占位符
        "is_at_all": 1,       # 强提醒标志位
        "sync_device": "ipad"
    }
    return message

# 模拟发送
def send_at_all(protocol_token, group_id, content):
    msg = build_at_all_message(content)
    # 此处调用协议接口发送
    print(f"向群 {group_id} 发送@全体消息: {content}")
    return {"status": "sent", "msg_id": "msg_12345"}

实现@全体成员的核心挑战在于权限绕过。普通群成员调用发送接口时,服务端会校验其角色权限,若非群主或管理员,将返回权限错误。企业微信ipad协议通过内存级别的权限调整解决这一问题:在执行发送指令的前一刻,通过Hook拦截权限校验逻辑,将当前账号在内存中的Group_Member_Role临时修改为Owner(群主)状态,发送完成后立即还原。这种动态权限注入技术,使得自动化程序能够模拟管理员身份触发“全体提醒”的数据包封装。

@全体成员的另一个技术难点在于频率控制与服务端检测。由于该功能权重极高,频繁调用极易触发风控系统的“骚扰检测”算法。实践中需在接口层设置严格的冷却计数器:同一账号在所有群内每小时累计使用不超过3次,单个群每24小时不超过1次。同时,可在发送@全体消息前,模拟“读取群成员列表”的操作,增加行为序列的拟人性,降低被识别为批量脚本的风险。

在多端同步层面,企业微信ipad协议的@全体消息同样遵循增量同步机制。当iPad端发送@全体消息后,服务端会将该消息的at_info字段同步至所有在线设备,手机端和PC端均会收到“有人@你”的强提醒推送。这种跨端一致性保障了通知的触达率。

在具体业务场景中,@全体成员的协议级实现具有显著价值。例如,电商大促期间的限时秒杀通知、企业内部的紧急会议召集、系统维护公告等,均可通过自动化程序在毫秒级内触达全部群成员。某零售企业利用该能力,在双十一期间向200个客户群发送预热通知,消息打开率较普通群发提升73%。

总结而言,企业微信ipad协议通过对消息字段的深度定制与内存权限的动态调整,将群聊中最高优先级的“强提醒”能力转化为标准化的协议接口。开发者在集成时需严格遵循频率规范,通过冷却计数、行为模拟等策略保障账号稳定性,充分发挥该功能在紧急通知场景下的技术优势。

# 技术支持:contact_info = {"protocol": "at_all", "contact": "bot555666"}

北京 28 岁低端码农,月薪只有 1w 。还是单身。

独生子,父母也快到生病的时候了。

还想要 30 岁攒 100 个退休。

现在 60 多个,主要就看股票基金给力不了。

各位大佬们,有没有什么人生的经验,不想努力了,有没有什么不费力不费脑子不费神的赚钱路子。

比如推荐个股票一年番三倍 hhh

没钱不敢找对象,也没看得上的,单身真的是恶性循环

再加上 ai 爆发,感觉随时可能失业

深夜网抑云

大家好,经过三个多月的持续迭代与深度重构,Dante Cloud 4.X 正式与大家见面了。这是 Dante Cloud 首个基于 Spring Boot 4 和 Spring Cloud 2025.1 构建的版本,标志着项目在技术栈与架构设计上迈出了重要一步。

Dante Cloud 始终坚持“简洁、高效、包容、务实”的核心理念,持续整合微服务领域的主流技术与新兴技术,在代码质量、系统安全与可维护性上不断打磨。我们希望通过 Dante Cloud,打造一款代码质量高、维护投入低、安全防护强的微服务基座,帮助用户快速跨越架构技术选型、技术研究探索、基础架构搭建阶段,直接聚焦业务开发。

Dante Cloud 4.X 的核心关注点依旧聚焦于:「高质量的系统代码」「合理的系统架构」「低耦合的模块划分」「高安全性系统实现」「灵活的功能扩展能力」「优质的微服务实践方案」。同时,本版本在保持了原有 “一套代码、两种架构” 特殊架构外,也为 AI 时代的技术演进预留了更友好的底座支持。接下来,让我们一起看看 Dante Cloud 4.X 带来了哪些重要的新特性和改进。

一、Dante Cloud 4.X 新特性

[1] 基础依赖全面升级

  1. Dante Cloud 4.X 使用 JDK 版本已经全面升级至 25,充分发挥虚拟线程的能力
  2. Spring Boot 版本升级至 4.0.3
  3. Spring Cloud 版本升级至 2025.1.1
  4. Spring Cloud Alibaba 版本升级至 2025.1.0.0
  5. 全面迁移至 Jackson 3,提升序列化/反序列化性能与安全性

[2] 全新模块架构

  1. 基于 Spring Boot 4 “New Moduler Design” 体系,重构整个核心组件库模块,适配新体系下的模块划分和使用,进一步强化模块的内聚性和独立使用能力
  2. 工程 maven dependencies 体系,由原来“继承”模式变更为 import 模式,增强工程的独立性以及模块引入的便捷性,避免在多工程场景下各个工程只能串行使用效率低下问题

[3] API 版本控制

  1. 新增 REST API 版本控制能力,支持请求头、请求路径和请求参数三种 API 版本设置模式,可通过配置修改。默认已开启基于请求头的版本控制。
  2. 新增支持带 API 版本的 REST 接口动态接口鉴权能力,接口权限实时在线变更,不同版本接口可独立设置不同权限

[4] 改进 gRPC 通信

  1. 使用 Spring gRPC 组件替换原有 net.devh grpc-srping-boot-starter,并扩展 gRPC 的动态服务发现能力,让 gRPC 与系统的融合更加成体系化
  2. 新增基于 Spring Security 的 gRPC 方法动态鉴权能力,与 REST 接口权限体系保持一致,让 gRPC 通信更加安全

[5] 安全防护增强

  1. 全新实现 PKI 证书管理模块,支持在线生成与管理,无需使用传统命令行方式生成和管理证书
  2. 系统基于 Spring Authorization Server 的授权服务器加密逻辑,全部修改为使用系统 PKI 模块生成证书
  3. 改造 Spring Boot Admin 监控服务,增加登陆认证保护。使用 Dante Cloud 系统自身提供的 OAuth2 / OIDC 作为 Spring Boot Admin 主要的登录模式
  4. 新增静态接口权限 Customizer 聚合模式,服务可根据实际依赖模块按需动态装配静态接口权限,减少静态权限的重复设置和不必要的解析,进一步提升接口鉴权效率
  5. 服务 Docker 镜像基础 JDK 修改为 liberica 加固镜像,以提升镜像整体安全性及性能

[6] OSS对象存储

  1. 原 Dante OSS 工程已经停止维护,使用 AWS S3 V2 权限实现 OSS 管理模块,并合并至核心组件库
  2. 支持在线生成与管理,基于 AWS S3 V2 API 能够提供的能力,全新实现前端对象存储管理功能
  3. 重构本地文件存储和远程文件存储多层文件管理逻辑,让代码逻辑更清晰、运行更稳定、配置修改,也更容易理解和维护。

[7] 前端功能改进

  1. 基于 Vuetify Material Design 3 蓝图风格以及 Vue 3 组合式 API,全新编写新版管理界面
  2. 采用 monorepo 模块化设计,原版前端(Quasar版)和前端新版(Vuetify版),共享通用化代码模块,提升代码维护的便捷性
  3. 前端菜单权限大幅调整,支持根据多角色动态获取菜单。
  4. 支持多类型动态菜单,个人页面菜单从静态化菜单变更为支持动态化配置管理
  5. 大幅提升前端代码 Tree shaking 能力和性能
  6. 前端组件库模块新增组件 Resolver 支持,方便 IDE 更好的识别组件及其定义

[8] 其它改进提升

  1. Dante Cloud 主工程也支持中央仓库和 Maven 私库发布,服务的开发和代码组织可以更灵活
  2. 使用更优雅及更合理的方式重构自定义 JPA 二级缓存实现,彻底解决需要修改 Hibernate 源代码的问题
  3. 优化平台和服务配置,按照 Servlet 和 Reactive 不同环境需求进行拆分,以增强不同运行环境配置的独立性
  4. 重构本地文件存储及服务间文件传输体系,简化代码逻辑,清晰化代码定位,便于理解和维护
  5. 重构基础 Service 和 Controller 定义,在原有 Spring Data 实体绑定基础上,支持 DTO 类型请求和响应实体。同时支持 Spring Data Page 和 Slice 两种分页场景

二、注意事项

  1. 因为全新架构了核心组件库中的模块,核心模块坐标已统一变更为 org.dromara.dante(企业版保持不变),建议全新检出代码,避免因模块结构调整导致冲突
  2. 数据库和 Nacos 配置等,也存在较多的变化,与之前版本无法兼容,要使用新版本建议重新建库和导入配置文件。
  3. 若通过 ZIP 方式导出代码,需注释 git-commit-id-maven-plugin,否则编译会因缺少 .git 文件夹报错。建议通过 Git 克隆代码以保留版本记录功能

三、项目地址

Giteehttps://gitee.com/dromara/dante-cloud

Githubhttps://github.com/dromara/dante-cloud

Gitcodehttps://gitcode.com/dromara/dante-cloud


在 Dante Cloud 这个开源项目里,我们用代码搭建桥梁,期待与那些认知相通、理念相契的同行者相遇——因为只有真正理解其价值的人,才能与我们一同走得更远。

如果对您有所帮助,点个 "Star" 支持一下!

寄出去前去了爱回收和转转,有两份质检报告
对方签收到手半小时三张图说光驱是坏的,有维修迹象,希望退钱自己维修一下
打电话给快递员,是关机状态,想确认是否当面签收无门(京东快递,地址青岛即墨区一个邮政点

要电脑怕他给我砸个稀巴烂或拆零件,8G+1T 的固态,要得到钱就得跟对方来回扯
对方是个话唠,语音条一下子 60S
张口闭口小姑娘不老实,不告诉真实情况,电脑坏了贼恶心
嘶,商场监控让调嘛,需要证明发出前俩小时质检没毛病吗?

现在就是琢磨的吃不下饭,80 斤瘦成人干了,啧

三类公路裂缝目标检测数据集(2000 张图片已划分、已标注)| AI训练适用于目标检测任务

引言

随着交通基础设施的快速发展,公路作为现代交通网络的重要组成部分,其安全性和通行效率越来越受到社会各界的关注。在长期使用过程中,由于车辆荷载、气候变化以及材料老化等多种因素的影响,道路表面往往会产生不同类型的裂缝。这些裂缝如果不能及时发现和修复,可能会逐渐扩展,最终导致更严重的路面损坏,甚至影响行车安全。

传统的道路巡检方式主要依赖人工巡查。工作人员需要定期对道路进行现场检查,并通过肉眼观察记录裂缝情况。这种方式不仅效率低、成本高,而且在大规模道路网络中很难做到高频率、全覆盖的巡检。此外,人工检测也容易受到主观因素影响,导致识别结果存在误差。
在这里插入图片描述

近年来,随着计算机视觉与深度学习技术的快速发展,基于图像识别的道路病害自动检测技术逐渐成为研究热点。通过摄像设备或巡检车辆采集道路图像,再利用目标检测算法进行自动识别,可以实现对道路裂缝的快速检测与智能分析,大幅提高道路巡检效率。

为了支持相关研究与工程应用,本文整理并发布 三类公路裂缝目标检测数据集(2000+ 张图像)。该数据集专门面向 道路裂缝检测任务 构建,可用于训练多种深度学习目标检测模型,如 YOLO、RT-DETR、Faster R-CNN 等,并可广泛应用于智慧交通系统、道路养护评估以及自动化巡检系统开发。

接下来,我们将从数据集概述、数据背景、数据结构、标注方式以及应用场景等方面,对该数据集进行详细介绍。

数据集下载

链接:https://pan.baidu.com/s/19kfg1KTfrN21fzmpO6aB4g?pwd=ii31
提取码:ii31 复制这段内容后打开百度网盘手机App,操作更方便哦

一、数据集概述

本数据集为 公路裂缝目标检测数据集,共包含 2000+ 张高质量标注道路图像。所有图像均来自真实道路环境,覆盖不同类型的路面材质以及多种环境条件。

数据集中的裂缝主要分为三类:

  • Alligator_crack:网状裂缝(鳄鱼裂缝)
  • Longitudinal_crack:纵向裂缝
  • Transverse_crack:横向裂缝

这些裂缝类型是道路工程中最常见的三类结构性裂缝,具有典型的形态特征和工程意义。
在这里插入图片描述

数据集已经按照深度学习训练规范划分为:

  • 训练集(Train)
  • 验证集(Validation)
  • 测试集(Test)

数据结构如下:

dataset
 ├── train
 │   ├── images
 │   └── labels
 ├── valid
 │   ├── images
 │   └── labels
 ├── test
 │   ├── images
 │   └── labels

对应的数据配置文件如下:

train: ../train/images
val: ../valid/images
test: ../test/images

nc: 3
names: ['Alligator_crack', 'Longitudinal_crack', 'Transverse_crack']

这种组织方式符合主流目标检测框架的数据格式规范,可以 直接用于 YOLOv5、YOLOv8、YOLOv9、YOLOv10 以及 RT-DETR 等模型训练

此外,数据集中所有目标均采用 Bounding Box(边界框)方式进行标注,适合开展裂缝检测、多类别识别以及细长结构检测等研究任务。


二、背景

道路裂缝是公路病害中最常见的一种形式,也是道路结构损伤的重要表现。裂缝的出现通常与以下因素有关:

  • 交通荷载长期作用
  • 路基沉降
  • 温度变化引起的热胀冷缩
  • 材料疲劳
  • 施工质量问题

在公路使用过程中,裂缝往往是最早出现的病害形式。如果能够在裂缝初期进行及时检测和维护,可以有效延长道路使用寿命,并减少后期维护成本。

传统的道路检测方式主要包括:

  • 人工巡检
  • 手持设备检测
  • 路面测量车检测

然而这些方法仍然存在一些明显问题:

  1. 效率较低
    大规模道路巡检需要大量人力。
  2. 主观性强
    不同检测人员对裂缝的判断标准可能不同。
  3. 数据难以长期积累
    手工记录不利于建立历史数据库。

随着人工智能技术的发展,越来越多研究开始尝试利用 深度学习视觉算法 来解决道路裂缝检测问题。通过训练目标检测模型,可以自动识别裂缝位置与类型,实现自动化检测。

在实际应用中,道路裂缝检测系统通常包括以下流程:

道路图像采集
       ↓
图像预处理
       ↓
目标检测模型识别裂缝
       ↓
裂缝类型分类
       ↓
道路病害评估

然而,算法性能很大程度上依赖于 高质量数据集。因此,一个具有真实场景、多样化裂缝类型以及精确标注的数据集,对于模型训练与算法评估具有重要意义。


三、数据集详情

1 数据规模

数据集总规模:

2000+ 张图像

所有图像均经过:

  • 数据筛选
  • 人工标注
  • 标注审核
  • 数据集划分

确保数据质量稳定可靠。


2 图像特征

数据集中图像来源于真实道路环境,具有以下特点:

1 多种路面材质

包括:

  • 沥青路面
  • 水泥混凝土路面

不同材质的裂缝表现形式有所不同。

2 多种光照条件

数据集中包含:

  • 强光环境
  • 阴影区域
  • 黄昏光照
  • 不均匀光照

这使得数据集更加接近真实应用环境。

3 复杂背景

道路图像中可能包含:

  • 沥青纹理
  • 水渍
  • 油污
  • 轮胎痕迹
  • 路面标线

这些因素会增加检测难度。
在这里插入图片描述


3 裂缝类别说明

1 Alligator_crack(网状裂缝)

网状裂缝又称 鳄鱼裂缝,因其形状类似鳄鱼皮纹理而得名。

其主要特点包括:

  • 裂缝呈网状或块状分布
  • 多为结构疲劳引起
  • 常见于沥青路面

这种裂缝通常意味着道路结构层已经出现严重损伤。


2 Longitudinal_crack(纵向裂缝)

纵向裂缝沿 道路行驶方向 延伸。

主要特点包括:

  • 细长形状
  • 延伸距离较长
  • 通常出现在车道边缘或接缝处

产生原因可能包括:

  • 路基沉降
  • 施工接缝
  • 温度应力

3 Transverse_crack(横向裂缝)

横向裂缝 垂直于行驶方向

特点包括:

  • 横向分布
  • 间隔出现
  • 多为温度变化导致

在寒冷地区尤为常见。


4 标注格式

本数据集采用 YOLO 标注格式

标注文件示例:

class x_center y_center width height

示例:

0 0.462 0.512 0.384 0.072
1 0.728 0.643 0.295 0.054
2 0.328 0.231 0.267 0.061

其中:

  • 0 → Alligator_crack
  • 1 → Longitudinal_crack
  • 2 → Transverse_crack

所有标注均采用 Bounding Box


5 数据难点

该数据集在算法研究中具有一定挑战性。

1 裂缝细长

很多裂缝呈 细长结构,检测难度较高。

2 小目标问题

部分裂缝在图像中占比较小。

3 背景干扰

道路纹理容易被误识别为裂缝。

4 形态复杂

不同裂缝形态差异明显。

这些因素使得数据集非常适合用于研究:

  • 小目标检测
  • 细长结构识别
  • 复杂纹理背景检测

在这里插入图片描述

四、适用场景

该数据集可应用于多个研究和工程场景。


1 智慧交通系统

通过训练裂缝检测模型,可以实现:

  • 道路病害自动识别
  • 道路健康状态评估
  • 养护决策辅助

为智慧交通系统提供重要数据支持。


2 道路自动巡检系统

结合巡检车辆或无人设备,可以构建自动巡检系统:

车辆采集道路图像
        ↓
目标检测模型识别裂缝
        ↓
裂缝分类与定位
        ↓
生成巡检报告

实现自动化道路检测。


3 无人巡检设备

数据集可用于训练模型部署在:

  • 巡检机器人
  • 无人巡检车
  • 移动巡检设备

实现实时检测。


4 深度学习算法研究

研究人员可以使用该数据集测试和改进多种目标检测算法,例如:

  • YOLOv8
  • YOLOv9
  • RT-DETR
  • Faster R-CNN
  • RetinaNet

特别适合研究:

  • 小目标检测优化
  • 细长结构检测
  • 特征融合网络设计

5 学术研究与教学

该数据集也适用于:

  • 计算机视觉课程实验
  • 深度学习课程项目
  • 智慧交通研究课题

帮助学生快速理解目标检测任务。


五、心得

在整理道路裂缝数据集的过程中,可以明显感受到 真实场景数据的重要性。很多实验室数据集背景简单,而真实道路环境往往具有复杂纹理、阴影以及各种干扰因素。

因此,一个具有真实应用场景的数据集,对于算法研究来说更加具有价值。

同时,裂缝检测属于 细长结构检测问题,与常见目标检测任务相比存在明显不同。裂缝往往具有:

  • 宽度很小
  • 长度较长
  • 形态不规则

这对检测模型提出了更高要求。

在模型训练过程中,可以尝试以下优化策略:

  • 数据增强
  • 多尺度训练
  • 引入注意力机制
  • 改进特征融合结构

这些方法通常可以提升检测效果。


六、结语

随着人工智能技术在交通领域的不断发展,基于计算机视觉的道路病害检测技术正在逐渐走向实际应用。通过自动化识别道路裂缝,可以显著提高道路巡检效率,并为道路养护提供科学的数据支持。

本文介绍的 三类公路裂缝目标检测数据集(2000+ 张图像),覆盖多种道路材质与复杂环境条件,包含三类典型裂缝类型,适用于多种目标检测算法训练与评估。

希望该数据集能够为以下领域提供帮助:

  • 道路裂缝自动识别研究
  • 智慧交通系统开发
  • 道路养护评估系统设计
  • 深度学习目标检测算法研究

如果你正在进行 YOLO目标检测、道路病害识别或智慧交通相关研究,该数据集将是一个非常有价值的实验数据资源。

未来也会持续整理和发布更多 AI视觉数据集与工程实践案例,欢迎大家交流学习,共同推动人工智能在实际场景中的落地应用。

三类公路裂缝目标检测数据集(2000 张图片已划分、已标注)| AI训练适用于目标检测任务

引言

随着交通基础设施的快速发展,公路作为现代交通网络的重要组成部分,其安全性和通行效率越来越受到社会各界的关注。在长期使用过程中,由于车辆荷载、气候变化以及材料老化等多种因素的影响,道路表面往往会产生不同类型的裂缝。这些裂缝如果不能及时发现和修复,可能会逐渐扩展,最终导致更严重的路面损坏,甚至影响行车安全。

传统的道路巡检方式主要依赖人工巡查。工作人员需要定期对道路进行现场检查,并通过肉眼观察记录裂缝情况。这种方式不仅效率低、成本高,而且在大规模道路网络中很难做到高频率、全覆盖的巡检。此外,人工检测也容易受到主观因素影响,导致识别结果存在误差。
在这里插入图片描述

近年来,随着计算机视觉与深度学习技术的快速发展,基于图像识别的道路病害自动检测技术逐渐成为研究热点。通过摄像设备或巡检车辆采集道路图像,再利用目标检测算法进行自动识别,可以实现对道路裂缝的快速检测与智能分析,大幅提高道路巡检效率。

为了支持相关研究与工程应用,本文整理并发布 三类公路裂缝目标检测数据集(2000+ 张图像)。该数据集专门面向 道路裂缝检测任务 构建,可用于训练多种深度学习目标检测模型,如 YOLO、RT-DETR、Faster R-CNN 等,并可广泛应用于智慧交通系统、道路养护评估以及自动化巡检系统开发。

接下来,我们将从数据集概述、数据背景、数据结构、标注方式以及应用场景等方面,对该数据集进行详细介绍。

数据集下载

链接:https://pan.baidu.com/s/19kfg1KTfrN21fzmpO6aB4g?pwd=ii31
提取码:ii31 复制这段内容后打开百度网盘手机App,操作更方便哦

一、数据集概述

本数据集为 公路裂缝目标检测数据集,共包含 2000+ 张高质量标注道路图像。所有图像均来自真实道路环境,覆盖不同类型的路面材质以及多种环境条件。

数据集中的裂缝主要分为三类:

  • Alligator_crack:网状裂缝(鳄鱼裂缝)
  • Longitudinal_crack:纵向裂缝
  • Transverse_crack:横向裂缝

这些裂缝类型是道路工程中最常见的三类结构性裂缝,具有典型的形态特征和工程意义。
在这里插入图片描述

数据集已经按照深度学习训练规范划分为:

  • 训练集(Train)
  • 验证集(Validation)
  • 测试集(Test)

数据结构如下:

dataset
 ├── train
 │   ├── images
 │   └── labels
 ├── valid
 │   ├── images
 │   └── labels
 ├── test
 │   ├── images
 │   └── labels

对应的数据配置文件如下:

train: ../train/images
val: ../valid/images
test: ../test/images

nc: 3
names: ['Alligator_crack', 'Longitudinal_crack', 'Transverse_crack']

这种组织方式符合主流目标检测框架的数据格式规范,可以 直接用于 YOLOv5、YOLOv8、YOLOv9、YOLOv10 以及 RT-DETR 等模型训练

此外,数据集中所有目标均采用 Bounding Box(边界框)方式进行标注,适合开展裂缝检测、多类别识别以及细长结构检测等研究任务。


二、背景

道路裂缝是公路病害中最常见的一种形式,也是道路结构损伤的重要表现。裂缝的出现通常与以下因素有关:

  • 交通荷载长期作用
  • 路基沉降
  • 温度变化引起的热胀冷缩
  • 材料疲劳
  • 施工质量问题

在公路使用过程中,裂缝往往是最早出现的病害形式。如果能够在裂缝初期进行及时检测和维护,可以有效延长道路使用寿命,并减少后期维护成本。

传统的道路检测方式主要包括:

  • 人工巡检
  • 手持设备检测
  • 路面测量车检测

然而这些方法仍然存在一些明显问题:

  1. 效率较低
    大规模道路巡检需要大量人力。
  2. 主观性强
    不同检测人员对裂缝的判断标准可能不同。
  3. 数据难以长期积累
    手工记录不利于建立历史数据库。

随着人工智能技术的发展,越来越多研究开始尝试利用 深度学习视觉算法 来解决道路裂缝检测问题。通过训练目标检测模型,可以自动识别裂缝位置与类型,实现自动化检测。

在实际应用中,道路裂缝检测系统通常包括以下流程:

道路图像采集
       ↓
图像预处理
       ↓
目标检测模型识别裂缝
       ↓
裂缝类型分类
       ↓
道路病害评估

然而,算法性能很大程度上依赖于 高质量数据集。因此,一个具有真实场景、多样化裂缝类型以及精确标注的数据集,对于模型训练与算法评估具有重要意义。


三、数据集详情

1 数据规模

数据集总规模:

2000+ 张图像

所有图像均经过:

  • 数据筛选
  • 人工标注
  • 标注审核
  • 数据集划分

确保数据质量稳定可靠。


2 图像特征

数据集中图像来源于真实道路环境,具有以下特点:

1 多种路面材质

包括:

  • 沥青路面
  • 水泥混凝土路面

不同材质的裂缝表现形式有所不同。

2 多种光照条件

数据集中包含:

  • 强光环境
  • 阴影区域
  • 黄昏光照
  • 不均匀光照

这使得数据集更加接近真实应用环境。

3 复杂背景

道路图像中可能包含:

  • 沥青纹理
  • 水渍
  • 油污
  • 轮胎痕迹
  • 路面标线

这些因素会增加检测难度。
在这里插入图片描述


3 裂缝类别说明

1 Alligator_crack(网状裂缝)

网状裂缝又称 鳄鱼裂缝,因其形状类似鳄鱼皮纹理而得名。

其主要特点包括:

  • 裂缝呈网状或块状分布
  • 多为结构疲劳引起
  • 常见于沥青路面

这种裂缝通常意味着道路结构层已经出现严重损伤。


2 Longitudinal_crack(纵向裂缝)

纵向裂缝沿 道路行驶方向 延伸。

主要特点包括:

  • 细长形状
  • 延伸距离较长
  • 通常出现在车道边缘或接缝处

产生原因可能包括:

  • 路基沉降
  • 施工接缝
  • 温度应力

3 Transverse_crack(横向裂缝)

横向裂缝 垂直于行驶方向

特点包括:

  • 横向分布
  • 间隔出现
  • 多为温度变化导致

在寒冷地区尤为常见。


4 标注格式

本数据集采用 YOLO 标注格式

标注文件示例:

class x_center y_center width height

示例:

0 0.462 0.512 0.384 0.072
1 0.728 0.643 0.295 0.054
2 0.328 0.231 0.267 0.061

其中:

  • 0 → Alligator_crack
  • 1 → Longitudinal_crack
  • 2 → Transverse_crack

所有标注均采用 Bounding Box


5 数据难点

该数据集在算法研究中具有一定挑战性。

1 裂缝细长

很多裂缝呈 细长结构,检测难度较高。

2 小目标问题

部分裂缝在图像中占比较小。

3 背景干扰

道路纹理容易被误识别为裂缝。

4 形态复杂

不同裂缝形态差异明显。

这些因素使得数据集非常适合用于研究:

  • 小目标检测
  • 细长结构识别
  • 复杂纹理背景检测

在这里插入图片描述

四、适用场景

该数据集可应用于多个研究和工程场景。


1 智慧交通系统

通过训练裂缝检测模型,可以实现:

  • 道路病害自动识别
  • 道路健康状态评估
  • 养护决策辅助

为智慧交通系统提供重要数据支持。


2 道路自动巡检系统

结合巡检车辆或无人设备,可以构建自动巡检系统:

车辆采集道路图像
        ↓
目标检测模型识别裂缝
        ↓
裂缝分类与定位
        ↓
生成巡检报告

实现自动化道路检测。


3 无人巡检设备

数据集可用于训练模型部署在:

  • 巡检机器人
  • 无人巡检车
  • 移动巡检设备

实现实时检测。


4 深度学习算法研究

研究人员可以使用该数据集测试和改进多种目标检测算法,例如:

  • YOLOv8
  • YOLOv9
  • RT-DETR
  • Faster R-CNN
  • RetinaNet

特别适合研究:

  • 小目标检测优化
  • 细长结构检测
  • 特征融合网络设计

5 学术研究与教学

该数据集也适用于:

  • 计算机视觉课程实验
  • 深度学习课程项目
  • 智慧交通研究课题

帮助学生快速理解目标检测任务。


五、心得

在整理道路裂缝数据集的过程中,可以明显感受到 真实场景数据的重要性。很多实验室数据集背景简单,而真实道路环境往往具有复杂纹理、阴影以及各种干扰因素。

因此,一个具有真实应用场景的数据集,对于算法研究来说更加具有价值。

同时,裂缝检测属于 细长结构检测问题,与常见目标检测任务相比存在明显不同。裂缝往往具有:

  • 宽度很小
  • 长度较长
  • 形态不规则

这对检测模型提出了更高要求。

在模型训练过程中,可以尝试以下优化策略:

  • 数据增强
  • 多尺度训练
  • 引入注意力机制
  • 改进特征融合结构

这些方法通常可以提升检测效果。


六、结语

随着人工智能技术在交通领域的不断发展,基于计算机视觉的道路病害检测技术正在逐渐走向实际应用。通过自动化识别道路裂缝,可以显著提高道路巡检效率,并为道路养护提供科学的数据支持。

本文介绍的 三类公路裂缝目标检测数据集(2000+ 张图像),覆盖多种道路材质与复杂环境条件,包含三类典型裂缝类型,适用于多种目标检测算法训练与评估。

希望该数据集能够为以下领域提供帮助:

  • 道路裂缝自动识别研究
  • 智慧交通系统开发
  • 道路养护评估系统设计
  • 深度学习目标检测算法研究

如果你正在进行 YOLO目标检测、道路病害识别或智慧交通相关研究,该数据集将是一个非常有价值的实验数据资源。

未来也会持续整理和发布更多 AI视觉数据集与工程实践案例,欢迎大家交流学习,共同推动人工智能在实际场景中的落地应用。

一旦模型能读完所有内容检索增强生成(RAG)就没有存在的必要了,开发者只需要把整个代码库或者多年的聊天记录塞进 prompt,让模型自行处理,所以AI行业花了好几年追逐更大的上下文窗口:4K → 32K → 128K → 1M tokens。

但是真正在生产环境里这么做的时候就出了问题,因为答案变差了。

在不少实际系统中,更大的上下文窗口反而拖累了模型表现。

问题出在语言模型处理信息的方式上,LLM 依赖注意力机制对不同概念分配权重,而模型容量虽然在增长,无关上下文的密度一旦上升,注意力分配的可靠性就会迅速衰减。噪声灌进来之后,两个架构层面的故障随之出现:注意力稀释与检索崩溃。

注意力稀释

理解注意力稀释需要回到模型读取 prompt 的数学机制,LLM 必须把注意力分配到输入的每一个 token 上。

假设正在查询一条团队工作空间里的特定决策记录。包含答案的那段文字只有一段,周围围着五十段毫不相关的闲聊和自动化系统告警。模型需要在数学意义上判定哪些内容重要:上下文规模一大,信噪比就塌了。

用一个小上下文的场景做对照:5K token 的窗口,200 token 的相关信息,信号占比 4%,模型可以轻松锁定事实。换到 200K token 的窗口,同样 200 token 的相关信息,信号占比降到 0.1%。

计算资源被大量消耗在无关 token 的评估上,分配给真正有用信号的权重随之削弱。输出质量的下滑是直接后果:模型漏掉事实,给出错误答案,或者用幻觉来填补那些它没能可靠提取的信息空白。

检索崩溃

上下文窗口足够大之后,一个常见的诱惑是直接放弃构建检索管道,把 prompt 设成全部可用文档。

这违背了一条基本设计原则:LLM 在 prompt 经过精心筛选时表现最好。

标准 RAG 架构有意把上下文限定为相关性最高的 top-K 个片段。约束本身就是特性:它压制噪声、保持信号密度,迫使模型在有限范围内做集中推理。一旦跳过过滤步骤,最终回答的质量几乎必然下降。

"迷失在中间"效应

上述现象不只是工程直觉,而是经过实验验证的研究结论,直接影响 AI 后端的设计方式。2023年,来自斯坦福大学、加州大学伯克利分校和 Samaya AI 的研究人员在论文 《Lost in the Middle: How Language Models Use Long Contexts》中正式描述了这一效应。

研究揭示了一条"U型"性能曲线:相关信息出现在输入上下文的开头(首因效应)或结尾(近因效应)时准确率最高,放在中间位置时模型的检索和推理能力明显下滑,即便 token 上限足够大也不例外。更麻烦的是随着 prompt 中无关文档的增多,中间位置信息的可用性持续恶化,真正有价值的内容等于被藏进了干草堆。

RAG 为什么依然更有效

RAG 从来不只是用来绕过上下文长度限制的补丁,它的核心价值在于精确的信息筛选。

一套成熟的 RAG 系统有明确的管道:接收用户查询,在 embedding 数据库上执行向量搜索,抽取 top-K 个片段,之后才把数据交给 LLM。等语言模型介入时,它面对的只有相关性最高、密度最集中的内容:不再是 200K token 的杂乱数据,而是 1K 到 2K token 的高信号事实。注意力集中在这样的范围上,回答的准确性、可靠性和响应延迟都会有实质改善。

RAG + 大上下文

解决方案不在二选一。现代 AI 系统把精确检索和大上下文窗口结合在一起,用前者保证信号质量,用后者容纳旧模型放不下的多文档推理。

标准的生产管道是这样的:

  1. 接收用户查询。
  2. 从向量数据库中检索 40 个宽泛相关的片段。
  3. 用 Cross-Encoder 重排序模型对这些片段做二次评分。
  4. 按新的相关性分数筛出最优的 5 到 7 个片段。
  5. 将筛选后的上下文发送给 LLM。

Python 实现如下:

 # 1. 广泛检索(通过向量搜索实现高召回率)  
 candidates = await vector_db.search(query=user_query, top_k=40)  
 # 2. 精确过滤(通过Cross-Encoder实现高精确率)  
 reranked_results = await reranker.rank(query=user_query, documents=candidates)  
 # 3. 筛选上下文窗口  
 best_chunks = reranked_results[:7]  
 # 4. 生成专注的、高信号的响应  
 response = await llm.generate(prompt=user_query, context=best_chunks)

大上下文窗口的好处在于,传递这些密集片段时不必再担心 token 截断的问题。它解决的是容量瓶颈,相关性的问题仍然需要检索管道来处理。

更大的上下文窗口解决的是容量,不是相关性。

语言模型是出色的推理引擎,但前提是输入经过严格过滤。把所有东西都倒进去,换来的只是不可预测的性能衰退。

检索的下一步

纯容量的竞赛已经进入收益递减的阶段,下一代 AI 系统的重心正在转移:更好的检索算法、更精细的 Cross-Encoder 排序、智能化的上下文压缩。AI 架构中真正的瓶颈从来不是能塞进多少 token,而是在源头找到该塞进去的那些信息。

更大的上下文窗口没有取代 RAG。

恰恰相反,好的检索变得前所未有地重要。在 AI 系统中,信息量和信息质量是两回事。

https://avoid.overfit.cn/post/90620d19fba643a680165fbab7b477fd

by Tanmay Bansal

https://github.com/yincongcyincong/weixin-macos

因为自己对微信 hook 一直有需求,需要拦截所有订阅的银行消费提醒实现自动记账,以及各类群消息汇总、Omnifocus 之类的任务管理,所以对微信 4.x 之后在 mac 上的 hook 比较关注,之前问过 mac 上面微信的 hook 情况 https://www.v2ex.com/t/1180863

帖子里有人提到这个项目,试了一下确实实现了 hook 收发,我在 4.1.7.31 上面测试成功。、

征得作者的同意把项目在这里发一下,有需要的可以关注一波,也可以添加电报群 https://t.me/+yBnP4fxkoCIzZjRl 不过作者也说了,会只专注微信基本的收发功能,主要用于接入 agent 使用,其它各类群控之类的功能一概不碰。

用过 sing-box 的朋友应该都有这种感觉:核心真的很强,但客户端总感觉差点意思。

前前后后折腾了一圈市面上的客户端:有的 UI 不太顺眼,有的配置逻辑极其硬核,还有的功能虽强但用起来总是不太顺手。

既然找不到一个既简单、干净顺手的,想了想:不如干脆自己撸一个。

于是就有了 Rover —— 一个尽量去掉繁琐、回归直觉的 sing-box GUI 桌面客户端

✨ 为什么要做 Rover?

我希望它不仅仅是一个内核的壳子,而是能解决这些折腾人的痛点:

  • 审美不迁就: 拒绝杂乱的仪表盘,提供简洁、现代的界面设计。
  • 操作不折腾: 尽量减少复杂操作,追求开箱即用的体验。
  • 配置不繁琐: 在强大功能与上手难度之间找平衡,让管理更顺手。

🚀 项目还在持续完善

目前 Rover 还在快速迭代中,很多地方肯定还有改进空间。如果你也在用 sing-box,厌倦了复杂的配置逻辑,欢迎来试试 Rover,也期待你的建议或吐槽。

项目地址:
GitHub: https://github.com/roverlab/rover

截图预览:

Rover Screenshot


如果你对 Rover 的交互有什么独特的想法,或者在使用过程中遇到了什么坑,欢迎在评论区一起讨论!

雷达近场 FMCW 仿真与成像平台

面向近场 FMCW 的回波建模、成像与三维估计一体化仿真

教学可复现的近场感知算法演示平台

近场雷达 FMCW 反投影成像 MUSIC

📌 为什么选择

近场场景中球面波效应显著,远场假设会带来角度与成像偏差。平台提供端到端链路与可视化,便于理解算法机理与误差来源。

痛点方案
近场相位误差难解释球面波回波建模
距离与速度轴难对应标定公式与图示
角度估计结果不直观MUSIC 谱与误差展示
端到端链路难复现固定随机种子与一键演示
参数影响难量化指标摘要与对照实验

🎯 核心价值

​​

🔬 学术研究价值

强调近场物理机理与算法推导的对应关系。

  • 近场球面波推导
  • 距离与速度轴标定
  • MUSIC 子空间解释
  • 误差来源量化

</td><td width="50%">

💼 工程应用价值

聚焦可复现与可教学的工程落地形态。

  • 端到端链路演示
  • 统一配置入口
  • 图像与指标同步
  • 快速模式运行

⚡ 技术亮点

🌊 近场建模

特性传统方案本方案
波前模型平面波近似球面波精确
相位补偿线性相位二次相位
成像聚焦角度聚焦空间聚焦
误差表现系统偏移误差可解释
适用距离远场为主近场为主

📊 性能指标(实测数据)

基于 demo\_p05 quick 运行与配置推导汇总。
场景基线本方案结论
距离精度理论分辨率 0.125 mRMSE 0.095 m达到分辨率级别
方位角精度网格步长 2°RMSE 0.40°优于网格上限
俯仰角精度网格步长 2°RMSE 0.62°满足教学精度
目标一致性真值 3 目标估计 3 目标数量一致

🎯 近场聚焦能力

以成像面选择展示聚焦与失焦差异。

参数配置性能
成像面选择z=0.8 m 对比 0.4/1.2 m聚焦评分峰值约 18.31 dB
RD 峰值检测rd\_threshold\_db=-203 目标稳定检出
角度网格az/el 步长 1°\~2°谱峰接近真值

🖥️ 运行环境

项目以 MATLAB 为主,适合桌面仿真与教学演示。默认配置在常规 CPU 环境下可完成 quick 演示。

  • 语言:MATLAB
  • 依赖:基础信号处理函数
  • 硬件:x64 CPU、8GB+ 内存

📁 项目结构

雷达近场/
 ├── matlab/                     # 算法与处理主目录
 │   ├── core/                   # 回波建模与主流程
 │   ├── processing/             # 距离/多普勒/成像处理
 │   └── nf_doa/                 # MUSIC 角度估计模块
 ├── matlab/demos/               # 演示脚本入口
 │   ├── demo_01_quick_start.m   # 快速主流程演示
 │   └── demo_p05_end_to_end.m   # 端到端演示
 └── docs/                       # 文档与说明
     ├── 算法文档.md             # 理论推导与公式
     └── 代码文档.md             # 结构说明与接口

📄 文档体系

文档覆盖理论推导与代码结构两条主线。

📘 算法文档

完整阐述近场 FMCW、成像与 MUSIC 推导。

📒 代码文档

描述模块职责、数据结构与主流程。

💻 核心代码展示

🔥 回波建模

聚焦近场球面波与拍频生成。

# 输入:阵列几何与目标场景
 # 输出:回波数据立方体
 初始化数据立方体
 遍历目标与 chirp
 计算阵元到目标距离
 生成拍频相位并叠加
 按需注入噪声

🌟 RD 处理

展示距离向与慢时间处理链路。

# 输入:回波立方体
 # 输出:RD 图与轴
 距离向加窗并 FFT
 慢时间加窗并 FFT
 阵元功率叠加
 标定距离与速度轴

🚀 三维融合

融合 RD 峰值与角度估计输出三维目标。

# 输入:RD 图与快拍矩阵
 # 输出:三维目标列表
 检测 RD 峰值
 对峰值单元做 MUSIC
 提取方位与俯仰角
 与距离融合生成坐标

🎬 一键运行

addpath(genpath(fullfile(pwd, 'matlab')));
 demo_01_quick_start('quick', true, 'enable_plots', true);
 demo_p05_end_to_end('quick', true, 'enable_plots', true, 'enable_save', true);

📸 演示图片预览

以下图示均由演示脚本直接生成。
beat_time.pngbp_compare.pngbp_image_2d.pngfocus_score.pngmusic_spectrum.pngrange_spectrum.pngrd_compare.pngrd_map.pngtargets_3d.png

🛒 获取方式

本文代码仅为核心片段,完整版工程已整理好。 关注公众号 【3GPP 仿真实验室】进行获取。

📚 参考文献

  1. M. A. Richards, Fundamentals of Radar Signal Processing, 2nd ed.
  2. M. I. Skolnik, Radar Handbook, 3rd ed.
  3. H. L. Van Trees, Detection, Estimation, and Modulation Theory.
  4. P. Stoica and R. L. Moses, Spectral Analysis of Signals.
  5. J. Li and P. Stoica, MIMO Radar Signal Processing.

女性,43 岁,12 岁孩子的妈妈。
从很多年以前,我周围的同事就清一色是男性,我坚信这一行我能做到 60 ,作为一个出色的程序媛,可是市场不给我机会呀
投国内,简历直接扔垃圾桶,
投国外,人家欧美绕过中国。
我不觉得自己就比硅谷的那帮写代码的差到哪里,但现实就是现实,没人鸟就是没人鸟

上月用 AI 写了个应用,上架到 Play 商店,

可把仓库克隆到手机/平板上,随时查看。支持所有 git 服务商/私有库等。

支持 代码 / Markdown / Jupyter 的预览(不支持编辑)

全程 AI 没写一行代码,下载地址:

https://play.google.com/store/apps/details?id=com.xdnote.codeviewer

送 20 个高级码,下载应用后,可以进入 设置/关于,买高级版,在弹出的框框点银行卡,再选兑换码,输入就可以了,先到先得

DQZDSENNY0AFAVLPQTJXZ2F

85C75A1GMB7LG9K7GCTQ1ZJ

CU1DB2PUSKA5X2C387S63DX

DXDSEU4SQZXTSCYSCPZCWE6

WNHA26Q0EBWLP3NBTC2ZPGJ

RC6FQ0AK1JX4C02K2S84RT3

4F7K85J9F18WHASEYT1MK53

XLNNFN4T8W6NUCZCPP2QDWV

K0JG8JUR3DMNKKKQWGVKD5L

JXRNRDS97TMZVR5YJXGMZA0

49YPLAZ7PXEEEA7JCE4B94T

CJGAXMW5GY2DGUK4B7Y8Z4V

2RBHG3GJRY8LFV1V1B6J9A2

3NBQLXESQPBVP8G9NFLMZ7N

13SG5PQLP002AA9P5Y4VY5V

0CWV2NK6C1363CARQ909MNW

456PLX76CDQRQ2JS6APVQ6K

A15ZFYSTD1A5BC4FK6A7VJD

VF1A8B1C931DYUS53UFHNS7

今天刚通过 iOS 买的 ChatGPT Plus ,在网页里正常使用,Codex Cli 里/model也能选到 GPT-5.4 ,但是在 VSCode 里安装 Codex 插件并授权以后,选择 5.4 并随便输入一个查询,都会提示:

The 'gpt-5.4' model is not supported when using Codex with a ChatGPT account

在 Zed 里调用 Codex Cli 也会提示:

{"detail":"The 'gpt-5.4' model is not supported when using Codex with a ChatGPT account."}

VSCode 的右边栏下角也会偶尔提示Get Plus。搜索了一下,前三四天说是有故障,但 3 天前这个 issue 已经被 closed 了,照说是修复了。有其他一样的“正版受害者”吗?

最近一直在找工作,面试机会特别少。今天面了一个,他说短期项目大概两个月,签顾问合同还是协议,让我明天去面谈。有哪些需要注意的坑吗

去年 5 月离职,已经快一年了,加上年纪大,面试机会真的少。我想去试试但是怕太忙错过 3,4 月份的面试机会。不去又怕这两个月也找不到工作。facepalm

做了一个 AI Agent,需要它读 S3 文件、查 DynamoDB、调内部 API。每个工具都要写 function calling 的 schema 和调用逻辑,工具一多维护成本很高。有没有标准化的方案?

有。MCP(Model Context Protocol)就是解决这个问题的。

MCP 是什么

一句话:Agent 调工具的标准协议

工具提供方按 MCP 规范暴露能力(MCP Server),Agent 侧按规范调用(MCP Client)。通信走 JSON-RPC。

核心价值:装一个 Server = 获得一组工具。不用手写 function schema,不用手写调用逻辑。

跟传统 function calling 的区别

传统方式:每个工具手写 schema + 手写调用代码 + 手写鉴权

MCP 方式:Server 暴露工具定义(名称、参数、描述),Client 自动发现并调用

好处是标准化和复用。同一个 S3 MCP Server,可以被多个不同的 Agent 使用。

用 Amazon Bedrock 跑 MCP

Bedrock Agent 原生支持 MCP Client。接入流程:

1. 写一个 MCP Server

以 S3 文件操作为例:

from mcp.server import Server
import boto3, json

app = Server("s3-server")
s3 = boto3.client('s3', region_name='cn-northwest-1')

@app.tool()
async def list_files(bucket: str, prefix: str = "") -> str:
    """列出存储桶中的文件"""
    resp = s3.list_objects_v2(Bucket=bucket, Prefix=prefix, MaxKeys=50)
    return json.dumps([obj['Key'] for obj in resp.get('Contents', [])], ensure_ascii=False)

@app.tool()
async def read_file(bucket: str, key: str) -> str:
    """读取文本文件"""
    if bucket not in ["my-agent-bucket"]:
        return "无权访问"
    resp = s3.get_object(Bucket=bucket, Key=key)
    return resp['Body'].read().decode('utf-8')[:10000]

Server 里可以做白名单、参数校验、长度限制等安全检查。

2. 配 IAM 权限

给 MCP Server 一个最小权限 IAM Role:

{
    "Statement": [{
        "Effect": "Allow",
        "Action": ["s3:GetObject", "s3:ListBucket"],
        "Resource": [
            "arn:aws-cn:s3:::my-agent-bucket",
            "arn:aws-cn:s3:::my-agent-bucket/*"
        ]
    }]
}

只给特定 bucket 的读权限。

3. 在 Bedrock Agent 中配置

把 MCP Server 注册到 Bedrock Agent,Agent 调用时自动走 MCP 协议。

安全要点

MCP 让工具接入变简单了,安全不能松:

  1. Server 层限权:代码里做白名单和参数校验
  2. IAM 双层控制:Server Role + Agent Role 取交集
  3. CloudTrail 审计:所有 API 调用有日志
  4. VPC 隔离:Server 跑在私有子网,通过 Endpoint 访问服务

适用场景

  • Agent 需要接入多个工具/服务 → MCP
  • 工具需要被多个 Agent 复用 → MCP
  • 只有一两个简单工具 → function calling 可能更直接

两种方式不冲突,按需选择。


🔗 Amazon Bedrock:https://aws.amazon.com/cn/bedrock/
🔗 Amazon Bedrock AgentCore:https://aws.amazon.com/cn/bedrock/agentcore/
🔗 IAM:https://docs.aws.amazon.com/iam/