发布日期:2026-01-14(相对 main 以来 111 次提交)
1.10.0 是一次围绕 内置 Code Interpreter(Docker 沙箱) 的重大能力升级:新增 sdcb/code-interpreter 默认镜像与配套 CI,后端引入会话管理与安全资源限制,前端对工具调用展示、文件上传/预览、生成信息与管理页面做了系统性优化。同时,继续扩展多模型提供商在工具调用场景下的 交错思考(Interleaved Thinking)回传能力,并让 Chat Completions API 兼容 DeepSeek v3.2 风格的 reasoning_content。
- 🐳 内置工具集:新增一组基于 Docker 的内置工具,支持在会话内执行代码与文件操作(
create_docker_session/run_command/read_file/write_file/patch_file/download_chat_files/destroy_session)。 - 📦 默认镜像
sdcb/code-interpreter:作为开箱即用的 Code Interpreter 环境,在镜像中预置常用依赖与工具链(dotnet/python/node/gcc/sqlite3、LibreOffice/Pandoc/Poppler、FFmpeg、Playwright Chromium、常用字体、ImageMagick 等),并集成anthropics/skills(/app/skills与/app/skills.md)。 - 🔐 安全与资源限制:支持会话级资源限制(内存/CPU/进程数)、超时、闲置回收;并提供网络模式白名单控制(
DefaultNetworkMode/MaxAllowedNetworkMode)。 - 🧾 会话可追踪:引入
ChatDockerSession持久化记录(容器 ID / 镜像 / shell 前缀 / IP / 资源 / 到期时间等),并通过后台服务自动清理过期容器(ChatDockerSessionCleanupService)。 - 📁 云文件注入 + 一键下载:仅将“本轮上下文”相关云文件注入到提示词前缀,并支持
download_chat_files将历史文件按通配符下载到容器/app,配合artifacts目录让用户直接下载输出结果。
- 🧠 更多提供商支持工具调用思考回传:在 Chat Completions API 下,Moonshot(Kimi)等提供商新增/完善了在工具调用之间回传
reasoning_content的能力(与 DeepSeek/MiMo 的做法保持一致)。 - 🔁 Chat Completions API 兼容 DeepSeek v3.2 风格:解析与保存 assistant message 上的
reasoning_content,并与tool_calls组合形成稳定的“思考—工具—继续思考”交错链路(NeutralConversions/ChatCompletionService)。 - 🧩 Response API(OpenAI / Azure AI Foundry)交错思考增强:当启用 reasoning 时,请求中自动加入
include: ["reasoning.encrypted_content"],并在流式响应中提取response.output_item.done的encrypted_content存入ThinkChatSegment.Signature;下一次请求会将该签名以{"type":"reasoning","encrypted_content":...}回传,从而支持多步工具调用的“思考—工具—思考”交错链路(ResponseApiService/AzureResponseApiService,单元测试:src/BE/tests/Chats.BE.UnitTest/ChatServices/Response/AzureResponseApiServiceTests.cs)。 同时,通过prompt_cache_key(以 end-user 为 key)提升缓存命中率。
- 🧰 ToolCallBlock 全面优化:为 Code Interpreter 各工具提供更清晰的展示(命令摘要、sessionId/timeout 元信息、progress 流式输出、复制按钮、自动折叠策略、长输出展示优化等)(
src/FE/components/Markdown/ToolCallBlock.tsx)。 - 📎 ChatInput 上传增强:支持拖拽上传与 Ctrl+V 粘贴上传;对 Code Interpreter 场景可放开“任意文件类型”上传;粘贴图片自动生成更合理的文件名(
DragUpload/PasteUpload/ChatInput)。 - 🖼️ 文件预览与分享体验改进:文件名不再被截断、移动端预览更友好;分享对话框支持复制分享链接等 UI 优化(
FilePreview/SharedMessageModal)。 - 📊 生成信息更直观:Turn 信息气泡支持 step 数、平均耗时/平均 TTFB;当 step 仅 1 个时自动隐藏 step 计数(
TurnInfoBubble)。 - 🗓️ 管理后台优化:仪表盘日期选择器新增 today 高亮与快捷按钮(今天/昨天/本周/本月),使用量页面增加刷新按钮等。
- 新增 GitHub Actions 工作流
code-interpreter.yml:构建并发布多架构镜像(linux/amd64 + linux/arm64),并执行 smoke test(.github/workflows/code-interpreter.yml)。 - 镜像构建上下文与模板:
Dockerfile、NuGet 本地预缓存、skills 渲染脚本等(.github/workflows/code-interpreter/*)。
- 新增
ChatDockerSession表与索引/外键,用于记录与回收 Docker 会话(src/scripts/db-migration/1.10/1.10.0.sql)。 - 将支持工具调用的模型默认开启
AllowCodeExecution(同上迁移脚本 Step 2)。
- 修复会话追踪与 EF 跟踪相关的异常问题,避免出现“Balance/Step.Id 被错误修改”的边缘情况。
- 优化
create_docker_session失败提示与EnsureSession行为(由抛异常改为Result<T>返回)。 - 改进
run_command/读写文件等工具输出的展示策略:长输出与非结构化结果信息更紧凑,读写统计按“行数”反馈更贴近模型理解。
- 运行数据库迁移:
src/scripts/db-migration/1.10/1.10.0.sql - 确保部署环境具备 Docker 能力,并按需在
src/BE/web/appsettings.json配置CodeInterpreter(默认镜像、网络模式、资源限制、上传大小限制等)