Files
mimiclaw/taolun.md
Z.To 46e46b0a13
Some checks failed
Build / idf-build (push) Has been cancelled
增加项目注释
2026-03-31 17:56:51 +08:00

4.4 KiB
Raw Blame History

讨论记录:增加国内大模型厂商接入

对话概述

日期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.cLLM代理核心实现
    • main/llm/llm_proxy.hLLM代理头文件
    • main/mimi_config.h:全局配置定义
    • main/cli/serial_cli.c:命令行界面
  4. 提供商检测机制

    • provider_is_openai()函数检查是否为OpenAI提供商
    • 根据提供商选择不同的API URL、Host和Path

国内大模型厂商API兼容性调研

硅基流动 (SiliconFlow)

  • API兼容性OpenAI兼容模式
  • Base URLhttps://api.siliconflow.cn/v1
  • 特点
    • 提供100+高性能大模型
    • 新用户注册送免费额度
    • 价格比OpenAI官方便宜80%+
    • 支持OpenClaw等工具集成

火山方舟 (字节跳动豆包模型)

  • API兼容性兼容OpenAI SDK
  • Base URLhttps://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.cLLM代理实现
  • main/llm/llm_proxy.hLLM代理头文件
  • 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密钥的安全存储和传输