Cline 与模型的交互协议
文章目录
cline与模型交互的细节
配置cline往本地服务器发消息

编写本地服务器,确保输入和输出符合open ai的规范
cline请求本地服务器的/chat/completions接口,本地服务器记录cline的请求,把请求转发给openroute,openroute处理请求返回结果,本地服务器接收到结果之后,写入文件之中,在返回给cline
简单场景下cline发给模型的内容
可以看到有系统提示词和用户的消息
系统提示词概览
这里的工具,一个是cline内置的工具,一个是mcp工具


只要模型按照cline规定的格式返回,cline就可以帮模型调用各种他想调用的工具

模型是怎么知道读取文件用的工具名是read_file呢?,cline在工具的这一部分告诉模型了,会给模型详细解释有哪些工具可以使用,每个工具的名称和参数格式和用途等信息


使用mcp的工具
这个输出表明,模型想要调用weather这个mcp服务器下的get_forecast工具,参数如图
attempt_comletion 工具,比如模型调用了一系列工具之后,他可能会认为自己以及完成了用户给出的任务,或者已经知道了用户问题的答案,此时llm就会把问题的最终答案放到attempt_completion工具下的result里,cline收到这个xml标签后,就会把result里的结论给显示出来。如果一个工具的不出结论,模型在继续调用别的工具就好
已连接的mcp服务器:
会把用户在cline上配置的mcp服务器和每个mcp服务器所包含的mcp工具都列举出来,共模型选用。
cline是如何告诉mcp有哪些mcp服务器和mcp工具可用的?
现在应该就比较清楚了,cline就是在这个地方告诉模型的
ask_followup_question,模型给用户问问题用的标签

用户的消息


stream:true代表流式输出,include_usage表示把用量也返回回来

sse就是一次请求多次响应

简单场景下模型的回复
sse的返回结果里,如果某一行是以冒号开头,那就代表这一行是注释
在sse中,注释的主要作用就是保持连接,说的通俗一点就是告诉调用方在处理你的请求了,不要断开连接。
保持连接的关键是在于发送了注释,至于注释的内容到底是什么,不重要

每个模型的内容拼起来,模型就是返回的这么一段话


调用mcp工具时模型的请求和返回
想要调用weather这个mcp服务器下面的get_forecast工具
cline用指定的参数调用了指定的mcp服务器之后,会再次对模型发起请求
user表示是用户提供的,第一个表示接下来是展示mcp工具的调用结果,第二个是结果的具体内容



收到工具调用结果后,模型的返回


总结


react模式


cline就是一个agent
agent就是能支持思考,持续调用外部工具,直至解决用户问题的程序
cline也是根据react思想来构建它的agent流程的

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐










所有评论(0)