Hugging Face| Candle 源码分析:702 个文件背后的 Rust 深度学习框架架构

Hugging Face| Candle 源码分析:702 个文件背后的 Rust 深度学习框架架构

本文基于 Hugging Face 开源项目 candle 的固定源码快照进行静态分析。

项目地址:huggingface/candle

快照提交:2a13b0f3ff62f7e67013597f2996f764c5735e21

本文只讨论当前源码快照中可以复核的静态证据,未执行项目构建、测试、性能压测、依赖扫描或模型推理。文中"存在""观察到"等表述,不等同于"运行成功"或"生产可用"。 作者:Valhalla Matrix治理实验室

一、先说结论

Candle 是 Hugging Face 开源的轻量级机器学习框架,核心实现以 Rust 为主,同时包含 Python、C/C++、JavaScript 等辅助代码。

本次静态扫描得到的核心数据如下:

指标 静态观测值
受支持源文件 702
Rust 文件 618
Python 文件 36
C/C++ 文件 33
JavaScript 文件 14
C++ 文件 1
一级模块 16
构建与依赖配置文件 29
测试文件线索 42
抽样非测试源码 12
抽样声明 70
抽样分支 55
抽样循环 49
抽样异常路径 1
抽样异步线索 40

从目录和源码分布看,Candle 具备比较清晰的多模块结构:

text 复制代码
底层张量与计算核心
  -> 神经网络模块
  -> 数据集和模型转换
  -> Transformer 模型实现
  -> CUDA、Metal 和 Flash Attention 加速
  -> ONNX、WASM 和 Python 绑定
  -> 示例、文档与测试

因此,Candle 更准确的定位不是"一个 Rust 写的模型示例",而是:

一个以 Rust 为核心、面向深度学习推理与计算的多模块机器学习工程,重点覆盖张量运算、神经网络、模型加载、硬件加速和多端运行。


二、Candle 解决什么问题

传统深度学习应用通常依赖 Python 生态完成模型推理,但在以下场景中,纯 Python 方案可能面临额外成本:

  • 服务启动时间较长
  • 运行时依赖较多
  • 部署环境较重
  • 内存管理和并发控制复杂
  • 嵌入式或 WebAssembly 场景支持有限
  • 希望将模型能力集成到 Rust 应用中

Candle 的核心思路,是将深度学习计算能力放到 Rust 生态中,同时提供对多种模型和硬件后端的支持。

从仓库模块可以看到,项目至少覆盖以下方向:

  • candle-core:张量、布局和底层计算能力
  • candle-nn:神经网络相关抽象
  • candle-transformers:Transformer 模型实现
  • candle-datasets:数据集处理
  • candle-onnx:ONNX 相关能力
  • candle-flash-attn:Flash Attention
  • candle-metal-kernels:Apple Metal 内核
  • candle-kernels:计算内核
  • candle-pyo3:Python 绑定
  • candle-wasm-examples:WebAssembly 示例
  • candle-wasm-tests:WASM 测试
  • candle-examples:模型和功能示例

这些模块构成了一个相对完整的机器学习运行时生态。


三、从 16 个模块理解整体架构

报告识别到以下一级模块:

text 复制代码
candle-book
candle-core
candle-datasets
candle-examples
candle-flash-attn
candle-flash-attn-v3
candle-kernels
candle-metal-kernels
candle-nn
candle-onnx
candle-pyo3
candle-transformers
candle-ug
candle-wasm-examples
candle-wasm-tests
tensor-tools

可以将它们分成五个层次。

1. 计算基础层:candle-core

candle-core 是最值得优先阅读的模块之一。

报告定位到:

text 复制代码
candle-core/src/indexer.rs

其中出现了:

text 复制代码
index
Select
Narrow
IndexSelect

并且该文件包含较多循环结构。

索引操作是张量框架中的基础能力,涉及:

  • 一维和多维张量索引
  • 切片
  • gather
  • select
  • narrow
  • 索引后的布局变化
  • 越界处理
  • 设备之间的数据传输

在机器学习框架中,索引逻辑虽然看起来基础,但经常影响:

  • 张量形状是否正确
  • 内存是否连续
  • 梯度是否能够传播
  • CPU、CUDA 和 Metal 后端行为是否一致
  • 模型推理结果是否稳定

因此,阅读 Candle 时建议从 candle-core 建立基本概念,而不是一开始直接进入某个具体模型。

2. 神经网络层:candle-nn

candle-nn 通常位于底层张量和上层模型之间,承担:

  • 线性层
  • 卷积层
  • 归一化
  • 激活函数
  • 参数管理
  • 模型层组合
  • 训练或推理相关抽象

虽然本次摘要没有列出 candle-nn 的具体函数样本,但从模块拓扑可以确认它是独立的一级模块。

建议结合 candle-core 一起阅读:

text 复制代码
张量
  -> 参数
  -> 网络层
  -> 模型结构
  -> 推理入口

这样更容易理解模型代码如何从基础运算组合而来。

3. 模型层:candle-transformers

candle-transformers 是面向具体模型实现的上层模块。

报告定位到:

text 复制代码
candle-transformers/src/models/wuerstchen/attention_processor.rs

其中出现:

text 复制代码
flash_attn
new
batch_to_head_dim

这组线索体现出两个重要方向:

  1. Transformer 模型的注意力计算。
  2. 注意力计算与专用加速内核之间的衔接。

在 Transformer 中,张量通常需要在不同布局之间转换,例如:

text 复制代码
batch
  -> sequence
  -> head
  -> hidden dimension

batch_to_head_dim 这样的函数名说明源码中存在张量形状和维度重排逻辑。

这类代码的关键验证点包括:

  • 输入形状是否满足预期。
  • batch、head 和 sequence 维度是否正确。
  • 不同序列长度下是否稳定。
  • CPU 与硬件加速后端结果是否一致。
  • Flash Attention 不可用时是否存在降级路径。
  • 数值精度变化是否在可接受范围内。

静态函数名只能帮助定位源码,不能证明上述行为已经被验证。

4. 硬件加速层:CUDA、Metal 和 Flash Attention

Candle 的一个明显特点,是仓库同时包含多个硬件或专用计算模块:

text 复制代码
candle-flash-attn
candle-flash-attn-v3
candle-kernels
candle-metal-kernels

报告还定位到:

text 复制代码
candle-metal-kernels/src/kernels/indexing.rs

其中包含:

text 复制代码
call_index_select
call_gather

这说明 Metal 后端可能针对索引和 gather 等操作提供专用内核。

硬件加速的价值在于:

  • 减少通用实现的开销
  • 提升矩阵或张量操作吞吐
  • 利用 GPU 并行能力
  • 适配 Apple Silicon 等设备
  • 为特定模型结构提供优化路径

但加速后端也会带来额外复杂度:

  • 不同设备支持的算子集合可能不同。
  • CPU 与 GPU 的数值结果可能存在差异。
  • 内核编译和运行环境更复杂。
  • 驱动、工具链和操作系统版本会影响结果。
  • 某些模型可能在一个后端可运行,在另一个后端失败。

因此,不能仅根据仓库中存在 MetalFlash Attentionkernels 目录,就断言项目已经实现跨硬件一致性。

5. 多端适配层:Python、WASM 和 ONNX

Candle 还包含:

text 复制代码
candle-pyo3
candle-wasm-examples
candle-wasm-tests
candle-onnx

这说明项目不仅面向 Rust 原生应用,也考虑了:

  • Python 调用
  • 浏览器或 WebAssembly 场景
  • ONNX 模型兼容
  • 跨运行时集成

报告定位到:

text 复制代码
candle-wasm-examples/llama2-c/src/app.rs
candle-wasm-examples/llama2-c/src/bin/app.rs
candle-wasm-examples/whisper/src/app.rs

其中出现:

text 复制代码
fetch_url
UpdateStatus
SetModel
WorkerIn
Run
SetDecoder

这些命名体现出 WASM 示例可能包含:

  • 模型资源获取
  • 状态更新
  • 模型选择
  • 解码器设置
  • Worker 通信
  • 浏览器侧运行控制

浏览器端推理与本地推理的主要差异在于:

  • 模型文件需要通过网络获取。
  • 内存受浏览器环境限制。
  • 线程和 Worker 机制不同。
  • WebAssembly 后端支持的算子可能不完整。
  • 模型加载时间会直接影响用户体验。

因此,WASM 代码应单独进行运行验证,不能仅凭 Rust 源码通过编译就推断浏览器端体验良好。


四、Candle 的工程化结构有哪些特点

1. Cargo workspace 组织明显

报告共识别到 29 个构建和依赖配置文件,包括:

text 复制代码
Cargo.toml
candle-core/Cargo.toml
candle-datasets/Cargo.toml
candle-examples/Cargo.toml
candle-flash-attn/Cargo.toml
candle-flash-attn-v3/Cargo.toml
candle-kernels/Cargo.toml
candle-metal-kernels/Cargo.toml
candle-nn/Cargo.toml
candle-onnx/Cargo.toml

这说明仓库采用多个 Rust crate 组织能力边界。

多 crate 结构的优点包括:

  • 模块职责更清晰。
  • 依赖关系可以显式表达。
  • 核心库和示例可以分离。
  • 特定硬件功能可以按需启用。
  • 测试能够针对单个 crate 执行。
  • 下游项目可以选择性依赖。

但多 crate 也会增加维护成本:

  • Feature 组合更多。
  • 编译时间可能增加。
  • 版本和依赖同步更复杂。
  • 不同平台的条件编译路径更多。
  • 某个底层接口变更可能影响多个上层 crate。

2. 核心库、示例和实验代码分开

仓库中同时存在:

text 复制代码
candle-core
candle-nn
candle-transformers
candle-examples
candle-book

这是一种比较常见的开源框架组织方式:

text 复制代码
核心 API
  -> 模型与工具
  -> 示例代码
  -> 文档和教程

这种分层有利于开发者从简单示例开始,再进入核心实现。

不过,在进行工程评估时,需要明确区分:

  • 库代码
  • 示例代码
  • 教程代码
  • 基准代码
  • 测试代码
  • 实验性实现

示例能够展示使用方法,但通常不代表生产级错误处理、资源管理和兼容性设计。

3. 测试覆盖了底层计算关键区域

报告定位到 42 个测试文件线索,包括:

text 复制代码
candle-core/tests/bilinear_tests.rs
candle-core/tests/conv_tests.rs
candle-core/tests/custom_op_tests.rs
candle-core/tests/display_tests.rs
candle-core/tests/gguf_tests.rs
candle-core/tests/grad_tests.rs
candle-core/tests/indexing_tests.rs
candle-core/tests/layout_tests.rs
candle-core/tests/matmul_tests.rs
candle-core/tests/metal_concurrent_tests.rs
candle-core/tests/pool_tests.rs

从文件名称看,测试主题覆盖了多个基础能力:

  • 双线性运算
  • 卷积
  • 自定义算子
  • 张量显示
  • GGUF 文件
  • 梯度
  • 索引
  • 内存布局
  • 矩阵乘法
  • Metal 并发
  • 池化

这是一组有价值的静态工程信号,因为底层计算库的可靠性很大程度上取决于:

  • 形状推导
  • 数值结果
  • 梯度传播
  • 数据布局
  • 后端差异
  • 并发行为

但必须保留边界:

测试文件存在,只能证明仓库提供了测试入口,不能证明测试在当前提交、当前平台和当前依赖环境中全部通过。


五、从抽样代码看,重点风险在哪里

本次抽样分析了 12 个非测试源码文件,得到:

text 复制代码
声明:70
分支:55
循环:49
异常路径:1
异步线索:40

这些数据用于安排源码阅读顺序,不是复杂度或质量评分。

1. 文件和网络 I/O 是重要审阅方向

报告识别到 73 次文件或网络 I/O 相关符号线索,数量高于请求、持久化和并发等其他类别。

这与机器学习框架的实际特点相符。模型推理通常需要:

  • 读取模型文件
  • 加载配置文件
  • 下载权重
  • 读取 tokenizer
  • 处理 GGUF 或其他模型格式
  • 将数据映射到内存
  • 在 WASM 环境中获取远程资源

建议优先检查:

  • 模型路径是否经过校验。
  • 文件读取失败是否返回清晰错误。
  • 网络资源下载是否支持超时和失败重试。
  • 是否校验模型文件完整性。
  • 大模型加载是否存在不必要的数据复制。
  • WASM 端是否正确处理跨域和网络失败。

2. 异步线索需要结合设备和运行时分析

抽样中存在 40 次异步相关线索。对于推理框架而言,异步并发可能出现在:

  • 模型下载
  • WASM Worker
  • GPU 任务提交
  • 多设备执行
  • 并发测试
  • 数据预取

需要进一步确认:

  • 异步任务是否有明确的生命周期。
  • 任务失败是否能够向上传递。
  • 资源释放是否与任务完成绑定。
  • 取消操作是否真正生效。
  • 多线程或多 Worker 是否存在数据竞争。
  • GPU 任务是否会阻塞主线程。

特别是 candle-core/tests/metal_concurrent_tests.rs 这样的文件名,说明 Metal 并发行为值得独立验证,但不能仅凭文件名得出线程安全结论。

3. 模型加载和张量布局需要重点核对

Candle 的上层模型实现会频繁进行:

  • reshape
  • transpose
  • narrow
  • gather
  • index select
  • batch/head 维度转换

这类操作一旦出现错误,可能导致:

  • 运行时维度异常
  • 推理结果错误
  • 特定 batch 大小下失败
  • 某些模型可以运行、另一些模型失败
  • CPU 与 GPU 结果不一致

建议测试至少覆盖:

text 复制代码
batch = 1
batch > 1
短序列
长序列
空输入或边界输入
不同数据类型
不同后端设备

六、为什么当前 AST 解析结果仍然需要谨慎解读

报告显示:

json 复制代码
{
  "lexical_structure": 12
}

也就是说,本次抽样源码主要采用词法结构模式,而不是完整的 Rust AST 解析模式。

这意味着:

  • 函数和声明名称可以作为阅读线索。
  • 分支、循环和 I/O 词汇可以辅助定位。
  • 但跨文件调用关系未必完整。
  • trait、泛型、宏和 feature 条件的语义可能未被充分展开。
  • Rust 的生命周期、所有权和类型约束没有通过该统计得到验证。

对于 Rust 项目,尤其需要关注以下语言特性:

rust 复制代码
trait
impl
generic
macro_rules!
cfg!
#[cfg(...)]
Result<T, E>
Option<T>
Arc
Mutex
Send
Sync

如果分析工具没有完整理解这些结构,得到的"声明数量""异步线索"或"分支数量"只能用于导航。

因此,当前报告更适合作为:

text 复制代码
源码阅读地图

而不是:

text 复制代码
完整架构证明

七、Candle 的优势与工程代价

可以从静态证据中观察到的优势

Rust 核心实现

Rust 代码占据主要比例,有利于:

  • 提供较强的类型约束。
  • 降低部分内存安全风险。
  • 方便构建独立二进制或库。
  • 支持更细粒度的并发控制。
  • 适配 WASM 和系统级运行环境。
模块拆分较完整

16 个一级模块覆盖了:

  • 核心计算
  • 神经网络
  • Transformer
  • 数据集
  • ONNX
  • 加速内核
  • Python 绑定
  • WASM
  • 示例和文档

这说明项目的能力边界较丰富。

测试主题覆盖底层关键能力

测试线索覆盖索引、布局、矩阵乘法、梯度、卷积、GGUF 和 Metal 并发等主题,能够为进一步验证提供清晰入口。

多硬件和多端适配方向明确

从 CUDA、Metal、Flash Attention 到 WASM 和 Python 绑定,项目显然不仅服务于单一运行环境。

需要承担的工程代价

Feature 组合可能较复杂

不同设备、模型和平台可能对应不同的 Cargo feature。项目使用者需要明确:

  • 默认 feature 是什么。
  • CUDA 和 Metal 是否互斥或可共存。
  • 某些模型是否依赖额外 feature。
  • WASM 构建是否需要单独工具链。
  • Python 绑定是否需要额外系统依赖。
跨后端一致性需要大量测试

同一个张量操作在不同后端上可能存在:

  • 精度差异
  • 支持范围差异
  • 内存布局差异
  • 错误信息差异
  • 性能差异

因此,不能只验证 CPU 路径。

模型支持和框架能力不是同一件事

candle-transformers 中存在某个模型目录,只能说明仓库包含该模型实现线索。还需要确认:

  • 模型权重格式是否匹配。
  • tokenizer 是否可用。
  • 当前提交是否支持该模型版本。
  • 不同设备是否都能运行。
  • 长上下文和大 batch 是否稳定。

八、建议的源码阅读顺序

第一步:阅读根目录 Cargo.toml

先确认:

  • workspace 成员
  • 默认 feature
  • Rust edition
  • 统一依赖版本
  • 可选硬件后端
  • 发布和构建配置

这是理解整个项目依赖图的入口。

第二步:阅读 candle-core

建议重点关注:

text 复制代码
张量表示
设备抽象
布局管理
索引操作
矩阵运算
错误类型

优先参考:

text 复制代码
candle-core/src/indexer.rs
candle-core/tests/indexing_tests.rs
candle-core/tests/layout_tests.rs
candle-core/tests/matmul_tests.rs

通过源码和测试对照,可以更快理解 API 的预期行为。

第三步:阅读 candle-nn

重点查看:

  • 参数如何保存。
  • 网络层如何组合。
  • 权重如何加载。
  • 计算图是否显式管理。
  • 梯度和推理模式如何区分。

第四步:阅读 candle-transformers

建议选择一个模型作为完整样本,从模型入口追踪到:

text 复制代码
配置读取
  -> 权重加载
  -> tokenizer
  -> 张量构造
  -> 注意力模块
  -> 前向计算
  -> 解码或输出

第五步:阅读硬件后端

根据目标设备选择:

text 复制代码
candle-kernels
candle-metal-kernels
candle-flash-attn
candle-flash-attn-v3

重点检查:

  • feature 条件编译。
  • 后端能力差异。
  • fallback 路径。
  • 错误传播。
  • 数据类型和布局要求。

第六步:最后阅读 WASM、Python 和示例

这些模块更适合用于理解项目如何被外部使用:

text 复制代码
candle-pyo3
candle-wasm-examples
candle-examples
candle-book

九、如何复现固定提交

克隆并切换到指定快照:

bash 复制代码
git clone https://github.com/huggingface/candle.git
cd candle
git checkout 2a13b0f3ff62f7e67013597f2996f764c5735e21

查看 workspace 配置:

bash 复制代码
sed -n '1,260p' Cargo.toml

查看一级模块:

bash 复制代码
find . -maxdepth 1 -type d | sort

查看所有 Cargo 配置:

bash 复制代码
find . -name 'Cargo.toml' -print | sort

查看核心测试:

bash 复制代码
find candle-core/tests -type f -print | sort

查找索引、布局和设备相关代码:

bash 复制代码
rg -n 'index_select|gather|narrow|layout|Device|Tensor' \
  candle-core candle-kernels candle-metal-kernels

查找模型和注意力实现:

bash 复制代码
rg -n 'flash_attn|attention|batch_to_head_dim|transformer' \
  candle-transformers candle-flash-attn candle-flash-attn-v3

查看 WASM 网络和 Worker 线索:

bash 复制代码
rg -n 'fetch_url|Worker|UpdateStatus|SetModel|Run' \
  candle-wasm-examples candle-wasm-tests

这些命令用于复核报告中的目录、符号和文件线索,不等价于完整测试。


十、建议的最小验证方案

1. 验证基础编译

先在隔离环境确认:

bash 复制代码
rustc --version
cargo --version

然后根据官方文档和 workspace 配置选择最小 crate 进行编译,例如:

bash 复制代码
cargo check -p candle-core

实际命令应以该提交的项目说明和 Cargo 配置为准。

2. 执行核心测试

优先验证底层核心:

bash 复制代码
cargo test -p candle-core

重点关注:

  • 索引测试
  • 布局测试
  • 矩阵乘法测试
  • 梯度测试
  • 自定义算子测试
  • GGUF 测试

3. 验证不同后端

如果环境具备对应设备,应分别验证:

text 复制代码
CPU
CUDA
Metal
WASM

不要将 CPU 测试通过视为其他后端也已验证。

4. 验证模型示例

选择一个规模较小、依赖较少的示例,记录:

  • 模型格式
  • 权重来源
  • tokenizer 版本
  • 设备类型
  • 输入长度
  • 推理耗时
  • 输出结果摘要
  • 峰值内存

5. 验证构建可复现性

至少执行两次相同构建,比较:

  • 构建是否都成功。
  • 依赖解析是否一致。
  • 输出文件摘要是否一致。
  • 是否依赖网络实时内容。
  • 是否存在平台相关差异。

十一、当前报告能够支持的结论

已有静态证据支持

  • Candle 是一个以 Rust 为主的多语言机器学习工程。
  • 项目包含 16 个一级模块。
  • candle-corecandle-nncandle-transformers 构成核心阅读链路。
  • 仓库包含 CPU、Metal、Flash Attention、WASM 和 Python 等适配方向。
  • 存在 29 个构建与依赖配置文件。
  • 存在 42 个测试文件线索。
  • 索引、布局、矩阵运算、梯度、模型加载和硬件加速是重要阅读区域。
  • 文件与网络 I/O、异步线索和张量维度转换值得优先验证。

仍需实际验证

  • workspace 是否能够在当前 Rust 工具链下完整编译。
  • 各个 crate 的测试是否通过。
  • CPU、CUDA、Metal 和 WASM 后端是否保持一致行为。
  • 模型示例是否能够成功加载和推理。
  • Flash Attention 是否在目标设备上正常工作。
  • 大模型或长上下文场景下的内存和性能表现。
  • 构建和模型下载过程是否可复现。

当前不能直接推出

  • Candle 的性能排名。
  • 与 PyTorch、ONNX Runtime 或其他框架的性能差异。
  • 生产环境稳定性。
  • 所有模型和硬件的兼容性。
  • 依赖和供应链安全等级。
  • 适合某一具体业务的部署规模。

十二、总结

从固定源码快照看,Hugging Face Candle 已经形成了较完整的 Rust 机器学习工程结构:

text 复制代码
candle-core
  -> 张量、布局与底层计算

candle-nn
  -> 神经网络基础模块

candle-transformers
  -> Transformer 模型实现

candle-kernels / candle-metal-kernels
  -> 硬件计算内核

candle-flash-attn
  -> 注意力加速

candle-onnx / candle-pyo3
  -> 模型格式和外部语言集成

candle-wasm-examples
  -> 浏览器与 WebAssembly 场景

candle-core/tests 等
  -> 底层算子和运行行为验证

Candle 的主要工程价值,在于它尝试将深度学习计算、模型推理、硬件加速和多端运行统一到 Rust 生态中。它的主要工程挑战,则来自多 crate 组织、多后端适配、模型格式兼容、异步资源管理和跨平台一致性。

最终可以给出一个谨慎但明确的判断:

Candle 具备较完整的源码组织、构建配置和测试入口,适合作为 Rust 机器学习框架进行进一步技术验证。当前静态证据能够证明其工程范围和主要架构方向,但不能替代真实构建、模型推理、跨后端测试和目标环境性能评估。

在实际采用前,建议优先完成以下验证闭环:

text 复制代码
固定 Rust 工具链
  -> 编译 candle-core
  -> 执行核心测试
  -> 运行一个最小模型示例
  -> 验证目标硬件后端
  -> 比较输出和性能
  -> 检查构建与模型获取的可复现性

只有完成这条链路,才能把"静态工程证据较完整"进一步转化为针对具体业务场景的技术结论。


参考信息

  • 项目地址:Hugging Face Candle
  • 固定提交:2a13b0f3ff62f7e67013597f2996f764c5735e21
  • 主要模块:candle-corecandle-nncandle-transformerscandle-kernelscandle-metal-kernelscandle-onnxcandle-pyo3
  • 主要测试线索:candle-core/tests
  • 未执行:实际构建、测试运行、模型推理、性能压测、依赖扫描和安全审计

本文为基于固定源码快照的技术分析,不构成安全审计、性能承诺、生产准入或商业部署建议。

推荐标签: CandleHuggingFaceRust深度学习框架机器学习TransformerFlash AttentionWebAssembly源码分析AI推理

相关推荐
逛逛GitHub32 分钟前
用下这 3 个 GitHub 上的超精简 Skill,内容只有几句话,却很好用。
github
MicrosoftReactor1 小时前
GitHub Copilot App 入门指南:自动化处理 Dependabot 拉取请求分类
ai·自动化·github·copilot·pull request
逛逛GitHub1 小时前
一周没逛 GitHub 不要紧,这 TOP 10 的热门开源项目整理好了。
github
chunmiao30322 小时前
Kimi K3进美国三大云谈分成,开源大模型收费时代来了
开源
Trinitytec2 小时前
源码不出网,开源治理工具SCA应该如何部署?
网络安全·开源·源代码管理
亥时科技2 小时前
人回不去,机场坏了怎么办?
开源·无人机·ai巡检
m4Rk_2 小时前
【论文阅读】Agent 记忆机制(52):Cognitive Scaffold——面向 DeepResearch Agent 的结晶化记忆框架
论文阅读·人工智能·学习·开源·github
_xaboy3 小时前
开源表单设计器 FcDesigner 保存表单教程:toJson parseJson 回显
低代码·开源·vue·表单·fcdesigner
葟雪儿3 小时前
本地项目上传到GitHub(小白篇)
git·github