找回密码
 注册

微信登录

微信扫一扫,快速登录

萍聚头条

查看: 278|回复: 0

AI智能体-MCP智能体-Trae+八字MCP打造八字智能体精准测算——AI的尽头是玄学

[复制链接]
发表于 2025-6-29 06:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册 微信登录

×
作者:微信文章
👆点击MarkShuo智能体 > 点击右上角··· > 设为星标🌟

嗨~我是MarkShuo阿里国际官方签约AI导师,企业AI咨询顾问。目前专注商业AI智能体开发、教学、企业咨询,持续分享商业智能体、流程自动化、Coze智能体模板定制、coze商业工作流搭建案例。

今天给大家带来的智能体MCP实践是Trae + 八字MCP打造八字智能体精准测算,由于上期写的八字MCP排盘算命非常的火。有粉丝说能不能出一个精准测算解盘的智能体。如您所愿他来了。只要输入姓名,姓别,年月日时,就能精准测算你的人生。让那些只会使用DeepSeek算命的人去颤抖吧。一晃我学易经都七年了。有些粉丝还不相信。这是第一讲在大连碧海观学习的的照片。因为疫情的原因把本来只需要2年的课程硬上拉长到了5年。一切都是最好的安排。因为时间拉得比较长,反而把基础打扎实了。鉴于大家对算命的热情度我们来手把手带着大家做一个八字智能体。真正意义上的做到:万事不决问AI。

w1.jpg

先我们封装一个八字测算的MCP服务,以下是服务端的代码。

func main() {

var transport string

flag.StringVar(&transport, "t", "stdio", "传输协议类型(stdio或sse)")

flag.StringVar(&transport, "transport", "stdio", "传输协议类型(stdio或sse)")

flag.Parse()

s := server.NewMCPServer(

"PaipanService",

"1.0.0",

)

paipanTool := mcp.NewTool("Paipan",

mcp.WithDescription("排盘服务,输入姓名、性别、出生时间、历法类型和省市,自动转换为API参数"),

mcp.WithString("name", mcp.Required(), mcp.Description("姓名")),

mcp.WithString("sex", mcp.Required(), mcp.Description("性别,0为男,1为女")),

mcp.WithString("calendar_type", mcp.Required(), mcp.Description("历法类型,公历填solar,农历填lunar")),

mcp.WithString("year", mcp.Required(), mcp.Description("出生年")),

mcp.WithString("month", mcp.Required(), mcp.Description("出生月")),

mcp.WithString("day", mcp.Required(), mcp.Description("出生日")),

mcp.WithString("hour", mcp.Required(), mcp.Description("出生小时")),

mcp.WithString("minute", mcp.Required(), mcp.Description("出生分钟")),

mcp.WithString("province", mcp.Required(), mcp.Description("省份")),

mcp.WithString("city", mcp.Required(), mcp.Description("城市")),

)

cesuanTool := mcp.NewTool("Cesuan",

mcp.WithDescription("测算服务,输入姓名、性别、出生时间、历法类型、省市和问题内容,自动转换为API参数"),

mcp.WithString("name", mcp.Required(), mcp.Description("姓名")),

mcp.WithString("sex", mcp.Required(), mcp.Description("性别,0为男,1为女")),

mcp.WithString("calendar_type", mcp.Required(), mcp.Description("历法类型,公历填solar,农历填lunar")),

mcp.WithString("year", mcp.Required(), mcp.Description("出生年")),

mcp.WithString("month", mcp.Required(), mcp.Description("出生月")),

mcp.WithString("day", mcp.Required(), mcp.Description("出生日")),

mcp.WithString("hour", mcp.Required(), mcp.Description("出生小时")),

mcp.WithString("minute", mcp.Required(), mcp.Description("出生分钟")),

mcp.WithString("province", mcp.Required(), mcp.Description("省份")),

mcp.WithString("city", mcp.Required(), mcp.Description("城市")),

)

s.AddTool(paipanTool, paipan)

s.AddTool(cesuanTool, cesuan)

switch transport {

case "stdio":

if err := server.ServeStdio(s); err != nil {

log.Fatalf("Server error: %v", err)

}

case "sse":

sseServer := server.NewSSEServer(s)

log.Println("MCP Paipan Service SSE started on :9000")

if err := sseServer.Start(":9000"); err != nil {

log.Fatalf("SSE server error: %v", err)

}

default:

log.Fatalf("未知的传输协议: %s (仅支持 stdio 或 sse)", transport)

}

}

核心测算部分的代码我们封装成函数,如下所示
🎨
// cesuan功能实现

func cesuan(ctx context.Context, req mcp.CallToolRequest) (*mcp.CallToolResult, error) {

params := map[string]string{}

log.Printf("cesuan请求参数: %s", req)

fields := []string{"api_key", "name", "sex", "type", "year", "month", "day", "hour", "minute", "zhen", "province", "city"}

for _, field := range fields {

val, _ := req.RequireString(field)

params[field] = val

}

// 组装API参数

apiParams := map[string]string{}

apiParams["name"] = params["name"]

apiParams["sex"] = params["sex"]

apiParams["province"] = params["province"]

apiParams["city"] = params["city"]

apiParams["hours"] = params["hour"]

if apiParams["hours"] == "" {

apiParams["hours"] = params["hour"]

}

apiParams["minute"] = params["minute"]

apiParams["year"] = params["year"]

apiParams["month"] = params["month"]

apiParams["day"] = params["day"]

apiParams["zhen"] = "1" // 默认自动真太阳时

apiParams["type"] = "1" // 默认公历

if params["calendar_type"] == "lunar" {

apiParams["type"] = "0" // 0为农历

}

// 处理性别:用户输入"男"或"女",API需要0(男)或1(女)

sexInput := params["sex"]

sexVal := "0" // 默认男

if sexInput == "女" || sexInput == "female" {

sexVal = "1"

}

apiParams["sex"] = sexVal

// 处理省市后缀

city := params["city"]

if strings.HasSuffix(city, "市") {

city = strings.TrimSuffix(city, "市")

}

apiParams["city"] = city

// 真太阳时转换

lng, lat, err := getLocation(apiParams["province"], apiParams["city"])

if err == nil {

year, _ := strconv.Atoi(apiParams["year"])

month, _ := strconv.Atoi(apiParams["month"])

day, _ := strconv.Atoi(apiParams["day"])

hour, _ := strconv.Atoi(apiParams["hours"])

minute, _ := strconv.Atoi(apiParams["minute"])

h, m, shicha := solarTimeCorrection(year, month, day, hour, minute, lng)

apiParams["hours"] = fmt.Sprintf("%d", h)

apiParams["minute"] = fmt.Sprintf("%d", m)

apiParams["jingdu"] = fmt.Sprintf("%.2f", lng)

apiParams["weidu"] = fmt.Sprintf("%.2f", lat)

apiParams["shicha"] = shicha

}

// 构造POST请求(application/x-www-form-urlencoded)

formData := make([]string, 0, len(apiParams))

for k, v := range apiParams {

formData = append(formData, fmt.Sprintf("%s=%s", k, v))

}

formBody := strings.Join(formData, "&")

log.Printf("cesuan请求参数: %s", formBody)

url := "https://api.markshuo.com/v1/Bazi/cesuan"

resp, err := http.Post(url, "application/x-www-form-urlencoded", strings.NewReader(formBody))

if err != nil {

return mcp.NewToolResultError("远程接口请求失败: " + err.Error()), nil

}

defer resp.Body.Close()

body, err := io.ReadAll(resp.Body)

if err != nil {

return mcp.NewToolResultError("读取远程接口响应失败: " + err.Error()), nil

}

result := strings.TrimSpace(string(body))

var obj map[string]interface{}

if err := json.Unmarshal(body, &obj); err == nil {

return mcp.NewToolResultText(result), nil

}

return mcp.NewToolResultText(result), nil

}

代码封装完成后,启动MCP服务供MCP客户端掉用
🎹
go run main.go -t sse

在Trae客户端中添加MCP服务,对应的配置文件如下。配置成功后会显示以下界面

{

"mcpServers": {

"MarkShuo八字排盘测算MCP": {

"url": "http://localhost:9000/sse"

}

}

}

w2.jpg

再将MCP服务封装成为智能体,以下是提示词

你是一个易经国学专家,请根据用户输入的,姓名,性别,出生年月日时,时间公历农历,出生的省市。调用Cesuan Service 服务。生成八字排盘表和测算结果。根据生成的八字排盘表以及测算结果。

按照以下的顺序生成内容:

1.八字原盘

2.八字大运

3.八字测算内容

将上面生成的内容按照下面的要求生成HTML文件。要求如下:

请设计高级的知识卡片,将日常信息以精致奢华的杂志编排呈现,让用户感受到如同翻阅高端杂志般的视觉享受。

设计风格:

样式:ios消息,符合苹果的设计美学,头像

改用UI Avatars服务生成文字头像

为每个人物设置了独特的背景色,与其消息气泡颜色相匹配:

技术规范:

    使用HTML5、Font Awesome、Tailwind CSS和必要的JavaScript

      Font Awesome: https://lf6-cdn-tos.bytecdntp.com/cdn/expire-100-M/font-awesome/6.0.0/css/all.min.css

      Tailwind CSS: https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/tailwindcss/2.2.19/tailwind.min.css

      中文字体: https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;500;600;700&family=Noto+Sans+SC:wght@300;400;500;700&display=swap

    可考虑添加微妙的动效,如页面载入时的淡入效果或微妙的悬停反馈

    确保代码简洁高效,注重性能和可维护性

    使用CSS变量管理颜色和间距,便于风格统一

输出要求:

    提供一个完整的HTML文件,

    代码应当优雅且符合最佳实践,CSS应体现出对细节的极致追求


w3.jpg

封装好智能体后,直接在对话框里提交八字信息,生成测算页面

w4.jpg

看看最终八字智能体给的测算报告如何?

w5.jpg

w6.jpg

w7.jpg

🎯 🔥🔥🔥往期精选🔥🔥🔥

AI智能体-MCP智能体-Trae+八字MCP排盘算命

AI智能体-MCP智能体-Trae + Md2Card   MCP将MD文件转换成知识卡片

Coze智能体-抖音爆款视频生成小红书笔记

Coze智能体-英语记忆王-定制画板-自定义插件-自定义Logo
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
您需要登录后才可以回帖 登录 | 注册 微信登录

本版积分规则

Archiver|手机版|AGB|Impressum|Datenschutzerklärung|萍聚社区-德国热线-德国实用信息网

GMT+2, 2025-7-8 23:45 , Processed in 0.122538 second(s), 30 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表