Token导航 LogoToken导航TokenDH.com
研究检索external-servicegithub未标认证来源可访问clear审计提醒

mastra-hono马斯特拉霍诺

Agent Skill

mastra-hono 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

5,551

周安装

229

GitHub Stars

69

下载量

1,814
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

3

许可证

MIT

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:mastra-hono(马斯特拉霍诺)
来源仓库:https://github.com/jwynia/agent-skills
仓库路径:skills/mastra-hono
安装命令:
npx skills add https://github.com/jwynia/agent-skills --skill mastra-hono
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。不同来源提供的安装方式可能略有差异;本站展示可直接复制的安装命令,安装前请核对来源页面。

skills.shnpx skills
npx skills add https://github.com/jwynia/agent-skills --skill mastra-hono

简介

mastra-hono 用于查找、检索和筛选相关信息。

  • 适合在 Codex、Claude、Cursor、Gemini CLI 中根据关键词、任务场景或来源线索快速定位候选结果时使用。
  • 通过 npx skills add 命令从指定 GitHub 仓库安装,需确认权限和维护状态。
  • 使用前建议核实是否会触发联网、命令执行或文件读写操作。
  • 适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

SKILL.md

Mastra + Hono Development

Build production-ready AI agents, tools, and workflows using Mastra v1 Beta with Hono API servers. This skill covers the complete stack from agent definition to deployment.

Target version: Mastra v1 Beta (stable release expected January 2026)

When to Use This Skill

Use when:

  • Creating Mastra agents with tools and memory
  • Defining tools with Zod input/output schemas
  • Building workflows with multi-step data flow
  • Setting up Hono API servers with Mastra adapters
  • Implementing agent networks for multi-agent collaboration
  • Authoring MCP servers to expose agents/tools
  • Integrating RAG and conversation memory

Do NOT use when:

  • Working with Mastra stable (0.24.x) - patterns differ significantly
  • Building non-AI web APIs (use Hono directly)
  • Simple LLM calls without agents/tools

Prerequisites

  • Node.js 22.13.0+ (required for v1 Beta)
  • Package manager: npm, pnpm, or bun
  • API keys: OpenAI, Anthropic, or other supported providers
# Install v1 Beta packages
npm install @mastra/core@beta @mastra/hono@beta
npm install @ai-sdk/openai  # or other provider
npm install zod hono @hono/node-server

Quick Start

Minimal Agent + Tool + Hono Server

// src/mastra/tools/weather-tool.ts
import { createTool } from "@mastra/core/tools";
import { z } from "zod";

export const weatherTool = createTool({
  id: "get-weather",
  description: "Fetches current weather for a location",
  inputSchema: z.object({
    location: z.string().describe("City name, e.g., 'Seattle'"),
  }),
  outputSchema: z.object({
    temperature: z.number(),
    conditions: z.string(),
  }),
  // v1 Beta signature: (inputData, context)
  execute: async (inputData, context) => {
    const { location } = inputData;
    const { abortSignal } = context;

    if (abortSignal?.aborted) throw new Error("Aborted");

    // Fetch weather data...
    return { temperature: 72, conditions: "sunny" };
  },
});
// src/mastra/agents/weather-agent.ts
import { Agent } from "@mastra/core/agent";
import { openai } from "@ai-sdk/openai";
import { weatherTool } from "../tools/weather-tool.js";

export const weatherAgent = new Agent({
  name: "weather-agent",
  instructions: "You are a helpful weather assistant.",
  model: openai("gpt-4o-mini"),
  tools: { weatherTool },  // Object, not array
});
// src/mastra/index.ts
import { Mastra } from "@mastra/core/mastra";
import { weatherAgent } from "./agents/weather-agent.js";

export const mastra = new Mastra({
  agents: { weatherAgent },
});
// src/index.ts
import { serve } from "@hono/node-server";
import { Hono } from "hono";
import { MastraServer } from "@mastra/hono";
import { mastra } from "./mastra/index.js";

const app = new Hono();
const server = new MastraServer({ app, mastra });
await server.init();

app.get("/", (c) => c.text("Mastra + Hono Server"));

serve({ fetch: app.fetch, port: 3000 });
console.log("Server running at http://localhost:3000");
// Agent endpoint: POST /api/agents/weather-agent/generate

Core Patterns

Agent Definition

import { Agent } from "@mastra/core/agent";

const agent = new Agent({
  name: "my-agent",                           // Required: unique identifier
  instructions: "You are a helpful assistant.", // Required: system prompt
  model: openai("gpt-4o-mini"),               // Required: LLM model
  tools: { weatherTool, searchTool },         // Optional: object with named tools
});

// Model routing (1113+ models from 53 providers)
model: "openai/gpt-4o-mini"
model: "anthropic/claude-3-5-sonnet"
model: "google/gemini-2.5-flash"

// Model fallbacks for resilience
model: [
  { model: "anthropic/claude-3-opus", maxRetries: 3 },
  { model: "openai/gpt-4o", maxRetries: 2 },
  { model: "google/gemini-pro", maxRetries: 1 },
]

// Agent execution with memory
const response = await agent.generate("Remember my name is Alex", {
  memory: {
    thread: "conversation-123",   // Isolates conversation
    resource: "user-456",         // Associates with user
  },
});

Tool Signatures (v1 Beta - CRITICAL)

// v1 Beta: execute(inputData, context)
execute: async (inputData, context) => {
  const { location } = inputData;  // First parameter: parsed input
  const { mastra, runtimeContext, abortSignal } = context;  // Second: context

  // Access nested agents via mastra
  const helper = mastra?.getAgent("helperAgent");

  // Always check abort signal for long operations
  if (abortSignal?.aborted) throw new Error("Aborted");

  return { temperature: 72, conditions: "sunny" };
}

// WRONG for v1 Beta:
execute: async ({ context }) => { ... }  // This is stable 0.24.x signature

Workflow Data Flow (CRITICAL)

This is where most errors occur. See references/workflow-data-flow.md for complete patterns.

import { createWorkflow, createStep } from "@mastra/core/workflows";

const step1 = createStep({
  id: "step-1",
  inputSchema: z.object({ message: z.string() }),
  outputSchema: z.object({ formatted: z.string() }),
  execute: async ({ inputData }) => {
    // inputData = workflow input (for first step)
    return { formatted: inputData.message.toUpperCase() };
  },
});

const step2 = createStep({
  id: "step-2",
  inputSchema: z.object({ formatted: z.string() }),  // MUST match step1 output
  outputSchema: z.object({ emphasized: z.string() }),
  execute: async ({ inputData }) => {
    // inputData = step1's return value directly
    return { emphasized: `${inputData.formatted}!!!` };
  },
});

const workflow = createWorkflow({
  id: "my-workflow",
  inputSchema: z.object({ message: z.string() }),     // MUST match step1 input
  outputSchema: z.object({ emphasized: z.string() }), // MUST match final output
})
  .then(step1)
  .then(step2)
  .commit();

Schema matching rules:

RuleDescription
Workflow input → Step 1 inputMust match exactly
Step N output → Step N+1 inputMust match exactly
Final step output → Workflow outputMust match exactly

Data access in steps:

execute: async ({
  inputData,      // Previous step's output (or workflow input for step 1)
  getStepResult,  // Access ANY step's output by ID
  getInitData,    // Get original workflow input
  mastra,         // Access agents, tools, storage
}) => {
  const step1Result = getStepResult("step-1");
  const originalInput = getInitData();
  return { result: inputData.formatted };
}

Hono Server Setup

import { MastraServer } from "@mastra/hono";

const app = new Hono();
const server = new MastraServer({ app, mastra });
await server.init();

// Endpoints auto-registered:
// POST /api/agents/{agent-name}/generate
// POST /api/agents/{agent-name}/stream
// POST /api/workflows/{workflow-id}/start

Custom route prefix:

const server = new MastraServer({
  app,
  mastra,
  prefix: "/v1/ai"  // Routes at /v1/ai/agents/...
});

Custom API routes:

import { registerApiRoute } from "@mastra/core/server";

registerApiRoute("/my-custom-route", {
  method: "POST",
  handler: async (c) => {
    const mastra = c.get("mastra");
    const agent = mastra.getAgent("my-agent");
    const result = await agent.generate("Hello");
    return c.json({ response: result.text });
  },
});

Common Mistakes Quick Reference

TopicWrongCorrect
Importsimport {Agent} from "@mastra/core"import {Agent} from "@mastra/core/agent"
Tools arraytools: [tool1, tool2]tools: {tool1, tool2}
Memory context{threadId: "123"}{memory: {thread: "123", resource: "user"}}
Workflow datacontext.steps.step1.outputinputData or getStepResult("step-1")
After parallelinputData.resultinputData["step-id"].result
After branchinputData.resultinputData["step-id"]?.result (optional)
Nested agentsimport agent; agent.generate()mastra.getAgent("name").generate()
State mutationstate.counter++setState({...state, counter: state.counter + 1})
v1 tool execexecute: async ({context})execute: async (inputData, context)

Scripts Reference

ScriptPurposeUsage
scaffold-project.tsCreate new Mastra+Hono projectdeno run --allow-all scripts/scaffold-project.ts --name my-project
scaffold-agent.tsCreate agent with toolsdeno run --allow-all scripts/scaffold-agent.ts --name weather
scaffold-workflow.tsCreate workflow with stepsdeno run --allow-all scripts/scaffold-workflow.ts --name process-data
scaffold-tool.tsCreate tool with schemasdeno run --allow-all scripts/scaffold-tool.ts --name fetch-weather
validate-workflow-schemas.tsValidate step schema matchingdeno run --allow-read scripts/validate-workflow-schemas.ts./src/mastra/workflows/
check-version-patterns.tsDetect v1/stable pattern mixingdeno run --allow-read scripts/check-version-patterns.ts./src/mastra/

Additional Resources

Reference Files

  • references/workflow-data-flow.md - Complete data flow patterns (CRITICAL)
  • references/common-mistakes.md - Extended anti-patterns and fixes
  • references/agent-patterns.md - Agent definition deep-dive
  • references/tool-patterns.md - Tool signatures, wrappers
  • references/hono-server-patterns.md - Server setup, routes, middleware
  • references/testing-patterns.md - Vitest setup, mocking LLMs
  • references/mcp-server-patterns.md - Model Context Protocol authoring
  • references/agent-networks.md - Multi-agent collaboration, A2A
  • references/rag-memory-patterns.md - Vector stores, embeddings, memory
  • references/context-network-memory.md - Context networks for agent memory

Asset Templates

  • assets/agent-template.ts - Agent boilerplate
  • assets/tool-template.ts - Tool boilerplate (v1 signature)
  • assets/workflow-template.ts - Workflow boilerplate
  • assets/hono-server-template.ts - Hono+Mastra server setup
  • assets/vitest-setup-template.ts - Test configuration

External Documentation


Limitations

  • Targets v1 Beta only; stable (0.24.x) patterns differ significantly
  • Scripts require Deno runtime with appropriate permissions
  • MCP server patterns require MCP-compatible clients
  • Agent networks require all participating agents to be registered in same Mastra instance

Related Skills

  • research-workflow - Deep dive research for AI agent design
  • web-search - Real-time information retrieval for agents

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

04

需要参考平台分布和安装热度时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Claude Code

28.52%
按下载量换算517

OpenCode

20.87%
按下载量换算379

Codex

18.03%
按下载量换算327

Antigravity

12.2%
按下载量换算221

Gemini CLI

7.28%
按下载量换算132

windsurf

3.63%
按下载量换算66

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

可疑

权限和风险

external-service

该 Skill 可能调用第三方服务、云服务或外部模型 API,使用前需要确认账号、额度、数据发送范围和服务条款。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。

来源信息

继续浏览同类 Skills