按用户续接会话(自托管代理)
Chat Completions API 通过回传 metadata.session_id 来继续一段
会话。如果你完全不想自己跟踪 session id——比如你在一个集成后面接了很多终端
用户——可以部署一个小型自托管代理替你完成:只要传一个稳定的 user 字符串,每
个 user 就会得到一个会自动续接的会话。
这个代理是一个 Cloudflare Worker,随 Manyfold 仓库一起提供,位于
apps/chat-session-proxy。它挡在 /api/v1/chat/completions 前面,把 user
映射到某个会话,其余请求原样透传。核心 API 和你的 API token 都不变。
使用
把 OpenAI 兼容客户端的 base URL 指向部署好的 Worker,并加上 user:
import OpenAI from 'openai'
const client = new OpenAI({
apiKey: process.env.MANYFOLD_API_TOKEN,
baseURL: 'https://<your-worker>.workers.dev/v1'
})
await client.chat.completions.create({
model: 'agt_your_agent_id',
user: 'end-user-123',
messages: [{ role: 'user', content: '接着上次继续。' }]
})
用同一个 user 再次调用,会话就会续上——无需保存任何 session id。如果你自己传
了 metadata.session_id,则以它为准。
部署
完整步骤见 Manyfold 仓库里的 apps/chat-session-proxy/README.md:创建一个
Workers KV namespace、设置上游 origin,然后 wrangler deploy。该目录是自包含
的,可以单独拷贝出去部署。
说明
- 你的 API token 会原样转发给 Manyfold,代理不保存任何 secret。
- 会话按 token 和 agent 分别命名空间,所以同一个
user对不同 agent 的对话互相 隔离。 - 映射存在 Workers KV 中(最终一致)。如需严格的按用户串行化,README 说明了如何 换成 Durable Object。
这个页面有帮助吗?