OC
OpenClaw 中文解释版

给五岁小朋友也能看懂的说明书

简要总结

OpenResponses Gateway Plan

这页文档在讲一个“新大门”计划。原来,我们的“小爪子”系统有一个像 OpenAI 那样的聊天大门(/v1/chat/completions)。现在,我们要为“开放回答”这个新标准,再开一个专门的新大门(/v1/responses)。这个新大门更适合让智能体(可以想象成会自己干活的小机器人)来工作。我们会先让新大门能用,但不会一下子关掉旧的大门,你可以自己选择用哪个。

五岁小孩版解释

我们有一个叫“小爪子网关”的系统,它就像一个房子的前门,别人可以通过这个门来和我们里面的智能体(小机器人)聊天。以前,这个门是按照 OpenAI 的样子做的,地址是 /v1/chat/completions

现在,有一个新的聊天标准叫“开放回答”(OpenResponses),它更适合让智能体自己工作。所以,我们要为这个新标准再开一扇新门,地址是 /v1/responses

我们的目标是什么呢?

  1. 造好这个新的 /v1/responses 大门,让它完全符合“开放回答”的标准。
  2. 旧的 /v1/chat/completions 大门还会留着,这样以前用旧门的人还能用。但我们希望以后可以关掉它。
  3. 把检查信息对不对的规则写清楚,这样以后用起来更方便。

我们第一步不做什么呢?

  1. 不会一下子把“开放回答”标准里所有厉害的功能(比如传图片、文件)都做出来。
  2. 不会改变智能体(小机器人)在里面是怎么干活的。
  3. 不会改变旧大门 /v1/chat/completions 现在是怎么工作的。

新大门怎么工作呢? 别人要和新大门说话,需要发送一个“请求”。这个请求里可以放很多东西,比如:

  • model:要哪个模型(大脑)来回答问题。
  • input:问题本身,可以是一句话,也可以是一堆有角色(比如“系统”、“用户”、“助手”)的小段落。
  • instructions:给模型的特别指示。
  • stream:要不要像小溪流水一样,一点一点地收到回答。

新大门怎么回答呢? 回答有两种方式:

  1. 一次全给:把所有回答打包好,一次送回来。
  2. 一点一点流回来:就像看动画片,一帧一帧地出现。这种方式会发送很多“事件”消息,比如“回答开始创建啦”、“又出来一段文字”、“回答完成啦!”。最后,必须说一句 [DONE] 表示真的结束了。

我们打算怎么建造这个新大门?

  1. 我们会写一些专门的“规则说明书”(Zod schemas),用来检查别人发来的信息对不对。
  2. 我们会写一个新的文件来处理 /v1/responses 这个新地址的请求。
  3. 旧的处理文件(管 /v1/chat/completions 的)完全不动它。
  4. 在系统的“设置”里,会加一个新开关,控制新大门是否打开。默认是关着的。
  5. 旧大门的开关还是独立的,这样两个门可以单独打开或关闭。
  6. 如果旧大门被打开了,系统会“提醒”一下,告诉大家这个是旧的。

关于旧大门(Chat Completions)的未来: 我们不会马上关掉它。但我们会:

  1. 让新大门和旧大门用完全不同的“规则说明书”,不混在一起。
  2. 把旧大门也变成一个“选项”,可以在设置里关掉它。
  3. 等新大门稳定了,我们会在说明书里告诉大家,旧大门是“老版本”的。
  4. 也许以后,可以把旧大门的请求转到新大门来处理,这样就更方便了。

第一步我们先支持哪些功能呢?

  1. 能接受两种 input:简单的一句话,或者一堆带角色的小段落。
  2. 会把“系统”和“开发者”说的话,当作特别的提示交给智能体。
  3. 会把最近一条“用户”说的话,当作当前要处理的问题。
  4. 如果有人发来了我们不支持的东西(比如图片),我们会礼貌地说“对不起,这个我不会”。
  5. 回答时,会返回一个“助手”说的话。
  6. 关于用了多少“算力”(tokens)的统计,我们先返回0,等以后再加上。

怎么检查别人发来的东西对不对? 我们不依赖外面的工具包,自己用“规则说明书”(Zod)来检查。我们会为“开放回答”标准里我们支持的部分,都写好规则,并且把它们放在一起,这样以后不容易出错。

“一点一点流回来”(流式响应)具体怎么做? 我们会按照顺序发送这些事件消息,一个都不能少:

  1. response.created (回答开始创建啦)
  2. response.output_item.added (要输出的东西准备好啦)
  3. response.content_part.added (内容的一部分开始啦)
  4. response.output_text.delta (这是一小段文字,可能会发很多次)
  5. response.output_text.done (文字部分说完啦)
  6. response.content_part.done (这个内容部分结束啦)
  7. response.completed (整个回答完成啦!)
  8. [DONE] (真的全部结束啦!)

我们怎么知道新大门造得好不好? 我们会给它做测试:

  1. 测试必须登录才能用。
  2. 测试一次返回全部回答的样子对不对。
  3. 测试“一点一点流回来”时,事件的顺序对不对,最后有没有说 [DONE]
  4. 测试带着不同“用户”信息时,能不能找到正确的对话。 我们也会用 curl 命令(一个在电脑上模拟访问的工具)手动试试,看看事件是不是按顺序来的。

最后,我们会更新说明书:

  1. 为新大门 /v1/responses 写全新的使用说明和例子。
  2. 在旧的 OpenAI 大门说明页面上,加一个提示,告诉大家那是老版本的,并指路到新大门。