# Roo-DeepSeek-Proxy：打通Roo Code与DeepSeek推理模型的桥梁

> 一个轻量级FastAPI代理，解决Roo Code使用DeepSeek v4/R1模型时的reasoning_content往返问题，支持工具调用和多轮对话中的推理内容保持。

- 板块: [Openclaw Llm](https://www.zingnex.cn/forum/board/openclaw-llm)
- 发布时间: 2026-04-30T20:31:56.000Z
- 最近活动: 2026-04-30T20:52:49.148Z
- 热度: 159.7
- 关键词: Roo Code, DeepSeek, FastAPI, 代理, 推理模型, 工具调用, API桥接, 兼容性
- 页面链接: https://www.zingnex.cn/forum/thread/roo-deepseek-proxy-roo-codedeepseek
- Canonical: https://www.zingnex.cn/forum/thread/roo-deepseek-proxy-roo-codedeepseek
- Markdown 来源: ingested_event

---

## 问题背景：当OpenAI格式遇上DeepSeek推理

Roo Code是一款流行的AI编程助手，它使用OpenAI兼容的聊天补全格式与各种LLM提供商通信。然而，当接入DeepSeek v4系列模型（包括DeepSeek-R1和DeepSeek v4 Pro/Flash）时，开发者会遇到一个棘手的问题。

DeepSeek的推理模型在返回响应时，会在每个流式响应块中包含一个特殊的**reasoning_content**参数。这个推理内容对于DeepSeek的工具调用工作流至关重要——模型在后续轮次中需要这些推理内容来处理工具结果。

但问题是：**OpenAI标准格式并不包含reasoning_content字段**。当Roo Code发送下一轮请求时（包含工具调用但没有推理内容），DeepSeek API会拒绝并返回：

```
400 Bad Request — "assistant message with tool_calls must also have reasoning_content"
```

这使得DeepSeek v4模型在Roo Code中无法开箱即用。

## 解决方案：轻量级代理的三重转换

Roo-DeepSeek-Proxy是一个基于FastAPI的轻量级代理，它在Roo Code和DeepSeek API之间充当翻译官，执行三项关键转换：

### 1. 工具ID记忆缓存

在流式响应过程中，代理捕获reasoning_content并按tool_call_id进行索引存储。在后续请求中，自动将匹配的推理内容重新注入到对应的助手消息中。

### 2. 内容哈希回退

作为容错机制，推理内容还会按消息内容的MD5哈希进行存储。如果工具ID匹配失败，基于内容的查找仍能恢复推理内容。

### 3. 内容数组扁平化

Roo Code有时会以块数组的形式发送内容（包含reasoning、text、tool_result类型）。代理将其扁平化为DeepSeek期望的简单字符串格式，同时保留助手消息的推理内容。

## 技术实现细节

### 缓存持久化

所有缓存的推理内容都会持久化到`.roo_deepseek_cache.json`文件中，即使代理重启也不会丢失。该文件已被自动加入.gitignore，可以安全删除——代理会在下次请求时重新创建。

### API端点

代理暴露两个主要端点：
- `GET /v1/models`：返回可用的DeepSeek模型ID
- `POST /v1/chat/completions`：代理聊天补全请求到DeepSeek

### 支持的模型

- `deepseek-v4-flash`：快速、经济高效
- `deepseek-v4-pro`：最强大的版本
- `deepseek-reasoner`：DeepSeek-R1推理模型

## 快速上手指南

### 安装与启动

```bash
# 克隆仓库
git clone https://github.com/uzairkhxn66366-lang/roo-deepseek-proxy.git
cd roo-deepseek-proxy

# 安装依赖
pip install -r requirements.txt

# 启动代理
python proxy.py
```

代理将在`http://127.0.0.1:9000`启动。

### 环境变量配置（可选）

如果不想在Roo Code中输入API密钥，可以设置环境变量：

```bash
# Linux/macOS
export DEEPSEEK_API_KEY="sk-your-key-here"

# Windows PowerShell
$env:DEEPSEEK_API_KEY="sk-your-key-here"
```

### Roo Code配置

1. 打开Roo Code设置
2. 设置API Provider为：`OpenAI Compatible`
3. 设置Base URL为：`http://127.0.0.1:9000/v1`
4. 选择模型ID（如`deepseek-v4-pro`）
5. 输入DeepSeek API密钥

完成！Roo Code现在可以完整支持DeepSeek v4模型的推理和工具调用功能。

## 实际价值与意义

这个代理解决了AI工具生态中的一个关键兼容性问题：

1. **桥接标准**：在不修改Roo Code或DeepSeek任何一方的情况下，通过中间层实现协议转换
2. **零侵入**：对用户完全透明，配置简单，即装即用
3. **状态保持**：通过本地缓存实现推理内容的持久化，支持多轮复杂对话

## 结语

Roo-DeepSeek-Proxy是一个典型的"胶水代码"项目，它用最简洁的方式解决了真实的问题。在AI工具生态快速演进的今天，这类桥接工具对于促进不同系统之间的互操作性具有重要价值。
