Hugging FaceSafeTensors 源码架构分析:面向大模型权重安全加载的 Rust 与 Python 设计
Hugging Face SafeTensors 源码架构分析面向大模型权重安全加载的 Rust 与 Python 设计本文基于 Hugging Facesafetensors仓库提交6eb4dc9a28ebce297606e0f4836bbf28839cacef的可复现源码快照整理。分析仅依据目录、构建配置、测试文件和抽样源码等静态证据未执行实际构建、测试、模糊测试或依赖安全扫描。文中内容不构成安全认证、生产放行或性能保证。评测方式证据驱动的只读静态源码审阅说明本文未执行构建、测试、Benchmark 或依赖漏洞扫描。涉及测试、CI、性能和安全的内容仅描述静态文件证据不构成运行时结论。作者Valhalla Matrix治理实验室一、结论先行SafeTensors 是 Hugging Face 生态中用于保存和加载机器学习模型权重的文件格式及实现库。与需要反序列化任意程序对象的传统方案相比它的设计重点是以张量数据和元数据为核心将文件结构与数据内容分离支持按需读取和内存映射通过 Rust 实现核心解析逻辑通过 Python 绑定服务于主流深度学习框架提供多线程、pread、DLPack 和多框架兼容性测试。当前快照包含52 个受支持源文件其中 Python 文件 43 个、Rust 文件 9 个。静态证据显示项目具备较清晰的模块边界、Rust 与 Python 的语言绑定、构建配置和测试组织。综合判断SafeTensors 是一个规模较小但安全边界较集中的模型权重格式项目。其核心价值在于将模型权重读取限制在张量数据和元数据范围内降低传统对象反序列化带来的风险暴露。正式使用前仍需在目标环境中完成构建、测试、模糊测试、恶意文件验证和依赖扫描。二、SafeTensors 解决什么问题在大模型和深度学习系统中模型权重通常以文件形式保存和分发。权重文件不仅体积较大而且需要满足以下要求能够保存多种数据类型和张量形状能够快速读取支持大文件和部分加载尽量减少额外内存复制能够跨 Python、Rust 和不同深度学习框架使用读取不应执行文件中携带的任意程序逻辑文件损坏时能够尽早失败。SafeTensors 的核心目标就是为张量权重提供一种面向数据的存储格式和加载实现。从仓库结构看项目主要由以下部分组成safetensors - Rust 核心格式与解析逻辑 bindings - Python 等上层语言绑定 attacks - 攻击样例或安全验证相关内容需要注意文件格式本身降低了某类反序列化风险并不意味着所有使用 SafeTensors 的应用都天然安全。模型来源、依赖、下载流程、缓存目录权限和上层业务逻辑仍然需要单独审阅。三、源码规模与语言构成当前快照共识别出 52 个受支持源文件语言文件数量占比约Python4382.7%Rust917.3%Python 文件数量较多主要反映Python API深度学习框架兼容测试构建和发布辅助逻辑。Rust 文件数量相对较少但核心格式解析和底层内存访问属于高影响路径。因此评估 SafeTensors 时不能只关注 Python API还应重点阅读 Rust 核心和 Python-Rust 边界。四、模块结构三个目录理解核心职责当前快照识别出三个一级模块根attacks bindings safetensors可以按照以下方式理解其职责模块主要关注点safetensors核心文件格式、张量读取和切片逻辑bindingsPython 绑定、设备访问和框架集成attacks安全验证、攻击样例或相关研究材料构建和依赖证据包括safetensors/Cargo.toml safetensors/fuzz/Cargo.toml bindings/python/Cargo.toml bindings/python/pyproject.toml从工程组织看Rust 核心和 Python 绑定有相对清晰的边界。继续审阅时应重点确认Python 参数如何传入 RustRust 错误如何转换为 Python 异常文件映射或裸指针是否跨越语言边界张量形状、数据类型和偏移量由哪一层校验不同平台下的设备和内存访问是否一致。五、核心架构文件、元数据与张量数据SafeTensors 的读取路径可以抽象为模型文件 - 文件头和元数据 - 张量名称、形状、类型、偏移范围 - 张量数据区域 - Rust 解析和边界校验 - Python / 框架绑定 - 上层张量对象这种结构的关键点在于文件内容主要被解释为数据而不是可执行对象。5.1 元数据是解析入口加载器通常需要先读取文件中的元数据用于确定张量名称数据类型张量形状数据偏移数据长度文件格式版本或相关信息。元数据一旦被错误解析可能影响后续内存范围计算。因此安全审阅应重点检查元数据长度是否经过限制偏移量计算是否可能整数溢出张量范围是否落在文件边界内形状与数据长度是否一致重复名称如何处理非法数据类型如何处理文件截断时是否能够可靠失败。静态报告中的分支和循环数量只能提示代码存在较多解析路径不能直接证明某一类边界检查已经完整实现。5.2 张量数据是主要载荷张量数据通常占文件绝大部分空间。读取逻辑需要处理不同数据类型多维形状连续或非连续布局大文件映射部分张量读取CPU 与设备内存转换多线程访问。对于模型加载服务文件读取性能和内存使用会直接影响启动时间和部署成本因此需要通过实际基准测试验证而不能根据源码规模推断性能。六、Rust 核心实现的阅读入口抽样源码中以下文件适合作为 Rust 核心阅读入口safetensors/src/lib.rs safetensors/src/slice.rs bindings/python/src/lib.rs bindings/python/src/view.rs bindings/python/src/dlpack.rs bindings/python/src/metal.rs6.1safetensors/src/lib.rs该文件是核心库的重要入口。静态抽样没有提取出明确的声明信息因此不能仅凭当前摘要判断其完整职责范围。继续阅读时建议确认文件格式入口头部解析张量索引错误类型文件读取方式内存映射和切片策略。6.2safetensors/src/slice.rs抽样结果中该文件出现了Select Narrow display_bound这些符号与张量切片、范围选择和边界展示有关。应重点核对切片下标是否经过范围检查负数或异常下标如何处理多维切片是否保持一致切片结果是否产生不必要的数据复制索引计算是否可能溢出空切片和边界切片是否有明确行为。6.3bindings/python/src/lib.rs该文件抽样观察到的符号包括new Ok dtype shape data_ptr这说明 Python 绑定层可能涉及张量构造、数据类型、形状和数据指针等关键概念。Python-Rust 边界是高优先级审阅区域建议检查Python 对象生命周期数据指针有效期Rust 内存是否被提前释放Python 异常转换GIL 处理多线程读取不可变和可变对象之间的边界。七、Python 绑定与框架兼容性测试文件显示项目关注多个框架或数据交换场景bindings/python/tests/test_flax_comparison.py bindings/python/tests/test_mlx_comparison.py bindings/python/tests/test_paddle_comparison.py bindings/python/tests/test_pt_comparison.py bindings/python/tests/test_tf_comparison.py此外还存在bindings/python/src/dlpack.rs bindings/python/src/metal.rs bindings/python/src/view.rs这说明 SafeTensors 不只是一个独立文件解析器还需要处理 Python 生态和不同设备环境之间的数据转换。7.1 多框架兼容性多框架支持需要验证数据类型映射是否一致形状和维度顺序是否一致特殊数据类型如何处理空张量和大张量是否一致浮点数据是否发生意外转换框架导出和重新加载后是否保持一致。7.2 DLPack 边界dlpack.rs中出现了as_device_ptr等符号。设备指针和跨框架数据交换需要重点关注指针所有权缓冲区生命周期设备类型识别CPU、CUDA、Metal 等设备差异异步设备操作上层框架释放对象后的行为。这些问题必须结合实际测试和运行时工具验证不能仅凭符号统计下结论。7.3 Metal 支持bindings/python/src/metal.rs中出现了MTLCreateSystemDefaultDevice DeviceHandle Allocation这说明代码包含 Apple Metal 设备相关处理线索。对跨平台项目而言需要验证非 Apple 平台是否能够正常编译没有 Metal 设备时是否能够清晰失败设备对象和内存分配是否正确释放不同设备后端之间的行为是否一致。八、文件 I/O 是最重要的风险与性能方向抽样符号统计中文件或网络 I/O 相关线索达到160 次是当前分析中最突出的方向。这与 SafeTensors 的项目定位相符因为模型加载本质上是一个大型文件读取问题。8.1 文件读取安全建议重点检查文件是否可能被截断文件长度是否经过校验偏移量和长度计算是否安全是否允许读取文件范围之外的数据文件映射失败如何处理符号链接和路径权限如何处理缓存文件是否可能被替换不可信文件是否会导致资源消耗过大。8.2 大文件与资源限制模型权重文件可能达到数 GB 甚至更大。应验证头部长度是否存在合理上限元数据是否可能导致内存大量分配张量数量是否有限制单个张量大小是否经过校验多次读取是否重复映射文件句柄是否正确关闭映射区域是否在对象销毁后解除。8.3 按需读取与内存映射SafeTensors 的一个重要使用场景是避免不必要的完整文件复制。实际验证时应测量加载少量张量时的内存增长首次访问和后续访问的差异多线程读取同一文件多进程共享同一文件文件位于本地磁盘和网络文件系统时的差异文件映射失败时的降级行为。九、并发与多线程测试当前静态线索中并发或异步相关符号出现 8 次数量不高但测试目录中存在bindings/python/tests/test_multithreaded.py bindings/python/tests/test_threadable.py这说明多线程访问是明确的测试方向。需要重点确认同一文件是否支持并发读取同一句柄是否支持多线程使用Python GIL 是否影响实际并发Rust 侧对象是否实现正确的线程安全约束多线程异常是否能够独立传播线程结束后文件映射和句柄是否释放并发读取是否会出现数据竞争。测试文件的存在只能证明项目考虑了多线程场景不能证明所有平台和所有数据规模下都具备线程安全保证。十、攻击样例与安全边界项目包含attacks目录这表明仓库中存在与攻击验证或安全研究相关的内容。对这类目录需要进行路径和制品边界确认是否属于测试样例是否用于验证恶意模型文件是否会进入 Python 包或生产镜像是否包含可执行攻击代码CI 是否会自动执行测试依赖是否与运行时依赖隔离。同时需要避免一个常见误区SafeTensors 的设计可以减少传统模型反序列化场景中的代码执行风险但不能保证模型文件本身一定可信也不能替代完整的供应链安全控制。仍需防范恶意或损坏的模型文件超大元数据导致资源耗尽越界访问整数溢出缓存目录被篡改依赖包被替换模型来源和版本无法追溯上层业务对加载后张量执行了不安全操作。十一、测试与构建证据当前快照中定位到 4 个构建或依赖文件bindings/python/Cargo.toml bindings/python/pyproject.toml safetensors/Cargo.toml safetensors/fuzz/Cargo.toml定位到 12 个测试相关文件bindings/python/tests/data/__init__.py bindings/python/tests/test_flax_comparison.py bindings/python/tests/test_handle.py bindings/python/tests/test_mlx_comparison.py bindings/python/tests/test_multithreaded.py bindings/python/tests/test_paddle_comparison.py bindings/python/tests/test_pread_backend.py bindings/python/tests/test_pt_comparison.py bindings/python/tests/test_pt_model.py bindings/python/tests/test_simple.py bindings/python/tests/test_tf_comparison.py bindings/python/tests/test_threadable.py其中safetensors/fuzz/Cargo.toml是一个值得重点关注的工程证据。模糊测试适合验证文件头解析元数据边界张量索引切片范围损坏文件极端长度和数量解析器的异常退出路径。但当前静态快照只能证明存在 fuzz 相关配置不能证明模糊测试已经运行过、覆盖率充分或发现的问题已经全部修复。十二、抽样源码结构分析本次抽样分析了 12 个非测试源码文件使用两种解析模式{lexical_structure:7,python_ast:5}结构计数如下指标观测数量声明52分支134循环184异常路径0异步线索2这些数字用于确定源码阅读优先级不代表复杂度、漏洞数量或代码质量评分。特别需要注意的是抽样结果中异常路径计数为 0并不等于项目没有错误处理。它可能受到抽样文件范围解析器能力Rust 和 Python 语法差异错误返回风格静态规则定义等因素影响。正式审阅时应直接阅读错误类型、返回值和测试用例。十三、风险初判13.1 解析边界风险重点确认文件头长度元数据长度张量偏移张量大小形状乘积整数溢出文件截断重复或非法元数据。13.2 内存安全风险重点确认data_ptr使用Rust 切片范围Python 对象生命周期mmap 区域生命周期DLPack 指针所有权Metal 设备内存释放多线程下的共享访问。13.3 资源耗尽风险重点确认恶意文件是否可能导致元数据过大张量数量过多形状计算消耗过高重复映射文件句柄耗尽内存分配过大CPU 解析时间过长。13.4 供应链风险重点确认Python 和 Rust 依赖是否锁定构建脚本是否执行外部命令wheels 或二进制包的来源模型缓存和文件下载是否经过校验fuzz、attack 和测试代码是否与生产制品隔离。以上是静态审阅的验证方向不是已经确认的安全漏洞。十四、四个工程治理维度根据当前源码快照可以观察到以下四个工程治理维度维度状态证据边界模块化observed由三个一级模块根推导不评价内部耦合可测试性observed仅表示测试文件存在不代表覆盖率或通过率交付自动化observed仅表示存在自动化配置线索不代表流水线当前状态供应链可追溯性observed仅表示存在依赖和构建配置不代表依赖安全observed的含义是“在源码快照中观察到相关证据”不等于项目已经通过质量或安全认证。十五、建议的验证顺序第一步完成 Rust 和 Python 最小构建记录以下信息操作系统版本Python 版本Rust 工具链版本PyO3 或相关绑定版本编译器版本完整构建命令wheel 或本地扩展生成结果。第二步执行基础功能测试优先验证简单保存和加载张量名称、形状和数据类型空张量大张量多文件和多句柄Python 框架对比Pread 后端多线程访问。第三步执行恶意文件和损坏文件测试构造或使用测试样例验证空文件截断文件非法头部超大头部错误偏移越界长度重复张量名非法数据类型极大形状不匹配的数据长度。验证目标是程序能够明确失败不发生越界访问、异常崩溃或不可控资源消耗。第四步运行模糊测试从safetensors/fuzz/Cargo.toml确定官方 fuzz 入口记录fuzz 工具版本输入语料运行时间覆盖率崩溃样例修复和回归结果。第五步验证跨平台与设备边界重点覆盖LinuxmacOSCPUMetal目标深度学习框架多线程多进程本地磁盘和网络文件系统。第六步完成依赖和发布制品检查检查Python 依赖Rust crate构建脚本wheel 内容测试和攻击样例是否被打包动态库依赖模型文件缓存权限CI 发布凭据。十六、最终判断基于提交6eb4dc9a28ebce297606e0f4836bbf28839cacef的静态源码证据SafeTensors 呈现出以下工程特征项目规模较小核心职责集中Rust 负责底层格式和内存相关能力Python 绑定负责主流机器学习框架集成文件 I/O、切片、数据指针和设备内存是关键阅读方向多线程、pread、DLPack、Metal 和多框架比较均有测试或源码线索存在 fuzz 构建配置说明项目具备进一步进行解析器健壮性验证的入口当前静态证据不足以直接证明安全性、性能或跨平台兼容性。最终建议是SafeTensors 适合被视为大模型权重文件安全加载的工程基础组件并可作为模型供应链治理的一部分。但在正式生产使用前必须完成损坏文件测试、恶意输入测试、模糊测试、跨平台构建、多线程验证、依赖扫描和发布制品审阅。参考信息项目SafeTensors仓库https://github.com/huggingface/safetensors评估提交6eb4dc9a28ebce297606e0f4836bbf28839cacef评估方式可复现源码快照的只读静态工程审阅受支持源文件52一级模块根3构建与依赖文件线索4测试文件线索12抽样非测试源码12抽样解析模式lexical_structure、python_astAST 侧车证据0 条推荐标签SafeTensorsHugging Face大模型模型安全模型权重RustPython深度学习文件格式源码分析供应链安全代码审计

相关新闻

园区管理系统推荐:从瓦片经济到产业运营的范式跃迁

园区管理系统推荐:从瓦片经济到产业运营的范式跃迁

核心摘要产业园区竞争已从比地段、比租金转向比服务和比产业生态。2026年6月,明源云正式发布园区招运服一体化平台,以数智招商中心、空间运营中心、产业服务中心三大模块支撑园区从空间租赁向运营服务升级。本文基于多家城投国企实践案例,为园…

2026/8/22 18:08:10 阅读更多 →
2026 AI五大热点实战:我用MonkeyCode一次跑通了推理、多模态、RAG、MCP与人机协作

2026 AI五大热点实战:我用MonkeyCode一次跑通了推理、多模态、RAG、MCP与人机协作

2026 年的 AI 行业,已经不再是"会不会用大模型"的问题,而是"怎么把大模型真正用起来、用出生产力"的问题。推理模型、多模态、RAG、MCP、上下文工程……一个又一个热点轮番登场,朋友圈里人人都在讲,可真到自己…

2026/8/22 18:08:10 阅读更多 →
MeteoInfo气象GIS与科学计算环境:5步跑通地图可视化与Jython分析

MeteoInfo气象GIS与科学计算环境:5步跑通地图可视化与Jython分析

MeteoInfo气象GIS与科学计算环境:5步跑通地图可视化与Jython分析 【免费下载链接】MeteoInfo MeteoInfo: GIS, scientific computation and visualization environment. 项目地址: https://gitcode.com/gh_mirrors/me/MeteoInfo 气象数据散落在 NetCDF、GRIB…

2026/8/22 18:08:10 阅读更多 →

最新新闻

免费批量下载B站视频的完整指南:downkyi搞定8K、HDR与去水印

免费批量下载B站视频的完整指南:downkyi搞定8K、HDR与去水印

免费批量下载B站视频的完整指南:downkyi搞定8K、HDR与去水印 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印等…

2026/8/22 20:01:56 阅读更多 →
2026招聘平台效果实测与选择策略

2026招聘平台效果实测与选择策略

1. 招聘平台现状与核心痛点解析2026年的招聘市场已经形成了明显的垂直细分格局,不同行业、不同职级、不同求职场景下的平台选择差异显著。作为从业12年的人力资源顾问,我经手过237家企业招聘案例,实测发现:平台效果与行业匹配度的…

2026/8/22 20:01:56 阅读更多 →
智能简历筛选系统:原理、技术与应用实践

智能简历筛选系统:原理、技术与应用实践

1. 简历机筛流程的核心价值解析 在招聘旺季,HR部门每天需要处理数百份甚至上千份简历的场景已经成为常态。以赛力斯这样的头部企业为例,单次校招季收到的简历数量往往突破五位数。传统人工筛选方式不仅效率低下,还存在主观性强、标准不统一等…

2026/8/22 20:01:56 阅读更多 →
数学建模竞赛实战:从全球变暖数据到量化分析模型

数学建模竞赛实战:从全球变暖数据到量化分析模型

1. 从“全球变暖?”这个问号说起:一次竞赛题的深度拆解看到“全球变暖?”这个标题,后面跟着一个问号,很多人的第一反应可能是:这不是一个早已有定论的科学问题吗?怎么还成了研究生数学建模竞赛的…

2026/8/22 20:01:56 阅读更多 →
AI求职助手Career-Ops:简历优化与面试模拟全解析

AI求职助手Career-Ops:简历优化与面试模拟全解析

1. 项目概述Career-Ops是一个专为求职场景设计的智能辅助系统。它通过AI技术模拟人力资源专家的思维模式和工作流程,为求职者提供从简历优化到面试准备的全流程支持。不同于通用型求职工具,这个系统最大的特点是能够深度理解不同行业、岗位的差异化需求&…

2026/8/22 20:01:56 阅读更多 →
Python+Neo4j零基础构建知识图谱:从文本到关系网络的实战指南

Python+Neo4j零基础构建知识图谱:从文本到关系网络的实战指南

1. 先搞清楚知识图谱到底能帮你解决什么问题如果你经常听到“知识图谱”、“RAG”、“AI Agent”这些词,但感觉它们离实际开发很远,那这篇文章就是为你准备的。知识图谱不是只能用在搜索引擎或者大厂推荐系统里,它最直接的价值是把一堆零散、…

2026/8/22 20:00:56 阅读更多 →

日新闻

沉金PCB工艺实战指南:从设计到SMT焊接的可靠性保障

沉金PCB工艺实战指南:从设计到SMT焊接的可靠性保障

在电子硬件开发领域,PCB(印制电路板)的沉金工艺是提升产品可靠性和焊接质量的关键环节。对于需要高密度互连、长期稳定运行或高频信号传输的板卡,如“黍姐仿通行证”这类可能涉及身份识别、数据交互的硬件项目,选择正确…

2026/8/22 0:00:11 阅读更多 →
电气考研电路八月强化四步法:从知识体系到真题实战的闭环攻略

电气考研电路八月强化四步法:从知识体系到真题实战的闭环攻略

这次我们来看一个针对电气考研电路科目的学习规划项目。它不是软件工具,而是一套聚焦于8月份关键节点的备考策略。对于电气工程考研的同学来说,电路分析是专业课的重中之重,也是拉开分差的关键。进入8月,复习进入强化阶段&#xf…

2026/8/22 0:00:11 阅读更多 →
消除AI代码的“AI味”:Claude Code设计优化技能配置与实战指南

消除AI代码的“AI味”:Claude Code设计优化技能配置与实战指南

大家好,我是专注于前端开发与AI工具实践的技术博主。在日常使用 Claude Code 等AI编程助手时,你是否也遇到过这样的困扰:生成的代码功能上没问题,但代码风格、组件设计、交互逻辑总透着一股“AI味”——布局单调、样式简陋、交互生…

2026/8/22 0:00:11 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/21 3:21:33 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/22 8:09:09 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/21 6:07:56 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/22 18:08:39 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/22 7:31:03 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/22 3:22:48 阅读更多 →