用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/jwangkun/API2Agent --skill deepseek-responses-proxy命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | deepseek-responses-proxy |
| description | Proxy DeepSeek models to DeepSeek API for both chat completions and responses endpoints |
| source | auto-skill |
| extracted_at | 2026-06-02T06:31:00.927Z |
When implementing OpenAI-compatible API endpoints that support multiple upstream providers (e.g., Cursor API and DeepSeek API), model-specific routing must happen before the default handler is invoked.
resolveCursorModel() or similar default routing logic// In handleOpenAiRoute or similar handler
const requestedModel = typeof (body as { model?: unknown })?.model === "string"
? (body as { model: string }).model
: "composer-2.5";
// Check for DeepSeek models FIRST
if (isDeepSeekModel(requestedModel)) {
if (route.kind === "chat") {
return proxyDeepSeekCompletion(env, deps, body, auth.api2agentKey);
}
if (route.kind === "responses") {
return proxyDeepSeekResponses(env, deps, body, auth.api2agentKey);
}
}
// Then proceed with Cursor API for non-DeepSeek models
const cursorModel = resolveCursorModel(requestedModel);
// ... rest of Cursor API handling
/chat/completions for chat, /responses for responses APIdeepseek-v4-flash to Cursor API will failworker/deepseek.ts: Contains proxyDeepSeekCompletion() and proxyDeepSeekResponses() functionsworker/index.ts: Main request handler that routes to appropriate proxy based on model// worker/deepseek.ts
export function isDeepSeekModel(model: string): boolean {
return model.startsWith("deepseek-");
}
export async function proxyDeepSeekResponses(
env: Env,
deps: Deps,
body: unknown,
apiKey: string
): Promise<Response> {
const baseUrl = env.DEEPSEEK_API_BASE || "https://api.deepseek.com";
const isStream = typeof body === "object" && body !== null &&
(body as Record<string, unknown>).stream === true;
const response = await deps.fetch(`${baseUrl}/responses`, {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": `Bearer ${apiKey}`,
"Accept": isStream ? :
},
: .(body)
});
(isStream) {
( (response., {
: response.,
: { : }
}));
}
data = response.();
( (.(data), {
: { : }
}));
}