適切なツールを選択 3 リスク評価 → evaluateTransactionRisk スリッページ・アドレス安全性・ガス・ デッドラインを6項目チェック 4 スワップ見積 → getSwapQuote Agni QuoterV2 に eth_call → 出力量・価格影響を取得 5 TX シミュレーション → simulateTransaction Tenderly APIでステート差分確認・WYSIWYS生成 6 外部ウォレットへハンドオフ 未署名パッケージを提示 → MetaMask等で署名・送信 // Mastra Agent Tool — getSwapQuote export const getSwapQuote = createTool({ id: "getSwapQuote", description: "Get swap quote from Agni QuoterV2", inputSchema: z.object({ tokenIn: z.string(), tokenOut: z.string(), amountIn: z.string(), network: z.enum(["mainnet", "sepolia"]), }), execute: async ({ context }) => { const client = createPublicClient({ chain: mantle, transport: http(RPC_URL), }); // Agni QuoterV2 への eth_call const quote = await client.readContract({ address: QUOTER_V2_ADDRESS, abi: QuoterV2ABI, functionName: "quoteExactInputSingle", args: [{ tokenIn, tokenOut, amountIn, fee }], }); return { amountOut: quote[0], priceImpact }; }, }); 21