Skip to Content
4. 集成与最佳实践

集成与最佳实践

本章节列出主流 Agent 框架、IDE 和编程助手如何接入 Smartoken。几乎所有支持”自定义 OpenAI 端点”的工具都能直接用,关键就两件事:

模型名(slug)从 模型市场 复制 —— 每个模型详情页右上角有复制按钮。

协议互通性:Smartoken 同时支持三种主流协议——/v1/chat/completions(OpenAI Chat)、/v1/responses(OpenAI Responses)、/v1/messages(Anthropic Messages)。任意 LLM 模型都同时支持这三种调用方式,平台内部自动翻译,客户端不需要关心后端模型实际走哪种协议。工具调用(tool_calls / tool_use)也都映射好了。文生图 / 文生视频只支持 OpenAI 协议(Anthropic Messages 协议本身不涵盖图片 / 视频生成)。


4.1 通用模式

绝大多数支持 OpenAI 的库都是这个套路:

from openai import OpenAI client = OpenAI( base_url="https://smartoken.top/v1", api_key="stk-live-...", ) resp = client.chat.completions.create( model="<你的模型 slug>", messages=[{"role": "user", "content": "你好"}], ) print(resp.choices[0].message.content)

JavaScript / TypeScript 同理:

import OpenAI from "openai"; const client = new OpenAI({ baseURL: "https://smartoken.top/v1", apiKey: "stk-live-...", }); const resp = await client.chat.completions.create({ model: "<你的模型 slug>", messages: [{ role: "user", content: "你好" }], }); console.log(resp.choices[0].message.content);

如果你的工具不在下面的清单里,先试这个套路,大概率能直接跑。


4.2 Agent 框架

LangChain (Python)

from langchain_openai import ChatOpenAI llm = ChatOpenAI( base_url="https://smartoken.top/v1", api_key="stk-live-...", model="<你的模型 slug>", ) print(llm.invoke("你好").content)

工具调用、流式输出都按 LangChain 原生方式用即可。

LangChain.js

import { ChatOpenAI } from "@langchain/openai"; const llm = new ChatOpenAI({ configuration: { baseURL: "https://smartoken.top/v1" }, apiKey: "stk-live-...", model: "<你的模型 slug>", }); const result = await llm.invoke("你好"); console.log(result.content);

OpenAI Agents SDK

openai-agents 默认走 Responses 协议,我们的 /v1/responses 兼容它。

from agents import Agent, Runner from openai import AsyncOpenAI from agents.models.openai_responses import OpenAIResponsesModel client = AsyncOpenAI( base_url="https://smartoken.top/v1", api_key="stk-live-...", ) agent = Agent( name="Helper", instructions="你是一个友好的助手。", model=OpenAIResponsesModel(model="<你的模型 slug>", openai_client=client), ) result = await Runner.run(agent, "你好") print(result.final_output)

即使你选的模型实际接的是经典 Chat 渠道(不是真的 Responses 上游),Agents SDK 也能用 —— 平台会把 Responses 请求自动翻译成 Chat 发给上游。

AutoGen (Microsoft)

from autogen_ext.models.openai import OpenAIChatCompletionClient client = OpenAIChatCompletionClient( model="<你的模型 slug>", base_url="https://smartoken.top/v1", api_key="stk-live-...", # 非 OpenAI 模型需要明确告知模型能力,否则 AutoGen 默认按 GPT-4 假设 model_info={ "vision": False, # 模型是否支持图片输入 "function_calling": True, "json_output": True, "family": "unknown", }, )

CrewAI

CrewAI 底层用 LiteLLM,因此用 openai/ 前缀(告诉 LiteLLM 走 OpenAI 协议):

import os from crewai import Agent, Crew, Task, LLM os.environ["OPENAI_API_KEY"] = "stk-live-..." os.environ["OPENAI_API_BASE"] = "https://smartoken.top/v1" llm = LLM(model="openai/<你的模型 slug>") researcher = Agent( role="研究员", goal="...", backstory="...", llm=llm, )

Google ADK

Google ADK 通过 LiteLLM 接入第三方 OpenAI 兼容服务:

import os from google.adk.agents import LlmAgent from google.adk.models.lite_llm import LiteLlm os.environ["OPENAI_API_KEY"] = "stk-live-..." os.environ["OPENAI_API_BASE"] = "https://smartoken.top/v1" agent = LlmAgent( name="helper", model=LiteLlm(model="openai/<你的模型 slug>"), instruction="你是一个友好的助手。", )

Anthropic SDK / Claude Agent SDK

Anthropic 的 Claude Agent SDKanthropic Python SDK 都使用 Anthropic Messages 协议——Smartoken 已原生兼容,无需任何中间件桥接。

from anthropic import Anthropic client = Anthropic( base_url="https://smartoken.top", # SDK 会自动拼 /v1/messages api_key="stk-live-...", ) message = client.messages.create( model="<你的模型 slug>", max_tokens=1024, messages=[{"role": "user", "content": "你好"}], ) print(message.content[0].text)

工具调用(tools / tool_use / tool_result)、流式输出、system prompt 都按 Anthropic SDK 原生方式用即可。其它基于 anthropic 包的 Agent 框架(Claude Agent SDK 等)只要能改 base_url 或读 ANTHROPIC_BASE_URL 环境变量,配置方式相同。

任何 LLM 模型都能用这种方式调用——Smartoken 内部把 Anthropic 请求翻译为 OpenAI Chat 走标准路由。所以你完全可以用 Anthropic SDK 去调一个 GPT 或 Qwen 模型。


4.3 IDE 和编程助手

Cursor

设置 → Models → 在 OpenAI API Key 一栏填 stk-live-...,勾选 Override OpenAI Base URL,填 https://smartoken.top/v1

然后在 Model Names 里添加你要用的模型 slug(如 gpt-5.4-mini)。Cursor 会用这个 slug 调用 /v1/chat/completions

Cline (VS Code)

打开 Cline 的 Settings:

  • API Provider: 选 OpenAI Compatible
  • Base URL: https://smartoken.top/v1
  • API Key: stk-live-...
  • Model ID: 你的模型 slug

Continue (VS Code / JetBrains)

编辑 ~/.continue/config.json(或在 Continue 面板里直接编辑配置):

{ "models": [ { "title": "Smartoken", "provider": "openai", "model": "<你的模型 slug>", "apiBase": "https://smartoken.top/v1", "apiKey": "stk-live-..." } ] }

Aider

命令行参数或环境变量都行:

export OPENAI_API_BASE=https://smartoken.top/v1 export OPENAI_API_KEY=stk-live-... aider --model openai/<你的模型 slug>

Open Code

在配置文件(一般在~/.config/opencode/opencode.json中),新增一个名为smartoken的provider, 配置你需要的模型即可,参考下面的配置文件

{ "provider": { "smartoken": { "options": { "baseURL": "https://smartoken.top/v1", "apiKey": "stk-live-..." }, "models": { "claude-sonnet-4-6": { "name": "claude-sonnet-4-6", "limit": { "context": 400000, "output": 128000 }, "options": { "store": false }, "variants": { "low": {}, "medium": {}, "high": {}, "xhigh": {} } } } } }, "agent": { "build": { "options": { "store": false } }, "plan": { "options": { "store": false } } }, "model": "smartoken/claude-sonnet-4-6", "$schema": "https://opencode.ai/config.json" }

Codex CLI

OpenAI 官方 Codex CLI 通过自定义 model_provider 接入第三方网关。编辑 ~/.codex/config.toml

model = "<你的模型 slug>" model_provider = "smartoken" [model_providers.smartoken] name = "Smartoken" base_url = "https://smartoken.top/v1" wire_api = "responses" # 也可以填 "chat",平台两边都接 env_key = "OPENAI_API_KEY"

然后:

export OPENAI_API_KEY=stk-live-... codex
⚠️

不要[model_providers.smartoken] 下加 requires_openai_auth = true。那会让 Codex 拿 ChatGPT 登录的 OAuth token 当 API Key 发给 Smartoken,会被拒为 invalid key。

Claude Code

Claude Code 走 Anthropic Messages 协议,Smartoken 原生兼容,两个环境变量就能跑

export ANTHROPIC_BASE_URL=https://smartoken.top export ANTHROPIC_API_KEY=stk-live-... claude

之后在 Claude Code 里用 /model 命令切换到你的 Smartoken 模型 slug 即可(默认会先用你的 Anthropic 账号配置;用上面环境变量覆盖后所有请求都发到 Smartoken)。流式输出、工具调用都直接支持,不需要任何中间代理。


4.4 其他工具

任何支持”自定义 OpenAI base URL”的工具都能用 Smartoken,套路一致:把 base 改成 https://smartoken.top/v1,把 key 改成你的 stk-live-...

如果你接入了某个工具且写到这里的配置不灵,欢迎反馈给我们,我们会补到文档里。


详细的请求 / 响应字段、流式格式、错误码请看 API 参考