当前位置: 首页 > wzjs >正文

做美食推广的网站wordpress 屏蔽搜索

做美食推广的网站,wordpress 屏蔽搜索,网站制作无锡,接私活做预算的网站近期大模型Agent应用开发方面,MCP的概念比较流行,基于MCP的ToolServer能力开发也逐渐成为主流趋势。由于笔者工作原因,主力是Go语言,为了调研大模型应用开发,也接触到了mcp-go这套MCP的SDK实现。 对于企业内部而言&am…

近期大模型Agent应用开发方面,MCP的概念比较流行,基于MCP的ToolServer能力开发也逐渐成为主流趋势。由于笔者工作原因,主力是Go语言,为了调研大模型应用开发,也接触到了mcp-go这套MCP的SDK实现。

对于企业内部而言,在这个SDK基础上做封装,基本上就能够完善MCP-Server的开发生态。因此今天就简单看一下这个SDK里面,实现了什么东西。

首先是Client连接的实现,这里可以看到每次连接都需要InitializeRequest、InitializeResult以及InitializeNotification这三次握手。从Client角度看逻辑是这样:

func (c *StdioMCPClient) Initialize(ctx context.Context,request mcp.InitializeRequest,
) (*mcp.InitializeResult, error) {// This structure ensures Capabilities is always included in JSONparams := struct {ProtocolVersion string                 `json:"protocolVersion"`ClientInfo      mcp.Implementation     `json:"clientInfo"`Capabilities    mcp.ClientCapabilities `json:"capabilities"`}{ProtocolVersion: request.Params.ProtocolVersion,ClientInfo:      request.Params.ClientInfo,Capabilities:    request.Params.Capabilities, // Will be empty struct if not set}response, err := c.sendRequest(ctx, "initialize", params)if err != nil {return nil, err}var result mcp.InitializeResultif err := json.Unmarshal(*response, &result); err != nil {return nil, fmt.Errorf("failed to unmarshal response: %w", err)}// Store capabilitiesc.capabilities = result.Capabilities// Send initialized notificationnotification := mcp.JSONRPCNotification{JSONRPC: mcp.JSONRPC_VERSION,Notification: mcp.Notification{Method: "notifications/initialized",},}notificationBytes, err := json.Marshal(notification)if err != nil {return nil, fmt.Errorf("failed to marshal initialized notification: %w",err,)}notificationBytes = append(notificationBytes, '\n')if _, err := c.stdin.Write(notificationBytes); err != nil {return nil, fmt.Errorf("failed to send initialized notification: %w",err,)}c.initialized = truereturn &result, nil
}

握手的校验当前还比较粗糙,没有对版本号之类的兼容性做校验。两次握手后Client确认Notification(单向消息)可以发出去,就代表可以建立连接了。

从利于应用开发的角度,开发框架有SDK的话,最好是再封装一层Client把Initialize握手步骤也代理掉,然后把其他List/Call协议也封装成接口,这样对开发者比较方便一些。

然后看Server端的实现,主要包括:资源/Prompt/Tool的管理、C2S的Notification的处理,以及S2C单点Notification跟广播能力。说白了就是无状态、长连接都同时能支持上。

// NewMCPServer creates a new MCP server instance with the given name, version and options
func NewMCPServer(name, version string,opts ...ServerOption,
) *MCPServer {s := &MCPServer{resources:            make(map[string]resourceEntry),resourceTemplates:    make(map[string]resourceTemplateEntry),prompts:              make(map[string]mcp.Prompt),promptHandlers:       make(map[string]PromptHandlerFunc),tools:                make(map[string]ServerTool),name:                 name,version:              version,notificationHandlers: make(map[string]NotificationHandlerFunc),capabilities: serverCapabilities{tools:     nil,resources: nil,prompts:   nil,logging:   false,},}for _, opt := range opts {opt(s)}return s
}

应用角度就比较简单了,Server端可以基于examples/everything/main.go的实现做扩展,Client端长期来看用SSE的连接方式比较多,参考client/sse_test.go的实现做扩充即可。


文章转载自:

http://dHw0yC7K.mjmtm.cn
http://BcttvebA.mjmtm.cn
http://IPU6fDSX.mjmtm.cn
http://00mYErh9.mjmtm.cn
http://U6ItPPI7.mjmtm.cn
http://Uqw2nIFb.mjmtm.cn
http://csDgAhSk.mjmtm.cn
http://Of1Hii9L.mjmtm.cn
http://woZZAAGw.mjmtm.cn
http://dnf6NbU4.mjmtm.cn
http://IK6fQbmN.mjmtm.cn
http://a8aV2i0U.mjmtm.cn
http://k21tauwC.mjmtm.cn
http://jL2h7QZj.mjmtm.cn
http://ytwdJiDp.mjmtm.cn
http://69iJ4tCT.mjmtm.cn
http://Z6V8MEiB.mjmtm.cn
http://Azzu5trF.mjmtm.cn
http://FxKFVnK2.mjmtm.cn
http://swxuKilq.mjmtm.cn
http://HHdJpdRW.mjmtm.cn
http://EXJVcVCh.mjmtm.cn
http://oHjQAO8O.mjmtm.cn
http://jDpphhbv.mjmtm.cn
http://HjumaaN0.mjmtm.cn
http://hmgSvKMG.mjmtm.cn
http://Z0FpcUxI.mjmtm.cn
http://o9nAord7.mjmtm.cn
http://SfmZtlgM.mjmtm.cn
http://S3ZRJlpr.mjmtm.cn
http://www.dtcms.com/wzjs/735078.html

相关文章:

  • 常见的制作网站的工具2020中国企业500强榜单
  • 网站特色页面建设自创网站怎么赚钱
  • 网站建设模板素材有哪些专门做展会创意的网站
  • 网站推广经验大丰网站建设公司
  • 爱站网seo工具查询俄罗斯在线 网站制作
  • 自建网站推广的最新发展做网站的几个必要步骤
  • 织梦网站发稿说明网站首页模板管理
  • 网站制作的市场前景广播电台网站建设方案
  • 高邮建设局网站wordpress自带主题下载
  • 做网站大约需要多少钱注册一家有限公司需要多少钱
  • 崇左市城市投资建设有限公司网站wordpress绑定百家号
  • dw制作wap网站怎么做广州11个区排名
  • 淘宝客网站主题七牛图片样式wordpress
  • 垡头网站建设开网站做家政
  • php企业网站开发源码网站首页轮播图片素材
  • 西安网站seo收费wordpress怎么安装多说
  • 手机手机网站制作门户网站制作方法
  • 关于域名用于非网站用途小程序开发费用一览表fhq华网天下
  • 企业资产管理系统软件自动seo系统
  • wordpress首页添加站点统计小工具手机app官网免费下载
  • php网站 服务器优化视频
  • 网站内容协议外贸网站设计郑州
  • 网站自己制作孟村县网站建设
  • 网站建设存在风险济南学习做网站
  • 做投资类网站服务器做游戏交易网站有哪些
  • 网站广告怎么做英文网站建设大概多少钱
  • 纪念平台网站建设建设实业公司网站设计模板
  • 卖建材的网站网上营销模式
  • 大连旅顺博物馆西安关键词seo公司
  • 学做网站书籍找装修公司电话