動的ツール
動的ツールは、コンテキスト入力に基づいて実行時に動作と機能を適応させます。固定設定に依存せず、ユーザー、環境、シナリオに応じて調整することで、単一のエージェントでパーソナライズされたコンテキスト対応の応答を実現できます。
ツールの作成
runtimeContext
を通じて提供される動的な値を使用して、為替レートデータを取得するツールを作成します。
src/mastra/tools/example-exchange-rates-tool.ts
import { createTool } from "@mastra/core/tools";
import { z } from "zod";
export const getExchangeRatesTool = createTool({
id: "get-exchange-rates-tool",
description: "Gets exchanges rates for a currency",
inputSchema: z.null(),
outputSchema: z.object({
base: z.string(),
date: z.string(),
rates: z.record(z.number())
}),
execute: async ({ runtimeContext }) => {
const currency = runtimeContext.get("currency");
const response = await fetch(`https://api.frankfurter.dev/v1/latest?base=${currency}`);
const { base, date, rates } = await response.json();
return { base, date, rates };
}
});
設定オプションの詳細については、createTool()をご覧ください。
使用例
set()
を使ってRuntimeContext
を設定し、runtimeContext
を渡してexecute()
を呼び出します。
src/test-exchange-rate.ts
import { RuntimeContext } from "@mastra/core/runtime-context";
import { getExchangeRatesTool } from "../src/mastra/tools/example-exchange-rates-tool";
const runtimeContext = new RuntimeContext();
runtimeContext.set("currency", "USD");
const result = await getExchangeRatesTool.execute({
context: null,
runtimeContext
});
console.log(result);