# 讨论记录:增加国内大模型厂商接入 ## 对话概述 **日期**:2026-03-31 **目标**:为 MimiClaw 项目增加国内大模型厂商的接入,特别是硅基流动和火山方舟(豆包模型) ## 对话内容 ### 用户需求 用户希望给当前项目增加国内大模型厂商的接入,包括: 1. 硅基流动的免费模型 2. 火山方舟的豆包模型 ### 项目现状分析 #### 项目基本信息 - **项目名称**:MimiClaw - **运行平台**:ESP32-S3(纯C语言) - **交互方式**:Telegram机器人 - **功能**:AI助手,支持工具调用,本地记忆 #### 当前LLM集成状态 1. **支持的提供商**: - Anthropic (Claude) - OpenAI (GPT) 2. **配置方式**: - 构建时配置:`main/mimi_secrets.h` - 运行时配置:串口CLI命令,存储在NVS中 3. **关键代码文件**: - `main/llm/llm_proxy.c`:LLM代理核心实现 - `main/llm/llm_proxy.h`:LLM代理头文件 - `main/mimi_config.h`:全局配置定义 - `main/cli/serial_cli.c`:命令行界面 4. **提供商检测机制**: - `provider_is_openai()`函数检查是否为OpenAI提供商 - 根据提供商选择不同的API URL、Host和Path ### 国内大模型厂商API兼容性调研 #### 硅基流动 (SiliconFlow) - **API兼容性**:OpenAI兼容模式 - **Base URL**:`https://api.siliconflow.cn/v1` - **特点**: - 提供100+高性能大模型 - 新用户注册送免费额度 - 价格比OpenAI官方便宜80%+ - 支持OpenClaw等工具集成 #### 火山方舟 (字节跳动豆包模型) - **API兼容性**:兼容OpenAI SDK - **Base URL**:`https://ark.cn-beijing.volces.com/api/v3` - **特点**: - 豆包大模型系列 - 新用户首次开通可享受50万token免费试用 - 支持函数调用、工具调用等高级功能 ### 技术实现分析 #### 当前架构特点 1. **提供商抽象**: - 使用`s_provider`变量存储提供商名称 - 通过`provider_is_openai()`函数区分提供商 - 根据提供商选择不同的API配置 2. **API调用流程**: - 构建请求体 - 设置请求头(根据提供商不同) - 发送HTTP请求 - 解析响应(根据提供商不同) 3. **工具调用支持**: - 支持Anthropic的tool_use格式 - 支持OpenAI的function calling格式 - 有格式转换函数`convert_tools_openai()` #### 实现方案讨论 由于硅基流动和火山方舟都提供OpenAI兼容的API,理论上可以复用现有的OpenAI集成代码,只需要: 1. 修改Base URL 2. 可能需要调整认证方式 3. 可能需要处理特定的模型名称 ## 待解决问题 1. **认证方式差异**: - 硅基流动:使用API Key - 火山方舟:可能使用不同的认证方式 2. **模型名称规范**: - 需要了解具体的模型ID格式 - 例如:硅基流动的`deepseek-ai/DeepSeek-V3`,火山方舟的豆包模型名称 3. **功能支持差异**: - 工具调用格式是否完全兼容 - 上下文长度限制 - 特殊功能支持情况 ## 下一步计划 基于讨论,制定了以下实施计划: ### 阶段一:准备与设计 1. 详细调研硅基流动和火山方舟的API文档 2. 确定具体的实现方案 3. 设计配置结构和命令行接口 ### 阶段二:核心实现 1. 修改LLM代理以支持新的提供商 2. 添加配置管理功能 3. 更新命令行界面 ### 阶段三:测试与优化 1. 功能测试 2. 性能优化 3. 文档更新 ## 相关资源 ### 项目文件 - `main/llm/llm_proxy.c`:LLM代理实现 - `main/llm/llm_proxy.h`:LLM代理头文件 - `main/mimi_config.h`:配置定义 - `main/cli/serial_cli.c`:命令行界面 ### 外部文档 - 硅基流动OpenClaw集成文档 - 火山方舟兼容OpenAI SDK文档 - ESP32-S3开发文档 ## 技术要点总结 1. **复用现有架构**:可以充分利用现有的OpenAI集成代码 2. **提供商扩展**:需要扩展提供商检测和配置机制 3. **配置管理**:需要支持新的API密钥和Base URL配置 4. **兼容性处理**:可能需要处理API响应格式的细微差异 ## 风险与挑战 1. **API兼容性风险**:虽然声称兼容,但可能存在细微差异 2. **内存限制**:ESP32-S3内存有限,需要确保新功能不会导致内存不足 3. **网络稳定性**:国内网络环境可能影响API调用稳定性 4. **认证安全性**:需要确保API密钥的安全存储和传输