Beta

按用户续接会话(自托管代理)

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。
这个页面有帮助吗?