{"id":682284,"date":"2026-02-18T10:02:08","date_gmt":"2026-02-18T09:02:08","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=ai&#038;p=682284"},"modified":"2026-02-18T10:41:19","modified_gmt":"2026-02-18T09:41:19","slug":"ai-kotlin-3","status":"publish","type":"ai","link":"https:\/\/blog.jetbrains.com\/ja\/ai\/2026\/02\/ai-kotlin-3\/","title":{"rendered":"AI \u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3092 Kotlin \u3067\u69cb\u7bc9\u3059\u308b \uff0d \u7b2c 3 \u56de\uff1a\u89b3\u6e2c"},"content":{"rendered":"<p><em>\u3053\u306e\u9023\u8f09\u306e\u904e\u53bb\u8a18\u4e8b:<\/em><\/p>\n<ol>\n<li><a href=\"https:\/\/blog.jetbrains.com\/ja\/ai\/2026\/02\/ai-kotlin-1\/\">AI \u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3092 Kotlin \u3067\u69cb\u7bc9\u3059\u308b \uff0d \u7b2c 1 \u56de\uff1a\u30df\u30cb\u30de\u30eb\u306a\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306e\u5b9f\u88c5<\/a><\/li>\n<li><a href=\"https:\/\/blog.jetbrains.com\/ja\/ai\/2026\/02\/ai-kotlin-2\/\">AI \u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3092 Kotlin \u3067\u69cb\u7bc9\u3059\u308b \uff0d \u7b2c 2 \u56de\uff1a\u30c4\u30fc\u30eb\u306e\u6df1\u6398\u308a<\/a><\/li>\n<\/ol>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n<p>\u3053\u306e\u9023\u8f09\u306e\u7b2c 2 \u56de\u304c\u7d42\u4e86\u3057\u3001\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u304c\u304b\u306a\u308a\u306e\u51e6\u7406\u3092\u884c\u3048\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u63a2\u7d22\u3001\u30b3\u30fc\u30c9\u306e\u8aad\u307f\u66f8\u304d\u3001\u30b7\u30a7\u30eb\u30b3\u30de\u30f3\u30c9\u306e\u5b9f\u884c\u3001\u304a\u3088\u3073\u30c6\u30b9\u30c8\u306e\u5b9f\u884c\u3092\u884c\u3048\u307e\u3059\u3002\u524d\u56de\u306e\u8a18\u4e8b\u3067\u5b8c\u4e86\u306e\u5b9a\u7fa9\uff08DoD\uff09\u3092\u8ffd\u52a0\u3057\u305f\u3053\u3068\u3067\u3001\u5fc5\u8981\u3068\u3055\u308c\u3066\u3044\u305f\u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af\u30eb\u30fc\u30d7\u304c\u5b8c\u6210\u3057\u3001\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u304c\u5b8c\u4e86\u3092\u5224\u65ad\u3059\u308b\u307e\u3067\u3067\u306f\u306a\u304f\u3001\u3059\u3079\u3066\u306e\u30c6\u30b9\u30c8\u304c\u5408\u683c\u3059\u308b\u307e\u3067\u51e6\u7406\u3092\u53cd\u5fa9\u3059\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002<\/p>\n<p>\u3053\u308c\u306f\u559c\u3076\u3079\u304d\u3053\u3068\u3067\u3057\u3087\u3046\u304b\uff1f \u3044\u3044\u3048\u3001\u305d\u3046\u3068\u3082\u8a00\u3044\u5207\u308c\u307e\u305b\u3093\u3002<\/p>\n<p>\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306e\u6a5f\u80fd\u304c\u5897\u3048\u3066\u3044\u304f\u3068\u3001\u30c7\u30d0\u30c3\u30b0\u306f\u3055\u3089\u306b\u56f0\u96e3\u306b\u306a\u308a\u307e\u3059\u3002\u30c4\u30fc\u30eb\u3054\u3068\u306b\u30b5\u30fc\u30d5\u30a7\u30b9\u30a8\u30ea\u30a2\u304c\u5897\u3048\u308b\u304b\u3089\u3067\u3059\u3002DoD \u30eb\u30fc\u30d7\u306b\u3088\u308a\u3001\u547c\u3073\u51fa\u3057\u3084\u30c8\u30fc\u30af\u30f3\u3082\u5897\u52a0\u3057\u307e\u3059\u3002\u8a55\u4fa1\u306e\u5b9f\u884c\u306b\u306f\u6570\u6642\u9593\u304b\u304b\u308b\u3053\u3068\u3082\u3042\u308a\u3001\u4f55\u304b\u304c\u5931\u6557\u3057\u305f\u5834\u5408\u3001\u4f55\u304c\u5931\u6557\u3057\u3001\u305d\u306e\u554f\u984c\u306e\u539f\u56e0\u304c\u4f55\u306a\u306e\u304b\u306f\u3063\u304d\u308a\u3057\u306a\u3044\u3053\u3068\u306f\u3088\u304f\u3042\u308a\u307e\u3059\u3002<\/p>\n<p>\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306f\u30bf\u30b9\u30af\u3092\u89e3\u6c7a\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3082\u306e\u306e\u3001 \u3069\u306e\u3088\u3046\u306b\u89e3\u6c7a\u3057\u3066\u3044\u308b\u306e\u304b\u306f\u6b8b\u5ff5\u306a\u304c\u3089\u5206\u304b\u308a\u307e\u305b\u3093\u3002<\/p>\n<p>\u3053\u308c\u306f\u3001\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306e\u6539\u5584\u3084\u5931\u6557\u306e\u30c7\u30d0\u30c3\u30b0\u3001\u307e\u305f\u306f\u30b3\u30b9\u30c8\u306e\u898b\u7a4d\u306e\u969b\u306b\u554f\u984c\u3068\u306a\u308a\u307e\u3059\u3002\u3053\u306e\u8a18\u4e8b\u3067\u306f\u3001\u3053\u306e\u3088\u3046\u306a\u4e0d\u660e\u78ba\u3055\u306e\u89e3\u6d88\u306b\u53d6\u308a\u7d44\u307f\u307e\u3059\u3002\u5206\u304b\u308a\u3084\u3059\u3044\u3082\u306e\uff08\u3042\u307e\u308a\u52b9\u679c\u304c\u306a\u3044\u3082\u306e\uff09\u304b\u3089\u7740\u624b\u3057\u3001LLM \u30a2\u30d7\u30ea\u7528\u306e\u4e00\u822c\u7684\u306a\u53ef\u89b3\u6e2c\u6027\u30c4\u30fc\u30eb\u3092\u78ba\u8a8d\u3057\u3001Langfuse \u3092\u4f7f\u7528\u3057\u3066\u30c8\u30ec\u30fc\u30b9\u6a5f\u80fd\u3092\u7d44\u307f\u8fbc\u307f\u307e\u3059\u3002\u3053\u308c\u306b\u3088\u308a\u3001\u30a2\u30af\u30b7\u30e7\u30f3\u3042\u305f\u308a\u306e\u30b3\u30b9\u30c8\u3092\u542b\u3081\u3001\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306e\u30a2\u30af\u30b7\u30e7\u30f3\u3092\u30b9\u30c6\u30c3\u30d7\u3054\u3068\u306b\u628a\u63e1\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002\u3053\u306e\u904e\u7a0b\u3067\u306f\u52d5\u4f5c\u30d1\u30bf\u30fc\u30f3\u304c\u660e\u3089\u304b\u306b\u306a\u308a\u3001\u5b58\u5728\u3059\u3089\u77e5\u3089\u306a\u304b\u3063\u305f\u30d0\u30b0\u3082\u898b\u3064\u304b\u308a\u307e\u3059\u3002<\/p>\n<p>\u3067\u306f\u3001\u4f55\u304c\u4e0d\u8db3\u3057\u3066\u3044\u308b\u306e\u304b\u3092\u7406\u89e3\u3059\u308b\u3053\u3068\u304b\u3089\u59cb\u3081\u307e\u3057\u3087\u3046\u3002<\/p>\n<h2 class=\"wp-block-heading\">\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306e\u30b9\u30c8\u30fc\u30ea\u30fc<\/h2>\n<p>\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u304c\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u30bf\u30b9\u30af\u3092\u5b8c\u4e86\u3059\u308b\u3068\u3001\u3053\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u307f\u53d6\u308b\u3001\u3042\u306e\u95a2\u6570\u3092\u89e3\u6790\u3059\u308b\u3001\u3053\u306e\u30b3\u30fc\u30c9\u3092\u5909\u66f4\u3059\u308b\u3001\u3053\u308c\u3089\u306e\u30c6\u30b9\u30c8\u3092\u5b9f\u884c\u3059\u308b\u3068\u3044\u3063\u305f\u6c7a\u5b9a\u3068\u30a2\u30af\u30b7\u30e7\u30f3\u304b\u3089\u69cb\u6210\u3055\u308c\u308b\u30c1\u30a7\u30fc\u30f3\u304c\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306b\u3088\u3063\u3066\u751f\u6210\u3055\u308c\u307e\u3059\u3002\u3053\u306e\u30c1\u30a7\u30fc\u30f3\u306f\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u304c\u3069\u306e\u3088\u3046\u306a\u8ecc\u8de1\u3092\u305f\u3069\u308a\u3001\u3069\u306e\u3088\u3046\u306b\u6a5f\u80fd\u3059\u308b\u306e\u304b\u3092\u4f1d\u3048\u307e\u3059\u3002<\/p>\n<p>\u8ecc\u8de1\u306f\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u304c\u6642\u9593\u3092\u7121\u99c4\u306b\u3057\u3066\u3044\u308b\u7b87\u6240\u3084\u8d77\u52d5\u304b\u3089\u5916\u308c\u305f\u7b87\u6240\u3092\u660e\u78ba\u306b\u3059\u308b\u305f\u3081\u3001\u91cd\u8981\u3067\u3059\u3002\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u304c\u540c\u3058\u30d5\u30a1\u30a4\u30eb\u3092 47 \u56de\u8aad\u307f\u53d6\u3063\u3066\u3044\u308b\u3053\u3068\u3084\u3001\u5358\u7d14\u306a\u30d0\u30b0\u4fee\u6b63\u3092\u4f9d\u983c\u3057\u305f\u306e\u306b\u30b3\u30fc\u30c9\u30d9\u30fc\u30b9\u306e\u534a\u5206\u3092\u66f8\u304d\u76f4\u3057\u305f\u7406\u7531\u304c\u793a\u3055\u308c\u307e\u3059\u3002\u7aef\u7684\u306b\u8a00\u3048\u3070\u3001\u89b3\u6e2c\u4e0d\u53ef\u80fd\u306a\u3082\u306e\u306f\u6539\u5584\u3067\u304d\u307e\u305b\u3093\u3002<\/p>\n<p>\u3053\u308c\u307e\u3067\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u5358\u7d14\u306a\u69cb\u6210\u3067\u9032\u3081\u3066\u304d\u307e\u3057\u305f\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"kotlin\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">handleEvents {  \n    onToolCallStarting { ctx -&gt;  \n        println(\"Tool '${ctx.tool.name}' called with args: ${ctx.toolArgs.toString().take(100)}\")  \n    }  \n}<\/pre>\n<p>\u6700\u521d\u306e\u6bb5\u968e\u3067\u306f\u3053\u306e\u69cb\u6210\u3067\u3082\u5341\u5206\u3067\u3001 \u5c11\u306a\u304f\u3068\u3082\u52d5\u4f5c\u306f\u793a\u3055\u308c\u307e\u3057\u305f\u3002\u3057\u304b\u3057\u3001\u305d\u308c\u4ee5\u4e0a\u306e\u60c5\u5831\u304c\u5fc5\u8981\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002\u5b8c\u5168\u306a\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3068\u89b3\u6e2c\u5024\u304c\u306a\u3051\u308c\u3070\u3001\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306e\u52d5\u4f5c\u3092\u5341\u5206\u306b\u628a\u63e1\u3067\u304d\u307e\u305b\u3093\u3002\u307e\u305f\u3001\u4f55\u3082\u304b\u3082\u51fa\u529b\u3059\u308c\u3070\u3001\u30b3\u30f3\u30bd\u30fc\u30eb\u306e\u51fa\u529b\u306f\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u30c0\u30f3\u30d7\u3001\u30d5\u30a1\u30a4\u30eb\u306e\u5185\u5bb9\u3001\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u3059\u3079\u3066\u6df7\u5728\u3057\u3001\u30ce\u30a4\u30ba\u3068\u5316\u3057\u3066\u3057\u307e\u3044\u307e\u3059\u3002<\/p>\n<p>\u3082\u3063\u3068\u512a\u308c\u305f\u30c4\u30fc\u30eb\u304c\u5fc5\u8981\u3067\u3059\u3002<\/p>\n<h3 class=\"wp-block-heading\">\u300c\u5358\u306b\u30ed\u30b0\u3092\u8a18\u9332\u3059\u308b\u300d<\/h3>\n<p>\u307e\u305a\u306f\u5206\u304b\u308a\u3084\u3059\u3044\u89e3\u6c7a\u7b56\u304b\u3089\u8a66\u3057\u3066\u307f\u307e\u3057\u3087\u3046\u3002<a href=\"https:\/\/docs.koog.ai\/\" target=\"_blank\" rel=\"noopener\">Koog<\/a> \u306b\u306f\u30c7\u30d0\u30c3\u30b0\u30ed\u30b0\u3092\u8a18\u9332\u3059\u308b\u4ed5\u7d44\u307f\u304c\u3042\u308b\u305f\u3081\u3001Logback \u3092 <code>ERROR<\/code> \u304b\u3089 <code>DEBUG<\/code> \u306b\u5207\u308a\u66ff\u3048\u3066\u304b\u3089\u518d\u5b9f\u884c\u3057\u307e\u3059\u3002<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-668118\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/12\/image-23.png\" alt=\"\" width=\"1600\" height=\"1102\" \/><\/figure>\n<p>3 \u5206\u304c\u904e\u304e\u3066\u5927\u91cf\u306e\u884c\u304c\u51fa\u529b\u3055\u308c\u305f\u5f8c\u2026\u3002\u6709\u76ca\u306a\u60c5\u5831\u304c\u3042\u308a\u307e\u3059\u304b\uff1f \u3042\u308a\u307e\u3059\u3002\u4fbf\u5229\u306a\u60c5\u5831\u3067\u3059\u304b\uff1f \u9055\u3044\u307e\u3059\u306d\uff01<\/p>\n<p>\u8a73\u7d30\u30ed\u30b0\u306b\u306f\u305d\u308c\u306b\u9069\u3057\u305f\u7528\u9014\u304c\u3042\u308a\u307e\u3059\u3002\u672c\u756a\u3067\u306f\u4e8b\u5f8c\u691c\u8a3c\u306b\u5f79\u7acb\u3064\u3067\u3057\u3087\u3046\u3002\u307e\u305f\u3001\u4f55\u5ea6\u3082\u5b9f\u884c\u3059\u308b\u5834\u5408\u306e\u30a4\u30f3\u30b5\u30a4\u30c8\u306e\u62bd\u51fa\u3084\u884c\u52d5\u30d1\u30bf\u30fc\u30f3\u306e\u89e3\u6790\u306b\u3082\u5f79\u7acb\u3064\u3067\u3057\u3087\u3046\u3002\u3057\u304b\u3057\u30011 \u56de\u306e\u5b9f\u884c\u3092\u30c7\u30d0\u30c3\u30b0\u3057\u3066\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u304c\u30eb\u30fc\u30d7\u5185\u3067\u52d5\u304b\u306a\u304f\u306a\u3063\u305f\u7406\u7531\u3092\u7406\u89e3\u3059\u308b\u5834\u5408\u3001\u7d71\u8a08\u7684\u306a\u89e3\u6790\u3067\u306f\u306a\u304f\u3001\u4eba\u9593\u304c\u7406\u89e3\u3067\u304d\u308b\u3088\u3046\u306b\u4f5c\u3089\u308c\u305f\u3082\u306e\u304c\u5fc5\u8981\u3067\u3059\u3002<\/p>\n<h3 class=\"wp-block-heading\">\u8cc7\u91d1\u306e\u6d41\u308c<\/h3>\n<p>\u3053\u306e\u3088\u3046\u306a\u30ed\u30b0\u306f\u30c7\u30d0\u30c3\u30b0\u306b\u6700\u9069\u3067\u306f\u306a\u3044\u3082\u306e\u306e\u3001\u4ed6\u306b\u8ffd\u8de1\u3059\u3079\u304d\u3082\u306e\u304c\u3042\u308b\u3053\u3068\u3092\u601d\u3044\u51fa\u3055\u305b\u3066\u304f\u308c\u307e\u3057\u305f\u3002\u5177\u4f53\u7684\u306b\u306f\u4f7f\u7528\u7d71\u8a08\u3067\u3059\u3002OpenAI \u306e\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\u3067\u306f\u3001\u5404\u30ad\u30fc\u306e API \u6d88\u8cbb\u7387\u306e\u8a73\u7d30\u3092\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002\u3053\u308c\u3092\u898b\u308b\u3068\u3001\u4e88\u7b97\u3092\u4f7f\u3044\u679c\u305f\u3057\u3066\u3044\u308b\u304b\u3068\u3044\u3046\u7591\u554f\u306e\u7b54\u3048\u304c\u3059\u3050\u306b\u898b\u3064\u304b\u308a\u307e\u3059\u3002<\/p>\n<p>\u3057\u304b\u3057\u3001\u958b\u767a\u4e2d\u306b\u91cd\u8981\u306a\u300c\u4f55\u306b\u30b3\u30b9\u30c8\u304c\u304b\u304b\u3063\u3066\u3044\u308b\u306e\u304b\u300d\u3068\u3044\u3046\u7591\u554f\u306b\u5bfe\u3059\u308b\u7b54\u3048\u306f\u5206\u304b\u308a\u307e\u305b\u3093\u3002<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-668129\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/12\/image-24.png\" alt=\"\" width=\"1580\" height=\"868\" \/><\/figure>\n<p>1 \u9031\u9593\u3067 $25 \u304b\u304b\u308b\u3053\u3068\u306f\u5206\u304b\u308a\u307e\u3059\u3002\u6709\u76ca\u306a\u60c5\u5831\u3067\u306f\u3042\u308a\u307e\u3059\u304c\u3001\u5168\u4f53\u50cf\u306f\u3064\u304b\u3081\u307e\u305b\u3093\u3002OpenAI \u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\u306f\u7d44\u7e54\u30ec\u30d9\u30eb\u3067\u306e API \u4f7f\u7528\u7387\u3092\u8ffd\u8de1\u3059\u308b\u3068\u3044\u3046\u76ee\u7684\u3092\u679c\u305f\u3057\u3066\u306f\u3044\u307e\u3059\u304c\u3001 \u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u958b\u767a\u306b\u306f\u5b9f\u884c\u30ec\u30d9\u30eb\u3067\u306e\u30a4\u30f3\u30b5\u30a4\u30c8\u304c\u5fc5\u8981\u3067\u3059\u3002\u5408\u8a08\u306f\u78ba\u8a8d\u3067\u304d\u3066\u3082\u3001\u3069\u306e\u30bf\u30b9\u30af\u306b $0.50 \u304b\u304b\u308a\u3001\u3069\u308c\u306b $5.00 \u304b\u304b\u3063\u3066\u3044\u308b\u306e\u304b\u306f\u5206\u304b\u308a\u307e\u305b\u3093\u3002<\/p>\n<p>\u3055\u3089\u306b\u3001\u6d41\u52d5\u7684\u306a\u8981\u7d20\u3092\u8ffd\u52a0\u3057\u3066\u307f\u307e\u3057\u3087\u3046\u3002\u4f5c\u696d\u3092\u30b5\u30d6\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306b\u5206\u5272\u3057\u3001\u7279\u5b9a\u306e\u30b9\u30c6\u30c3\u30d7\u306b\u7570\u306a\u308b\u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u3092\u4f7f\u7528\u3057\u305f\u5834\u5408\uff08\u4eca\u5f8c\u306e\u8a18\u4e8b\u3067\u8aac\u660e\u3057\u307e\u3059\uff09\u3001\u5404\u5b9f\u884c\u306e\u5b9f\u969b\u306e\u30b3\u30b9\u30c8\u3092\u78ba\u8a8d\u3067\u304d\u308b\u30d3\u30e5\u30fc\u304c 1 \u3064\u3082\u306a\u3044\u8907\u6570\u306e\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\u304c\u4f5c\u6210\u3055\u308c\u3066\u3057\u307e\u3044\u307e\u3059\u3002\u3055\u3089\u306b\u3001\u8907\u6570\u306e\u30e6\u30fc\u30b6\u30fc\u304c\u540c\u3058\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u69cb\u6210\u3092\u5171\u6709\u3057\u3066\u3044\u308b\u5834\u5408\u3001\u8ab0\u304c\u4f55\u3092\u3069\u3053\u3067\u8cbb\u3084\u3057\u305f\u306e\u304b\u3092\u628a\u63e1\u3059\u308b\u306e\u306f\u3055\u3089\u306b\u96e3\u3057\u304f\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>API \u30ad\u30fc\u306b\u3088\u308b\u624b\u6cd5\u306f 1 \u3064\u306e\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u30011 \u3064\u306e\u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u3001\u9650\u3089\u308c\u305f\u5b9f\u884c\u306e\u5834\u5408\u306b\u306f\u6709\u52b9\u3067\u3059\u3002\u6700\u521d\u306e\u5165\u53e3\u306b\u306f\u306a\u308a\u307e\u3059\u304c\u3001\u62e1\u5f35\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002\u53ef\u89b3\u6e2c\u6027\u304c\u5fc5\u8981\u3067\u3059\u3002<\/p>\n<h3 class=\"wp-block-heading\">4 \u884c\u306e\u7d71\u5408<\/h3>\n<p>\u3053\u306e\u3088\u3046\u306a\u554f\u984c\u306b\u76f4\u9762\u3059\u308b\u306e\u306f\u521d\u3081\u3066\u306e\u3053\u3068\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002\u904e\u53bb\u6570\u5e74\u306b\u308f\u305f\u308a\u3001LLM \u30a2\u30d7\u30ea\u3068\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3092\u4e2d\u5fc3\u306b\u53ef\u89b3\u6e2c\u6027\u30c4\u30fc\u30eb\u306e\u30a8\u30b3\u30b7\u30b9\u30c6\u30e0\u304c\u5f62\u6210\u3055\u308c\u3066\u304d\u307e\u3057\u305f\u3002Weights &amp; Biases Weave \u3084 LangSmith \u306a\u3069\u306e\u72ec\u81ea\u30c4\u30fc\u30eb\u3060\u3051\u3067\u306a\u304f\u3001Langfuse\u3001Opik\u3001Arize Phoenix\u3001OpenLLMetry\u3001Helicone\u3001OpenLIT\u3001Lunary \u306e\u3088\u3046\u306a\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u306e\u9078\u629e\u80a2\u3082\u3042\u308a\u307e\u3059\u3002\u30af\u30e9\u30a6\u30c9\u30d9\u30fc\u30b9\u306e\u3082\u306e\u3082\u3042\u308c\u3070\u3001\u30bb\u30eb\u30d5\u30db\u30b9\u30c8\u3092\u30b5\u30dd\u30fc\u30c8\u3059\u308b\u3082\u306e\u3001\u4e21\u65b9\u3092\u63d0\u4f9b\u3059\u308b\u3082\u306e\u3082\u3042\u308a\u307e\u3059\u3002\u305d\u308c\u305e\u308c\u306b\u56fa\u6709\u306e\u5f37\u307f\u3084\u30c8\u30ec\u30fc\u30c9\u30aa\u30d5\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<p>\u3044\u304f\u3064\u304b\u306e\u9078\u629e\u80a2\u3092\u8a55\u4fa1\u3057\u305f\u7d50\u679c\u3001JetBrains \u306e\u30c1\u30fc\u30e0\u306f Langfuse \u3092\u9078\u629e\u3057\u307e\u3057\u305f\u3002\u3053\u308c\u306f\u3001\u30bb\u30eb\u30d5\u30db\u30b9\u30c8\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\uff08\u30c8\u30ec\u30fc\u30b9\u3092\u81ea\u5206\u3067\u7ba1\u7406\u3067\u304d\u308b\uff09\u3092\u5099\u3048\u305f\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u3067\u3042\u308a\u3001\u6700\u521d\u306b\u7121\u6599\u306e\u30af\u30e9\u30a6\u30c9\u5229\u7528\u67a0\u304c\u63d0\u4f9b\u3055\u308c\u3066\u304a\u308a\u3001\u30c8\u30ec\u30fc\u30b9\u3092\u8abf\u67fb\u3057\u3084\u3059\u3044 UI \u304c\u5099\u308f\u3063\u3066\u304a\u308a\u3001\u7591\u554f\u304c\u751f\u3058\u3066\u3082\u30c1\u30fc\u30e0\u304c\u3059\u3050\u306b\u5bfe\u5fdc\u3067\u304d\u308b\u3068\u3044\u3046\u73fe\u5b9f\u7684\u306a\u8981\u56e0\u306b\u57fa\u3065\u304f\u6c7a\u5b9a\u3067\u3059\u3002<\/p>\n<p>\u7d71\u5408\u305d\u306e\u3082\u306e\u306f\u5358\u7d14\u660e\u5feb\u3067\u3001 \u4ee5\u4e0b\u306e\u3088\u3046\u306b Koog \u306b 4 \u884c\u306e\u30b3\u30fc\u30c9\u3092\u8ffd\u52a0\u3057\u3066 Langfuse \u306b\u63a5\u7d9a\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"kotlin\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">) {\n+   install(OpenTelemetry) {  \n+       setVerbose(true) \n+       addLangfuseExporter()  \n+   }\n    handleEvents {  \n        \/\/ existing handlers remain\n    }\n}<\/pre>\n<p>\u3053\u308c\u3060\u3051\u3067\u3059\u3002<\/p>\n<aside style=\"background: #f8f9fa; border-left: 4px solid #007bff; padding: 1rem 1.5rem; margin: 1.5rem 0; border-radius: 4px;\">\n<p style=\"margin: 0; color: #555;\">\u4ed6\u306e OpenTelemetry \u5bfe\u5fdc\u30b5\u30fc\u30d3\u30b9\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u306f\u3001<a href=\"https:\/\/docs.koog.ai\/opentelemetry-support\/#opentelemetry-http-exporter\" target=\"_blank\" rel=\"noopener\">\u6c4e\u7528\u7684\u306a OpenTelemetry \u7d71\u5408<\/a>\u3082\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002<\/p>\n<\/aside>\n<p><code>setVerbose(true)<\/code> \u306b\u3064\u3044\u3066: Koog \u306f\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u30c6\u30ec\u30e1\u30c8\u30ea\u306e\u30e1\u30bf\u30c7\u30fc\u30bf\u306e\u307f\u3092\u9001\u4fe1\u3057\u307e\u3059\u3002\u3059\u3079\u3066\u306e\u8a73\u7d30\u306f\u3001\u8a73\u7d30\u30e2\u30fc\u30c9\u3092\u6709\u52b9\u306b\u3057\u305f\u5834\u5408\u306b\u306e\u307f\u304c\u9001\u4fe1\u3055\u308c\u307e\u3059\u3002\u30d7\u30ed\u30f3\u30d7\u30c8\u3068\u5fdc\u7b54\u306f\u975e\u8868\u793a\u306e\u307e\u307e\u3067\u3059\u304c\u3001\u30c8\u30ec\u30fc\u30b9\u306b\u9867\u5ba2\u30c7\u30fc\u30bf\u3092\u542b\u3081\u3089\u308c\u308b\u305f\u3081\u3001\u3053\u308c\u306f\u5408\u7406\u7684\u3068\u8a00\u3048\u307e\u3059\u3002\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3092\u958b\u767a\u3059\u308b\u969b\u306f\u5f80\u3005\u306b\u3057\u3066\u3059\u3079\u3066\u3092\u660e\u78ba\u306b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u304c\u3001\u8a73\u7d30\u30e2\u30fc\u30c9\u306a\u3089\u53ef\u80fd\u3067\u3059\u3002<\/p>\n<p>Langfuse \u306e\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u306b\u306f 5 \u5206\u307b\u3069\u304b\u304b\u308a\u307e\u3059\u3002\u3053\u306e\u8a18\u4e8b\u3067\u306f\u7121\u6599\u306e\u30af\u30e9\u30a6\u30c9\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u4f7f\u7528\u3057\u3066\u3044\u307e\u3059\u304c\u3001<a href=\"https:\/\/langfuse.com\/self-hosting\/deployment\/docker-compose\" target=\"_blank\" rel=\"noopener\">Docker \u3067\u30d5\u30eb\u30b9\u30bf\u30c3\u30af\u3092\u30ed\u30fc\u30ab\u30eb\u306b<\/a>\u5b9f\u884c\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002<\/p>\n<ol>\n<li><a href=\"https:\/\/cloud.langfuse.com\/\" target=\"_blank\" rel=\"noopener\">cloud.langfuse.com<\/a> \u3067\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<\/li>\n<li>\u7d44\u7e54\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<\/li>\n<li>\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u4f5c\u6210.<\/li>\n<li><em>Create API Key<\/em>\uff08API \u30ad\u30fc\u3092\u4f5c\u6210\uff09\u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002<\/li>\n<\/ol>\n<p>\u6b21\u306e 3 \u3064\u306e\u5024\u304c\u5f97\u3089\u308c\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">export LANGFUSE_HOST=\"https:\/\/cloud.langfuse.com\"\nexport LANGFUSE_PUBLIC_KEY=\"\"\nexport LANGFUSE_SECRET_KEY=\"\"<\/pre>\n<p>Koog \u306f\u3053\u308c\u3089\u306e\u5024\u3092\u5b9f\u884c\u74b0\u5883\u304b\u3089\u8aad\u307f\u53d6\u308a\u307e\u3059\u3002\u30b3\u30fc\u30c9\u3067\u5024\u3092\u6e21\u3059\u5fc5\u8981\u304c\u3042\u308b\u5834\u5408\u306f\u3001<code>addLangfuseExporter<\/code> \u306b\u76f4\u63a5\u6e21\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u53ef\u89b3\u6e2c\u6027\u3092\u6709\u52b9\u306b\u3057\u3066\u5b8c\u6210\u3057\u305f\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"kotlin\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">val executor = simpleOpenAIExecutor(System.getenv(\"OPENAI_API_KEY\"))\nval agent = AIAgent(\n    promptExecutor = executor,\n    llmModel = OpenAIModels.Chat.GPT5Codex,\n    toolRegistry = ToolRegistry {\n        tool(ListDirectoryTool(JVMFileSystemProvider.ReadOnly))\n        tool(ReadFileTool(JVMFileSystemProvider.ReadOnly))\n        tool(EditFileTool(JVMFileSystemProvider.ReadWrite))\n        tool(ExecuteShellCommandTool(JvmShellCommandExecutor(), PrintShellCommandConfirmationHandler()))\n    },\n    systemPrompt = \"\"\"\n        You are a highly skilled programmer tasked with updating the provided codebase according to the given task.\n        Your goal is to deliver production-ready code changes that integrate seamlessly with the existing codebase and solve given task.\n        Ensure minimal possible changes done - that guarantees minimal impact on existing functionality.\n        \n        You have shell access to execute commands and run tests.\n        After investigation, define expected behavior with test scripts, then iterate on your implementation until the tests pass.\n        Verify your changes don't break existing functionality through regression testing, but prefer running targeted tests over full test suites.\n        Note: the codebase may be fully configured or freshly cloned with no dependencies installed - handle any necessary setup steps.\n        \"\"\".trimIndent(),\n    strategy = singleRunStrategy(ToolCalls.SEQUENTIAL),\n    maxIterations = 400\n) {\n    install(OpenTelemetry) {\n        setVerbose(true) \/\/ Send full strings instead of HIDDEN placeholders\n        addLangfuseExporter()\n    }\n    handleEvents {\n        onToolCallStarting { ctx -&gt;\n            println(\"Tool '${ctx.tool.name}' called with args: ${ctx.toolArgs.toString().take(100)}\")\n        }\n    }\n}<\/pre>\n<h3 class=\"wp-block-heading\">\u6700\u521d\u306e\u30c8\u30ec\u30fc\u30b9<\/h3>\n<p>\u5358\u7d14\u306a\u30bf\u30b9\u30af\u304b\u3089\u59cb\u3081\u307e\u3057\u3087\u3046\u3002\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u5185\u306e <code>main()<\/code> \u95a2\u6570\u3092\u691c\u7d22\u3057\u307e\u3059\u3002\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3092\u5b9f\u884c\u3057\u3001\u5b8c\u4e86\u3057\u305f\u3089\u3001Langfuse \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e <em>Tracing<\/em>\uff08\u30c8\u30ec\u30fc\u30b9\uff09\u30bf\u30d6\u3092\u958b\u304d\u307e\u3059\u3002<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-668292\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/12\/image-28.png\" alt=\"\" width=\"1600\" height=\"790\" \/><\/figure>\n<p>\u8868\u306b <em>Total Cost<\/em>\uff08\u5408\u8a08\u30b3\u30b9\u30c8\uff09\u5217\u3068\u3044\u3046\u6709\u7528\u306a\u9805\u76ee\u304c\u3059\u3050\u306b\u8868\u793a\u3055\u308c\u307e\u3059\u3002Koog \u306b\u3088\u3063\u3066\u30c8\u30fc\u30af\u30f3\u6570\u304c\u5831\u544a\u3055\u308c\u3001Langfuse \u306b\u3088\u3063\u3066\u4fa1\u683c\u304c\u9069\u7528\u3055\u308c\u3001\u305d\u308c\u306b\u3088\u3063\u3066 <code>main()<\/code> \u306b $0.016 \u304b\u304b\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002<\/p>\n<p>\u30c8\u30ec\u30fc\u30b9\u3092\u958b\u3044\u3066\u5b9f\u884c\u5168\u4f53\u3092\u898b\u3066\u307f\u307e\u3057\u3087\u3046\u3002<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-668146\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/12\/image-26.png\" alt=\"\" width=\"1600\" height=\"762\" \/><\/figure>\n<p>\u5de6\u5074\u306e\u30d1\u30cd\u30eb\u306b\u306f\u3001\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306e\u8ecc\u8de1\u304c\u793a\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u30e1\u30c3\u30bb\u30fc\u30b8\u3001\u30c4\u30fc\u30eb\u306e\u547c\u3073\u51fa\u3057\u3001\u89b3\u6e2c\u306e\u9806\u306b\u4e26\u3073\u3001\u30a4\u30f3\u30c7\u30f3\u30c8\u306b\u3088\u3063\u3066\u547c\u3073\u51fa\u3057\u968e\u5c64\u304c\u793a\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u53f3\u5074\u306e\u30d1\u30cd\u30eb\u306b\u306f\u3001\u5404\u30b9\u30c6\u30c3\u30d7\u306e\u8a73\u7d30\u304c\u8868\u793a\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u30d7\u30ed\u30f3\u30d7\u30c8\u3001\u56de\u7b54\u3001\u30c4\u30fc\u30eb\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3001\u305d\u3057\u3066\u7bc4\u56f2\u3042\u305f\u308a\u306e\u30b3\u30b9\u30c8\u306e\u5185\u8a33\u3067\u3059\u3002<\/p>\n<p>\u4e0b\u306e\u65b9\u306b\u306f\u3001\u30d5\u30ed\u30fc\u3092\u53ef\u8996\u5316\u3057\u305f\u5b9f\u884c\u30b0\u30e9\u30d5\u3082\u3042\u308a\u307e\u3059\u3002Koog \u306e\u30b0\u30e9\u30d5\u30d9\u30fc\u30b9\u306e\u6226\u7565\u306b\u95a2\u3059\u308b\u8a73\u7d30\u306b\u3064\u3044\u3066\u306f\u3001<a href=\"https:\/\/docs.koog.ai\/custom-strategy-graphs\/\" target=\"_blank\" rel=\"noopener\">\u3053\u3061\u3089\u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8<\/a>\u3092\u3054\u89a7\u304f\u3060\u3055\u3044\u3002\u307e\u305f\u3001Koog \u306e\u30c6\u30c3\u30af\u30ea\u30fc\u30c0\u30fc\u306b\u3088\u308b <a href=\"https:\/\/blog.kotlin-academy.com\/how-to-design-a-flexible-graph-based-strategy-in-koog-52b1fb24802d\" target=\"_blank\" rel=\"noopener\">Mixing the Secret AI Sauce: How to Design a Flexible, Graph-Based Strategy in Koog<\/a>\uff08AI \u306e\u79d8\u4f1d\u30bd\u30fc\u30b9\u3092\u4f5c\u308b: Koog \u3067\u306e\u67d4\u8edf\u306a\u30b0\u30e9\u30d5\u30d9\u30fc\u30b9\u6226\u7565\u306e\u8a2d\u8a08\u65b9\u6cd5\uff09\u3067\u306f\u6df1\u6398\u308a\u8a18\u4e8b\u3092\u304a\u8aad\u307f\u3044\u305f\u3060\u3051\u307e\u3059\u3002<\/p>\n<h3 class=\"wp-block-heading\">\u53ef\u89b3\u6e2c\u6027\u3092\u901a\u3058\u3066\u554f\u984c\u3092\u691c\u51fa\u3059\u308b<\/h3>\n<p>\u3053\u306e\u8a18\u4e8b\u306e\u30b5\u30f3\u30d7\u30eb\u3092\u6e96\u5099\u3059\u308b\u969b\u3001\u5931\u6557\u3057\u305f\u30c4\u30fc\u30eb\u306e\u547c\u3073\u51fa\u3057\u304c\u8d64\u3067\u30cf\u30a4\u30e9\u30a4\u30c8\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u306b\u6c17\u4ed8\u304d\u307e\u3057\u305f\u3002<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-668144\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/12\/image-25.png\" alt=\"\" width=\"1600\" height=\"680\" \/><\/figure>\n<p>\u89b3\u6e2c\u3055\u308c\u305f\u306e\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">endLine=400 must be &lt;= lineCount=394 or -1<\/pre>\n<p>\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u304c 0\uff5e400 \u884c\u3092\u30ea\u30af\u30a8\u30b9\u30c8\u3057\u305f\u306b\u3082\u304b\u304b\u308f\u3089\u305a\u3001\u30d5\u30a1\u30a4\u30eb\u306b\u306f 394 \u884c\u3057\u304b\u542b\u307e\u308c\u3066\u3044\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u3053\u306e\u3053\u3068\u306f\u3001\u30c4\u30fc\u30eb\u306e\u5c0e\u5165\u306b\u9650\u754c\u304c\u3042\u308b\u3053\u3068\u3092\u793a\u3057\u3066\u3044\u307e\u3059\u3002\u5931\u6557\u3055\u305b\u308b\u3053\u3068\u306a\u304f\u3001\u7bc4\u56f2\u3092\u5236\u9650\u3057\u3066\u53d6\u5f97\u3067\u304d\u308b\u884c\uff080\uff5e394\uff09\u3092\u8fd4\u3057\u3001\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u304c\u7d9a\u884c\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u30c8\u30ec\u30fc\u30b9\u304c\u306a\u3051\u308c\u3070\u3001\u3053\u306e\u3088\u3046\u306a\u554f\u984c\u306f\u30ed\u30b0\u306b\u57cb\u3082\u308c\u3066\u3057\u307e\u3046\u3053\u3068\u3067\u3057\u3087\u3046\u3002\u30c8\u30ec\u30fc\u30b9\u304c\u3042\u308c\u3070\u3001\u6b63\u78ba\u306a\u5b9f\u884c\u3001\u6b63\u78ba\u306a\u30b9\u30c6\u30c3\u30d7\u3001\u305d\u3057\u3066\u6b63\u78ba\u306a\u5165\u529b\u3067\u3053\u306e\u554f\u984c\u3092\u628a\u63e1\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>\u53ef\u89b3\u6e2c\u6027\u304c\u91cd\u8981\u306a\u306e\u306f\u3053\u306e\u305f\u3081\u3067\u3059\u3002\u300c<em>\u3042\u306e<\/em>\u5931\u6557\u3057\u305f\u3082\u306e\u300d\u3060\u3051\u3067\u306a\u304f\u3001\u300c<em>\u3069\u306e\u3088\u3046\u306b<\/em>\u300d\u300c<em>\u306a\u305c<\/em>\u300d\u5931\u6557\u3057\u305f\u306e\u304b\u3082\u793a\u3055\u308c\u308b\u305f\u3081\u3001\u4fee\u6b63\u304c\u306f\u308b\u304b\u306b\u7c21\u5358\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<h3 class=\"wp-block-heading\">\u8a55\u4fa1\u306e\u5b9f\u884c\u3092\u51e6\u7406\u3059\u308b<\/h3>\n<p>1 \u3064\u306e\u30c8\u30ec\u30fc\u30b9\u306f\u30c7\u30d0\u30c3\u30b0\u306b\u5f79\u7acb\u3061\u307e\u3059\u304c\u3001\u8a55\u4fa1\u3092\u5b9f\u884c\u3059\u308b\u306b\u306f\u307e\u3068\u307e\u3063\u305f\u8868\u793a\u304c\u5fc5\u8981\u3067\u3059\u3002\u00a0<\/p>\n<p><a href=\"https:\/\/openai.com\/index\/introducing-swe-bench-verified\/\" target=\"_blank\" rel=\"noopener\">SWE-bench Verified<\/a> \u306e\u8907\u6570\u306e\u30bf\u30b9\u30af\uff08\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3092\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u3059\u308b\u305f\u3081\u306e\u6a19\u6e96\u30d9\u30f3\u30c1\u30de\u30fc\u30af\uff09\u306b\u308f\u305f\u3063\u3066\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3092\u5b9f\u884c\u3059\u308b\u5834\u5408\u3001\u30c8\u30ec\u30fc\u30b9\u3092\u30b0\u30eb\u30fc\u30d7\u5316\u3057\u3001\u30b3\u30b9\u30c8\u3092\u96c6\u8a08\u3057\u305f\u3044\u3082\u306e\u3067\u3059\u3002<\/p>\n<p>Langfuse \u306f\u30bb\u30c3\u30b7\u30e7\u30f3\u3092\u901a\u3058\u3066\u3053\u308c\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u307e\u3059\u3002\u30bb\u30c3\u30b7\u30e7\u30f3 ID \u3092\u30c8\u30ec\u30fc\u30b9\u5c5e\u6027\u3068\u3057\u3066\u8ffd\u52a0\u3057\u307e\u3057\u3087\u3046\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"kotlin\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">install(OpenTelemetry) {\n    setVerbose(true)\n    addLangfuseExporter(  \n        traceAttributes = listOf(  \n            CustomAttribute(\"langfuse.session.id\", \"eval-run-1\"),  \n        )  \n    )\n}<\/pre>\n<aside style=\"background: #f8f9fa; border-left: 4px solid #007bff; padding: 1rem 1.5rem; margin: 1.5rem 0; border-radius: 4px;\">\n<p style=\"margin: 0; color: #555;\">\u307e\u305f\u3001\u30e6\u30fc\u30b6\u30fc ID \u3084\u74b0\u5883\u30bf\u30b0\u306a\u3069\u306e\u4ed6\u306e\u5c5e\u6027\u3082\u8ffd\u52a0\u3067\u304d\u307e\u3059\u3002\u5fc5\u8981\u3067\u3042\u308c\u3070\u3001<a href=\"https:\/\/langfuse.com\/integrations\/native\/opentelemetry#trace-level-attributes\" target=\"_blank\" rel=\"noopener\">\u30c8\u30ec\u30fc\u30b9\u30ec\u30d9\u30eb\u306e\u5c5e\u6027\u306b\u95a2\u3059\u308b\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8<\/a>\u3092\u3054\u89a7\u304f\u3060\u3055\u3044\u3002\u3053\u306e\u6642\u70b9\u3067\u306f\u3001\u30bb\u30c3\u30b7\u30e7\u30f3\u306e\u30b0\u30eb\u30fc\u30d7\u5316\u3060\u3051\u3067\u5341\u5206\u3067\u3059\u3002<\/p>\n<\/aside>\n<p>\u3053\u306e\u69cb\u6210\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001\u8a55\u4fa1\u306e\u30c8\u30ec\u30fc\u30b9\u3067\u30bb\u30c3\u30b7\u30e7\u30f3 ID \u304c\u5171\u6709\u3055\u308c\u307e\u3059\u3002Langfuse \u3067 <em>Sessions<\/em>\uff08\u30bb\u30c3\u30b7\u30e7\u30f3\uff09\u30bf\u30d6\u306b\u79fb\u52d5\u3057\u3001\u96c6\u8a08\u671f\u9593\u3068\u5408\u8a08\u30b3\u30b9\u30c8\u3092\u78ba\u8a8d\u3057\u307e\u3057\u3087\u3046\u3002<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-668173\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/12\/image-27.png\" alt=\"\" width=\"1600\" height=\"432\" \/><\/figure>\n<p>\u3053\u306e\u5b9f\u884c\u3067\u306f\u300150 \u4ef6\u306e SWE-bench Verified \u30bf\u30b9\u30af\u3092\u5b9f\u884c\u3057\u307e\u3057\u305f\uff08\u5168 500 \u4ef6\uff09\u300210 \u500b\u306e\u4e26\u5217\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u4f7f\u7528\u3057\u305f\u5834\u5408\u3001\u5b9f\u884c\u306f 30 \u5206\u3067\u5b8c\u4e86\u3057\u3001\u30b3\u30b9\u30c8\u306f $66 \u3067\u3057\u305f\u3002\u3053\u306e\u7d50\u679c\u3092\u4eca\u5f8c\u306e\u5b9f\u9a13\u306e\u6210\u529f\u7387\u3001\u5b9f\u884c\u6642\u9593\u3001\u304a\u3088\u3073\u30b3\u30b9\u30c8\u306e\u57fa\u6e96\u3068\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>Langfuse \u306f\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u306f\u6210\u529f\u30b9\u30b3\u30a2\u3092\u8868\u793a\u3057\u307e\u305b\u3093\u304c\u3001 \u3053\u308c\u306f\u5f53\u7136\u306e\u3053\u3068\u3067\u3059\u3002\u30c8\u30ec\u30fc\u30b9\u306f\u767a\u751f\u3057\u305f\u30a4\u30d9\u30f3\u30c8\u3092\u8a18\u9332\u3059\u308b\u3082\u306e\u3067\u3042\u308a\u3001\u5b9f\u884c\u304c\u5408\u683c\u3057\u305f\u304b\u3069\u3046\u304b\u306f\u8a18\u9332\u3057\u307e\u305b\u3093\u3002Langfuse \u3067\u6210\u529f\u30e1\u30c8\u30ea\u30af\u30b9\u304c\u5fc5\u8981\u306a\u5834\u5408\u3001\u8a55\u4fa1\u30cf\u30fc\u30cd\u30b9\u306f\u5404\u8a66\u884c\u306b\u30b9\u30b3\u30a2\u3092\u4ed8\u3051\u3001<a href=\"https:\/\/langfuse.com\/docs\/evaluation\/evaluation-methods\/custom-scores\" target=\"_blank\" rel=\"noopener\">\u30ab\u30b9\u30bf\u30e0\u30b9\u30b3\u30a2<\/a>\u3092\u5831\u544a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u308b\u30a4\u30f3\u30d5\u30e9\u30b9\u30c8\u30e9\u30af\u30c1\u30e3\u304c\u3042\u308b\u5834\u5408\u306f\u3001\u5c0e\u5165\u3059\u308b\u4fa1\u5024\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<h3 class=\"wp-block-heading\">\u307e\u3068\u3081\u3068\u4e88\u544a<\/h3>\n<p>\u53ef\u89b3\u6e2c\u6027\u306f\u5358\u306b\u30c7\u30d0\u30c3\u30b0\u306b\u5f79\u7acb\u3064\u3060\u3051\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306e\u52d5\u4f5c\u3092\u628a\u63e1\u3059\u308b\u305f\u3081\u306e\u8853\u3067\u3082\u3042\u308a\u307e\u3059\u3002\u00a0<\/p>\n<p>\u6570\u884c\u306e\u30b3\u30fc\u30c9\u3092\u8ffd\u52a0\u3059\u308b\u3053\u3068\u3067\u3001\u30d6\u30e9\u30c3\u30af\u30dc\u30c3\u30af\u30b9\u3060\u3063\u305f\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u304c\u8abf\u67fb\u3067\u304d\u308b\u3082\u306e\u306b\u306a\u308a\u307e\u3057\u305f\u3002\u6c17\u4ed8\u304b\u308c\u306a\u3044\u53ef\u80fd\u6027\u306e\u3042\u308b\u884c\u7bc4\u56f2\u306e\u30a8\u30e9\u30fc\u3092\u691c\u51fa\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3057\u305f\u300250 \u4ef6\u306e\u30bf\u30b9\u30af\u306e\u8a55\u4fa1\u306b $66 \u304b\u304b\u308b\u3053\u3068\u3082\u5206\u304b\u308a\u307e\u3057\u305f\u3002\u307e\u305f\u3001\u3069\u306e\u30bf\u30b9\u30af\u304c\u30c8\u30fc\u30af\u30f3\u3092\u6d88\u8cbb\u3057\u3066\u304a\u308a\u3001\u3069\u308c\u304c\u52b9\u7387\u7684\u306b\u5b9f\u884c\u3055\u308c\u3066\u3044\u308b\u304b\u3092\u628a\u63e1\u3067\u304d\u308b\u3088\u3046\u306b\u3082\u306a\u308a\u307e\u3057\u305f\u3002<\/p>\n<p>\u6b21\u56de\u306e\u8a18\u4e8b\u3067\u306f\u3001\u7279\u5b9a\u306e\u30bf\u30b9\u30af\u3092\u3088\u308a\u5c0f\u3055\u304f\u3001\u5b89\u4fa1\u306a\u30e2\u30c7\u30eb\u306b\u59d4\u8b72\u3059\u308b\u30b5\u30d6\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u30d1\u30bf\u30fc\u30f3\u3092\u7d39\u4ecb\u3057\u307e\u3059\u3002\u30c8\u30ec\u30fc\u30b9\u3092\u5c0e\u5165\u3059\u308b\u3053\u3068\u3067\u3001\u5404\u5b9f\u884c\u3067\u306e\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306e\u52d5\u4f5c\u306b\u5fdc\u3058\u3066\u59d4\u8b72\u3059\u3079\u304d\u51e6\u7406\u3092\u6c7a\u3081\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u63a8\u6e2c\u3067\u5224\u65ad\u3059\u308b\u5fc5\u8981\u306f\u3082\u3046\u3042\u308a\u307e\u305b\u3093\u3002<\/p>\n<h3 class=\"wp-block-heading\">\u30ea\u30bd\u30fc\u30b9<\/h3>\n<ul>\n<li><a href=\"https:\/\/github.com\/JetBrains\/koog\/tree\/develop\/examples\/code-agent\/step-03-add-observability\" target=\"_blank\" rel=\"noopener\">\u3053\u306e\u8a18\u4e8b\u306e\u30b3\u30fc\u30c9\u4e00\u5f0f<\/a><\/li>\n<li><a href=\"https:\/\/docs.koog.ai\/opentelemetry-support\/\" target=\"_blank\" rel=\"noopener\">Koog OpenTelemetry \u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8<\/a><\/li>\n<li><a href=\"https:\/\/docs.koog.ai\/opentelemetry-langfuse-exporter\/\" target=\"_blank\" rel=\"noopener\">Koog Langfuse \u306e\u7d71\u5408<\/a><\/li>\n<li><a href=\"https:\/\/langfuse.com\/integrations\/native\/opentelemetry\" target=\"_blank\" rel=\"noopener\">Langfuse OpenTelemetry \u306e\u30b5\u30dd\u30fc\u30c8<\/a><\/li>\n<\/ul>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n<p><em>\u304a\u8aad\u307f\u3044\u305f\u3060\u304d\u3042\u308a\u304c\u3068\u3046\u3054\u3056\u3044\u307e\u3057\u305f\uff01 \u7686\u3055\u3093\u306e\u30c8\u30ec\u30fc\u30b9\u89e3\u6790\u624b\u6cd5\u306b\u3064\u3044\u3066\u304a\u805e\u304b\u305b\u304f\u3060\u3055\u3044\u3002\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306e\u52d5\u4f5c\u306b\u3069\u306e\u3088\u3046\u306a\u30d1\u30bf\u30fc\u30f3\u304c\u898b\u3064\u304b\u308a\u307e\u3057\u305f\u304b\uff1f \u4f55\u304c\u9a5a\u304d\u306f\u3042\u308a\u307e\u3057\u305f\u304b\uff1f \u4ee5\u4e0b\u306e\u30b3\u30e1\u30f3\u30c8\u6b04\u3067\u7686\u3055\u3093\u306e\u4f53\u9a13\u8ac7\u3092\u304a\u805e\u304b\u305b\u304f\u3060\u3055\u3044\uff01<\/em><\/p>\n\n\n<p><strong>\u30aa\u30ea\u30b8\u30ca\u30eb\uff08\u82f1\u8a9e\uff09\u30d6\u30ed\u30b0\u6295\u7a3f\u8a18\u4e8b\u306e\u4f5c\u8005\uff1a<\/strong><\/p>\n\n\n    <div class=\"about-author \">\n        <div class=\"about-author__box\">\n            <div class=\"row\">\n                <div class=\"about-author__box-img\">\n                    <img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/07\/012-copy.jpeg\" width=\"200\" height=\"200\" alt=\"Denis Domanskii\" loading=\"lazy\"  class=\"avatar avatar-200 wp-user-avatar wp-user-avatar-200 photo avatar-default\">\n                <\/div>\n                <div class=\"about-author__box-text\">\n                                            <h4>Denis Domanskii<\/h4>\n                                                        <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n","protected":false},"author":1394,"featured_media":682285,"comment_status":"closed","ping_status":"closed","template":"","categories":[4113,2347],"tags":[6847,8724],"cross-post-tag":[6355],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/ja\/wp-json\/wp\/v2\/ai\/682284"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/ja\/wp-json\/wp\/v2\/ai"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/ja\/wp-json\/wp\/v2\/types\/ai"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ja\/wp-json\/wp\/v2\/users\/1394"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ja\/wp-json\/wp\/v2\/comments?post=682284"}],"version-history":[{"count":4,"href":"https:\/\/blog.jetbrains.com\/ja\/wp-json\/wp\/v2\/ai\/682284\/revisions"}],"predecessor-version":[{"id":682312,"href":"https:\/\/blog.jetbrains.com\/ja\/wp-json\/wp\/v2\/ai\/682284\/revisions\/682312"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ja\/wp-json\/wp\/v2\/media\/682285"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/ja\/wp-json\/wp\/v2\/media?parent=682284"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ja\/wp-json\/wp\/v2\/categories?post=682284"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ja\/wp-json\/wp\/v2\/tags?post=682284"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ja\/wp-json\/wp\/v2\/cross-post-tag?post=682284"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}