Skip to content

theaibuilders/nosana-mastra-ai-agent-cn

Repository files navigation

Nosana x Mastra 智能体项目

基于 Mastra 框架和 Nosana 去中心化 GPU 网络构建的 AI 智能体示例项目。

项目简介

本项目展示了如何使用 Mastra 框架构建一个功能完整的 AI 智能体,该智能体可以:

  • 查询天气信息:通过调用天气工具获取全球任意城市的实时天气数据
  • 执行数学计算:支持基本算术运算和高级数学函数计算
  • 记忆对话上下文:通过持久化存储保存对话历史,支持多轮对话

技术栈

技术 说明
Mastra TypeScript 智能体框架,用于构建生产就绪的 AI 智能体
Nosana 去中心化 GPU 市场,提供经济高效的 AI 推理服务
GPT-OSS 20B 部署在 Nosana 上的开源大语言模型
TypeScript 类型安全的 JavaScript 超集
Zod TypeScript 优先的模式验证库

项目结构

src/mastra/
├── agents/
│   └── weather-agent.ts      # 天气智能体定义
├── tools/
│   ├── weather-tool.ts       # 天气查询工具
│   └── calculator-tool.ts    # 计算器工具
├── workflows/
│   └── weather-workflow.ts   # 天气工作流(获取天气 + 活动建议)
├── scorers/
│   └── weather-scorer.ts     # 智能体评分器
└── index.ts                  # Mastra 入口文件

核心功能

1. 天气智能体 (Weather Agent)

智能体是本项目的核心,它结合了:

  • LLM 模型:使用 Nosana 上部署的 GPT-OSS 20B 模型
  • 工具集成:天气查询工具和计算器工具
  • 记忆系统:持久化对话历史
  • 评分系统:监控智能体性能

2. 工具 (Tools)

天气工具

  • 通过 Open-Meteo API 获取实时天气数据
  • 支持全球城市查询
  • 返回温度、湿度、风速等详细信息

计算器工具

  • 支持基本算术运算(加减乘除)
  • 支持高级数学函数(sqrt、pow、sin、cos 等)
  • 类型安全的输入输出验证

3. 工作流 (Workflow)

天气工作流包含两个步骤:

  1. 获取天气:根据城市名称获取天气预报
  2. 活动建议:基于天气条件生成活动建议

4. 评分器 (Scorers)

  • 工具调用适当性评分器:评估智能体是否正确选择工具
  • 完整性评分器:评估响应的完整程度
  • 翻译评分器:评估非英文地名的翻译质量

快速开始

前置要求

  • Node.js 20+
  • npm 或 pnpm
  • Nosana 账户(需要预充值积分)

安装步骤

  1. 克隆项目
git clone <repository-url>
cd nosana-mastra-ai-agent-cn
  1. 安装依赖
npm install
  1. 配置环境变量

复制 .env.example.env 并填入你的 Nosana 端点:

cp .env.example .env

编辑 .env 文件:

# Nosana Ollama 端点配置
OLLAMA_API_URL=https://YOUR_NOSANA_URL_ID.node.k8s.prd.nos.ci/api
MODEL_NAME_AT_ENDPOINT=gpt-oss:20b

⚠️ 重要:请确保在 Nosana URL 末尾添加 /api

  1. 在 Nosana 上部署模型
  • 登录 Nosana Dashboard
  • 进入 Deploy 页面
  • 选择 GPT-OSS 20B 模板
  • 选择 GPU 配置(推荐 NVIDIA RTX 4090 或更高)
  • 点击部署并复制 API 端点 URL
  1. 启动开发服务器
npm run dev
  1. 访问 Playground

打开浏览器访问 http://localhost:4111/

使用示例

天气查询

"What's the weather in Tokyo?"
"北京今天天气怎么样?"
"Tell me the weather conditions in London"

数学计算

"Calculate 25 * 4 + 10"
"What is sqrt(144)?"
"Compute 2^10"

工作流测试

  1. 在 Playground 中选择 weather-workflow
  2. 输入城市名称(如 "Singapore")
  3. 观察工作流获取天气并生成活动建议

Docker 部署

# 构建镜像
docker build -t mastra-agent .

# 运行容器
docker run -p 4111:4111 --env-file .env mastra-agent

可用脚本

命令 说明
npm run dev 启动开发服务器(包含 Playground)
npm run build 构建生产版本
npm run start 启动生产服务器

相关资源

许可证

ISC

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors