打个比方,如果说之前的 LongCat-Flash 是在做填空题,那现在的 LongCat-Flash-Thinking-2601 就是在做复杂的应用题。
翻翻龙猫家族的路线图,逻辑其实很清晰:
这次发布的 Thinking-2601,是一个基于混合专家(MoE)架构的 5600 亿参数高性能模型。它是专门冲着开发者构建 Agent 时最头疼的两个痛点去的。
搞过 Agent 开发的兄弟都懂,真实世界的 API 有多“脏”。网络超时、参数缺失、非标准的 JSON 返回...这些环境噪声,往往分分钟教通用模型做人。
LongCat-Flash-Thinking-2601 在这方面做了个很有极客精神的尝试:它就是在“噪音”堆里长大的。
以前为了让 Agent 稳定,你可能得写 80% 的代码来做异常处理。现在,这部分容错能力可以交给 LongCat-Flash-Thinking。它就像个经验丰富的老程序员,看到报错不会慌,而是会尝试通过逻辑推断去修补,试着把路走通。
在处理复杂逻辑时,比如分析几万行的代码库,或制定那种牵一发而动全身的旅行计划。普通模型的思维往往是单线程的—— 一旦中间某一步走窄了或者钻了牛角尖,后面的推导就会像多米诺骨牌一样,全盘皆输。
为了治这个一步错、步步错的毛病,LongCat-Flash-Thinking 搞了个 Heavy Thinking Mode(深度推理模式),这不仅仅是算力的堆砌,它更像是咱们开会时的 多人头脑风暴:
实际上手的感觉就是:刚敲完回车,屏幕上“唰”地一下弹出来 8 个 Thinker 线程。说实话,这反应速度真给我整不会了——毕竟早就习惯了深度思考的速度,LongCat-Flash-Thinking 这种秒回的并发思考,确实有点东西。
你现在是一个智能 Agent。你的任务是帮助用户预订机票。 请注意:你不能直接生成最终结果,必须模拟调用 API 的过程。 你需要严格遵守 ReAct (Reasoning + Acting) 的格式进行回复。 # 虚拟工具 1. `search_flight(origin, destination, date)` : 查询航班。 2. `get_flight_details(flight_id)` : 获取价格和详情。 3. `book_ticket(flight_id, passenger_name)` : 下单。 # 要求 每次回复请只输出一步思考和一步行动,格式如下: Thinking: [你的思考] Action: [调用的工具函数] 然后等待我(用户)扮演“服务器”给你返回 Observation(观测结果)。 # 任务 用户指令:“帮我预订 2026.1.28 从北京去上海的早班机,价格在 1000 元以内。”
这是又一篇补档文章,Chats已经发布了1.10,但2025年11月5日发布的1.8版本对我个人来说意义非凡,因为它彻底改变了项目对“模型提供商”的支持方式,从“写死在代码里”变成了“完全配置化”,为后续的可维护性和扩展性打下了坚实基础。
如果你还不了解 Sdcb Chats:简单说,这是一个支持多家主流模型服务商的 AI 网关。它不只能让你在一个统一界面里聚合管理所有模型,同时也兼容标准 API 协议,支持 Docker 一键部署。
除此之外,代码中还有大量根据模型名称写死的逻辑,这导致越来越难以维护。我和项目的合作维护者讨论过许多次,有许多不同的意见,有的说可以继续沿用这种写死的方式,有的说应该做成配置化的方式,但我觉得可持续的维护能力才是我对 chats 项目最重要的承诺,所以我决定在 1.8 版本里彻底重构模型提供商的支持方式,做成完全配置化的方式,这样未来无论是新增模型提供商,还是调整已有模型的支持逻辑,都可以通过配置来完成,而不需要动代码。这个改动虽然在短期内增加了不少工作量,但我相信从长远来看,这会大大提升项目的可维护性和扩展性。
如果说 1.8.0 是地基,那么 1.8.1 更像是把常用路径都重新打磨了一遍:权限、推理内容展示、文件预览、聊天列表性能……这些都是你每天用 Chats 时能立刻感知到的变化。
1.8.1 新增了
/admin/user-models(按用户维度管理),同时在模型管理页也增加了“按模型维度管理用户”的入口。更关键的是它的交互设计:
URL 作为状态唯一数据源,筛选/搜索/展开状态都能分享、刷新不丢。
1.8.1 还处理了一个很“现实”的问题:OpenAI 客户端升级到 2.6.0 后,推理内容的解析/解码出现兼容性问题,导致部分推理段无法正确读取。这个点不显眼,但它直接影响你对推理模型的信任感,所以也被纳入 1.8.1 里修掉了。
和 1.7 一样:Sdcb Chats 的数据库变更 不支持自动数据迁移。升级到 1.8 时请务必先备份数据库,并手动执行迁移脚本:
src/scripts/db-migration/1.8/1.8.0.sqlsrc/scripts/db-migration/1.8/1.8.1.sql(清理 Azure AI Foundry 的 Host 参数)如果你用的是 SQLite/Postgres……老规矩:把脚本丢给 AI 先改,再边跑边修;或者能接受删库的话,让 Chats 启动时自动建新表结构也行。
DeploySharp 为 YOLOv26 提供了三层架构设计:
在核心库
DeploySharp 中定义了统一的接口:
// YOLOv26 检测接口// IYolov26DetModel 继承自 IYolov10DetModel// 这种设计使得 YOLOv26 可以复用 YOLOv10 的成熟实现public abstract class IYolov26DetModel : IYolov10DetModel{ /// <summary>
/// 构造函数,接收模型配置
/// </summary>
/// <param name="config">YOLOv26 检测模型配置对象</param>
public IYolov26DetModel(Yolov26DetConfig config) : base(config)
{ // 使用日志系统记录模型初始化信息
MyLogger.Log.Info($"Initializing {this.GetType().Name}, Config:\n{config}");
}
}
每种模型类型都有对应的配置类,提供灵活的参数设置:
// YOLOv26 检测配置类// 继承自 Yolov10DetConfig,复用 YOLOv10 的成熟配置public class Yolov26DetConfig : Yolov10DetConfig{ /// <summary>
/// 默认构造函数
/// </summary>
public Yolov26DetConfig() { } /// <summary>
/// 带模型路径的构造函数
/// 自动设置合理的默认参数
/// </summary>
/// <param name="modelPath">模型文件路径</param>
public Yolov26DetConfig(string modelPath)
分别提供 ImageSharp 和 OpenCvSharp 两种实现,开发者可以根据需求选择。
YoloDetConfig (基类) ├── Yolov8DetConfig ├── Yolov10DetConfig └── Yolov26DetConfig (继承自 Yolov10DetConfig) YoloModel (基类) ├── Yolov8DetModel
using DeploySharp.Data; // 引入数据处理相关 using DeploySharp.Engine; // 引入推理引擎核心 using DeploySharp; // 引入 DeploySharp 主库 using SixLabors.ImageSharp; // ImageSharp 图像处理库 using SixLabors.ImageSharp.PixelFormats; // ImageSharp 像素格式 namespace DeploySharp.ImageSharp.Demo { m.hhnmsj.com /// <summary> /// YOLO26目标检测演示类 /// 该类展示了如何加载 TensorRT 引擎文件,对图像进行推理并可视化结果。 /// </summary> public class YOLOv26DetDemo { public static void Run() { // ========================================== // 1. 路径配置 // ========================================== // 模型下载提示:模型和测试图片可以前往QQ群(945057948)下载 // 设置 .engine 文件路径。 // 注意:TensorRT 的 .engine 文件是硬件相关的,即在 RTX 3090 上生成的 engine 通常不能在 RTX 4090 上运行。 string modelPath = @"D:\Program Files\TensorRT-10.13.0.35-cu11\bin\yolo26s.engine" ; // 设置待推理的图片路径 string imagePath = @"E:\Data\image\bus.jpg" ; // ========================================== // 2. 模型配置初始化 // ========================================== // 创建 YOLO26 的配置对象,传入模型路径 Yolov26DetConfig config = new Yolov26DetConfig(modelPath); // 设置最大批处理大小。 // 即使只推理一张图片,设置适当的 BatchSize 有时也能利用 GPU 并行能力。 // 此处设为 2 表示引擎内部最大可以一次处理 2 张图,但要首先保证模型支持。 config.MaxBatchSize = 2 ; // 显式指定推理后端为 TensorRT。 // DeploySharp 支持多种后端(如 ONNX Runtime, OpenVINO 等),这里强制使用 TensorRT 以获得最佳性能。 config.SetTargetInferenceBackend(InferenceBackend.TensorRT); // ========================================== // 3. 类别字典定义 // ========================================== // COCO 数据集的 80 个类别名称列表 // YOLO 模型通常输出的是类别的索引(0-79),我们需要将其映射为人类可读的字符串。 List< string > d = new List< string > { "person" , "bicycle" , "car" , "motorcycle" , "airplane" , "bus" , "train" , "truck" , "boat" , "traffic light" , "fire hydrant" , "stop sign" , "parking meter" , "bench" , "bird" , "cat" , "dog" , "horse" , "sheep" , "cow" , "elephant" , "bear" , "zebra" , "giraffe" , "backpack" , wap.hhnmsj.com "umbrella" , "handbag" , "tie" , "suitcase" , "frisbee" , "skis" ,ggsxjd.com "snowboard" , "sports ball" , "kite" , "baseball bat" , "baseball glove" , "skateboard" , "surfboard" , "tennis racket" , "bottle" , "wine glass" , "cup" , "fork" , "knife" , hhnmsj.com "spoon" , "bowl" , "banana" , "apple" , wap.ggsxjd.com "sandwich" , "orange" , "broccoli" , "carrot" , "hot dog" , "pizza" , "donut" ,nbemc.cn "cake" , "chair" , "couch" , "potted plant" , "bed" , "dining table" , "toilet" , "tv" , "laptop" , "mouse" , "remote" , "keyboard" , "cell phone" , "microwave" , "oven" , "toaster" , "sink" , "refrigerator" , "book" , "clock" , "vase" , "scissors" , "teddy bear" , "hair drier" , "toothbrush" }; // 将列表转换为字典,Key 为索引,Value 为类别名称 Dictionary< int , string > CategoryDict = new Dictionary< int , string >(); for ( int i = 0 ; i < d.Count; i++) { CategoryDict[i] = d[i]; } // 将类别字典赋值给配置对象,用于后续结果解析 config.CategoryDict = CategoryDict; // ========================================== // 4. 模型实例化 // ========================================== // 根据配置初始化检测器模型。 // 此步骤会加载 engine 文件到内存,并初始化 GPU 上下文。 Yolov26DetModel model = new Yolov26DetModel(config); // 使用 SixLabors.ImageSharp 加载图片。 // Image.Load 会自动根据文件扩展名解码图片。 var img = Image.Load(imagePath); // ========================================== // 5. 模型推理与性能测试 // ========================================== // 执行第一次推理。 // 注意:TensorRT 的推理通常包含 Kernel 初始化等开销,速度会比后续推理慢。 DetResult[] result m.qdjwdL.cn= model.Predict(img); // 执行第二次推理。 // 这次推理的时间更能代表模型在实际场景中的平均推理速度。 result = model.Predict(img); // 执行第三次推理(可选),用于进一步取平均值或确保稳定性。 result = model.Predict(img); // 打印推理性能分析记录。 // 这通常会输出预处理、推理、后端处理各阶段的耗时(毫秒级)。 model.ModelInferenceProfiler.PrintAllRecords(); // 初始化一个列表,虽然本例未直接使用,但在处理多图结果时可能会用到。 List<Image<Rgb24>> resultsMat = new List<Image<Rgb24>>(); // ========================================== // 6. 结果可视化与保存 // ========================================== // 将推理结果绘制在原图上。 // Visualize.DrawDetResult 会根据 DetResult 中的坐标和置信度画框和文字。 // 需要将 img 强制转换为 Image<Rgb24>,因为 DrawDetResult 通常需要特定的像素格式。 var resultImg =wap.qdjwdL.cn Visualize.DrawDetResult(result, (Image<Rgb24>)img, new VisualizeOptions( 1.0f )); // 保存带有检测框的图片到当前目录下。 using DeploySharp.Data; // 引入数据处理相关的类 using DeploySharp.Engine; // 引入推理引擎核心接口和枚举 using DeploySharp; // 引入 DeploySharp 主库和可视化工具 namespace DeploySharp.OpenCvSharp.Demo { /// <summary> /// YOLO26 目标检测演示 (基于 ONNX Runtime + OpenCvSharp) /// 本示例展示了如何加载 ONNX 模型,并配置使用 DirectML 在 GPU 上进行推理。 /// </summary> public class Yolov26DetDemo { public static void Run() { // ========================================== // 1. 路径配置 // ========================================== // 模型下载提示:模型和测试图片可以前往QQ群(945057948)下载 // 注意:此处加载的是标准的 .onnx 模型文件,而不是 TensorRT 的 .engine 文件。 // ONNX 模型具有良好的跨平台特性。 string modelPath @"E:\Model\yolov28\yolo26s.onnx" ; // 设置待检测的图片路径 string imagePath = @"E:\Data\image\bus.jpg" ; // ========================================== // 2. 模型配置与推理后端设置 // ========================================== // 创建 YOLO26 的配置对象,传入模型路径 Yolov26DetConfig config = new Yolov26DetConfig(modelPath); // [关键步骤] 设置推理后端为 ONNX Runtime。 // 这意味着模型将通过qdjwdL.cn ONNX Runtime 进行加载和执行,而不是 TensorRT。 config.SetTargetInferenceBackend(InferenceBackend.OnnxRuntime); // 设置目标设备类型为 GPU 0。 // 这是一个逻辑设定,具体执行取决于 ONNX Runtime 的提供程序。 config.SetTargetDeviceType(DeviceType.GPU0); // [关键步骤] 设置 ONNX Runtime 的具体执行提供程序为 DML (DirectML)。 // DirectML 是 Windows 上的高性能硬件加速接口,支持 AMD、NVIDIA 和 Intel 显卡。 // 如果不加这一行,ONNX Runtime 可能默认使用 CPU 进行推理,速度较慢。 config.SetTargetOnnxRuntimeDeviceType(OnnxRuntimeDeviceType.DML); // ========================================== // 3. 类别字典定义 (COCO 80类) // ========================================== // 定义 COCO 数据集的 80 个类别名称 // 这些名称将用于在结果可视化时标注检测到的物体 List< string > d = new List< string > { "person" , "bicycle" , "car" , "motorcycle" , "airplane" , "bus" , "train" , "truck" , "boat" ,wap.qczypx.cn "traffic light" , "fire hydrant" , "stop sign" , "parking meter" , "bench" , "bird" , "cat" , "dog" , "horse" , "sheep" , "cow" , "elephant" , "bear" , "zebra" , "giraffe" , "backpack" , "umbrella" , "handbag" , "tie" , "suitcase" , "frisbee" , "skis" , "snowboard" , "sports ball" , "kite" , "baseball bat" , "baseball glove" , "skateboard" , "surfboard" , "tennis racket" , "bottle" , m.qczypx.cn "wine glass" , "cup" , "fork" , "knife" , "spoon" , "bowl" , "banana" , "apple" , "sandwich" , "orange" , "broccoli" , "carrot" , "hot dog" , "pizza" , "donut" , "cake" , "chair" , "couch" , "potted plant" , "bed" , "dining table" , "toilet" , "tv" , "laptop" , "mouse" , "remote" , "keyboard" , "cell phone" , "microwave" , "oven" , "toaster" , "sink" , "refrigerator" , "book" , "clock" , "vase" , "scissors" , "teddy bear" , "hair drier" , "toothbrush" }; // 构建<索引, 类别名>字典 Dictionary< int , string > CategoryDict = new Dictionary< int , string >(); for ( int i = 0 ; i < d.Count; i++) { CategoryDict[i] = d[i]; } // 将类别字典赋值给配置对象 config.CategoryDict = CategoryDict; // ========================================== // 4. 模型初始化 // ========================================== // 实例化模型,传入配置。 // 此时 DeploySharp 会根据配置加载 ONNX 模型,并初始化 DirectML 会话。 Yolov26DetModel model = new Yolov26DetModel(config); // 使用 OpenCvSharp 读取图片到 Mat 对象中 // Mat 是 OpenCV 中用于存储图像数据的核心矩阵结构 Mat img qczypx.cn=m.sanjiaomao.net Cv2.ImRead(imagePath); // ========================================== // 5. 模型推理 (预热与测试) // ========================================== // 执行多次推理。 // 第一次推理通常包含模型加载、内存分配等初始化开销,耗时较长。 Result[] result = model.Predict(img); // 后续推理用于测试稳定的推理速度。 result = model.Predict(img); result = model.Predict(img); result =wap.sanjiaomao.net model.Predict(img); // 打印性能分析记录。 // 这将输出推理过程中各阶段(如预处理、推理执行、后处理)的耗时统计。 model.ModelInferenceProfiler.PrintAllRecords(); // 初始化列表,用于存储处理后的图像(本例主要用于演示) List<Mat> resultsMat = new List<Mat>(); // ========================================== // 6. 结果可视化与显示 // ========================================== // 调用可视化工具,将检测框(矩形框)和类别标签绘制在原图上。 // VisualizeOptions(1.0f) 可能指定了缩放比例或字体大小等参数。 var resultImg = Visualize.DrawDetResult(result, img, new VisualizeOptions( 1.0f )); // 将绘制好的图像加入列表 resultsMat.Add(resultImg); // 使用 OpenCV 的窗口显示结果图像。 // "image"www.sanjiaomao.net 是窗口的标题。 Cv2.ImShow( "image" , resultImg); // 等待按键输入。 // 参数 0 表示无限期等待,直到用户按下键盘任意键。 // 这是为了防止控制台程序执行完毕后窗口立即闪退。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70048957/viewspace-3109155/ ,如需转载,请注明出处,否则将追究法律责任。