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

从零开始之快速搭建一个出行Agent(一)

文章目录

  • 背景介绍
  • 前置依赖
  • 上代码
    • mcp构造
    • 主函数

背景介绍

和同学聚会时分散在同城各地,找一个离大家都不远的商圈一直是比较困难的事。这里我们可以借助eino框架去超快的构建一个丐版的出行agent,帮我们解决这个问题
之所以说是丐版一是背景丐,而是实现丐

前置依赖

MCP选择:这里选择是百度千帆平台中的百度地图MCP工具
模型选择:这里大家可以自行选择支持tool call的模型即可,具体的调用过程可以参考之前的文章

上代码

因为寻找合适目的地的过程不属于一个简单问题,模型无法通过一次思考+模型调用就得出结果,所以这一定是一个react的过程,在eino中实现react agent的其中一个方式就是直接使用官方实现好的react框架,提供prompt + model + tool即可快速完成,当然你自己去写graph也是可以的,后面我们都会带大家试一试
官方代码:https://www.cloudwego.io/zh/docs/eino/core_modules/flow_integration_components/react_agent_manual/

mcp构造

这里参考的是https://www.cloudwego.io/zh/docs/eino/ecosystem_integration/tool/tool_mcp/
同时结合千帆平台提供的mcp server的地址和密钥即可

func GetBaiDuMapTool(ctx context.Context) []tool.BaseTool {sseURL := "https://mcp.map.baidu.com/sse?ak=xxxxx"cli, err := client.NewSSEMCPClient(sseURL)if err != nil {log.Fatal(err)}err = cli.Start(ctx)if err != nil {log.Fatal(err)}initRequest := mcp.InitializeRequest{}_, err = cli.Initialize(ctx, initRequest)if err != nil {log.Fatal(err)}tools, err := mcpp.GetTools(ctx, &mcpp.Config{Cli: cli})if err != nil {log.Fatal(err)}return tools
}

主函数

package mainimport ("context""soccerAgent/util""github.com/cloudwego/eino/compose""github.com/cloudwego/eino/flow/agent/react""github.com/cloudwego/eino/schema"
)func main() {ctx := context.Background()model, _ := util.GetModel()tools := util.GetBaiDuMapTool(ctx)agent, err := react.NewAgent(ctx, &react.AgentConfig{ToolCallingModel: model,ToolsConfig:      compose.ToolsNodeConfig{Tools: tools},MaxStep:          20,})if err != nil {panic(err)}prompt := "请帮我查询从北京到天津的路线,并且推荐沿途的餐馆。"res, err := agent.Stream(ctx, []*schema.Message{{Role:    schema.User,Content: prompt,},})if err != nil {panic(err)}for true {chunk, err := res.Recv()if err != nil {break}println("Response:", chunk.Content)}
}

这里的demo给出的是流式调用,但非流式也是可以的就是时间会久一些,大致代码如下
在这里插入图片描述
后续会对这个简单的agent进行持续优化,一步步熟悉用eino搭建agent的方法

http://www.dtcms.com/a/561873.html

相关文章:

  • 沈阳建设工程信息网 专家中项网东莞优化网页关键词
  • pc做网站服务器重庆沙坪坝有什么好玩的
  • 数据结构从基础到实战——排序
  • sharepoint网站开发建设网站多少费用
  • pyinstaller封装包
  • 大规模组合优化问题的统一神经分治框架(NIPS‘24)
  • Maven 详解(中)
  • 山西做网站流程步骤鉴定手表网站
  • 广州做淘宝的化妆品网站好个人网站学生作业
  • ReactNative如何处理跨平台差异和优化应用
  • 河北邯郸做wap网站微信网页版登录界面
  • 事件传递和响应者链
  • 07-神经元模型:介绍神经网络中神经元的结构和功能
  • 河南网站建设推广泰安招聘信息最新招聘2022
  • 第73题 矩阵置零
  • dw设计做网站案例使用免费的代码做网站
  • C++11新特性学习
  • 手机网站php源码网站建设课设心得
  • 网站年龄和域名年龄软件开发流程八个步骤模板
  • mybatis类型转换器
  • Vue项目中的Electron桌面应用开发实践指南
  • 如何运行asp.net网站wordpress怎么导入demo文件
  • focusPolicy/setFocusPolicy(FocusPolicy),styleSheet
  • 六.DockerFile解析及其应用部署
  • wp企业网站模板数据分析师事务所
  • AWS DMS 大规模数据库迁移:完全加载+持续复制最佳实践
  • 阿里巴巴六边形架构-从解耦到可测试的架构设计利器
  • 中国世界排名前500大学seo网上培训多少钱
  • 做网站做哪个行业好商城网站建设高端
  • 正规网站建设建设公司雅安建设局网站