{"id":22990,"date":"2026-04-24T07:17:42","date_gmt":"2026-04-24T07:17:42","guid":{"rendered":"https:\/\/umang.pk\/2026\/04\/24\/jaeger-v2-%da%a9%d8%a7-%d8%a7%d8%b3%d8%aa%d8%b9%d9%85%d8%a7%d9%84-%da%a9%d8%b1%d8%aa%db%92-%db%81%d9%88%d8%a6%db%92-%d9%85%d9%84%d9%b9%db%8c-%d8%a7%db%8c%d8%ac%d9%86%d9%b9-ai-swarms-%da%a9%d9%88\/"},"modified":"2026-04-24T07:17:42","modified_gmt":"2026-04-24T07:17:42","slug":"jaeger-v2-%da%a9%d8%a7-%d8%a7%d8%b3%d8%aa%d8%b9%d9%85%d8%a7%d9%84-%da%a9%d8%b1%d8%aa%db%92-%db%81%d9%88%d8%a6%db%92-%d9%85%d9%84%d9%b9%db%8c-%d8%a7%db%8c%d8%ac%d9%86%d9%b9-ai-swarms-%da%a9%d9%88","status":"publish","type":"post","link":"https:\/\/umang.pk\/en_us\/2026\/04\/24\/jaeger-v2-%da%a9%d8%a7-%d8%a7%d8%b3%d8%aa%d8%b9%d9%85%d8%a7%d9%84-%da%a9%d8%b1%d8%aa%db%92-%db%81%d9%88%d8%a6%db%92-%d9%85%d9%84%d9%b9%db%8c-%d8%a7%db%8c%d8%ac%d9%86%d9%b9-ai-swarms-%da%a9%d9%88\/","title":{"rendered":"Jaeger v2 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0645\u0644\u0679\u06cc \u0627\u06cc\u062c\u0646\u0679 AI swarms \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u0679\u0631\u06cc\u06a9 \u06a9\u0631\u06cc\u06ba\u06d4"},"content":{"rendered":"\n<div id=\"\">\n<p>\u0648\u0627\u062d\u062f AI \u0627\u06cc\u062c\u0646\u0679 \u06a9\u0648 \u0686\u0644\u0627\u0646\u06d2 \u0633\u06d2 \u0688\u06cc\u0628\u06af\u0646\u06af \u0622\u0633\u0627\u0646 \u06c1\u0648 \u062c\u0627\u062a\u06cc \u06c1\u06d2\u06d4 \u06a9\u06cc\u0627 \u06c1\u0648\u0627 \u06cc\u06c1 \u062c\u0627\u0646\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0644\u0627\u06af \u067e\u0691\u06be\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u06af\u0631 \u0622\u067e \u06a9\u06d2 \u067e\u0627\u0633 5 \u0627\u06cc\u062c\u0646\u0679\u0633 \u0686\u0644 \u0631\u06c1\u06d2 \u06c1\u06cc\u06ba\u060c \u06c1\u0631 \u0627\u06cc\u06a9 \u0627\u067e\u0646\u06cc \u0679\u0648\u0644 \u06a9\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u067e\u0646\u0627 \u0622\u0624\u0679 \u067e\u0679 \u062a\u06cc\u0627\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c &quot;\u0644\u0627\u06af \u067e\u0691\u06be\u0646\u0627&#8221; \u0627\u0628 \u06a9\u0648\u0626\u06cc \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4<\/p>\n<p>\u0645\u06cc\u06ba \u0646\u06d2 Claude Forge \u06a9\u0648 Claude Code \u06a9\u06d2 \u0627\u0648\u067e\u0631 \u0627\u06cc\u06a9 \u0645\u062e\u0627\u0644\u0641 \u0645\u0644\u0679\u06cc \u0627\u06cc\u062c\u0646\u0679 \u06a9\u0648\u0688\u0646\u06af \u0641\u0631\u06cc\u0645 \u0648\u0631\u06a9 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0628\u0646\u0627\u06cc\u0627 \u06c1\u06d2\u06d4 \u0627\u06cc\u06a9 \u0639\u0627\u0645 \u062f\u0648\u0691 \u0633\u06d2 \u0645\u0646\u0635\u0648\u0628\u06c1 \u0633\u0627\u0632\u060c \u0639\u0645\u0644 \u062f\u0631\u0622\u0645\u062f \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u06d2\u060c \u062c\u0627\u0626\u0632\u06c1 \u0644\u06cc\u0646\u06d2 \u0648\u0627\u0644\u06d2\u060c \u0627\u0648\u0631 \u062a\u0631\u0645\u06cc\u0645 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u067e\u06cc\u062f\u0627 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0648\u06c1 \u0627\u06cc\u06a9 \u062f\u0648\u0633\u0631\u06d2 \u06a9\u06d2 \u06a9\u0627\u0645 \u06a9\u0627 \u062c\u0627\u0626\u0632\u06c1 \u0644\u06cc\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0645\u0639\u06cc\u0627\u0631 \u06a9\u06cc \u062c\u0627\u0646\u0686 \u0645\u06cc\u06ba \u0646\u0627\u06a9\u0627\u0645 \u06c1\u0648\u0646\u06d2 \u067e\u0631 \u0648\u0627\u067e\u0633 \u0622\u062c\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0644\u06cc\u06a9\u0646 \u062c\u0628 \u06a9\u0686\u06be \u063a\u0644\u0637 \u06c1\u0648\u0646\u06d2 \u067e\u0631 \u0679\u0627\u0626\u0645 \u0627\u0633\u0679\u06cc\u0645\u067e \u0627\u0648\u0631 \u0679\u06cc\u06a9\u0633\u0679 \u0688\u0645\u067e \u06c1\u0648\u062a\u06d2 \u062a\u06be\u06d2\u060c \u062a\u0648 \u0627\u0633 \u0628\u0627\u062a \u06a9\u0627 \u062a\u0639\u06cc\u0646 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u06a9\u0648\u0626\u06cc \u0637\u0631\u06cc\u0642\u06c1 \u0646\u06c1\u06cc\u06ba \u062a\u06be\u0627 \u06a9\u06c1 \u06a9\u0648\u0646 \u0633\u0627 \u0627\u06cc\u062c\u0646\u0679 \u0630\u0645\u06c1 \u062f\u0627\u0631 \u06c1\u06d2\u060c \u0627\u0633 \u0645\u06cc\u06ba \u0627\u0635\u0644 \u0645\u06cc\u06ba \u06a9\u062a\u0646\u0627 \u0648\u0642\u062a \u0644\u06af\u0627\u060c \u06cc\u0627 \u0679\u0648\u06a9\u0646 \u06a9\u06c1\u0627\u06ba \u06af\u0626\u06d2\u06d4<\/p>\n<p>\u062c\u06cc\u062c\u0631 \u0646\u06d2 \u0627\u0633\u06d2 \u0679\u06be\u06cc\u06a9 \u06a9\u06cc\u0627\u06d4 \u0627\u0633 \u0645\u0636\u0645\u0648\u0646 \u0645\u06cc\u06ba \u0688\u0648\u06a9\u0631 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 Jaeger v2 \u06a9\u0648 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0646\u06d2 \u0627\u0648\u0631 OpenTelemetry \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0645\u0644\u0679\u06cc \u0627\u06cc\u062c\u0646\u0679 \u0633\u0633\u0679\u0645 \u0633\u06d2 \u0645\u0646\u0633\u0644\u06a9 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0637\u0631\u06cc\u0642\u06c1\u060c \u0627\u0648\u0631 \u0631\u0627\u0633\u062a\u06d2 \u0645\u06cc\u06ba \u06c1\u0645 \u0646\u06d2 \u06a9\u06cc\u0627 \u0633\u06cc\u06a9\u06be\u0627\u06d4<\/p>\n<h2 id=\"heading-table-of-contents\">\u0627\u0646\u0688\u06cc\u06a9\u0633<\/h2>\n<h2 id=\"heading-what-is-distributed-tracing\">\u062a\u0642\u0633\u06cc\u0645 \u0634\u062f\u06c1 \u0679\u0631\u06cc\u0633\u0646\u06af \u06a9\u06cc\u0627 \u06c1\u06d2\u061f<\/h2>\n<p>\u062a\u0642\u0633\u06cc\u0645 \u0634\u062f\u06c1 \u0679\u0631\u06cc\u0633\u0646\u06af \u0645\u062a\u0639\u062f\u062f \u062e\u062f\u0645\u0627\u062a \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0645\u0646\u062a\u0642\u0644 \u06c1\u0648\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0627\u06cc\u06a9 \u06a9\u0627\u0645 \u06a9\u0648 \u0679\u0631\u06cc\u06a9 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 \u0631\u06cc\u0646\u062c \u06a9\u0627\u0645 \u06a9\u06cc \u0627\u06cc\u06a9 \u0627\u06a9\u0627\u0626\u06cc \u06c1\u06d2 \u062c\u0633 \u0645\u06cc\u06ba \u0622\u063a\u0627\u0632 \u06a9\u0627 \u0648\u0642\u062a\u060c \u0627\u062e\u062a\u062a\u0627\u0645\u06cc \u0648\u0642\u062a\u060c \u0627\u0648\u0631 \u06a9\u0644\u06cc\u062f\u06cc \u0642\u062f\u0631 \u06a9\u06cc \u062e\u0635\u0648\u0635\u06cc\u0627\u062a \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba\u06d4 \u0627\u0633\u067e\u06cc\u0646\u0632 \u0648\u0627\u0644\u062f\u06cc\u0646 \u06a9\u06d2 \u0628\u0686\u0648\u06ba \u06a9\u06d2 \u062f\u0631\u062e\u062a\u0648\u06ba \u0645\u06cc\u06ba \u06af\u06be\u0648\u0646\u0633\u0644\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0627\u06cc\u06a9 \u062f\u0631\u062e\u062a \u0641\u06cc \u06a9\u0627\u0645 \u0627\u06cc\u06a9 \u0679\u0631\u06cc\u0633 \u06c1\u06d2\u06d4<\/p>\n<p>\u0645\u0627\u0626\u06cc\u06a9\u0631\u0648 \u0633\u0631\u0648\u0633\u0632 \u0644\u0648\u06af \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u06c1\u06cc \u0627\u0633 \u067e\u06cc\u0679\u0631\u0646 \u06a9\u0648 \u062c\u0627\u0646\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u062a\u0648\u062b\u06cc\u0642\u060c \u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633\u060c \u0627\u0648\u0631 \u06a9\u06cc\u0634\u06d2 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u06af\u06cc\u0679 \u0648\u06d2 \u0633\u06d2 HTTP \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u06a9\u06cc \u067e\u06cc\u0631\u0648\u06cc \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1\u06cc \u062e\u06cc\u0627\u0644 \u0645\u0644\u0679\u06cc \u0627\u06cc\u062c\u0646\u0679 AI \u067e\u0631 \u0628\u06be\u06cc \u0644\u0627\u06af\u0648 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u06c1\u0631 \u0630\u06cc\u0644\u06cc \u0627\u06cc\u062c\u0646\u0679 \u0627\u0648\u0631 \u0627\u0633 \u0633\u06d2 \u0645\u062a\u0639\u0644\u0642\u06c1 \u0679\u0648\u0644 \u06a9\u0627\u0644\u0632 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0622\u0631\u06a9\u06cc\u0633\u0679\u0631\u06cc\u0679\u0631 \u06a9\u06cc \u06a9\u0627\u0644\u0648\u06ba \u06a9\u06d2 \u0627\u06cc\u06a9 \u06af\u0631\u0648\u067e \u06a9\u06cc \u067e\u06cc\u0631\u0648\u06cc \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>OpenTelemetry (OTel) \u0645\u0639\u06cc\u0627\u0631\u06cc \u06c1\u06d2\u06d4 \u06c1\u0645 \u0627\u0633\u06a9\u0648\u067e\u0633 \u0628\u0646\u0627\u0646\u06d2 \u0627\u0648\u0631 \u0627\u0646\u06c1\u06cc\u06ba OTLP \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0628\u06be\u06cc\u062c\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 SDK \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 Jaeger \u0648\u06c1 \u0688\u06cc\u0679\u0627 \u0648\u0635\u0648\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u0633\u06d2 \u062a\u0644\u0627\u0634 \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u0679\u0627\u0626\u0645 \u0644\u0627\u0626\u0646 \u0645\u06cc\u06ba \u067e\u06cc\u0634 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-why-jaeger-v2\">Jaeger v2 \u06a9\u06cc\u0648\u06ba\u061f<\/h2>\n<p>Jaeger \u0646\u06d2 Uber \u0633\u06d2 \u0622\u063a\u0627\u0632 \u06a9\u06cc\u0627 \u0627\u0648\u0631 2019 \u0645\u06cc\u06ba CNCF \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06af\u0631\u06cc\u062c\u0648\u06cc\u0634\u0646 \u06a9\u06cc\u0627\u06d4 v1 \u062f\u0633\u0645\u0628\u0631 2025 \u0645\u06cc\u06ba \u0633\u0631\u0648\u0633 \u06a9\u06d2 \u0627\u062e\u062a\u062a\u0627\u0645 \u06a9\u0648 \u067e\u06c1\u0646\u0686\u0627\u06d4 v2 \u0645\u0648\u062c\u0648\u062f\u06c1 \u0631\u06cc\u0644\u06cc\u0632 \u06c1\u06d2 \u062c\u0648 OpenTelemetry \u06a9\u0644\u06a9\u0679\u0631 \u0641\u0631\u06cc\u0645 \u0648\u0631\u06a9 \u067e\u0631 \u0628\u0646\u0627\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2\u06d4 \u0633\u0646\u06af\u0644 \u0628\u0627\u0626\u0646\u0631\u06cc: \u06a9\u0644\u06a9\u0679\u0631\u060c \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u0633\u0631\u0648\u0633 \u0627\u0648\u0631 UI\u06d4 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0637\u06d2 \u0634\u062f\u06c1 \u0637\u0648\u0631 \u067e\u0631\u060c OTLP \u0628\u0646\u062f\u0631\u06af\u0627\u06c1\u0648\u06ba 4317 (gRPC) \u0627\u0648\u0631 4318 (HTTP) \u067e\u0631 \u0641\u0639\u0627\u0644 \u06c1\u06d2\u06d4 \u0645\u0642\u0627\u0645\u06cc \u0622\u067e\u0631\u06cc\u0634\u0646\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0644\u06af \u06a9\u0644\u06a9\u0679\u0631 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u062a\u06cc\u06d4<\/p>\n<p>v1 \u0633\u06d2 \u0627\u06cc\u06a9 \u0627\u06c1\u0645 \u0641\u0631\u0642 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u062a\u0631\u062a\u06cc\u0628 \u06a9\u0648 CLI \u062c\u06be\u0646\u0688\u0648\u06ba \u0627\u0648\u0631 \u0645\u0627\u062d\u0648\u0644\u06cc\u0627\u062a\u06cc \u0645\u062a\u063a\u06cc\u0631\u0627\u062a \u0633\u06d2 YAML \u0641\u0627\u0626\u0644\u0648\u06ba \u0645\u06cc\u06ba \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631 \u062f\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2\u06d4 \u0642\u0627\u0628\u0644 \u0627\u062d\u062a\u0631\u0627\u0645 <code>-e SPAN_STORAGE_TYPE=badger<\/code> env vars \u06a9\u0648 \u062e\u0648\u062f \u0628\u062e\u0648\u062f v2 \u0645\u06cc\u06ba \u0646\u0638\u0631 \u0627\u0646\u062f\u0627\u0632 \u06a9\u0631 \u062f\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u06a9\u0646\u0679\u06cc\u0646\u0631 \u0639\u0627\u0645 \u0637\u0648\u0631 \u067e\u0631 \u0634\u0631\u0648\u0639 \u06c1\u0648\u062a\u0627 \u06c1\u06d2 \u0644\u06cc\u06a9\u0646 \u0627\u0646 \u0645\u06cc\u0645\u0648\u0631\u06cc \u0627\u0633\u0679\u0648\u0631\u06cc\u062c \u067e\u0631 \u0648\u0627\u067e\u0633 \u0622\u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u0645\u06cc\u06ba \u0646\u06d2 \u0627\u0633\u06d2 \u0645\u062d\u0633\u0648\u0633 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u062f\u0648 \u062f\u0646 \u062a\u06a9 \u067e\u06af\u0688\u0646\u0688\u06cc \u06a9\u06be\u0648 \u062f\u06cc\u06d4 \u0630\u06cc\u0644 \u0645\u06cc\u06ba \u062f\u0631\u0633\u062a \u062a\u0631\u062a\u06cc\u0628\u0627\u062a \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u0645\u0632\u06cc\u062f \u062c\u0627\u0646\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-prerequisites\">\u0634\u0631\u0637\u06cc\u06ba<\/h2>\n<ul>\n<li>\n<p><strong>\u0688\u0627\u06a9\u0631<\/strong> \u06cc\u06c1 \u0627\u0646\u0633\u0679\u0627\u0644 \u0627\u0648\u0631 \u0686\u0644 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u06a9\u0644\u0627\u0688 \u06a9\u0648\u0688<\/strong> \u0627\u0646\u0633\u0679\u0627\u0644<\/p>\n<\/li>\n<li>\n<p><strong>Python 3.8+<\/strong> \u0679\u0631\u06cc\u06a9\u0646\u06af \u06c1\u06a9\u0633 \u06a9\u06d2 \u0644\u06cc\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u06a9\u0644\u0627\u0688 \u067e\u0648\u0633\u06cc<\/strong> \u0645\u062a\u0628\u0627\u062f\u0644 \u0637\u0648\u0631 \u067e\u0631\u060c \u0622\u067e \u062f\u0648\u0633\u0631\u06d2 \u0645\u0644\u0679\u06cc \u0627\u06cc\u062c\u0646\u0679 \u0633\u0633\u0679\u0645\u0632 \u06a9\u0648 \u0622\u0644\u06c1 \u0628\u0646\u0627 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ul>\n<h2 id=\"heading-installing-docker-on-debian\">\u0688\u06cc\u0628\u06cc\u0646 \u067e\u0631 \u0688\u0648\u06a9\u0631 \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u0646\u0627<\/h2>\n<p>\u0627\u06af\u0631 \u0622\u067e \u06a9\u06d2 \u067e\u0627\u0633 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u06c1\u06cc Docker \u06c1\u06d2 \u062a\u0648 \u0627\u0633 \u0642\u062f\u0645 \u06a9\u0648 \u0686\u06be\u0648\u0691 \u062f\u06cc\u06ba\u06d4 macOS \u0627\u0648\u0631 Windows \u0635\u0627\u0631\u0641\u06cc\u0646 Docker Desktop \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0688\u06cc\u0628\u06cc\u0646 \u067e\u0631:<\/p>\n<pre><code class=\"language-bash\">sudo apt-get update\nsudo apt-get install -y ca-certificates curl\nsudo install -m 0755 -d \/etc\/apt\/keyrings\nsudo curl -fsSL https:\/\/download.docker.com\/linux\/debian\/gpg -o \/etc\/apt\/keyrings\/docker.asc\nsudo chmod a+r \/etc\/apt\/keyrings\/docker.asc\necho \"deb [arch=$(dpkg --print-architecture) signed-by=\/etc\/apt\/keyrings\/docker.asc] \\\n  https:\/\/download.docker.com\/linux\/debian \\\n  \\((. \/etc\/os-release && echo \"\\)VERSION_CODENAME\") stable\" | \\\n  sudo tee \/etc\/apt\/sources.list.d\/docker.list > \/dev\/null\nsudo apt-get update\nsudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin\nsudo usermod -aG docker $USER\nnewgrp docker\n<\/code><\/pre>\n<p>\u0627\u0648\u0628\u0646\u0679\u0648 \u0635\u0627\u0631\u0641\u06cc\u0646: \u062f\u0648\u0646\u0648\u06ba \u06a9\u0648 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 <code>linux\/debian<\/code> URL \u067e\u0631 \u0645\u0634\u062a\u0645\u0644 \u06c1\u06d2: <code>linux\/ubuntu<\/code>.<\/p>\n<h2 id=\"heading-setting-up-jaeger-v2\">Jaeger v2 \u06a9\u06cc \u062a\u0631\u062a\u06cc\u0628\u0627\u062a<\/h2>\n<h3 id=\"heading-basic-run\">\u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0637\u06d2 \u0634\u062f\u06c1 \u0639\u0645\u0644\u062f\u0631\u0622\u0645\u062f<\/h3>\n<p>\u0645\u0633\u062a\u0642\u0644 \u0645\u0632\u0627\u062c\u06cc \u06a9\u06d2 \u0628\u063a\u06cc\u0631 \u062c\u0644\u062f\u06cc \u0679\u06cc\u0633\u0679 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2:<\/p>\n<pre><code class=\"language-bash\">docker run -d --name jaeger \\\n  -p 16686:16686 \\\n  -p 4317:4317 \\\n  -p 4318:4318 \\\n  jaegertracing\/jaeger:2.17.0\n<\/code><\/pre>\n<p>\u067e\u0648\u0631\u0679 16686 UI \u06c1\u06d2\u06d4 \u067e\u0648\u0631\u0679 4317 OTLP\/gRPC \u0645\u062c\u0645\u0648\u0639\u06c1 \u06c1\u06d2\u06d4 \u067e\u0648\u0631\u0679 4318 OTLP\/HTTP \u06c1\u06d2\u06d4 \u062c\u0628 \u06a9\u0646\u0679\u06cc\u0646\u0631 \u06c1\u0679\u0627 \u062f\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u060c \u0679\u0631\u06cc\u0633 \u063a\u0627\u0626\u0628 \u06c1\u0648 \u062c\u0627\u062a\u0627 \u06c1\u06d2.<\/p>\n<h3 id=\"heading-persistent-storage-with-badger\">\u0628\u06cc\u062c\u0631 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0645\u0633\u062a\u0642\u0644 \u0627\u0633\u0679\u0648\u0631\u06cc\u062c<\/h3>\n<p>v2 \u0645\u0627\u062d\u0648\u0644\u06cc\u0627\u062a\u06cc \u0645\u062a\u063a\u06cc\u0631\u0627\u062a \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 YAML \u0641\u0627\u0626\u0644\u0648\u06ba \u0633\u06d2 \u06a9\u0646\u0641\u06cc\u06af\u0631\u06cc\u0634\u0646 \u067e\u0691\u06be\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u0633 \u06a9\u0648 \u0628\u0637\u0648\u0631 \u0645\u062d\u0641\u0648\u0638 \u06a9\u0631\u06cc\u06ba\u06d4 <code>~\/.local\/share\/jaeger\/config.yaml<\/code>:<\/p>\n<pre><code class=\"language-yaml\">service:\n  extensions: [jaeger_storage, jaeger_query, healthcheckv2]\n  pipelines:\n    traces:\n      receivers: [otlp]\n      processors: [batch]\n      exporters: [jaeger_storage_exporter]\nextensions:\n  healthcheckv2:\n    use_v2: true\n    http: { endpoint: 0.0.0.0:13133 }\n  jaeger_query:\n    storage: { traces: main_store }\n  jaeger_storage:\n    backends:\n      main_store:\n        badger:\n          directories: { keys: \/badger\/key, values: \/badger\/data }\n          ephemeral: false\n          ttl: { spans: 720h }\nreceivers:\n  otlp:\n    protocols:\n      grpc: { endpoint: 0.0.0.0:4317 }\n      http: { endpoint: 0.0.0.0:4318 }\nprocessors:\n  batch:\nexporters:\n  jaeger_storage_exporter:\n    trace_storage: main_store\n<\/code><\/pre>\n<p>Jaeger \u06a9\u0646\u0679\u06cc\u0646\u0631 UID 10001 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0686\u0644\u062a\u0627 \u06c1\u06d2\u06d4 \u0688\u0648\u06a9\u0631 \u0646\u06d2 \u062c\u0644\u062f \u06a9\u06cc \u0645\u0644\u06a9\u06cc\u062a \u06a9\u0648 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0637\u06d2 \u0634\u062f\u06c1 \u0646\u0627\u0645 \u062f\u06cc\u0627 \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u0622\u067e \u067e\u06c1\u0644\u06d2 \u0627\u062c\u0627\u0632\u062a\u0648\u06ba \u06a9\u0648 \u0679\u06be\u06cc\u06a9 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u0622\u067e \u06a9\u0627 \u06a9\u0646\u0679\u06cc\u0646\u0631 \u0627\u0633 \u0637\u0631\u062d \u06a9\u0631\u06cc\u0634 \u0644\u0648\u067e \u0645\u06cc\u06ba \u0686\u0644\u0627 \u062c\u0627\u0626\u06d2 \u06af\u0627: <code>mkdir \/badger\/key: permission denied<\/code>.<\/p>\n<p>\u062d\u062c\u0645 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0628\u0646\u0627\u0626\u06cc\u06ba \u0627\u0648\u0631 \u0645\u0644\u06a9\u06cc\u062a \u0645\u06cc\u06ba \u062a\u0631\u0645\u06cc\u0645 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-bash\">docker volume create jaeger-data\n\ndocker run --rm \\\n  -v jaeger-data:\/badger \\\n  alpine sh -c \"mkdir -p \/badger\/data \/badger\/key && chown -R 10001:10001 \/badger\"\n<\/code><\/pre>\n<p>\u067e\u06be\u0631 Jaeger \u06a9\u0648 \u0646\u0635\u0628 \u06a9\u0646\u0641\u06cc\u06af\u0631\u06cc\u0634\u0646 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0686\u0644\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-bash\">docker run -d --name jaeger \\\n  --restart unless-stopped \\\n  -v ~\/.local\/share\/jaeger\/config.yaml:\/etc\/jaeger\/config.yaml:ro \\\n  -v jaeger-data:\/badger \\\n  -p 16686:16686 \\\n  -p 4317:4317 \\\n  -p 4318:4318 \\\n  jaegertracing\/jaeger:2.17.0 \\\n  --config \/etc\/jaeger\/config.yaml\n<\/code><\/pre>\n<p>\u062f\u0648\u0691 \u06a9\u0631 \u0627\u0633\u062a\u0642\u0627\u0645\u062a \u0686\u06cc\u06a9 \u06a9\u0631\u06cc\u06ba: <code>docker restart jaeger<\/code> \u06cc\u06c1 \u062f\u06cc\u06a9\u06be\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0686\u06cc\u06a9 \u06a9\u0631\u06cc\u06ba \u06a9\u06c1 \u0622\u06cc\u0627 \u06a9\u0648\u0626\u06cc \u067e\u06c1\u0644\u06d2 \u0631\u06cc\u06a9\u0627\u0631\u0688 \u0634\u062f\u06c1 \u0646\u0634\u0627\u0646\u0627\u062a \u0627\u0628 \u0628\u06be\u06cc \u0645\u0648\u062c\u0648\u062f \u06c1\u06cc\u06ba\u06d4 \u0634\u06cc\u0644\u06a9 <code>http:\/\/localhost:16686<\/code> UI \u0646\u0638\u0631 \u0622\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4<\/p>\n<h2 id=\"heading-setting-up-claude-forge-tracing\">\u06a9\u0644\u0627\u0688 \u0641\u0648\u0631\u062c \u0679\u0631\u06cc\u06a9\u0646\u06af \u06a9\u06cc \u062a\u0631\u062a\u06cc\u0628\u0627\u062a<\/h2>\n<h3 id=\"heading-installing-claude-forge\">\u06a9\u0644\u0627\u0688 \u0641\u0648\u0631\u062c \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u06a9\u0644\u0627\u0688 \u06a9\u0648\u0688 \u067e\u0644\u06af \u0627\u0646 \u0645\u0627\u0631\u06a9\u06cc\u0679 \u067e\u0644\u06cc\u0633 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-bash\">\/plugin marketplace add hatmanstack\/claude-forge\n\/plugin install forge@claude-forge\n\/reload-plugins\n<\/code><\/pre>\n<p>\u062a\u0646\u0635\u06cc\u0628 \u06a9\u06d2 \u0628\u0639\u062f\u060c \u062f\u0627\u0626\u0631\u06c1 \u06a9\u0627\u0631 \u0627\u0648\u0631 \u062a\u0631\u062a\u06cc\u0628\u0627\u062a \u06a9\u06cc \u062a\u0635\u062f\u06cc\u0642 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 TUI \u06a9\u06be\u0644 \u062c\u0627\u0626\u06d2 \u06af\u0627\u06d4 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0644\u0648\u0688 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f\u060c \u06a9\u0645\u0627\u0646\u0688 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2: <code>forge:<\/code> \u0633\u0627\u0628\u0642\u06c1\u060c \u062c\u06cc\u0633\u06d2 <code>\/forge:pipeline<\/code>)\u06d4<\/p>\n<p>\u0622\u067e GitHub \u0633\u06d2 \u0628\u06be\u06cc \u0630\u062e\u06cc\u0631\u06c1 \u06a9\u0644\u0648\u0646 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-installing-the-tracing-hook\">\u0679\u0631\u06cc\u06a9\u0646\u06af \u06c1\u06a9 \u06a9\u06cc \u062a\u0646\u0635\u06cc\u0628<\/h3>\n<p>\u0679\u0627\u0631\u06af\u0679 \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u0688\u0627\u0626\u0631\u06a9\u0679\u0631\u06cc \u0633\u06d2 \u0627\u0646\u0633\u0679\u0627\u0644\u06cc\u0634\u0646 \u0627\u0633\u06a9\u0631\u067e\u0679 \u0686\u0644\u0627\u0626\u06cc\u06ba\u06d4 \u067e\u0644\u06af \u0627\u0646 \u06a9\u06cc \u062a\u0646\u0635\u06cc\u0628 \u06a9\u06d2 \u0644\u06cc\u06d2:<\/p>\n<pre><code class=\"language-bash\">cd your-project\nforge-trace                # if you set up the alias from the README\n# or, without the alias:\nbash \"$(find ~\/.claude -path '*\/forge*' -name install-tracing.sh 2>\/dev\/null | head -1)\"\n<\/code><\/pre>\n<p>\u06a9\u0644\u0648\u0646 \u06a9\u06cc \u062a\u0646\u0635\u06cc\u0628 \u06a9\u06d2 \u0644\u06cc\u06d2:<\/p>\n<pre><code class=\"language-bash\">cd your-project\nbash \/path\/to\/claude-forge\/bin\/install-tracing.sh\n<\/code><\/pre>\n<p>\u0627\u0633\u06a9\u0631\u067e\u0679 \u0645\u0646\u062f\u0631\u062c\u06c1 \u0630\u06cc\u0644 \u062c\u06af\u06c1 \u067e\u0631 \u0627\u06cc\u06a9 \u0648\u0642\u0641 \u0634\u062f\u06c1 venv \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2: <code>~\/.local\/share\/claude-forge\/venv<\/code> (\u062a\u0631\u062c\u06cc\u062d\u06cc <code>uv<\/code>\u0627\u06af\u0644\u06cc \u0628\u0627\u0631 \u0648\u0627\u067e\u0633 \u062c\u0627\u0626\u06cc\u06ba\u06d4 <code>python3 -m venv<\/code>)\u060c OpenTelemetry \u067e\u06cc\u06a9\u06cc\u062c \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u060c \u06c1\u06a9 \u06a9\u0648 \u062c\u06af\u06c1 \u067e\u0631 \u06a9\u0627\u067e\u06cc \u06a9\u0631\u06cc\u06ba\u060c \u0627\u0648\u0631 \u06c1\u06a9 \u0627\u0646\u0679\u0631\u06cc \u06a9\u0648 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u06cc\u06ba <code>.claude\/settings.local.json<\/code>OTLP \u0627\u06cc\u0646\u0688 \u067e\u0648\u0627\u0626\u0646\u0679\u0633 \u067e\u0631 \u0627\u067e\u0646\u06d2 \u0679\u06cc\u0633\u0679 \u062e\u0648\u062f \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p>\u067e\u0627\u0633 <code>--no-settings<\/code> \u0636\u0645 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u062a\u0631\u062a\u06cc\u0628\u0627\u062a \u06a9\u0648 \u0686\u06be\u0648\u0691\u06cc\u06ba \u06cc\u0627 <code>--uninstall<\/code> \u0633\u0628 \u06a9\u0686\u06be \u0627\u06a9\u06be\u0627\u0691 \u067e\u06be\u06cc\u0646\u06a9\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u06d4<\/p>\n<h3 id=\"heading-opting-in\">\u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u0634\u06cc\u0644 \u06a9\u06cc \u0634\u0631\u0648\u0639\u0627\u062a \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u0679\u0631\u0645\u06cc\u0646\u0644 \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0634\u0631\u0648\u0639 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-bash\">export CLAUDE_FORGE_TRACING=1\n<\/code><\/pre>\n<p>\u06a9\u0644\u0627\u0688 \u06a9\u0648\u0688 \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0634\u0631\u0648\u0639 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u0627\u0633\u06d2 \u0686\u0644\u0627\u0626\u06cc\u06ba\u06d4 <code>\/pipeline<\/code>\u067e\u06be\u0631 \u0686\u06cc\u06a9 \u06a9\u0631\u06cc\u06ba\u06d4 <code>http:\/\/localhost:16686<\/code> \u06a9\u06d2 \u0644\u06cc\u06d2 <code>claude-forge<\/code> \u0633\u0631\u0648\u0633<\/p>\n<h2 id=\"heading-understanding-the-span-model\">\u0627\u0633\u067e\u06cc\u0646 \u0645\u0627\u0688\u0644 \u06a9\u0648 \u0633\u0645\u062c\u06be\u0646\u0627<\/h2>\n<p>\u0627\u06cc\u06a9 \u0639\u0627\u0645 \u0628\u06be\u06cc\u0691 \u067e\u0631 \u0639\u0645\u0644 \u062f\u0631\u0622\u0645\u062f \u06a9\u0627 \u062f\u0631\u062c\u06c1 \u0628\u0646\u062f\u06cc \u0645\u0646\u062f\u0631\u062c\u06c1 \u0630\u06cc\u0644 \u06c1\u06d2:<\/p>\n<pre><code class=\"language-plaintext\">session: \"implement login form with OAuth\"        <- root span\n\u251c\u2500\u2500 subagent:planner\n\u2502   \u251c\u2500\u2500 tool:Write  (Phase-0.md)                  <- mutation spans (on by default)\n\u2502   \u251c\u2500\u2500 tool:Write  (Phase-1.md)\n\u2502   \u2514\u2500\u2500 subagent_result:planner                   <- duration, token counts, output\n\u251c\u2500\u2500 subagent:implementer\n\u2502   \u251c\u2500\u2500 tool:Edit   (src\/auth.ts)\n\u2502   \u251c\u2500\u2500 tool:Bash   (npm test)\n\u2502   \u251c\u2500\u2500 tool:Write  (src\/oauth.ts)\n\u2502   \u2514\u2500\u2500 subagent_result:implementer\n\u251c\u2500\u2500 subagent:reviewer\n\u2502   \u2514\u2500\u2500 subagent_result:reviewer\n\u2514\u2500\u2500 session_complete                              <- session totals\n<\/code><\/pre>\n<p>\u0631\u0648\u0679 \u0627\u0633\u067e\u06cc\u0646 \u06a9\u0627 \u0646\u0627\u0645 \u067e\u0631\u0627\u0645\u067e\u0679 \u06a9\u06cc \u067e\u06c1\u0644\u06cc \u0644\u0627\u0626\u0646 \u0633\u06d2 \u0622\u062a\u0627 \u06c1\u06d2\u06d4 \u0622\u067e \u0646\u06d2 \u062c\u0648 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06cc \u06c1\u06d2 \u0627\u0633 \u0633\u06d2 \u0679\u0631\u06cc\u0633 \u062a\u0644\u0627\u0634 \u06a9\u0631\u06cc\u06ba\u060c UUID \u0633\u06d2 \u0646\u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0630\u06cc\u0644\u06cc \u0627\u06cc\u062c\u0646\u0679\u0648\u06ba \u06a9\u0648 \u0633\u0679\u0627\u0631\u0679 \u0627\u067e \u067e\u0631 \u0627\u06cc\u0646\u06a9\u0631 \u0627\u0633\u06a9\u0648\u067e \u0627\u0648\u0631 \u062a\u06a9\u0645\u06cc\u0644 \u067e\u0631 \u0646\u062a\u06cc\u062c\u06c1 \u06a9\u06cc \u06af\u0646\u062c\u0627\u0626\u0634 \u0645\u0644\u062a\u06cc \u06c1\u06d2\u06d4 \u0646\u062a\u0627\u0626\u062c \u0645\u06cc\u06ba \u062f\u0648\u0631\u0627\u0646\u06cc\u06c1\u060c \u0679\u0648\u06a9\u0646\u0632 \u06a9\u06cc \u062a\u0639\u062f\u0627\u062f\u060c \u0627\u0634\u0627\u0631\u06d2\u060c \u0627\u0648\u0631 \u0622\u0624\u0679 \u067e\u0679 \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-three-tiers-of-detail\">\u062a\u0641\u0635\u06cc\u0644 \u06a9\u06cc \u062a\u06cc\u0646 \u067e\u0631\u062a\u06cc\u06ba\u06d4<\/h3>\n<p>\u062a\u0645\u0627\u0645 \u0627\u0646\u062f\u0631\u0648\u0646\u06cc \u0679\u0648\u0644 \u06a9\u0627\u0644\u06cc\u06ba \u0627\u062a\u0646\u06cc \u06c1\u06cc \u062f\u0644\u0686\u0633\u067e \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u062a\u06cc\u06ba\u06d4 \u062a\u062d\u0631\u06cc\u0631\u060c \u062a\u062f\u0648\u06cc\u0646\u060c \u0645\u0644\u0679\u06cc \u0627\u06cc\u0688\u06cc\u0679 \u0627\u0648\u0631 \u0628\u0627\u0634 \u0627\u062a\u067e\u0631\u06cc\u0648\u0631\u062a\u06cc \u06c1\u06cc\u06ba\u06d4 \u0646\u0645\u0628\u0631 \u06a9\u0645 \u0627\u0648\u0631 \u0633\u06af\u0646\u0644 \u0632\u06cc\u0627\u062f\u06c1\u06d4 \u0648\u06c1 \u0622\u067e \u06a9\u0648 \u0628\u062a\u0627\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 \u0627\u0635\u0644 \u0645\u06cc\u06ba \u06a9\u06cc\u0627 \u0628\u062f\u0644\u0627 \u06c1\u06d2\u06d4 \u067e\u0691\u06be\u06cc\u06ba\u060c \u06af\u0644\u0648\u0628\u060c \u06af\u0631\u06cc\u067e\u060c \u0627\u0648\u0631 \u0648\u06cc\u0628 \u0641\u06cc\u0686 \u0646\u06cc\u0648\u06cc\u06af\u06cc\u0634\u0646 \u06c1\u06cc\u06ba\u06d4 \u0627\u0633 \u0645\u06cc\u06ba \u0632\u06cc\u0627\u062f\u06c1 \u062a\u0631 \u0634\u0648\u0631 \u06c1\u06d2\u06d4<\/p>\n<p>\u0679\u0631\u06cc\u06a9\u0646\u06af \u062a\u0628\u062f\u06cc\u0644\u06cc\u0648\u06ba \u06a9\u0648 \u0628\u0637\u0648\u0631 \u0688\u06cc\u0641\u0627\u0644\u0679 \u06a9\u06cc\u067e\u0686\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0648\u06c1 \u062f\u0631\u0645\u06cc\u0627\u0646\u06cc \u0632\u0645\u06cc\u0646 \u062f\u0631\u0633\u062a \u0646\u06a9\u0644\u06cc\u06d4 \u0627\u0633 \u062a\u0628\u062f\u06cc\u0644\u06cc \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u06cc\u0627 \u062a\u0648 \u0630\u06cc\u0644\u06cc \u0627\u06cc\u062c\u0646\u0679 \u06a9\u06d2 \u0627\u0646\u062f\u0631 \u06a9\u0686\u06be \u0628\u06be\u06cc \u0646\u06c1\u06cc\u06ba \u062f\u06a9\u06be\u0627\u06cc\u0627 \u06af\u06cc\u0627 \u062a\u06be\u0627\u060c \u06cc\u0627 \u0641\u06cc \u0631\u0646 200 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0627\u0633\u06a9\u0648\u067e\u0633 \u062f\u06a9\u06be\u0627\u0626\u06d2 \u06af\u0626\u06d2 \u062a\u06be\u06d2\u06d4<\/p>\n<table>\n<thead>\n<tr>\n<th>\u0637\u0631\u06cc\u0642\u06c1<\/th>\n<th>\u0630\u06cc\u0644\u06cc \u0627\u06cc\u062c\u0646\u0679<\/th>\n<th>\u062a\u063a\u06cc\u0631\u0627\u062a (\u0644\u06a9\u06be\u06cc\u06ba\/\u062a\u0631\u0645\u06cc\u0645 \u06a9\u0631\u06cc\u06ba\/\u0628\u0634)<\/th>\n<th>\u062f\u06cc\u06af\u0631 \u0627\u0646\u062f\u0631\u0648\u0646\u06cc \u0679\u0648\u0644\u0632<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u0628\u0646\u06cc\u0627\u062f\u06cc<\/td>\n<td>\u06c1\u0627\u06ba<\/td>\n<td>\u06c1\u0627\u06ba<\/td>\n<td>\u0646\u06c1\u06cc\u06ba<\/td>\n<\/tr>\n<tr>\n<td><code>CLAUDE_FORGE_TRACE_INNER=1<\/code><\/td>\n<td>\u06c1\u0627\u06ba<\/td>\n<td>\u06c1\u0627\u06ba<\/td>\n<td>\u06c1\u0627\u06ba (\u0645\u0627\u0626\u0646\u0633 \u0628\u0644\u06cc\u06a9 \u0644\u0633\u0679)<\/td>\n<\/tr>\n<tr>\n<td><code>CLAUDE_FORGE_TRACE_MUTATIONS=0<\/code><\/td>\n<td>\u06c1\u0627\u06ba<\/td>\n<td>\u0646\u06c1\u06cc\u06ba<\/td>\n<td>\u0646\u06c1\u06cc\u06ba (\u06cc\u0627 INNER \u067e\u0631 \u0645\u0646\u062d\u0635\u0631 \u06c1\u06d2)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 id=\"heading-span-attributes\">span \u06a9\u06cc \u062e\u0635\u0648\u0635\u06cc\u062a<\/h3>\n<p><strong>\u06a9\u0648<\/strong> <code>session_complete<\/code><strong>:<\/strong> <code>session.tokens.input<\/code>, <code>session.tokens.output<\/code>, <code>session.tokens.total<\/code>, <code>session.tokens.turns<\/code>, <code>session.duration_ms<\/code>, <code>user.prompt<\/code> (\u067e\u06c1\u0644\u0627 2KB)\u06d4<\/p>\n<p><strong>\u06a9\u0648<\/strong> <code>subagent_result<\/code><strong>:<\/strong> <code>agent.description<\/code>, <code>agent.prompt<\/code>, <code>agent.output<\/code>, <code>agent.duration_ms<\/code>, <code>agent.is_error<\/code>, <code>agent.tokens.input<\/code>, <code>agent.tokens.output<\/code>.<\/p>\n<p><strong>\u06a9\u0648<\/strong> <code>tool:*<\/code><strong>:<\/strong> <code>tool.name<\/code>, <code>tool.input<\/code>, <code>tool.output<\/code>, <code>tool.duration_ms<\/code>, <code>tool.is_error<\/code>.<\/p>\n<h2 id=\"heading-instrumenting-a-multi-agent-swarm\">\u0645\u0644\u0679\u06cc \u0627\u06cc\u062c\u0646\u0679 \u0633\u0648\u0627\u0631\u0645 \u0627\u0646\u0633\u0679\u0631\u0648\u0645\u06cc\u0646\u0679\u06cc\u0634\u0646<\/h2>\n<h3 id=\"heading-hook-architecture\">\u06c1\u06a9 \u0641\u0646 \u062a\u0639\u0645\u06cc\u0631<\/h3>\n<p>\u06a9\u0644\u0627\u0688 \u06a9\u0648\u0688 \u0645\u06cc\u06ba \u0644\u0627\u0626\u0641 \u0633\u0627\u0626\u06cc\u06a9\u0644 \u06c1\u06a9\u0633 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u0648 \u0645\u062e\u0635\u0648\u0635 \u0648\u0627\u0642\u0639\u0627\u062a \u067e\u0631 \u0627\u0633\u06a9\u0631\u067e\u0679 \u0686\u0644\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u06cc\u06c1\u0627\u06ba \u0686\u0627\u0631 \u0686\u06cc\u0632\u06cc\u06ba \u0627\u06c1\u0645 \u06c1\u06cc\u06ba:<\/p>\n<ol>\n<li>\n<p><strong>\u0635\u0627\u0631\u0641 \u067e\u0631\u0627\u0645\u067e\u0679 \u062c\u0645\u0639 \u06a9\u0631\u0648\u0627\u0626\u06cc\u06ba\u06d4<\/strong> (\u062c\u0691 \u06a9\u06cc \u06af\u0646\u062c\u0627\u0626\u0634 \u0628\u0646\u0627\u0626\u06cc\u06ba)<\/p>\n<\/li>\n<li>\n<p><strong>\u067e\u0631\u06cc \u0679\u0648\u0644 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644<\/strong> (\u0627\u0633\u067e\u06cc\u0646 \u06a9\u0627 \u0622\u063a\u0627\u0632)<\/p>\n<\/li>\n<li>\n<p><strong>\u067e\u0648\u0633\u0679 \u0679\u0648\u0644 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644<\/strong> (\u0646\u062a\u0627\u0626\u062c \u06a9\u06d2 \u0633\u0627\u062a\u06be \u062e\u062a\u0645) \u0627\u0648\u0631<\/p>\n<\/li>\n<li>\n<p><strong>\u0631\u0648\u06a9\u0646\u0627<\/strong> (\u067e\u06cc\u0686\u06be\u0627 \u062e\u062a\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2)\u06d4 \u06c1\u0631 \u06c1\u06a9 stdin \u0633\u06d2 JSON \u067e\u06d2 \u0644\u0648\u0688 \u0644\u06cc\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0630\u06cc\u0644\u06cc \u0639\u0645\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0686\u0644\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ol>\n<h3 id=\"heading-sending-spans-with-opentelemetry\">OpenTelemetry \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0627\u0633\u067e\u06cc\u0646 \u0628\u06be\u06cc\u062c\u06cc\u06ba\u06d4<\/h3>\n<p>\u06cc\u06c1\u0627\u06ba \u06a9\u0645 \u0633\u06d2 \u06a9\u0645 \u0627\u0632\u06af\u0631 \u06c1\u06d2 \u062c\u0633 \u06a9\u06cc \u0622\u067e \u06a9\u0648 \u062c\u06cc\u06af\u0631 \u067e\u0631 \u06af\u0646\u062c\u0627\u0626\u0634 \u062d\u0627\u0635\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2:<\/p>\n<pre><code class=\"language-python\">from opentelemetry import trace\nfrom opentelemetry.sdk.trace import TracerProvider\nfrom opentelemetry.sdk.trace.export import BatchSpanProcessor\nfrom opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter\nfrom opentelemetry.sdk.resources import Resource\n\nresource = Resource.create({\"service.name\": \"my-agent-system\"})\nexporter = OTLPSpanExporter(endpoint=\"http:\/\/localhost:4317\", insecure=True)\nprovider = TracerProvider(resource=resource)\nprovider.add_span_processor(BatchSpanProcessor(exporter))\ntrace.set_tracer_provider(provider)\n\ntracer = trace.get_tracer(\"agent-tracer\")\n\nwith tracer.start_as_current_span(\"my-agent-task\") as span:\n    span.set_attribute(\"agent.name\", \"planner\")\n    span.set_attribute(\"agent.tokens.input\", 1500)\n    span.set_attribute(\"agent.tokens.output\", 800)\n<\/code><\/pre>\n<p>\u0631\u06cc\u0641\u0631\u06cc\u0634 <code>localhost:16686<\/code>\u0627\u067e\u0646\u06cc \u0633\u0631\u0648\u0633 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 '\u0641\u0627\u0626\u0646\u0688 \u0679\u0631\u06cc\u06a9\u0646\u06af' \u067e\u0631 \u06a9\u0644\u06a9 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-correlating-pre-and-post-events\">\u0648\u0627\u0642\u0639\u06c1 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0627\u0648\u0631 \u0628\u0639\u062f \u06a9\u0627 \u0628\u0627\u06c1\u0645\u06cc \u062a\u0639\u0644\u0642<\/h3>\n<p>\u06c1\u0631 PreToolUse \u06a9\u0648 \u0627\u0633 \u06a9\u06d2 \u0645\u062a\u0639\u0644\u0642\u06c1 PostToolUse \u0633\u06d2 \u0645\u0645\u0627\u062b\u0644 \u06c1\u0648\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4 \u0627\u06cc\u062c\u0646\u0679 \u0642\u0633\u0645 \u06a9\u06d2 \u0679\u0648\u0644 \u06a9\u0627\u0644\u0632 \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba: <code>tool_use_id<\/code> \u0645\u06cc\u06ba \u0646\u06d2 \u0627\u0633 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u0679\u0648\u0644 \u06a9\u0627 \u0646\u0627\u0645 \u0627\u0648\u0631 \u0627\u0646 \u067e\u0679 \u06c1\u06cc\u0634 \u06a9\u0631 \u062f\u06cc\u0627\u060c \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u06cc\u06c1 \u067e\u06d2 \u0644\u0648\u0688 \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06c1\u06d2\u06d4 \u067e\u0631\u06cc \u0627\u0648\u0631 \u067e\u0648\u0633\u0679 \u0627\u06cc\u06a9 \u062c\u06cc\u0633\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>tool_input<\/code>\u062a\u0648 \u06c1\u06cc\u0634\u0648\u06ba \u06a9\u0648 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-python\">import hashlib, json\n\ndef correlation_key(tool_name: str, tool_input: dict) -> str:\n    content = json.dumps({\"tool\": tool_name, \"input\": tool_input}, sort_keys=True)\n    return hashlib.sha1(content.encode()).hexdigest()[:16]\n<\/code><\/pre>\n<h3 id=\"heading-state-across-invocations\">\u067e\u0648\u0631\u06cc \u06a9\u0627\u0644 \u0645\u06cc\u06ba \u0628\u06cc\u0627\u0646 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u06c1\u0631 \u06c1\u06a9 \u06a9\u0627\u0644 \u0627\u06cc\u06a9 \u0627\u0644\u06af \u0639\u0645\u0644 \u06c1\u06d2\u06d4 \u06a9\u0648\u0626\u06cc \u0645\u0634\u062a\u0631\u06a9\u06c1 \u0645\u06cc\u0645\u0648\u0631\u06cc \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u0644\u06c1\u0630\u0627 \u0645\u06cc\u06ba \u0646\u06d2 \u067e\u06c1\u0644\u06d2 \u0645\u06cc\u06ba JSON \u0641\u0627\u0626\u0644 \u0645\u06cc\u06ba \u062f\u0627\u0626\u0631\u06c1 \u06a9\u0627\u0631 \u06a9\u0627 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u0644\u06a9\u06be\u0627 \u0627\u0648\u0631 \u0627\u0633\u06d2 \u067e\u0648\u0633\u0679 \u0645\u06cc\u06ba \u0648\u0627\u067e\u0633 \u067e\u0691\u06be\u0627\u06d4<\/p>\n<pre><code class=\"language-plaintext\">\/tmp\/claude-forge-tracing\/<session_id>\/\n\u251c\u2500\u2500 _root.json              # trace ID, root span context\n\u251c\u2500\u2500 _session_start_ns.json  # timestamp for duration calculation\n\u251c\u2500\u2500 subagent_<hash>.json    # per-subagent span context\n\u2514\u2500\u2500 tool_<hash>.json        # per-tool span context\n<\/hash><\/hash><\/session_id><\/code><\/pre>\n<p>\u067e\u0627\u062a\u06be \u0646\u06cc\u0648\u06cc\u06af\u06cc\u0634\u0646 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0641\u0627\u0626\u0644 \u06a9\u06d2 \u0646\u0627\u0645 \u06a9\u0648 \u0645\u0633\u062a\u0631\u062f \u06a9\u0631 \u062f\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2\u06d4 <code>_safe_name()<\/code> \u0628\u0627\u06c1\u0631 \u06a9\u06cc \u06c1\u0631 \u0686\u06cc\u0632 \u06a9\u0648 \u06c1\u0679\u0627 \u062f\u06cc\u06ba\u06d4 <code>[A-Za-z0-9._-]<\/code> SHA1 \u0633\u0644\u06af \u067e\u0631 \u0648\u0627\u067e\u0633 \u062c\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-flushing-without-blocking\">\u0628\u0644\u0627\u06a9 \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631 \u0641\u0644\u0634 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<pre><code class=\"language-python\">try:\n    provider.force_flush(timeout_millis=1000)\nexcept Exception:\n    pass  # Never block the swarm\n<\/code><\/pre>\n<p>\u067e\u06c1\u0644\u06d2 \u0645\u06cc\u06ba \u0646\u06d2 2000ms \u06a9\u06cc \u06a9\u0648\u0634\u0634 \u06a9\u06cc \u0627\u0648\u0631 \u0628\u06be\u06cc\u0691 \u0633\u0633\u062a \u0645\u062d\u0633\u0648\u0633 \u06c1\u0648\u0626\u06cc\u06d4 \u0679\u06be\u0646\u0688\u06d2 TLS \u06a9\u0646\u06a9\u0634\u0646 \u067e\u0631 100ms \u06a9\u06cc \u062d\u062f \u062e\u062a\u0645 \u06c1\u0648 \u062c\u0627\u062a\u06cc \u06c1\u06d2\u06d4 1000ms \u06a9\u0627\u0645 \u06a9\u06cc\u0627\u06d4 \u0627\u06af\u0631 \u062c\u06cc\u062c\u0631 \u0646\u06cc\u0686\u06d2 \u06c1\u06d2\u060c \u062a\u0648 \u0628\u06be\u06cc\u0691 \u0642\u0637\u0639 \u0646\u0638\u0631 \u062f\u0648\u0691\u062a\u06cc \u0631\u06c1\u06d2 \u06af\u06cc\u06d4<\/p>\n<h2 id=\"heading-viewing-traces-in-the-jaeger-ui\">Jaeger UI \u0645\u06cc\u06ba \u0679\u0631\u06cc\u0633 \u062f\u06cc\u06a9\u06be\u06cc\u06ba<\/h2>\n<p>\u06a9\u06be\u0644\u0627 <code>http:\/\/localhost:16686<\/code>. \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u06cc\u06ba <code>claude-forge<\/code> \u0633\u0631\u0648\u0633\u0632 \u0688\u0631\u0627\u067e \u0688\u0627\u0624\u0646 \u0645\u06cc\u06ba \"\u0641\u0627\u0626\u0646\u0688 \u0679\u0631\u06cc\u06a9\u0646\u06af\" \u067e\u0631 \u06a9\u0644\u06a9 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p>\u0679\u0631\u06cc\u06a9\u0646\u06af \u062a\u0644\u0627\u0634\u06cc\u06ba \u06a9\u0627\u0645 \u06a9\u06d2 \u0646\u0627\u0645\u060c \u0679\u06cc\u06af\u0632 \u0627\u0648\u0631 \u0648\u0642\u062a \u06a9\u06cc \u062d\u062f \u06a9\u06d2 \u0644\u062d\u0627\u0638 \u0633\u06d2 \u0641\u0644\u0679\u0631 \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba\u06d4 \u0633\u06cc\u0634\u0646 \u06a9\u06d2 \u062f\u0627\u0626\u0631\u06c1 \u06a9\u0627\u0631 \u06a9\u0648 \u0627\u0633 \u06a9\u0627 \u0646\u0627\u0645 \u067e\u0631\u0627\u0645\u067e\u0679 \u0633\u06d2 \u0645\u0644\u062a\u0627 \u06c1\u06d2\u060c \u0644\u06c1\u0630\u0627 \"\u0644\u0627\u06af \u0627\u0646 \u0641\u0627\u0631\u0645\" \u06a9\u06cc \u062a\u0644\u0627\u0634 \u0622\u067e \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u067e\u0631 \u0639\u0645\u0644 \u062f\u0631\u0622\u0645\u062f \u0638\u0627\u06c1\u0631 \u06a9\u0631\u06d2 \u06af\u06cc\u06d4<\/p>\n<p>\u0679\u0627\u0626\u0645 \u0644\u0627\u0626\u0646 \u0648\u06cc\u0648 \u0648\u06c1 \u062c\u06af\u06c1 \u06c1\u06d2 \u062c\u06c1\u0627\u06ba \u0645\u06cc\u06ba \u0627\u067e\u0646\u0627 \u0632\u06cc\u0627\u062f\u06c1 \u062a\u0631 \u0648\u0642\u062a \u06af\u0632\u0627\u0631\u062a\u0627 \u06c1\u0648\u06ba\u06d4 \u062a\u0645\u0627\u0645 \u0631\u06cc\u0646\u062c\u0632 \u0627\u0641\u0642\u06cc \u0633\u0644\u0627\u062e\u06cc\u06ba \u06c1\u06cc\u06ba \u062c\u0648 \u0648\u0627\u0644\u062f\u06cc\u0646 \u0627\u0648\u0631 \u0628\u0686\u06d2 \u06a9\u06d2 \u0631\u0634\u062a\u06d2 \u0645\u06cc\u06ba \u06af\u06be\u0631\u06cc \u06c1\u0648\u0626\u06cc \u06c1\u06cc\u06ba\u06d4 \u0622\u067e \u062f\u06cc\u06a9\u06be \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 \u0645\u0646\u0635\u0648\u0628\u06c1 \u0633\u0627\u0632 \u0646\u06d2 12 \u0633\u06cc\u06a9\u0646\u0688\u060c \u0639\u0645\u0644 \u062f\u0631\u0622\u0645\u062f \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0646\u06d2 45 \u0633\u06cc\u06a9\u0646\u0688 \u0627\u0648\u0631 \u062c\u0627\u0626\u0632\u06c1 \u0644\u06cc\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0646\u06d2 8 \u0633\u06cc\u06a9\u0646\u0688 \u06a9\u0627 \u0648\u0642\u062a \u0644\u06cc\u0627\u06d4 \u0679\u0648\u06a9\u0646 \u06a9\u06cc \u062a\u0639\u062f\u0627\u062f\u060c \u0627\u0634\u0627\u0631\u06d2\u060c \u0622\u0624\u0679 \u067e\u0679\u060c \u0627\u0648\u0631 \u062e\u0631\u0627\u0628\u06cc \u06a9\u06cc \u06a9\u06cc\u0641\u06cc\u062a \u062f\u06cc\u06a9\u06be\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0628\u0627\u0631 \u067e\u0631 \u06a9\u0644\u06a9 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p>\u0679\u0631\u06cc\u0633 \u06a9\u0627 \u0645\u0648\u0627\u0632\u0646\u06c1 \u062f\u0648 \u0631\u0646\u0632 \u0633\u0627\u062a\u06be \u0633\u0627\u062a\u06be \u0631\u06a9\u06be\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0627\u0633 \u0628\u0627\u062a \u06a9\u0627 \u062a\u0639\u06cc\u0646 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0641\u06cc\u062f \u06c1\u06d2 \u06a9\u06c1 \u0627\u06cc\u06a9 \u0631\u0646 \u06a9\u06cc\u0648\u06ba \u06a9\u0627\u0645\u06cc\u0627\u0628 \u06c1\u0648\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u062f\u0648\u0633\u0631\u0627 \u0646\u0627\u06a9\u0627\u0645 \u06a9\u06cc\u0648\u06ba \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-lessons-from-the-trenches\">\u062e\u0646\u062f\u0642\u0648\u06ba \u0633\u06d2 \u0633\u0628\u0642 \u0633\u06cc\u06a9\u06be\u0627\u06d4<\/h2>\n<p><strong>\u0627\u06cc\u06a9 \u0679\u0631\u06cc\u0633 \u0641\u06cc \u0628\u06be\u06cc\u0691\u060c \u0641\u06cc \u0630\u06cc\u0644\u06cc \u0627\u06cc\u062c\u0646\u0679 \u0646\u06c1\u06cc\u06ba:<\/strong> \u0645\u06cc\u0631\u06d2 \u067e\u06c1\u0644\u06d2 \u0648\u0631\u0698\u0646 \u0646\u06d2 \u06c1\u0631 \u0627\u0633\u0679\u0627\u067e \u0627\u06cc\u0648\u0646\u0679 \u067e\u0631 \u0631\u0648\u0679 \u0627\u0633\u06a9\u0648\u067e\u0688 \u0627\u0633\u0679\u06cc\u0679 \u0641\u0627\u0626\u0644 \u06a9\u0648 \u0635\u0627\u0641 \u06a9\u06cc\u0627\u060c \u0644\u06c1\u0630\u0627 \u06c1\u0631 \u0630\u06cc\u0644\u06cc \u0627\u06cc\u062c\u0646\u0679 \u0646\u06d2 \u0627\u06cc\u06a9 \u0646\u06cc\u0627 \u0679\u0631\u06cc\u0633 \u0634\u0631\u0648\u0639 \u06a9\u06cc\u0627\u06d4 \u0631\u0627\u0633\u062a\u06d2 \u06a9\u0648 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0679\u0627\u0626\u0645 \u0627\u0633\u0679\u06cc\u0645\u067e \u0688\u0633\u067e\u0644\u06d2 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633\u0679\u0627\u067e \u06a9\u0648 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631 \u062f\u06cc\u0627 \u06af\u06cc\u0627\u06d4<\/p>\n<p><strong>\u0648\u0636\u0627\u062d\u062a\u06cc\u06ba \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u060c \u0646\u0627\u0645\u0648\u06ba \u06a9\u06cc \u0642\u0633\u0645 \u0646\u06c1\u06cc\u06ba\u06d4<\/strong> \u0630\u06cc\u0644\u06cc \u0627\u06cc\u062c\u0646\u0679 \u0633\u0628\u06be\u06cc \u0627\u067e\u0646\u06cc \u0642\u0633\u0645 \u06a9\u06cc \u0631\u067e\u0648\u0631\u0679 \u062f\u0631\u062c \u0630\u06cc\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba: <code>general-purpose<\/code>. \u062a\u0641\u0635\u06cc\u0644 \u06a9\u0627 \u0645\u06cc\u062f\u0627\u0646 \u0648\u06c1 \u06c1\u06d2 \u062c\u06c1\u0627\u06ba \u0627\u0635\u0644 \u06a9\u0631\u062f\u0627\u0631 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p><strong>\u0679\u0648\u06a9\u0646 \u067e\u0631\u0627\u067e\u0631\u0679\u06cc\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u062c\u0646\u0679 \u06a9\u06d2 \u0645\u062e\u0635\u0648\u0635 \u0631\u06cc\u06a9\u0627\u0631\u0688 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4<\/strong> \u06a9\u0644\u0627\u0688 \u06a9\u0648\u0688 \u0630\u06cc\u0644\u06cc \u0627\u06cc\u062c\u0646\u0679 \u06a9\u06d2 \u0631\u06cc\u06a9\u0627\u0631\u0688 \u06a9\u0648 \u0644\u06a9\u06be\u062a\u0627 \u06c1\u06d2: <code>~\/.claude\/projects\/<project>\/<session>\/subagents\/agent-*.jsonl<\/session><\/project><\/code>. \u0645\u06cc\u0686 \u0628\u0630\u0631\u06cc\u0639\u06c1: <code>agent-*.meta.json<\/code>.<\/p>\n<p><strong>\u0628\u0648\u0644\u06cc\u0646 \u0645\u0627\u062d\u0648\u0644\u06cc\u0627\u062a\u06cc \u0645\u062a\u063a\u06cc\u0631\u0627\u062a \u06a9\u0648 \u0648\u0627\u0636\u062d \u0637\u0648\u0631 \u067e\u0631 \u067e\u0627\u0631\u0633 \u06a9\u0631\u06cc\u06ba\u06d4<\/strong> <code>bool(\"0\")<\/code>    \u0627\u0632\u06af\u0631 \u0645\u06cc\u06ba <code>True<\/code>. \u0648\u0627\u0626\u0679 \u0644\u0633\u0679\u0646\u06af \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 <code>{\"1\", \"true\", \"yes\", \"on\"}<\/code>.<\/p>\n<h2 id=\"heading-environment-variable-reference\">\u0645\u0627\u062d\u0648\u0644\u06cc\u0627\u062a\u06cc \u0645\u062a\u063a\u06cc\u0631 \u062d\u0648\u0627\u0644\u06c1<\/h2>\n<table>\n<thead>\n<tr>\n<th>\u0645\u062a\u063a\u06cc\u0631<\/th>\n<th>\u0645\u0642\u0635\u062f<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>CLAUDE_FORGE_TRACING=1<\/code><\/td>\n<td>\u0645\u0627\u0633\u0679\u0631 \u0622\u067e\u0679 \u0627\u0646\u06d4 \u06c1\u06a9\u0633 \u0627\u0646 \u06a9\u06d2 \u0628\u063a\u06cc\u0631 \u06a9\u0627\u0645 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u06cc\u06ba \u06af\u06d2\u06d4<\/td>\n<\/tr>\n<tr>\n<td><code>CLAUDE_FORGE_TRACE_MUTATIONS=0<\/code><\/td>\n<td>\u0688\u06cc\u0641\u0627\u0644\u0679 \u0648\u06cc\u0631\u06cc\u0646\u0679 \u0627\u0633\u06a9\u0648\u067e \u06a9\u0648 \u063a\u06cc\u0631 \u0641\u0639\u0627\u0644 \u06a9\u0631\u06cc\u06ba (\u0644\u06a9\u06be\u06cc\u06ba\/\u062a\u0631\u0645\u06cc\u0645\/\u0628\u0627\u0634)\u06d4 \u06cc\u06c1 \u0628\u0637\u0648\u0631 \u0688\u06cc\u0641\u0627\u0644\u0679 \u0622\u0646 \u06c1\u06d2\u06d4<\/td>\n<\/tr>\n<tr>\n<td><code>CLAUDE_FORGE_TRACE_INNER=1<\/code><\/td>\n<td>\u062a\u0645\u0627\u0645 \u0627\u0646\u062f\u0631\u0648\u0646\u06cc \u0679\u0648\u0644 \u06a9\u0627\u0644\u0632 \u06a9\u0648 \u0633\u0628 \u0627\u0633\u06a9\u0648\u067e\u0633 \u067e\u0631 \u06a9\u06cc\u067e\u0686\u0631 \u06a9\u0631\u06cc\u06ba (\u0628\u0630\u0631\u06cc\u0639\u06c1 \u0688\u06cc\u0641\u0627\u0644\u0679 \u0622\u0641)\u06d4<\/td>\n<\/tr>\n<tr>\n<td><code>CLAUDE_FORGE_TRACE_TOOL_BLOCKLIST<\/code><\/td>\n<td>\u0627\u0646\u062f\u0631\u0648\u0646\u06cc \u0679\u0631\u06cc\u0633\u0646\u06af \u0622\u0646 \u06c1\u0648\u0646\u06d2 \u067e\u0631 \u0686\u06be\u0648\u0691\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0648\u0645\u0627 \u0633\u06d2 \u0627\u0644\u06af \u06a9\u06cc\u06d2 \u06af\u0626\u06d2 \u0679\u0648\u0644\u0632\u06d4 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0637\u06d2 \u0634\u062f\u06c1 \u06c1\u06d2\u06d4 <code>Read,Glob,Grep,TodoWrite,NotebookRead<\/code>.<\/td>\n<\/tr>\n<tr>\n<td><code>CLAUDE_FORGE_HOOK_DEBUG=1<\/code><\/td>\n<td>\u062e\u0627\u0645 \u06c1\u06a9 \u067e\u06d2 \u0644\u0648\u0688\u0632 \u06a9\u06cc \u0688\u06cc\u0628\u06af \u0644\u0627\u06af\u0646\u06af \u06a9\u0648 \u0641\u0639\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0628\u0637\u0648\u0631 \u0688\u06cc\u0641\u0627\u0644\u0679 \u0622\u0641 \u06c1\u06d2\u06d4<\/td>\n<\/tr>\n<tr>\n<td><code>CLAUDE_FORGE_HOOK_DEBUG_LOG<\/code><\/td>\n<td>\u0688\u06cc\u0628\u06af \u0644\u0627\u06af \u067e\u0627\u062a\u06be \u06a9\u0648 \u0627\u0648\u0648\u0631 \u0631\u0627\u0626\u06cc\u0688 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0637\u06d2 \u0634\u062f\u06c1 \u06c1\u06d2\u06d4 <code>~\/.cache\/claude-forge\/hook.log<\/code>.<\/td>\n<\/tr>\n<tr>\n<td><code>OTEL_EXPORTER_OTLP_ENDPOINT<\/code><\/td>\n<td>OTLP\/gRPC \u0627\u062e\u062a\u062a\u0627\u0645\u06cc \u0646\u0642\u0637\u06c1\u06d4 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0637\u06d2 \u0634\u062f\u06c1 \u06c1\u06d2\u06d4 <code>http:\/\/localhost:4317<\/code>.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"heading-wrapping-up\">\u062e\u062a\u0645<\/h2>\n<p>\u0639\u0645\u0644 \u0645\u06cc\u06ba \u0645\u0631\u0626\u06cc\u062a \u06a9\u06d2 \u0628\u063a\u06cc\u0631\u060c \u0622\u067e \u06a9\u06d2 \u0679\u0648\u06a9\u0646 \u0627\u0648\u0631 \u0648\u0642\u062a \u0646\u0627\u06a9\u0627\u0631\u06c1 \u06c1\u06cc\u06ba\u06d4 \u0645\u0644\u0679\u06cc \u0627\u06cc\u062c\u0646\u0679 \u0628\u06be\u06cc\u0691 \u062c\u0628 \u0628\u06be\u06cc \u0686\u0644\u062a\u06cc \u06c1\u06d2 \u0627\u0646 \u06a9\u06cc \u0627\u0635\u0644 \u0642\u06cc\u0645\u062a \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u06a9\u0648\u0626\u06cc \u0627\u06cc\u062c\u0646\u0679 \u0646\u0627\u06a9\u0627\u0645 \u06c1\u0648 \u062c\u0627\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u062f\u0648\u0628\u0627\u0631\u06c1 \u06a9\u0648\u0634\u0634 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u06cc\u0627 \u062c\u0627\u0626\u0632\u06c1 \u0644\u06cc\u0646\u06d2 \u0648\u0627\u0644\u0627 \u0628\u0646\u062f \u06a9\u0627\u0645 \u06a9\u0648 \u0645\u0633\u062a\u0631\u062f \u06a9\u0631 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u0622\u067e \u0627\u0633 \u0627\u0646\u062f\u06be\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u062f\u0627\u0626\u06cc\u06af\u06cc \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0679\u0631\u06cc\u06a9\u0646\u06af \u0622\u067e \u06a9\u0648 \u0646\u0642\u0634\u06c1 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 \u0645\u0639\u0644\u0648\u0645 \u06a9\u0631\u06cc\u06ba \u06a9\u06c1 \u0622\u067e \u06a9\u06d2 \u0646\u0627\u06a9\u0627\u0645\u06cc \u06a9\u06d2 \u0637\u0631\u06cc\u0642\u06d2 \u06a9\u06c1\u0627\u06ba \u06c1\u06cc\u06ba\u06d4 \u0622\u067e \u06cc\u06c1 \u062c\u0627\u0646 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 \u06a9\u0648\u0646 \u0633\u06d2 \u0627\u06cc\u062c\u0646\u0679 \u06a9\u06c1\u06cc\u06ba \u0628\u06be\u06cc \u0627\u067e\u0646\u06d2 \u0679\u0648\u06a9\u0646 \u0646\u06c1\u06cc\u06ba \u062c\u0644\u0627 \u0631\u06c1\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0628\u06c1\u062a\u0631 \u0645\u0646\u0635\u0648\u0628\u06c1 \u0633\u0627\u0632 \u06a9\u06d2 \u0627\u0634\u0627\u0631\u06d2 \u06a9\u06d2 \u0633\u0627\u062a\u06be\u060c 45 \u0633\u06cc\u06a9\u0646\u0688 \u06a9\u0627 \u0646\u0641\u0627\u0630 \u06a9\u0646\u0646\u062f\u06c1 \u0631\u0646 10 \u0633\u06cc\u06a9\u0646\u0688 \u0628\u0646 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4 \u0644\u06cc\u06a9\u0646 \u0622\u067e \u06a9\u0648 \u06cc\u06c1 \u06a9\u0628\u06be\u06cc \u0645\u0639\u0644\u0648\u0645 \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u06af\u0627 \u062c\u0628 \u062a\u06a9 \u06a9\u06c1 \u0622\u067e \u062e\u0631\u0627\u0628\u06cc \u06a9\u0648 \u0646\u06c1 \u062f\u06cc\u06a9\u06be\u06cc\u06ba\u06d4<\/p>\n<p>\u062c\u0644\u062f \u0645\u0631\u0626\u06cc\u062a \u062d\u0627\u0635\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 Jaeger \u0627\u0648\u0631 OpenTelemetry \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u0633\u06cc\u0679 \u0627\u067e \u06a9\u06cc \u0644\u0627\u06af\u062a \u0633\u0633\u062a\u06cc \u06c1\u0648 \u062c\u0627\u062a\u06cc \u06c1\u06d2\u06d4 \u0627\u06cc\u06a9 \u0628\u0627\u0631 \u062c\u0628 \u0622\u067e \u0627\u0633 \u0628\u0627\u062a \u06a9\u0627 \u062a\u0639\u06cc\u0646 \u06a9\u0631 \u0644\u06cc\u06ba \u06a9\u06c1 \u0645\u0633\u0626\u0644\u06c1 \u06a9\u06c1\u0627\u06ba \u06c1\u0648 \u0631\u06c1\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u0622\u067e \u0648\u0627\u0642\u0639\u06cc \u0627\u0633\u06d2 \u0679\u06be\u06cc\u06a9 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u06a9\u0644\u0627\u0688 \u0641\u0648\u0631\u062c \u0679\u0631\u06cc\u0633 \u0688\u06cc\u0641\u0627\u0644\u0679 \u0628\u0631\u0627\u0646\u0686 \u0645\u06cc\u06ba \u06c1\u06d2\u06d4<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u0648\u0627\u062d\u062f AI \u0627\u06cc\u062c\u0646\u0679 \u06a9\u0648 \u0686\u0644\u0627\u0646\u06d2 \u0633\u06d2 \u0688\u06cc\u0628\u06af\u0646\u06af \u0622\u0633\u0627\u0646 \u06c1\u0648 \u062c\u0627\u062a\u06cc \u06c1\u06d2\u06d4 \u06a9\u06cc\u0627 \u06c1\u0648\u0627 \u06cc\u06c1 \u062c\u0627\u0646\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0644\u0627\u06af \u067e\u0691\u06be\u06cc\u06ba\u06d4 \u0627\u06af\u0631 \u0622\u067e \u06a9\u06d2 \u067e\u0627\u0633 5 \u0627\u06cc\u062c\u0646\u0679\u0633 \u0686\u0644 \u0631\u06c1\u06d2 \u06c1\u06cc\u06ba\u060c \u06c1\u0631 \u0627\u06cc\u06a9 \u0627\u067e\u0646\u06cc \u0679\u0648\u0644 \u06a9\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u067e\u0646\u0627 \u0622\u0624\u0679 \u067e\u0679 \u062a\u06cc\u0627\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c &quot;\u0644\u0627\u06af \u067e\u0691\u06be\u0646\u0627&#8221; \u0627\u0628 \u06a9\u0648\u0626\u06cc \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u0645\u06cc\u06ba \u0646\u06d2 Claude Forge \u06a9\u0648 [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1],"tags":[],"class_list":["post-22990","post","type-post","status-publish","format-standard","hentry","category-blog"],"_links":{"self":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/posts\/22990","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/comments?post=22990"}],"version-history":[{"count":0,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/posts\/22990\/revisions"}],"wp:attachment":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/media?parent=22990"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/categories?post=22990"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/tags?post=22990"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}