研究一下codex
- 内容介绍
- 文章标签
- 相关推荐
抓包完成了之后我才发现Openai官方已经揭示了其中诸多的细节,详细见 博文
目前的Agent在技术实现上还是比较统一,都通过Agent Loops的方式来做出智能体的Response:
image596×275 24 KB
对于用户的输入,也就是被结构化为Prompt的需求,首先会到达Model Inference。Inference实际上是相对于training而言的模型输出过程,这意味着并不修改模型参数,仅仅将输入的Token转化为输出的Token。(对于从自然语言到Token再从Token转译为自然语言的过程这里就省略而不赘述了)
这里的模型输出实际上是广义的,对应上面图中的:Agent Response 和Tool calls。
要把握住 Tool calls 中的 calls,也就是模型仅仅发出调用请求,但是工具的使用是在本地CLI的。
之所以把Tool calls也放到模型的输出上,是为了强调其生成本质也是文本生成,与自然文本回答并无不同。这里我们需要说明,即使是并不原生拥有工具调用能力的模型,通过一些技术性技巧就可以达到工具调用。主要在于协议层的统一和Instruction的使用来规范其输出符合schema的json文本。tool calls的目标是为了回去更加具体的上下文,因此会自动回调给模型以进一步的推理。
那么,最后模型的推理结果将不再调用工具而是选择生成一条Assistant标识的消息——回应用户的初始请求,但也可能是一个向用户提出的追问。一次对话轮次可能包含模型推理与工具调用之间的多次循环迭代。每当你向既有对话发送新消息时,包括之前所有轮次的消息与工具调用在内的完整对话历史,都会被纳入新轮次的提示中:
image596×356 17.4 KB
上下文窗口同时涵盖了输入与输出Token,因此如何组织上下文窗口管理则是关键。
抓包完成了之后我才发现Openai官方已经揭示了其中诸多的细节,详细见 博文
目前的Agent在技术实现上还是比较统一,都通过Agent Loops的方式来做出智能体的Response:
image596×275 24 KB
对于用户的输入,也就是被结构化为Prompt的需求,首先会到达Model Inference。Inference实际上是相对于training而言的模型输出过程,这意味着并不修改模型参数,仅仅将输入的Token转化为输出的Token。(对于从自然语言到Token再从Token转译为自然语言的过程这里就省略而不赘述了)
这里的模型输出实际上是广义的,对应上面图中的:Agent Response 和Tool calls。
要把握住 Tool calls 中的 calls,也就是模型仅仅发出调用请求,但是工具的使用是在本地CLI的。
之所以把Tool calls也放到模型的输出上,是为了强调其生成本质也是文本生成,与自然文本回答并无不同。这里我们需要说明,即使是并不原生拥有工具调用能力的模型,通过一些技术性技巧就可以达到工具调用。主要在于协议层的统一和Instruction的使用来规范其输出符合schema的json文本。tool calls的目标是为了回去更加具体的上下文,因此会自动回调给模型以进一步的推理。
那么,最后模型的推理结果将不再调用工具而是选择生成一条Assistant标识的消息——回应用户的初始请求,但也可能是一个向用户提出的追问。一次对话轮次可能包含模型推理与工具调用之间的多次循环迭代。每当你向既有对话发送新消息时,包括之前所有轮次的消息与工具调用在内的完整对话历史,都会被纳入新轮次的提示中:
image596×356 17.4 KB
上下文窗口同时涵盖了输入与输出Token,因此如何组织上下文窗口管理则是关键。

