V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
fushall
V2EX  ›  程序员

最近在看 AI Agent,想做 AI 助手。手搓了几个 MCP Server,业界有权威的“AI Agent 设计方法论”吗?

  •  
  •   fushall · 2 天前 · 1604 次点击

    如题,楼主最近想着用 AI 做几个助手,目前已经把工作中用到的一些东西,弄成 mcp server 了,

    (无非就是封装了几个 sql ,弄了一些 base64 的小工具。 )

    于是想着做点儿更好玩的,比如能自动采集新闻,提取单词,和我自己单词库做对比,

    或者自动生成 英文朗读语音之类的 “AI Agent”


    网上猛搜了一下,没有找到权威的“如何设计 AI Agent”类似的东西

    只有一些开源框架, 什么 autogen ,langgraph ,看了一下都太复杂了,

    于是来论坛提问,有知道的老哥可以帮指指路吗?

    其实核心需求就是能把手头的 mcp server 利用起来,让 ai agent 后台能完成一些事儿。

    像 cursor ,每次对话都让我点击确认按钮,才能运行 mcp tool ,

    需要人工参与有点繁琐。。。

    第 1 条附言  ·  2 天前

    竟然有小伙伴不知道怎么写http版本的mpc server,楼主贴个例子 ,

    from mcp.server.fastmcp import FastMCP
    
    # Create an MCP server
    mcp = FastMCP(
        "Demo",
        debug=True,
        log_level='INFO',
        host="0.0.0.0",
        port=8000,
    )
    
    
    # Add an addition tool
    @mcp.tool()
    def add(a: int, b: int) -> int:
        """Add two numbers"""
        return a + b
    
    
    # Add a dynamic greeting resource
    @mcp.resource("greeting://{name}")
    def get_greeting(name: str) -> str:
        """Get a personalized greeting"""
        return f"Hello, {name}!"
    
    
    if __name__ == '__main__':
        mcp.run('sse')
    
    
    20 条回复    2025-03-26 14:00:57 +08:00
    namonai
        1
    namonai  
       2 天前
    问 AI
    dapang1221
        2
    dapang1221  
       2 天前
    我到现在都没明白 MCP 是个啥,cursor 里配置的都是 npx 命令,不是持续的服务,每次运行才会通过 npx 启动吗,传入啥传出啥……
    fushall
        3
    fushall  
    OP
       2 天前   ❤️ 1
    @dapang1221
    mcp 说白了就是一些 http 接口,只不过这些 http 接口是规定好的,不能自己改。每个支持 mcp 协议的产品按照这个规范,可以从 mcp server 里拿数据,或者让 mcp server 完成一些功能。

    可以理解为你写了一个 web 服务器,有各种接口,并提供了 swagger ,别人可以用你提供的 swagger 规范调你的接口
    callmejoejoe
        4
    callmejoejoe  
       2 天前
    看了这个吗? https://v2ex.com/t/1119962
    感觉还好啊,晚点我也想做一些 agent 试试。
    ychost
        5
    ychost  
       2 天前   ❤️ 1
    @dapang1221 MCP 有 Local/Remote 两种实现,你说的这个是 Local 实现,npx 启动之后会通过进程通信 stdin/stdout 与 Client 通信完成 list_tools 等调用
    rev1si0n
        6
    rev1si0n  
       2 天前   ❤️ 1
    @dapang1221 MCP 支持 stdio 和 sse 作为通信渠道,你说的 npx 这种都是 command 类型,都是使用的 stdio 进行通信,即持续的读取和写入标准输入和输出来进行通信。npx 只是一种,你写 python 用 python 命令也行,官方的有 sdk ,你自己手撸协议,用 C 写都行。另一种方式就是 SSE ,这就是比较常规的了,通过 HTTP 协议进行沟通。主要有两点,一点是需要有个 SSE 端点,这个 SSE 端点会保持连接,在浏览器打开的状态就是一直处于加载中的状态。这个端点用于保持长连接以及接收服务端的响应数据,另外,在 SSE 端点打开后,服务端会推送专门的命令端点,大模型应用会通过这个端点往服务端 POST 命令,包括 tool 执行等,命令执行完后,结果应该通过 SSE 端点进行下发。个人觉得,这个协议设计的不是那么规范好用甚至感觉就是拍屁股想出来的,搞不懂为什么不用 websocket 作为传输协议,虽然貌似后期这个东西应该会支持。总之就是这么回事,别问我为什么知道,因为刚自行实现了个 MCP 服务端。
    ychost
        7
    ychost  
       2 天前   ❤️ 1
    建议去参考 OpenAI 的 Agents 开源实现,这个比较简单
    yifangtongxing28
        8
    yifangtongxing28  
       2 天前
    mcp 楼主用的 http 么,他那个 demo 好像只支持 stdio 标准连接,你实现的是类似 http 端口号连接么
    fushall
        9
    fushall  
    OP
       2 天前
    @yifangtongxing28
    用的 sse 模式呀,其实就是 http 的
    fushall
        10
    fushall  
    OP
       2 天前
    @callmejoejoe 这个已经拜读过了,内容真的非常详细。只不过里面的例子是 mcp sdk 官方 demo ,有点过于“底层”了。不是我想要的
    yifangtongxing28
        11
    yifangtongxing28  
       1 天前
    @fushall 哈哈,我跟着 github 上官方文档写了个 stduio 版本的,你这个例子贴的太及时了,python 垃圾选手搜文档都没搜到
    JustW
        12
    JustW  
       1 天前
    你这个问题是不是配置那份官方代码里的 servers_config.json 就行了.
    min
        13
    min  
       1 天前
    要合理总结你的需求,这样才可以轻松 vibe coding

    你的需求是:
    *我需要实现一个 mcp client
    *可以支持配置多个 mcp server
    *可以选择哪些 mcp server 是可用的
    *支持通过 prompt 和 claude 3.7 llm 调度所需的 mcp server 完成任务
    *任务完成过程中的步骤,用户可以选择是否需要确认
    fushall
        14
    fushall  
    OP
       1 天前
    @JustW 不是的,我想实现一个“AI 助手,不用我操心就能干活的”


    @min 感觉也不是这个东西。我想要的不是具体代码,而是 “如何设计 AI Agent” 的思路,比如应该分成哪些概念,每个概念应该做什么,如何设计才是最佳实践等等
    min
        15
    min  
       1 天前
    知乎上面找对 manus 原理的拆解文章,然后看 openmanus 和 owl 是怎么实现的
    ChristopherWu
        16
    ChristopherWu  
       1 天前
    设计规划可以看看这个: https://www.aiprotocolshub.com
    把主流的 Function Calling 、ChatML 、MCP 、ReAct 等协议的标准、教程和实现示例都汇总了一下,还有测试工具
    foolishcrab
        17
    foolishcrab  
       1 天前 via iPhone   ❤️ 1
    业界连 agent 的定义都没折腾明白呢
    说白了工业界就是大力出奇迹,等到一个库或者框架足够流行的时候它就是最佳实践,它就是定义。现在 ai 显然没到这个地步,这会去学这些都是会马上过时的
    gy0624ww
        18
    gy0624ww  
       1 天前   ❤️ 1
    cursor 中 你设置 yolo 模式,就可以自动调用 mcp 了,不需要手动点
    jruing97
        19
    jruing97  
       6 小时 58 分钟前
    请教下大佬,cursor+MCP 支持文件处理吗?
    fushall
        20
    fushall  
    OP
       2 小时 40 分钟前
    @jruing97 当然可以咯。自己手搓一个能处理文件的 mcpserver ,接入到 cursor 就行啦
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5160 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 08:41 · PVG 16:41 · LAX 01:41 · JFK 04:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.