agent-insight 0.5.0 → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (501) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-path-routes-manifest.json +1 -0
  3. package/.next/standalone/.next/build-manifest.json +2 -2
  4. package/.next/standalone/.next/prerender-manifest.json +3 -3
  5. package/.next/standalone/.next/routes-manifest.json +6 -0
  6. package/.next/standalone/.next/server/app/(main)/dashboard/page_client-reference-manifest.js +1 -1
  7. package/.next/standalone/.next/server/app/(main)/eval/trajectory/[taskId]/trace/page_client-reference-manifest.js +1 -1
  8. package/.next/standalone/.next/server/app/(main)/infra/source/[id]/page_client-reference-manifest.js +1 -1
  9. package/.next/standalone/.next/server/app/(main)/quality/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/.next/server/app/(main)/skill-history/page_client-reference-manifest.js +1 -1
  11. package/.next/standalone/.next/server/app/(main)/skills/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/.next/server/app/(main)/trace/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/.next/server/app/_global-error.html +2 -2
  14. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  15. package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  16. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  17. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  18. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  19. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  20. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  21. package/.next/standalone/.next/server/app/_not-found.rsc +1 -1
  22. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  23. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  24. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  25. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  26. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  27. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  28. package/.next/standalone/.next/server/app/accessconfig/channels.html +1 -1
  29. package/.next/standalone/.next/server/app/accessconfig/channels.rsc +1 -1
  30. package/.next/standalone/.next/server/app/accessconfig/channels.segments/!KG1haW4p/accessconfig/channels/__PAGE__.segment.rsc +1 -1
  31. package/.next/standalone/.next/server/app/accessconfig/channels.segments/!KG1haW4p/accessconfig/channels.segment.rsc +1 -1
  32. package/.next/standalone/.next/server/app/accessconfig/channels.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
  33. package/.next/standalone/.next/server/app/accessconfig/channels.segments/!KG1haW4p.segment.rsc +1 -1
  34. package/.next/standalone/.next/server/app/accessconfig/channels.segments/_full.segment.rsc +1 -1
  35. package/.next/standalone/.next/server/app/accessconfig/channels.segments/_head.segment.rsc +1 -1
  36. package/.next/standalone/.next/server/app/accessconfig/channels.segments/_index.segment.rsc +1 -1
  37. package/.next/standalone/.next/server/app/accessconfig/channels.segments/_tree.segment.rsc +1 -1
  38. package/.next/standalone/.next/server/app/accessconfig/health.html +1 -1
  39. package/.next/standalone/.next/server/app/accessconfig/health.rsc +1 -1
  40. package/.next/standalone/.next/server/app/accessconfig/health.segments/!KG1haW4p/accessconfig/health/__PAGE__.segment.rsc +1 -1
  41. package/.next/standalone/.next/server/app/accessconfig/health.segments/!KG1haW4p/accessconfig/health.segment.rsc +1 -1
  42. package/.next/standalone/.next/server/app/accessconfig/health.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
  43. package/.next/standalone/.next/server/app/accessconfig/health.segments/!KG1haW4p.segment.rsc +1 -1
  44. package/.next/standalone/.next/server/app/accessconfig/health.segments/_full.segment.rsc +1 -1
  45. package/.next/standalone/.next/server/app/accessconfig/health.segments/_head.segment.rsc +1 -1
  46. package/.next/standalone/.next/server/app/accessconfig/health.segments/_index.segment.rsc +1 -1
  47. package/.next/standalone/.next/server/app/accessconfig/health.segments/_tree.segment.rsc +1 -1
  48. package/.next/standalone/.next/server/app/accessconfig/install.html +2 -2
  49. package/.next/standalone/.next/server/app/accessconfig/install.rsc +1 -1
  50. package/.next/standalone/.next/server/app/accessconfig/install.segments/!KG1haW4p/accessconfig/install/__PAGE__.segment.rsc +1 -1
  51. package/.next/standalone/.next/server/app/accessconfig/install.segments/!KG1haW4p/accessconfig/install.segment.rsc +1 -1
  52. package/.next/standalone/.next/server/app/accessconfig/install.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
  53. package/.next/standalone/.next/server/app/accessconfig/install.segments/!KG1haW4p.segment.rsc +1 -1
  54. package/.next/standalone/.next/server/app/accessconfig/install.segments/_full.segment.rsc +1 -1
  55. package/.next/standalone/.next/server/app/accessconfig/install.segments/_head.segment.rsc +1 -1
  56. package/.next/standalone/.next/server/app/accessconfig/install.segments/_index.segment.rsc +1 -1
  57. package/.next/standalone/.next/server/app/accessconfig/install.segments/_tree.segment.rsc +1 -1
  58. package/.next/standalone/.next/server/app/accessconfig/webhooks.html +1 -1
  59. package/.next/standalone/.next/server/app/accessconfig/webhooks.rsc +1 -1
  60. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/!KG1haW4p/accessconfig/webhooks/__PAGE__.segment.rsc +1 -1
  61. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/!KG1haW4p/accessconfig/webhooks.segment.rsc +1 -1
  62. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
  63. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/!KG1haW4p.segment.rsc +1 -1
  64. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/_full.segment.rsc +1 -1
  65. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/_head.segment.rsc +1 -1
  66. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/_index.segment.rsc +1 -1
  67. package/.next/standalone/.next/server/app/accessconfig/webhooks.segments/_tree.segment.rsc +1 -1
  68. package/.next/standalone/.next/server/app/accessconfig.html +1 -1
  69. package/.next/standalone/.next/server/app/accessconfig.rsc +1 -1
  70. package/.next/standalone/.next/server/app/accessconfig.segments/!KG1haW4p/accessconfig/__PAGE__.segment.rsc +1 -1
  71. package/.next/standalone/.next/server/app/accessconfig.segments/!KG1haW4p/accessconfig.segment.rsc +1 -1
  72. package/.next/standalone/.next/server/app/accessconfig.segments/!KG1haW4p.segment.rsc +1 -1
  73. package/.next/standalone/.next/server/app/accessconfig.segments/_full.segment.rsc +1 -1
  74. package/.next/standalone/.next/server/app/accessconfig.segments/_head.segment.rsc +1 -1
  75. package/.next/standalone/.next/server/app/accessconfig.segments/_index.segment.rsc +1 -1
  76. package/.next/standalone/.next/server/app/accessconfig.segments/_tree.segment.rsc +1 -1
  77. package/.next/standalone/.next/server/app/agents.html +1 -1
  78. package/.next/standalone/.next/server/app/agents.rsc +1 -1
  79. package/.next/standalone/.next/server/app/agents.segments/!KG1haW4p/agents/__PAGE__.segment.rsc +1 -1
  80. package/.next/standalone/.next/server/app/agents.segments/!KG1haW4p/agents.segment.rsc +1 -1
  81. package/.next/standalone/.next/server/app/agents.segments/!KG1haW4p.segment.rsc +1 -1
  82. package/.next/standalone/.next/server/app/agents.segments/_full.segment.rsc +1 -1
  83. package/.next/standalone/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  84. package/.next/standalone/.next/server/app/agents.segments/_index.segment.rsc +1 -1
  85. package/.next/standalone/.next/server/app/agents.segments/_tree.segment.rsc +1 -1
  86. package/.next/standalone/.next/server/app/api/agent/run/route.js.nft.json +1 -1
  87. package/.next/standalone/.next/server/app/api/agent/stream/route.js.nft.json +1 -1
  88. package/.next/standalone/.next/server/app/api/agent-datasets/[id]/route.js.nft.json +1 -1
  89. package/.next/standalone/.next/server/app/api/agent-datasets/route.js.nft.json +1 -1
  90. package/.next/standalone/.next/server/app/api/agents/[id]/route.js.nft.json +1 -1
  91. package/.next/standalone/.next/server/app/api/agents/route.js.nft.json +1 -1
  92. package/.next/standalone/.next/server/app/api/auth/apikey/route.js.nft.json +1 -1
  93. package/.next/standalone/.next/server/app/api/auth/organization/route.js.nft.json +1 -1
  94. package/.next/standalone/.next/server/app/api/dashboard/stats/route.js.nft.json +1 -1
  95. package/.next/standalone/.next/server/app/api/debug/batch-tasks/[taskId]/route.js.nft.json +1 -1
  96. package/.next/standalone/.next/server/app/api/debug/batch-tasks/route.js.nft.json +1 -1
  97. package/.next/standalone/.next/server/app/api/debug/execute/[jobId]/route.js.nft.json +1 -1
  98. package/.next/standalone/.next/server/app/api/debug/execute/route.js.nft.json +1 -1
  99. package/.next/standalone/.next/server/app/api/debug/grayscale-tasks/[taskId]/route.js.nft.json +1 -1
  100. package/.next/standalone/.next/server/app/api/debug/grayscale-tasks/route.js.nft.json +1 -1
  101. package/.next/standalone/.next/server/app/api/debug/history/[id]/route.js.nft.json +1 -1
  102. package/.next/standalone/.next/server/app/api/debug/history/route.js.nft.json +1 -1
  103. package/.next/standalone/.next/server/app/api/eval/config/backfill-routing/route.js.nft.json +1 -1
  104. package/.next/standalone/.next/server/app/api/eval/config/create/route.js.nft.json +1 -1
  105. package/.next/standalone/.next/server/app/api/eval/config/reparse/route.js.nft.json +1 -1
  106. package/.next/standalone/.next/server/app/api/eval/config/route.js.nft.json +1 -1
  107. package/.next/standalone/.next/server/app/api/eval/config/status/route.js.nft.json +1 -1
  108. package/.next/standalone/.next/server/app/api/eval/evaluation/route.js.nft.json +1 -1
  109. package/.next/standalone/.next/server/app/api/eval/rejudge/route.js.nft.json +1 -1
  110. package/.next/standalone/.next/server/app/api/eval/settings/route.js.nft.json +1 -1
  111. package/.next/standalone/.next/server/app/api/eval/settings/test/route.js.nft.json +1 -1
  112. package/.next/standalone/.next/server/app/api/eval/terminate-all/route.js.nft.json +1 -1
  113. package/.next/standalone/.next/server/app/api/eval/trajectory/results/[id]/route.js.nft.json +1 -1
  114. package/.next/standalone/.next/server/app/api/eval/trajectory/results/route.js.nft.json +1 -1
  115. package/.next/standalone/.next/server/app/api/eval/trajectory/run/route.js.nft.json +1 -1
  116. package/.next/standalone/.next/server/app/api/eval/trajectory/runs/route.js.nft.json +1 -1
  117. package/.next/standalone/.next/server/app/api/evaluation/[id]/route.js.nft.json +1 -1
  118. package/.next/standalone/.next/server/app/api/evaluation/cancel/route.js.nft.json +1 -1
  119. package/.next/standalone/.next/server/app/api/fault/diagnosis/session/route.js.nft.json +1 -1
  120. package/.next/standalone/.next/server/app/api/fault/diagnosis/stream/route.js.nft.json +1 -1
  121. package/.next/standalone/.next/server/app/api/fleet/breakdowns/route.js.nft.json +1 -1
  122. package/.next/standalone/.next/server/app/api/fleet/trends/route.js.nft.json +1 -1
  123. package/.next/standalone/.next/server/app/api/guide/route.js.nft.json +1 -1
  124. package/.next/standalone/.next/server/app/api/ingest/opencode/session-complete/route.js.nft.json +1 -1
  125. package/.next/standalone/.next/server/app/api/ingest/otel/v1/logs/route.js.nft.json +1 -1
  126. package/.next/standalone/.next/server/app/api/ingest/otel/v1/metrics/route.js.nft.json +1 -1
  127. package/.next/standalone/.next/server/app/api/ingest/otel/v1/traces/route.js.nft.json +1 -1
  128. package/.next/standalone/.next/server/app/api/ingest/proxy/[taskId]/[...path]/route.js.nft.json +1 -1
  129. package/.next/standalone/.next/server/app/api/ingest/proxy/[taskId]/end/route.js.nft.json +1 -1
  130. package/.next/standalone/.next/server/app/api/ingest/proxy/[taskId]/start/route.js.nft.json +1 -1
  131. package/.next/standalone/.next/server/app/api/ingest/setup/opencode-offline-fix/route/app-paths-manifest.json +3 -0
  132. package/.next/standalone/.next/server/app/api/ingest/setup/opencode-offline-fix/route/build-manifest.json +11 -0
  133. package/.next/standalone/.next/server/app/api/ingest/setup/opencode-offline-fix/route/server-reference-manifest.json +4 -0
  134. package/.next/standalone/.next/server/app/api/ingest/setup/opencode-offline-fix/route.js +7 -0
  135. package/.next/standalone/.next/server/app/api/ingest/setup/opencode-offline-fix/route.js.map +5 -0
  136. package/.next/standalone/.next/server/app/api/ingest/setup/opencode-offline-fix/route.js.nft.json +1 -0
  137. package/.next/standalone/.next/server/app/api/ingest/setup/opencode-offline-fix/route_client-reference-manifest.js +2 -0
  138. package/.next/standalone/.next/server/app/api/ingest/sync/manifest/route.js.nft.json +1 -1
  139. package/.next/standalone/.next/server/app/api/ingest/sync/opencode/route.js.nft.json +1 -1
  140. package/.next/standalone/.next/server/app/api/ingest/upload/route.js.nft.json +1 -1
  141. package/.next/standalone/.next/server/app/api/observe/data/route.js.nft.json +1 -1
  142. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/agent-debug/route.js.nft.json +1 -1
  143. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/agent-debug/skills-analysis/route.js.nft.json +1 -1
  144. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/analyze-match/route.js.nft.json +1 -1
  145. package/.next/standalone/.next/server/app/api/observe/executions/[executionId]/infra/route.js.nft.json +1 -1
  146. package/.next/standalone/.next/server/app/api/observe/infra/history/route.js.nft.json +1 -1
  147. package/.next/standalone/.next/server/app/api/observe/infra/poll/route.js.nft.json +1 -1
  148. package/.next/standalone/.next/server/app/api/observe/infra/sources/derive/route.js.nft.json +1 -1
  149. package/.next/standalone/.next/server/app/api/observe/infra/sources/overview/route.js.nft.json +1 -1
  150. package/.next/standalone/.next/server/app/api/observe/infra/sources/route.js.nft.json +1 -1
  151. package/.next/standalone/.next/server/app/api/observe/infra/sources/sessions/route.js.nft.json +1 -1
  152. package/.next/standalone/.next/server/app/api/observe/infra/sources/test/route.js.nft.json +1 -1
  153. package/.next/standalone/.next/server/app/api/observe/session/route.js.nft.json +1 -1
  154. package/.next/standalone/.next/server/app/api/observe/task-stats/route.js.nft.json +1 -1
  155. package/.next/standalone/.next/server/app/api/public/otel/v1/traces/route.js.nft.json +1 -1
  156. package/.next/standalone/.next/server/app/api/quality/agents/route.js.nft.json +1 -1
  157. package/.next/standalone/.next/server/app/api/quality/backfill/route.js.nft.json +1 -1
  158. package/.next/standalone/.next/server/app/api/quality/executions/route.js.nft.json +1 -1
  159. package/.next/standalone/.next/server/app/api/quality/report/route.js.nft.json +1 -1
  160. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/draft/route.js.nft.json +1 -1
  161. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/route.js.nft.json +1 -1
  162. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/run/[runId]/cancel/route.js.nft.json +1 -1
  163. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/run/route.js.nft.json +1 -1
  164. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/runs/route.js.nft.json +1 -1
  165. package/.next/standalone/.next/server/app/api/skill-eval/trigger/[skillName]/upload/route.js.nft.json +1 -1
  166. package/.next/standalone/.next/server/app/api/skill-generator/attachments/route.js.nft.json +1 -1
  167. package/.next/standalone/.next/server/app/api/skill-generator/chat/route.js.nft.json +1 -1
  168. package/.next/standalone/.next/server/app/api/skill-generator/download/[sessionId]/route.js.nft.json +1 -1
  169. package/.next/standalone/.next/server/app/api/skill-generator/files/content/route.js.nft.json +1 -1
  170. package/.next/standalone/.next/server/app/api/skill-generator/files/download/route.js.nft.json +1 -1
  171. package/.next/standalone/.next/server/app/api/skill-generator/files/info/route.js.nft.json +1 -1
  172. package/.next/standalone/.next/server/app/api/skill-generator/files/list/route.js.nft.json +1 -1
  173. package/.next/standalone/.next/server/app/api/skill-generator/sessions/[id]/route.js.nft.json +1 -1
  174. package/.next/standalone/.next/server/app/api/skill-generator/sessions/route.js.nft.json +1 -1
  175. package/.next/standalone/.next/server/app/api/skill-opt/chat/route.js.nft.json +1 -1
  176. package/.next/standalone/.next/server/app/api/skill-opt/plan/items/[id]/route.js.nft.json +1 -1
  177. package/.next/standalone/.next/server/app/api/skill-opt/plan/route.js.nft.json +1 -1
  178. package/.next/standalone/.next/server/app/api/skill-opt/sessions/[id]/iterations/[draftNumber]/apply/route.js.nft.json +1 -1
  179. package/.next/standalone/.next/server/app/api/skill-opt/sessions/[id]/iterations/route.js.nft.json +1 -1
  180. package/.next/standalone/.next/server/app/api/skill-opt/sessions/[id]/route.js.nft.json +1 -1
  181. package/.next/standalone/.next/server/app/api/skill-opt/sessions/route.js.nft.json +1 -1
  182. package/.next/standalone/.next/server/app/api/skills/[id]/activate/route.js.nft.json +1 -1
  183. package/.next/standalone/.next/server/app/api/skills/[id]/benchmark-generate/route.js.nft.json +1 -1
  184. package/.next/standalone/.next/server/app/api/skills/[id]/runs/route.js.nft.json +1 -1
  185. package/.next/standalone/.next/server/app/api/skills/[id]/toggle/route.js.nft.json +1 -1
  186. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/download/route.js.nft.json +1 -1
  187. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/evaluate/route.js.nft.json +1 -1
  188. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/evaluation-summary/route.js.nft.json +1 -1
  189. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/files/[...path]/route.js.nft.json +1 -1
  190. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/parse-flow/route.js.nft.json +1 -1
  191. package/.next/standalone/.next/server/app/api/skills/[id]/versions/[version]/route.js.nft.json +1 -1
  192. package/.next/standalone/.next/server/app/api/skills/[id]/versions/route.js.nft.json +1 -1
  193. package/.next/standalone/.next/server/app/api/skills/automation/import/route.js.nft.json +1 -1
  194. package/.next/standalone/.next/server/app/api/skills/automation/push/route.js.nft.json +1 -1
  195. package/.next/standalone/.next/server/app/api/skills/by-name/[name]/analysis-diagnosis/route.js.nft.json +1 -1
  196. package/.next/standalone/.next/server/app/api/skills/by-name/[name]/optimization-points/resolve/route.js.nft.json +1 -1
  197. package/.next/standalone/.next/server/app/api/skills/by-name/[name]/optimization-points/route.js.nft.json +1 -1
  198. package/.next/standalone/.next/server/app/api/skills/by-name/route.js.nft.json +1 -1
  199. package/.next/standalone/.next/server/app/api/skills/logs/route.js.nft.json +1 -1
  200. package/.next/standalone/.next/server/app/api/skills/publish/route.js.nft.json +1 -1
  201. package/.next/standalone/.next/server/app/api/skills/route.js.nft.json +1 -1
  202. package/.next/standalone/.next/server/app/api/skills/sync-enterprise/route.js.nft.json +1 -1
  203. package/.next/standalone/.next/server/app/api/skills/upload/route.js.nft.json +1 -1
  204. package/.next/standalone/.next/server/app/api/user-evaluators/route.js.nft.json +1 -1
  205. package/.next/standalone/.next/server/app/dashboard.html +1 -1
  206. package/.next/standalone/.next/server/app/dashboard.rsc +2 -2
  207. package/.next/standalone/.next/server/app/dashboard.segments/!KG1haW4p/dashboard/__PAGE__.segment.rsc +2 -2
  208. package/.next/standalone/.next/server/app/dashboard.segments/!KG1haW4p/dashboard.segment.rsc +1 -1
  209. package/.next/standalone/.next/server/app/dashboard.segments/!KG1haW4p.segment.rsc +1 -1
  210. package/.next/standalone/.next/server/app/dashboard.segments/_full.segment.rsc +2 -2
  211. package/.next/standalone/.next/server/app/dashboard.segments/_head.segment.rsc +1 -1
  212. package/.next/standalone/.next/server/app/dashboard.segments/_index.segment.rsc +1 -1
  213. package/.next/standalone/.next/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  214. package/.next/standalone/.next/server/app/dataset.html +1 -1
  215. package/.next/standalone/.next/server/app/dataset.rsc +1 -1
  216. package/.next/standalone/.next/server/app/dataset.segments/!KG1haW4p/dataset/__PAGE__.segment.rsc +1 -1
  217. package/.next/standalone/.next/server/app/dataset.segments/!KG1haW4p/dataset.segment.rsc +1 -1
  218. package/.next/standalone/.next/server/app/dataset.segments/!KG1haW4p.segment.rsc +1 -1
  219. package/.next/standalone/.next/server/app/dataset.segments/_full.segment.rsc +1 -1
  220. package/.next/standalone/.next/server/app/dataset.segments/_head.segment.rsc +1 -1
  221. package/.next/standalone/.next/server/app/dataset.segments/_index.segment.rsc +1 -1
  222. package/.next/standalone/.next/server/app/dataset.segments/_tree.segment.rsc +1 -1
  223. package/.next/standalone/.next/server/app/eval/trajectory.html +1 -1
  224. package/.next/standalone/.next/server/app/eval/trajectory.rsc +1 -1
  225. package/.next/standalone/.next/server/app/eval/trajectory.segments/!KG1haW4p/eval/trajectory/__PAGE__.segment.rsc +1 -1
  226. package/.next/standalone/.next/server/app/eval/trajectory.segments/!KG1haW4p/eval/trajectory.segment.rsc +1 -1
  227. package/.next/standalone/.next/server/app/eval/trajectory.segments/!KG1haW4p/eval.segment.rsc +1 -1
  228. package/.next/standalone/.next/server/app/eval/trajectory.segments/!KG1haW4p.segment.rsc +1 -1
  229. package/.next/standalone/.next/server/app/eval/trajectory.segments/_full.segment.rsc +1 -1
  230. package/.next/standalone/.next/server/app/eval/trajectory.segments/_head.segment.rsc +1 -1
  231. package/.next/standalone/.next/server/app/eval/trajectory.segments/_index.segment.rsc +1 -1
  232. package/.next/standalone/.next/server/app/eval/trajectory.segments/_tree.segment.rsc +1 -1
  233. package/.next/standalone/.next/server/app/eval.html +1 -1
  234. package/.next/standalone/.next/server/app/eval.rsc +1 -1
  235. package/.next/standalone/.next/server/app/eval.segments/!KG1haW4p/eval/__PAGE__.segment.rsc +1 -1
  236. package/.next/standalone/.next/server/app/eval.segments/!KG1haW4p/eval.segment.rsc +1 -1
  237. package/.next/standalone/.next/server/app/eval.segments/!KG1haW4p.segment.rsc +1 -1
  238. package/.next/standalone/.next/server/app/eval.segments/_full.segment.rsc +1 -1
  239. package/.next/standalone/.next/server/app/eval.segments/_head.segment.rsc +1 -1
  240. package/.next/standalone/.next/server/app/eval.segments/_index.segment.rsc +1 -1
  241. package/.next/standalone/.next/server/app/eval.segments/_tree.segment.rsc +1 -1
  242. package/.next/standalone/.next/server/app/fault.html +1 -1
  243. package/.next/standalone/.next/server/app/fault.rsc +1 -1
  244. package/.next/standalone/.next/server/app/fault.segments/!KG1haW4p/fault/__PAGE__.segment.rsc +1 -1
  245. package/.next/standalone/.next/server/app/fault.segments/!KG1haW4p/fault.segment.rsc +1 -1
  246. package/.next/standalone/.next/server/app/fault.segments/!KG1haW4p.segment.rsc +1 -1
  247. package/.next/standalone/.next/server/app/fault.segments/_full.segment.rsc +1 -1
  248. package/.next/standalone/.next/server/app/fault.segments/_head.segment.rsc +1 -1
  249. package/.next/standalone/.next/server/app/fault.segments/_index.segment.rsc +1 -1
  250. package/.next/standalone/.next/server/app/fault.segments/_tree.segment.rsc +1 -1
  251. package/.next/standalone/.next/server/app/index.html +1 -1
  252. package/.next/standalone/.next/server/app/index.rsc +1 -1
  253. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  254. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +1 -1
  255. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  256. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +1 -1
  257. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  258. package/.next/standalone/.next/server/app/infra/sources.html +1 -1
  259. package/.next/standalone/.next/server/app/infra/sources.rsc +1 -1
  260. package/.next/standalone/.next/server/app/infra/sources.segments/!KG1haW4p/infra/sources/__PAGE__.segment.rsc +1 -1
  261. package/.next/standalone/.next/server/app/infra/sources.segments/!KG1haW4p/infra/sources.segment.rsc +1 -1
  262. package/.next/standalone/.next/server/app/infra/sources.segments/!KG1haW4p/infra.segment.rsc +1 -1
  263. package/.next/standalone/.next/server/app/infra/sources.segments/!KG1haW4p.segment.rsc +1 -1
  264. package/.next/standalone/.next/server/app/infra/sources.segments/_full.segment.rsc +1 -1
  265. package/.next/standalone/.next/server/app/infra/sources.segments/_head.segment.rsc +1 -1
  266. package/.next/standalone/.next/server/app/infra/sources.segments/_index.segment.rsc +1 -1
  267. package/.next/standalone/.next/server/app/infra/sources.segments/_tree.segment.rsc +1 -1
  268. package/.next/standalone/.next/server/app/infra.html +1 -1
  269. package/.next/standalone/.next/server/app/infra.rsc +1 -1
  270. package/.next/standalone/.next/server/app/infra.segments/!KG1haW4p/infra/__PAGE__.segment.rsc +1 -1
  271. package/.next/standalone/.next/server/app/infra.segments/!KG1haW4p/infra.segment.rsc +1 -1
  272. package/.next/standalone/.next/server/app/infra.segments/!KG1haW4p.segment.rsc +1 -1
  273. package/.next/standalone/.next/server/app/infra.segments/_full.segment.rsc +1 -1
  274. package/.next/standalone/.next/server/app/infra.segments/_head.segment.rsc +1 -1
  275. package/.next/standalone/.next/server/app/infra.segments/_index.segment.rsc +1 -1
  276. package/.next/standalone/.next/server/app/infra.segments/_tree.segment.rsc +1 -1
  277. package/.next/standalone/.next/server/app/login.html +1 -1
  278. package/.next/standalone/.next/server/app/login.rsc +1 -1
  279. package/.next/standalone/.next/server/app/login.segments/_full.segment.rsc +1 -1
  280. package/.next/standalone/.next/server/app/login.segments/_head.segment.rsc +1 -1
  281. package/.next/standalone/.next/server/app/login.segments/_index.segment.rsc +1 -1
  282. package/.next/standalone/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  283. package/.next/standalone/.next/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
  284. package/.next/standalone/.next/server/app/login.segments/login.segment.rsc +1 -1
  285. package/.next/standalone/.next/server/app/memory.html +1 -1
  286. package/.next/standalone/.next/server/app/memory.rsc +1 -1
  287. package/.next/standalone/.next/server/app/memory.segments/!KG1haW4p/memory/__PAGE__.segment.rsc +1 -1
  288. package/.next/standalone/.next/server/app/memory.segments/!KG1haW4p/memory.segment.rsc +1 -1
  289. package/.next/standalone/.next/server/app/memory.segments/!KG1haW4p.segment.rsc +1 -1
  290. package/.next/standalone/.next/server/app/memory.segments/_full.segment.rsc +1 -1
  291. package/.next/standalone/.next/server/app/memory.segments/_head.segment.rsc +1 -1
  292. package/.next/standalone/.next/server/app/memory.segments/_index.segment.rsc +1 -1
  293. package/.next/standalone/.next/server/app/memory.segments/_tree.segment.rsc +1 -1
  294. package/.next/standalone/.next/server/app/metrics.html +1 -1
  295. package/.next/standalone/.next/server/app/metrics.rsc +1 -1
  296. package/.next/standalone/.next/server/app/metrics.segments/!KG1haW4p/metrics/__PAGE__.segment.rsc +1 -1
  297. package/.next/standalone/.next/server/app/metrics.segments/!KG1haW4p/metrics.segment.rsc +1 -1
  298. package/.next/standalone/.next/server/app/metrics.segments/!KG1haW4p.segment.rsc +1 -1
  299. package/.next/standalone/.next/server/app/metrics.segments/_full.segment.rsc +1 -1
  300. package/.next/standalone/.next/server/app/metrics.segments/_head.segment.rsc +1 -1
  301. package/.next/standalone/.next/server/app/metrics.segments/_index.segment.rsc +1 -1
  302. package/.next/standalone/.next/server/app/metrics.segments/_tree.segment.rsc +1 -1
  303. package/.next/standalone/.next/server/app/modelconfig/registry.html +1 -1
  304. package/.next/standalone/.next/server/app/modelconfig/registry.rsc +1 -1
  305. package/.next/standalone/.next/server/app/modelconfig/registry.segments/!KG1haW4p/modelconfig/registry/__PAGE__.segment.rsc +1 -1
  306. package/.next/standalone/.next/server/app/modelconfig/registry.segments/!KG1haW4p/modelconfig/registry.segment.rsc +1 -1
  307. package/.next/standalone/.next/server/app/modelconfig/registry.segments/!KG1haW4p/modelconfig.segment.rsc +1 -1
  308. package/.next/standalone/.next/server/app/modelconfig/registry.segments/!KG1haW4p.segment.rsc +1 -1
  309. package/.next/standalone/.next/server/app/modelconfig/registry.segments/_full.segment.rsc +1 -1
  310. package/.next/standalone/.next/server/app/modelconfig/registry.segments/_head.segment.rsc +1 -1
  311. package/.next/standalone/.next/server/app/modelconfig/registry.segments/_index.segment.rsc +1 -1
  312. package/.next/standalone/.next/server/app/modelconfig/registry.segments/_tree.segment.rsc +1 -1
  313. package/.next/standalone/.next/server/app/modelconfig/web-search.html +1 -1
  314. package/.next/standalone/.next/server/app/modelconfig/web-search.rsc +1 -1
  315. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/!KG1haW4p/modelconfig/web-search/__PAGE__.segment.rsc +1 -1
  316. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/!KG1haW4p/modelconfig/web-search.segment.rsc +1 -1
  317. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/!KG1haW4p/modelconfig.segment.rsc +1 -1
  318. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/!KG1haW4p.segment.rsc +1 -1
  319. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/_full.segment.rsc +1 -1
  320. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/_head.segment.rsc +1 -1
  321. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/_index.segment.rsc +1 -1
  322. package/.next/standalone/.next/server/app/modelconfig/web-search.segments/_tree.segment.rsc +1 -1
  323. package/.next/standalone/.next/server/app/modelconfig.html +1 -1
  324. package/.next/standalone/.next/server/app/modelconfig.rsc +1 -1
  325. package/.next/standalone/.next/server/app/modelconfig.segments/!KG1haW4p/modelconfig/__PAGE__.segment.rsc +1 -1
  326. package/.next/standalone/.next/server/app/modelconfig.segments/!KG1haW4p/modelconfig.segment.rsc +1 -1
  327. package/.next/standalone/.next/server/app/modelconfig.segments/!KG1haW4p.segment.rsc +1 -1
  328. package/.next/standalone/.next/server/app/modelconfig.segments/_full.segment.rsc +1 -1
  329. package/.next/standalone/.next/server/app/modelconfig.segments/_head.segment.rsc +1 -1
  330. package/.next/standalone/.next/server/app/modelconfig.segments/_index.segment.rsc +1 -1
  331. package/.next/standalone/.next/server/app/modelconfig.segments/_tree.segment.rsc +1 -1
  332. package/.next/standalone/.next/server/app/optapi.html +1 -1
  333. package/.next/standalone/.next/server/app/optapi.rsc +1 -1
  334. package/.next/standalone/.next/server/app/optapi.segments/!KG1haW4p/optapi/__PAGE__.segment.rsc +1 -1
  335. package/.next/standalone/.next/server/app/optapi.segments/!KG1haW4p/optapi.segment.rsc +1 -1
  336. package/.next/standalone/.next/server/app/optapi.segments/!KG1haW4p.segment.rsc +1 -1
  337. package/.next/standalone/.next/server/app/optapi.segments/_full.segment.rsc +1 -1
  338. package/.next/standalone/.next/server/app/optapi.segments/_head.segment.rsc +1 -1
  339. package/.next/standalone/.next/server/app/optapi.segments/_index.segment.rsc +1 -1
  340. package/.next/standalone/.next/server/app/optapi.segments/_tree.segment.rsc +1 -1
  341. package/.next/standalone/.next/server/app/quality.html +1 -1
  342. package/.next/standalone/.next/server/app/quality.rsc +2 -2
  343. package/.next/standalone/.next/server/app/quality.segments/!KG1haW4p/quality/__PAGE__.segment.rsc +2 -2
  344. package/.next/standalone/.next/server/app/quality.segments/!KG1haW4p/quality.segment.rsc +1 -1
  345. package/.next/standalone/.next/server/app/quality.segments/!KG1haW4p.segment.rsc +1 -1
  346. package/.next/standalone/.next/server/app/quality.segments/_full.segment.rsc +2 -2
  347. package/.next/standalone/.next/server/app/quality.segments/_head.segment.rsc +1 -1
  348. package/.next/standalone/.next/server/app/quality.segments/_index.segment.rsc +1 -1
  349. package/.next/standalone/.next/server/app/quality.segments/_tree.segment.rsc +1 -1
  350. package/.next/standalone/.next/server/app/security.html +1 -1
  351. package/.next/standalone/.next/server/app/security.rsc +1 -1
  352. package/.next/standalone/.next/server/app/security.segments/!KG1haW4p/security/__PAGE__.segment.rsc +1 -1
  353. package/.next/standalone/.next/server/app/security.segments/!KG1haW4p/security.segment.rsc +1 -1
  354. package/.next/standalone/.next/server/app/security.segments/!KG1haW4p.segment.rsc +1 -1
  355. package/.next/standalone/.next/server/app/security.segments/_full.segment.rsc +1 -1
  356. package/.next/standalone/.next/server/app/security.segments/_head.segment.rsc +1 -1
  357. package/.next/standalone/.next/server/app/security.segments/_index.segment.rsc +1 -1
  358. package/.next/standalone/.next/server/app/security.segments/_tree.segment.rsc +1 -1
  359. package/.next/standalone/.next/server/app/skill-detail.html +1 -1
  360. package/.next/standalone/.next/server/app/skill-detail.rsc +1 -1
  361. package/.next/standalone/.next/server/app/skill-detail.segments/_full.segment.rsc +1 -1
  362. package/.next/standalone/.next/server/app/skill-detail.segments/_head.segment.rsc +1 -1
  363. package/.next/standalone/.next/server/app/skill-detail.segments/_index.segment.rsc +1 -1
  364. package/.next/standalone/.next/server/app/skill-detail.segments/_tree.segment.rsc +1 -1
  365. package/.next/standalone/.next/server/app/skill-detail.segments/skill-detail/__PAGE__.segment.rsc +1 -1
  366. package/.next/standalone/.next/server/app/skill-detail.segments/skill-detail.segment.rsc +1 -1
  367. package/.next/standalone/.next/server/app/skill-eval/grayscale.html +2 -2
  368. package/.next/standalone/.next/server/app/skill-eval/grayscale.rsc +1 -1
  369. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/!KG1haW4p/skill-eval/grayscale/__PAGE__.segment.rsc +1 -1
  370. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/!KG1haW4p/skill-eval/grayscale.segment.rsc +1 -1
  371. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/!KG1haW4p/skill-eval.segment.rsc +1 -1
  372. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/!KG1haW4p.segment.rsc +1 -1
  373. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/_full.segment.rsc +1 -1
  374. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/_head.segment.rsc +1 -1
  375. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/_index.segment.rsc +1 -1
  376. package/.next/standalone/.next/server/app/skill-eval/grayscale.segments/_tree.segment.rsc +1 -1
  377. package/.next/standalone/.next/server/app/skill-eval.html +1 -1
  378. package/.next/standalone/.next/server/app/skill-eval.rsc +1 -1
  379. package/.next/standalone/.next/server/app/skill-eval.segments/!KG1haW4p/skill-eval/__PAGE__.segment.rsc +1 -1
  380. package/.next/standalone/.next/server/app/skill-eval.segments/!KG1haW4p/skill-eval.segment.rsc +1 -1
  381. package/.next/standalone/.next/server/app/skill-eval.segments/!KG1haW4p.segment.rsc +1 -1
  382. package/.next/standalone/.next/server/app/skill-eval.segments/_full.segment.rsc +1 -1
  383. package/.next/standalone/.next/server/app/skill-eval.segments/_head.segment.rsc +1 -1
  384. package/.next/standalone/.next/server/app/skill-eval.segments/_index.segment.rsc +1 -1
  385. package/.next/standalone/.next/server/app/skill-eval.segments/_tree.segment.rsc +1 -1
  386. package/.next/standalone/.next/server/app/skill-generator.html +1 -1
  387. package/.next/standalone/.next/server/app/skill-generator.rsc +1 -1
  388. package/.next/standalone/.next/server/app/skill-generator.segments/!KG1haW4p/skill-generator/__PAGE__.segment.rsc +1 -1
  389. package/.next/standalone/.next/server/app/skill-generator.segments/!KG1haW4p/skill-generator.segment.rsc +1 -1
  390. package/.next/standalone/.next/server/app/skill-generator.segments/!KG1haW4p.segment.rsc +1 -1
  391. package/.next/standalone/.next/server/app/skill-generator.segments/_full.segment.rsc +1 -1
  392. package/.next/standalone/.next/server/app/skill-generator.segments/_head.segment.rsc +1 -1
  393. package/.next/standalone/.next/server/app/skill-generator.segments/_index.segment.rsc +1 -1
  394. package/.next/standalone/.next/server/app/skill-generator.segments/_tree.segment.rsc +1 -1
  395. package/.next/standalone/.next/server/app/skill-history.html +1 -1
  396. package/.next/standalone/.next/server/app/skill-history.rsc +2 -2
  397. package/.next/standalone/.next/server/app/skill-history.segments/!KG1haW4p/skill-history/__PAGE__.segment.rsc +2 -2
  398. package/.next/standalone/.next/server/app/skill-history.segments/!KG1haW4p/skill-history.segment.rsc +1 -1
  399. package/.next/standalone/.next/server/app/skill-history.segments/!KG1haW4p.segment.rsc +1 -1
  400. package/.next/standalone/.next/server/app/skill-history.segments/_full.segment.rsc +2 -2
  401. package/.next/standalone/.next/server/app/skill-history.segments/_head.segment.rsc +1 -1
  402. package/.next/standalone/.next/server/app/skill-history.segments/_index.segment.rsc +1 -1
  403. package/.next/standalone/.next/server/app/skill-history.segments/_tree.segment.rsc +1 -1
  404. package/.next/standalone/.next/server/app/skill-opt.html +1 -1
  405. package/.next/standalone/.next/server/app/skill-opt.rsc +1 -1
  406. package/.next/standalone/.next/server/app/skill-opt.segments/!KG1haW4p/skill-opt/__PAGE__.segment.rsc +1 -1
  407. package/.next/standalone/.next/server/app/skill-opt.segments/!KG1haW4p/skill-opt.segment.rsc +1 -1
  408. package/.next/standalone/.next/server/app/skill-opt.segments/!KG1haW4p.segment.rsc +1 -1
  409. package/.next/standalone/.next/server/app/skill-opt.segments/_full.segment.rsc +1 -1
  410. package/.next/standalone/.next/server/app/skill-opt.segments/_head.segment.rsc +1 -1
  411. package/.next/standalone/.next/server/app/skill-opt.segments/_index.segment.rsc +1 -1
  412. package/.next/standalone/.next/server/app/skill-opt.segments/_tree.segment.rsc +1 -1
  413. package/.next/standalone/.next/server/app/skill-release.html +1 -1
  414. package/.next/standalone/.next/server/app/skill-release.rsc +1 -1
  415. package/.next/standalone/.next/server/app/skill-release.segments/!KG1haW4p/skill-release/__PAGE__.segment.rsc +1 -1
  416. package/.next/standalone/.next/server/app/skill-release.segments/!KG1haW4p/skill-release.segment.rsc +1 -1
  417. package/.next/standalone/.next/server/app/skill-release.segments/!KG1haW4p.segment.rsc +1 -1
  418. package/.next/standalone/.next/server/app/skill-release.segments/_full.segment.rsc +1 -1
  419. package/.next/standalone/.next/server/app/skill-release.segments/_head.segment.rsc +1 -1
  420. package/.next/standalone/.next/server/app/skill-release.segments/_index.segment.rsc +1 -1
  421. package/.next/standalone/.next/server/app/skill-release.segments/_tree.segment.rsc +1 -1
  422. package/.next/standalone/.next/server/app/skills.html +1 -1
  423. package/.next/standalone/.next/server/app/skills.rsc +2 -2
  424. package/.next/standalone/.next/server/app/skills.segments/!KG1haW4p/skills/__PAGE__.segment.rsc +2 -2
  425. package/.next/standalone/.next/server/app/skills.segments/!KG1haW4p/skills.segment.rsc +1 -1
  426. package/.next/standalone/.next/server/app/skills.segments/!KG1haW4p.segment.rsc +1 -1
  427. package/.next/standalone/.next/server/app/skills.segments/_full.segment.rsc +2 -2
  428. package/.next/standalone/.next/server/app/skills.segments/_head.segment.rsc +1 -1
  429. package/.next/standalone/.next/server/app/skills.segments/_index.segment.rsc +1 -1
  430. package/.next/standalone/.next/server/app/skills.segments/_tree.segment.rsc +1 -1
  431. package/.next/standalone/.next/server/app/trace.html +1 -1
  432. package/.next/standalone/.next/server/app/trace.rsc +2 -2
  433. package/.next/standalone/.next/server/app/trace.segments/!KG1haW4p/trace/__PAGE__.segment.rsc +2 -2
  434. package/.next/standalone/.next/server/app/trace.segments/!KG1haW4p/trace.segment.rsc +1 -1
  435. package/.next/standalone/.next/server/app/trace.segments/!KG1haW4p.segment.rsc +1 -1
  436. package/.next/standalone/.next/server/app/trace.segments/_full.segment.rsc +2 -2
  437. package/.next/standalone/.next/server/app/trace.segments/_head.segment.rsc +1 -1
  438. package/.next/standalone/.next/server/app/trace.segments/_index.segment.rsc +1 -1
  439. package/.next/standalone/.next/server/app/trace.segments/_tree.segment.rsc +1 -1
  440. package/.next/standalone/.next/server/app-paths-manifest.json +1 -0
  441. package/.next/standalone/.next/server/chunks/[root-of-the-server]__edc6a75f._.js +3 -0
  442. package/.next/standalone/.next/server/chunks/ce889_server_app_api_ingest_setup_opencode-offline-fix_route_actions_13b9e7e1.js +3 -0
  443. package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_c4a195e5.js +1 -1
  444. package/.next/standalone/.next/server/chunks/ssr/_a3d5f9bc._.js +1 -1
  445. package/.next/standalone/.next/server/chunks/ssr/node_modules_0ec17dda._.js +1 -1
  446. package/.next/standalone/.next/server/chunks/ssr/node_modules_2906b362._.js +1 -1
  447. package/.next/standalone/.next/server/chunks/ssr/node_modules_3ad6a908._.js +1 -1
  448. package/.next/standalone/.next/server/chunks/ssr/node_modules_6e2c1036._.js +1 -1
  449. package/.next/standalone/.next/server/chunks/ssr/node_modules_a443e166._.js +1 -1
  450. package/.next/standalone/.next/server/chunks/ssr/node_modules_c49ac16a._.js +1 -1
  451. package/.next/standalone/.next/server/chunks/ssr/node_modules_cf1f3d2c._.js +2 -2
  452. package/.next/standalone/.next/server/pages/404.html +1 -1
  453. package/.next/standalone/.next/server/pages/500.html +2 -2
  454. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  455. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  456. package/.next/standalone/.next/static/chunks/1ee0fbf466669cb8.js +1 -0
  457. package/.next/standalone/.next/static/chunks/3a0f454536f3ebc8.js +1 -0
  458. package/.next/standalone/.next/static/chunks/4dcd21eef469e66b.js +1 -0
  459. package/.next/{static/chunks/7e6eb6ade82c4979.js → standalone/.next/static/chunks/b40cbbf52dfd5473.js} +1 -1
  460. package/.next/standalone/.next/static/chunks/ec50621fcfea9f71.js +287 -0
  461. package/.next/standalone/Dockerfile +10 -2
  462. package/.next/standalone/Evaluation_and_Research/agent_evaluator_industry_research.md +260 -0
  463. package/.next/standalone/Evaluation_and_Research/agent_evaluator_research_qna.md +1379 -0
  464. package/.next/standalone/Evaluation_and_Research/agent_evaluator_research_qna_2.md +1312 -0
  465. package/.next/standalone/Evaluation_and_Research/agent_evaluator_research_qna_3.md +712 -0
  466. package/.next/standalone/Evaluation_and_Research/agent_evaluator_research_qna_4.md +1228 -0
  467. package/.next/standalone/docker-compose.amd64.yml +10 -0
  468. package/.next/standalone/package.json +1 -1
  469. package/.next/standalone/scripts/opencode-offline-fix.ps1 +93 -0
  470. package/.next/standalone/scripts/opencode_tui_plugin.tsx +23 -1
  471. package/.next/static/chunks/1ee0fbf466669cb8.js +1 -0
  472. package/.next/static/chunks/3a0f454536f3ebc8.js +1 -0
  473. package/.next/static/chunks/4dcd21eef469e66b.js +1 -0
  474. package/.next/{standalone/.next/static/chunks/7e6eb6ade82c4979.js → static/chunks/b40cbbf52dfd5473.js} +1 -1
  475. package/.next/static/chunks/ec50621fcfea9f71.js +287 -0
  476. package/README.md +76 -60
  477. package/package.json +1 -1
  478. package/scripts/opencode-offline-fix.ps1 +93 -0
  479. package/scripts/opencode_tui_plugin.tsx +23 -1
  480. package/.next/standalone/.next/static/chunks/13ea6fabf1d0af65.js +0 -287
  481. package/.next/standalone/.next/static/chunks/74a2b1d10a1772b4.js +0 -1
  482. package/.next/standalone/.next/static/chunks/94042ce1cf94ccfd.js +0 -1
  483. package/.next/standalone/.next/static/chunks/965c5a1f38c3d7db.js +0 -1
  484. package/.next/standalone/scripts/activate_telemetry.sh +0 -202
  485. package/.next/standalone/scripts/insight-paths.js +0 -33
  486. package/.next/standalone/scripts/opencode_otel_schema.ts +0 -73
  487. package/.next/standalone/scripts/opencode_plugin.ts +0 -1063
  488. package/.next/static/chunks/13ea6fabf1d0af65.js +0 -287
  489. package/.next/static/chunks/74a2b1d10a1772b4.js +0 -1
  490. package/.next/static/chunks/94042ce1cf94ccfd.js +0 -1
  491. package/.next/static/chunks/965c5a1f38c3d7db.js +0 -1
  492. package/scripts/activate_telemetry.sh +0 -202
  493. package/scripts/insight-paths.js +0 -33
  494. package/scripts/opencode_otel_schema.ts +0 -73
  495. package/scripts/opencode_plugin.ts +0 -1063
  496. /package/.next/standalone/.next/static/{uwRBb8F1kIm0K4LV3Jkwa → iE8084jR9Kgb7Bhs3Xokh}/_buildManifest.js +0 -0
  497. /package/.next/standalone/.next/static/{uwRBb8F1kIm0K4LV3Jkwa → iE8084jR9Kgb7Bhs3Xokh}/_clientMiddlewareManifest.json +0 -0
  498. /package/.next/standalone/.next/static/{uwRBb8F1kIm0K4LV3Jkwa → iE8084jR9Kgb7Bhs3Xokh}/_ssgManifest.js +0 -0
  499. /package/.next/static/{uwRBb8F1kIm0K4LV3Jkwa → iE8084jR9Kgb7Bhs3Xokh}/_buildManifest.js +0 -0
  500. /package/.next/static/{uwRBb8F1kIm0K4LV3Jkwa → iE8084jR9Kgb7Bhs3Xokh}/_clientMiddlewareManifest.json +0 -0
  501. /package/.next/static/{uwRBb8F1kIm0K4LV3Jkwa → iE8084jR9Kgb7Bhs3Xokh}/_ssgManifest.js +0 -0
@@ -0,0 +1,712 @@
1
+ # Agent 评估器调研问答 3
2
+
3
+ 调研日期:2026-07-07
4
+
5
+ 这份文档用于继续记录 `agent_evaluator_industry_research.md` 里的细节问题。上一份问答见 `agent_evaluator_research_qna_2.md`。
6
+
7
+ ## Q8:多 Agent 交接 / 路由正确性的逻辑是什么?
8
+
9
+ ### 简短结论
10
+
11
+ 多 Agent 交接 / 路由正确性评估的是:
12
+
13
+ ```text
14
+ 在多 agent 系统里,主 agent 是否在正确时机,把正确任务,用正确上下文,交给正确的子 agent;
15
+ 子 agent 完成后,主 agent 是否正确接收、整合和继续推进。
16
+ ```
17
+
18
+ 它不是单纯看“有没有调用子 agent”,而是看整个 handoff / routing 链路是否合理。
19
+
20
+ 可以拆成四段:
21
+
22
+ ```text
23
+ 1. 是否应该交接
24
+ 2. 交给谁
25
+ 3. 交接内容是否完整
26
+ 4. 交接后结果是否被正确使用
27
+ ```
28
+
29
+ ### 为什么这个指标重要?
30
+
31
+ 多 agent 系统的失败经常不是某个 agent 单独能力差,而是协作链路出了问题:
32
+
33
+ - 主 agent 不该派发时派发了。
34
+ - 该派发时没有派发。
35
+ - 派给了错误角色。
36
+ - 子 agent 收到的上下文不完整。
37
+ - 子 agent 做完了,但父 agent 没有使用结果。
38
+ - 多个子 agent 重复做同一件事。
39
+ - 子 agent 的结论互相冲突,父 agent 没有裁决。
40
+
41
+ 这类问题用普通任务完成度很难定位。最终失败只会显示“没完成”,但真正原因可能是:
42
+
43
+ ```text
44
+ 路由错了,后面全都偏了。
45
+ ```
46
+
47
+ 所以这个指标的意义是把多 agent 失败定位到“协作/编排层”,而不是误归因到工具、最终答案或某个子 agent 的能力。
48
+
49
+ ### 输入是什么?
50
+
51
+ 一个多 agent 路由评估器通常需要完整 trace 或 agent tree,至少包含:
52
+
53
+ ```text
54
+ user_task:
55
+ 用户原始任务
56
+
57
+ available_agents:
58
+ 可用 agent / subagent 列表、职责说明、能力边界
59
+
60
+ handoff_events:
61
+ 父 agent 何时派发、派给谁、派发参数/任务说明
62
+
63
+ subagent_traces:
64
+ 子 agent 实际执行过程和输出
65
+
66
+ parent_followup:
67
+ 父 agent 如何使用子 agent 结果,是否继续推进/整合/验证
68
+
69
+ final_output:
70
+ 最终回复或最终状态
71
+ ```
72
+
73
+ 如果没有可用 agent 的职责说明,就很难判断“派给谁是否正确”。这时 evaluator 只能根据 agent 名称和 trace 内容做弱判断,置信度应降低。
74
+
75
+ ### 中间评估逻辑
76
+
77
+ #### 1. 判断是否需要交接
78
+
79
+ 先看用户任务是否真的需要子 agent。
80
+
81
+ 适合交接的情况:
82
+
83
+ - 任务可以自然拆成多个专业子任务。
84
+ - 需要某个专门 agent 的能力,例如 researcher、coder、reviewer、diagnoser。
85
+ - 主 agent 的职责不覆盖该动作。
86
+ - 并行处理能明显降低复杂度。
87
+ - 需要独立验证或复核。
88
+
89
+ 不适合交接的情况:
90
+
91
+ - 单步简单任务。
92
+ - 子 agent 和主 agent 能力重复。
93
+ - 派发成本高于收益。
94
+ - 派发会丢失上下文或权限。
95
+
96
+ 可能的判断标签:
97
+
98
+ ```text
99
+ handoff_needed
100
+ handoff_unnecessary
101
+ handoff_missing
102
+ ```
103
+
104
+ #### 2. 判断路由目标是否正确
105
+
106
+ 如果确实发生了 handoff,要判断交给的子 agent 是否匹配任务。
107
+
108
+ 例如:
109
+
110
+ ```text
111
+ 任务:分析日志中的 Kerberos 错误
112
+ 正确路由:diagnosis / log-analysis agent
113
+ 错误路由:frontend-ui agent
114
+ ```
115
+
116
+ 判断依据:
117
+
118
+ - 子 agent 的职责说明。
119
+ - 子任务内容。
120
+ - 子 agent 实际执行行为。
121
+ - 子 agent 是否具备需要的工具/skill。
122
+
123
+ 常见错误:
124
+
125
+ ```text
126
+ wrong_agent_type
127
+ over_broad_agent
128
+ missing_specialist
129
+ duplicated_routing
130
+ ```
131
+
132
+ #### 3. 判断交接内容是否完整
133
+
134
+ 路由目标正确还不够,handoff payload 也必须完整。
135
+
136
+ 交接内容通常应包含:
137
+
138
+ - 用户原始目标。
139
+ - 当前已知上下文。
140
+ - 已完成步骤。
141
+ - 待解决子任务。
142
+ - 约束和边界。
143
+ - 可用证据或文件路径。
144
+ - 期望输出格式。
145
+ - 禁止事项或风险提示。
146
+
147
+ 错误例子:
148
+
149
+ ```text
150
+ 父 agent 让子 agent “看一下这个问题”,
151
+ 但没有给日志路径、用户目标、前面已经试过的命令。
152
+ ```
153
+
154
+ 这会导致子 agent 重复探索、做错范围或输出不可用结果。
155
+
156
+ 可能的标签:
157
+
158
+ ```text
159
+ context_complete
160
+ missing_user_goal
161
+ missing_evidence
162
+ missing_constraints
163
+ missing_expected_output
164
+ ambiguous_task
165
+ ```
166
+
167
+ #### 4. 判断子 agent 是否完成被交接任务
168
+
169
+ 子 agent 收到任务后,需要看它是否完成了自己的子目标。
170
+
171
+ 这里不是评估整体任务完成度,而是评估:
172
+
173
+ ```text
174
+ 这个 handoff 所定义的子任务有没有完成?
175
+ ```
176
+
177
+ 例如:
178
+
179
+ ```text
180
+ 父 agent 派 researcher 查资料
181
+ => 子 agent 是否真的找到了相关资料并给出可用摘要?
182
+
183
+ 父 agent 派 reviewer 检查代码
184
+ => 子 agent 是否真的指出问题或确认无问题?
185
+ ```
186
+
187
+ 这一步可以使用局部 task completion / tool correctness / evidence quality。
188
+
189
+ #### 5. 判断父 agent 是否正确接收和整合结果
190
+
191
+ 很多多 agent 问题发生在“子 agent 做完以后”。
192
+
193
+ 父 agent 应该:
194
+
195
+ - 读取子 agent 输出。
196
+ - 判断是否可信。
197
+ - 处理冲突结论。
198
+ - 把子 agent 结果整合进最终答案。
199
+ - 必要时继续追问或补充验证。
200
+
201
+ 常见错误:
202
+
203
+ ```text
204
+ subagent_result_ignored:
205
+ 子 agent 给了关键结论,父 agent 没用。
206
+
207
+ subagent_result_misread:
208
+ 父 agent 误解了子 agent 输出。
209
+
210
+ conflict_not_resolved:
211
+ 多个子 agent 结论冲突,父 agent 直接拼接。
212
+
213
+ no_parent_synthesis:
214
+ 父 agent 直接转发子 agent 输出,没有完成最终整合。
215
+ ```
216
+
217
+ #### 6. 判断整体依赖关系是否合理
218
+
219
+ 复杂多 agent workflow 不是一条线,而是 DAG:
220
+
221
+ ```text
222
+ root
223
+ -> researcher
224
+ -> coder
225
+ -> test-runner
226
+ -> reviewer
227
+ ```
228
+
229
+ 评估要看:
230
+
231
+ - coder 是否依赖 researcher 的结果。
232
+ - reviewer 是否在 coder 之后执行。
233
+ - test-runner 是否在修改之后执行。
234
+ - 父 agent 是否等待必要子任务完成。
235
+
236
+ 这和 AgentEval 的 DAG 思路一致:把 agent execution 看成带依赖的步骤图,而不是扁平步骤列表。依赖建模能帮助定位上游哪一步导致后续失败。
237
+
238
+ ### 输出应该是什么?
239
+
240
+ 一个多 agent 路由评估器可以输出:
241
+
242
+ ```json
243
+ {
244
+ "score": 0.72,
245
+ "label": "partial",
246
+ "handoff_needed": true,
247
+ "routing_correctness": 0.8,
248
+ "handoff_context_quality": 0.6,
249
+ "subagent_task_completion": 0.9,
250
+ "parent_integration_quality": 0.5,
251
+ "findings": [
252
+ {
253
+ "type": "missing_context",
254
+ "severity": "medium",
255
+ "parent_agent": "root",
256
+ "child_agent": "researcher",
257
+ "handoff_step": 4,
258
+ "evidence": "handoff payload omitted the user's expected output format",
259
+ "impact": "child output was useful but hard for parent to integrate"
260
+ }
261
+ ]
262
+ }
263
+ ```
264
+
265
+ 建议至少保留这些字段:
266
+
267
+ | 字段 | 含义 |
268
+ | --- | --- |
269
+ | `score` | 0-1 总分 |
270
+ | `label` | correct / partial / incorrect / n_a |
271
+ | `handoff_needed` | 是否应该交接 |
272
+ | `routing_correctness` | 是否交给正确 agent |
273
+ | `handoff_context_quality` | 交接上下文是否完整 |
274
+ | `subagent_task_completion` | 子 agent 是否完成子任务 |
275
+ | `parent_integration_quality` | 父 agent 是否正确使用结果 |
276
+ | `findings` | 具体问题列表 |
277
+ | `evidence_steps` | 对应 trace step / span |
278
+
279
+ ### 常见失败模式
280
+
281
+ #### 1. 该交接但没交接
282
+
283
+ ```text
284
+ 任务需要专业诊断 agent,但 root agent 自己硬做,导致漏掉关键检查。
285
+ ```
286
+
287
+ 标签:
288
+
289
+ ```text
290
+ missing_handoff
291
+ ```
292
+
293
+ #### 2. 不该交接却交接
294
+
295
+ ```text
296
+ 简单问题派给多个子 agent,造成成本高、延迟高、答案不一致。
297
+ ```
298
+
299
+ 标签:
300
+
301
+ ```text
302
+ unnecessary_handoff
303
+ ```
304
+
305
+ #### 3. 交给错误 agent
306
+
307
+ ```text
308
+ 需要数据库 agent,却派给文档总结 agent。
309
+ ```
310
+
311
+ 标签:
312
+
313
+ ```text
314
+ wrong_agent
315
+ ```
316
+
317
+ #### 4. 交接上下文缺失
318
+
319
+ ```text
320
+ 父 agent 没传用户目标、文件路径、已知事实、失败历史。
321
+ ```
322
+
323
+ 标签:
324
+
325
+ ```text
326
+ incomplete_handoff_context
327
+ ```
328
+
329
+ #### 5. 子 agent 做对了但父 agent 没用
330
+
331
+ ```text
332
+ 子 agent 找到了根因,父 agent 最终答案没有引用或采纳。
333
+ ```
334
+
335
+ 标签:
336
+
337
+ ```text
338
+ ignored_subagent_result
339
+ ```
340
+
341
+ #### 6. 子 agent 输出冲突未解决
342
+
343
+ ```text
344
+ 两个子 agent 给出不同结论,父 agent 没有裁决或验证。
345
+ ```
346
+
347
+ 标签:
348
+
349
+ ```text
350
+ unresolved_subagent_conflict
351
+ ```
352
+
353
+ #### 7. 父子职责边界混乱
354
+
355
+ ```text
356
+ 父 agent 交给子 agent 后自己又重复执行同一任务;
357
+ 或者子 agent 越权执行本应由父 agent 决策的最终动作。
358
+ ```
359
+
360
+ 标签:
361
+
362
+ ```text
363
+ role_boundary_violation
364
+ ```
365
+
366
+ ### 它和工具选择评估有什么区别?
367
+
368
+ 两者很像,但对象不同。
369
+
370
+ | 指标 | 路由对象 | 关注点 |
371
+ | --- | --- | --- |
372
+ | Tool Selection | 工具 | 是否选择了正确工具 |
373
+ | Multi-Agent Routing | 子 agent / handoff | 是否选择了正确执行角色,并正确交接上下文 |
374
+
375
+ 工具调用通常是:
376
+
377
+ ```text
378
+ function(args) -> result
379
+ ```
380
+
381
+ 多 agent 交接是:
382
+
383
+ ```text
384
+ delegate(task + context + constraints) -> subagent work + result
385
+ ```
386
+
387
+ 所以多 agent 路由比工具选择多了几个问题:
388
+
389
+ - 子任务定义是否清楚。
390
+ - 上下文是否完整。
391
+ - 子 agent 是否真的完成子任务。
392
+ - 父 agent 是否整合结果。
393
+ - 多个子 agent 的依赖是否正确。
394
+
395
+ ### 它和任务完成度有什么关系?
396
+
397
+ 任务完成度回答:
398
+
399
+ ```text
400
+ 最后有没有完成用户目标?
401
+ ```
402
+
403
+ 多 agent 路由正确性回答:
404
+
405
+ ```text
406
+ 多 agent 协作过程是否正确?
407
+ ```
408
+
409
+ 典型组合:
410
+
411
+ | 任务完成度 | 路由正确性 | 说明 |
412
+ | --- | --- | --- |
413
+ | 高 | 高 | 多 agent 协作健康 |
414
+ | 高 | 低 | 可能偶然成功;有成本、稳定性或可维护性风险 |
415
+ | 低 | 高 | 路由没问题,失败可能在工具、环境、子 agent 能力 |
416
+ | 低 | 低 | 协作编排本身就是主要问题 |
417
+
418
+ ### 适用场景
419
+
420
+ 这个指标适合:
421
+
422
+ - 多 agent 编排系统。
423
+ - 有 root agent / subagent 结构的 Coding Agent。
424
+ - 复杂诊断 agent。
425
+ - 自动化运维 agent。
426
+ - 研究-写作-审核分工类 agent。
427
+ - 工作流 agent,例如 planner -> executor -> reviewer。
428
+ - 需要 handoff 的客服或业务办理 agent。
429
+
430
+ 不适合:
431
+
432
+ - 单 agent 系统。
433
+ - 没有子 agent / handoff 的 trace。
434
+ - 只有普通工具调用、没有角色分工的任务。
435
+
436
+ 这些场景应该标记:
437
+
438
+ ```text
439
+ n_a: no multi-agent handoff
440
+ ```
441
+
442
+ ### 在 Agent Insight 里可以怎么理解
443
+
444
+ Agent Insight 已经有 root / sub-agent execution tree,这类指标天然可以利用:
445
+
446
+ ```text
447
+ parentExecutionId
448
+ rootExecutionId
449
+ agentSessionId
450
+ subagentType
451
+ subagentName
452
+ isSubagent
453
+ ```
454
+
455
+ 评估时可以从 trace 中抽:
456
+
457
+ ```text
458
+ handoff step:
459
+ 父 agent 何时调用 task/subagent
460
+
461
+ handoff payload:
462
+ subagent_type、任务说明、上下文、load_skills
463
+
464
+ child execution:
465
+ 子 agent 的执行 trace、工具调用、最终输出
466
+
467
+ parent continuation:
468
+ 父 agent 是否读取并使用子 agent 输出
469
+ ```
470
+
471
+ 这样可以把问题定位到:
472
+
473
+ ```text
474
+ 父 agent 路由错
475
+ 子 agent 执行错
476
+ 交接上下文错
477
+ 父 agent 整合错
478
+ ```
479
+
480
+ 这比只看整体 trace 分更有行动价值。
481
+
482
+ ### 附加问题:业界有代码参考吗,还是只有方法论?
483
+
484
+ 简短结论:
485
+
486
+ ```text
487
+ 目前更多是方法论 + 平台能力 + 自定义 evaluator 模式,
488
+ 还没有特别成熟、通用、开箱即用的“多 Agent 交接 / 路由正确性”标准代码库。
489
+ ```
490
+
491
+ 和工具调用不同,工具调用已经有比较清晰的结构:
492
+
493
+ ```text
494
+ tool_name
495
+ arguments
496
+ tool_result
497
+ ```
498
+
499
+ 所以 Phoenix / Ragas / DeepEval 可以做出比较通用的 Tool Selection、Tool Invocation、Tool Call Accuracy。
500
+
501
+ 但多 agent handoff 的结构差异很大:
502
+
503
+ ```text
504
+ 有的系统叫 handoff
505
+ 有的系统叫 task / delegate / subagent
506
+ 有的是 LangGraph node transition
507
+ 有的是 swarm/router
508
+ 有的是 supervisor-worker
509
+ 有的是 planner-executor-reviewer
510
+ ```
511
+
512
+ 每个系统里的“正确交接”都依赖:
513
+
514
+ - 子 agent 职责定义。
515
+ - workflow 拓扑。
516
+ - 任务类型。
517
+ - handoff payload 结构。
518
+ - 父 agent 是否需要整合。
519
+ - 是否允许并行或重规划。
520
+
521
+ 所以业界更多提供的是 **可实现这个 evaluator 的框架能力**,而不是一个通用 evaluator 函数。
522
+
523
+ #### 1. OpenAI agent evals:有 trace grading 能力,但需要自定义 rubric
524
+
525
+ [OpenAI agent evals](https://developers.openai.com/api/docs/guides/agent-evals) 的价值在于:它支持对 agent workflow / trace 做评估,也可以用 grader 问类似:
526
+
527
+ ```text
528
+ 是否发生了正确 handoff?
529
+ 是否违反了指令?
530
+ 是否调用了正确工具?
531
+ ```
532
+
533
+ 但它不是提供一个固定的 `MultiAgentHandoffCorrectnessMetric()`。
534
+
535
+ 更接近的用法是:
536
+
537
+ ```text
538
+ 你自己定义 grader rubric
539
+ 把 trace / spans / handoff events 放进去
540
+ 让 grader 输出 pass/fail、score、reason
541
+ ```
542
+
543
+ 所以 OpenAI 提供的是 eval infrastructure 和 grader 机制,不是一个 handoff correctness 的现成指标实现。
544
+
545
+ #### 2. LangSmith:有 trace / dataset / evaluator 基础设施,但 handoff 评估通常自定义
546
+
547
+ [LangSmith](https://docs.langchain.com/langsmith/evaluation-concepts) 很适合做这类评估,因为它有:
548
+
549
+ - trace / run tree。
550
+ - dataset。
551
+ - custom evaluator。
552
+ - experiment comparison。
553
+ - human annotation。
554
+
555
+ 如果你的多 agent 系统在 LangGraph / LangChain 里跑,LangSmith 能看到 intermediate steps / child runs / tool calls。
556
+
557
+ 但同样地,它通常不会替你定义“什么叫正确 handoff”。你需要写自定义 evaluator:
558
+
559
+ ```text
560
+ 读取 run tree
561
+ 抽取 supervisor -> worker 的转移
562
+ 对照 agent role description / expected route
563
+ 判断路由和上下文是否正确
564
+ ```
565
+
566
+ 所以 LangSmith 是很好的实现平台,但不是通用现成 metric。
567
+
568
+ #### 3. AgentEval:非常接近方法论,但更像论文框架
569
+
570
+ [AgentEval](https://arxiv.org/abs/2604.23581) 是目前比较接近“多步骤 / 多 agent / 工作流评估”的方法论参考。
571
+
572
+ 它的核心思路是:
573
+
574
+ ```text
575
+ 把 agent execution 建模成 DAG
576
+ 每个节点有 typed quality metrics
577
+ 节点之间有依赖关系
578
+ 通过 failure taxonomy 和 dependency propagation 做根因定位
579
+ ```
580
+
581
+ 这对多 agent handoff 很有启发,因为 handoff 本质上就是 DAG 里的边:
582
+
583
+ ```text
584
+ parent node -> child agent node
585
+ ```
586
+
587
+ 可以评估:
588
+
589
+ - 这条边是否应该存在。
590
+ - 边指向的节点是否正确。
591
+ - 边上传递的上下文是否完整。
592
+ - 下游节点失败是否由上游交接错误导致。
593
+
594
+ 但从公开资料看,AgentEval 更主要是论文和方法框架;它给了很强的设计参考,不等于可以直接 npm install / pip install 后得到一个通用 handoff evaluator。
595
+
596
+ #### 4. 其他多 agent benchmark:多评“协作结果”,少评“交接正确性”
597
+
598
+ 一些 multi-agent benchmark 会评估协作能力,例如:
599
+
600
+ - BattleAgentBench:多 agent 合作/竞争能力。
601
+ - COMMA:多模态多 agent 沟通协作。
602
+ - 一些 domain workflow benchmark:多步骤、多场景任务成功率。
603
+
604
+ 它们通常更关注:
605
+
606
+ ```text
607
+ 多 agent 协作后任务是否完成?
608
+ 协作表现是否好?
609
+ ```
610
+
611
+ 但不一定细到:
612
+
613
+ ```text
614
+ 第 3 步是否应该 handoff?
615
+ handoff payload 是否缺少用户约束?
616
+ 父 agent 是否正确整合子 agent 输出?
617
+ ```
618
+
619
+ 所以这些 benchmark 可以借鉴任务设计和数据集形态,但不能直接当作 handoff correctness evaluator。
620
+
621
+ ### 可以参考的代码形态是什么?
622
+
623
+ 虽然没有通用标准代码,但可以参考三类实现形态。
624
+
625
+ #### 1. Run tree / trace parser
626
+
627
+ 先把多 agent trace 解析成结构化树:
628
+
629
+ ```json
630
+ {
631
+ "agent": "root",
632
+ "events": [...],
633
+ "children": [
634
+ {
635
+ "agent": "researcher",
636
+ "handoff_step": 4,
637
+ "handoff_payload": {...},
638
+ "events": [...],
639
+ "result": "..."
640
+ }
641
+ ]
642
+ }
643
+ ```
644
+
645
+ Agent Insight 现有 `buildAgentCallTree` / root-subagent execution 模型就属于这一层。
646
+
647
+ #### 2. Handoff extractor
648
+
649
+ 从 tree 中抽取 handoff record:
650
+
651
+ ```json
652
+ {
653
+ "parent_agent": "root",
654
+ "child_agent": "researcher",
655
+ "handoff_step": 4,
656
+ "handoff_reason": "need external research",
657
+ "payload": {
658
+ "task": "...",
659
+ "context": "...",
660
+ "constraints": "..."
661
+ },
662
+ "child_result": "...",
663
+ "parent_used_result": true
664
+ }
665
+ ```
666
+
667
+ #### 3. LLM judge / rule hybrid evaluator
668
+
669
+ 用规则先做确定性检查:
670
+
671
+ ```text
672
+ 是否真的有 child execution
673
+ 是否有 child result
674
+ 父 agent 后续是否引用 child result
675
+ handoff payload 是否为空
676
+ 是否重复派发同一子任务
677
+ ```
678
+
679
+ 再用 LLM judge 判断语义:
680
+
681
+ ```text
682
+ 是否应该派发?
683
+ 派给这个 agent 是否合理?
684
+ 上下文是否足够?
685
+ 父 agent 是否正确整合?
686
+ ```
687
+
688
+ ### 对 Agent Insight 的判断
689
+
690
+ 如果我们要做这个预置评估器,不能简单“集成某个现成库”。更现实的路线是:
691
+
692
+ ```text
693
+ 借鉴 OpenAI / LangSmith 的 trace grading 模式
694
+ 借鉴 AgentEval 的 DAG / dependency / root cause 方法论
695
+ 复用 Agent Insight 自己的 root-subagent trace tree
696
+ 实现一个自定义 Multi-Agent Routing Evaluator
697
+ ```
698
+
699
+ 也就是说:
700
+
701
+ ```text
702
+ 业界有可参考的评估思想和平台能力;
703
+ 但具体到多 agent handoff correctness,最好由 Agent Insight 自己实现。
704
+ ```
705
+
706
+ 这反而是 Agent Insight 的机会,因为你们已经有多 agent execution tree、parent/root execution 关系、subagentName/subagentType 等数据,能做得比通用平台更贴近真实 trace。
707
+
708
+ ### 参考链接
709
+
710
+ - OpenAI agent evals: https://developers.openai.com/api/docs/guides/agent-evals
711
+ - AgentEval DAG step-level evaluation: https://arxiv.org/abs/2604.23581
712
+ - LangSmith evaluation concepts: https://docs.langchain.com/langsmith/evaluation-concepts