Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

トラブルシューティング

最終更新 Markdown で表示Agent セットアップ

このセクションでは、トラブルシューティング用のツールと、よくあるエラーへの対処を説明します。

ログ

Workers の一般的な ログ 機能は、embedded function calling でも使えます。

関数の呼び出し

ツールの呼び出しは、通常の Worker と同様に console.log() で記録できます。

ツール呼び出しのログts
export default {
	async fetch(request, env, ctx) {
		const sum = (args: { a: number; b: number }): Promise<string> => {
			const { a, b } = args;
      // Logging from within embedded function invocations
      console.log(`The sum function has been invoked with the arguments a: ${a} and b: ${b}`)
			return Promise.resolve((a + b).toString());
		};
    ...
  }
}

runWithTools 内のログ

runWithTools 関数には verbose モードがあります。関数呼び出しのデバッグや、入出力の統計に役立つログを出力します。

verbose モードを有効にするts
const response = await runWithTools(
  env.AI,
  '@hf/nousresearch/hermes-2-pro-mistral-7b',
  {
    messages: [
      ...
    ],
    tools: [
      ...
    ],
  },
  // Enable verbose mode
  { verbose: true }
);

パフォーマンス

埋め込み関数で LLM のプロンプトに応答するには、AI 推論リクエストと関数呼び出しが複数回必要になることがあり、ユーザー体験に影響します。

パフォーマンスを上げるには、次を検討してください。

  • プロンプトを短くする(入力処理の時間を減らします)
  • 渡すツールの数を減らす
  • 最終応答をエンドユーザーへストリーミングする(操作開始までの時間を短くします)。次の例を参照してください。
ストリーミング応答の例ts
async fetch(request, env, ctx) {
  const response = (await runWithTools(
    env.AI,
    '@hf/nousresearch/hermes-2-pro-mistral-7b',
    {
      messages: [
        ...
      ],
      tools: [
        ...
      ],
    },
    {
      // Enable response streaming
      streamFinalResponse: true,
    }
  )) as ReadableStream;

  // Set response headers for streaming
  return new Response(response, {
    headers: {
      'content-type': 'text/event-stream',
    },
  });
}

よくあるエラー

BadInput エラーが出る場合、入力が現行モデルのコンテキストウィンドウを超えていることがあります。入力トークンを減らして、このエラーを解消してください。

役に立ちましたか?