v2: Tool.execute and MCP.callTool spans no longer carry tool.name / tool.call_id

Abierto Apto para principiantes
#62,305 1 comentario 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
76/100
Tipo de issue
Nueva funcionalidad
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
typescript

Línea de trabajo

Empieza con packages/core/src/tool.ts y packages/core/src/mcp/index.ts, donde, según el issue, se crean los spans, y comprueba cómo se registraron los atributos de v1 en #22531 y #25452. Los valores que hay que añadir ya están en el ámbito, y el hook tool.execute.after también los recibe. El trabajo estará terminado cuando los spans de tool y MCP expongan los atributos solicitados de tool, llamada, sesión, operación y servidor en trazas OTLP.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

pending close
Description

In v2, the Tool.execute and MCP.callTool spans no longer say which tool ran. In v1 they had tool.name and tool.call_id (#22531, and #25452 for MCP and plugin tools). Since the v2 rewrite, Tool.execute in packages/core/src/tool.ts is a bare Effect.fn("Tool.execute"), and MCP.callTool in packages/core/src/mcp/index.ts has no attributes either.

In a trace backend, every tool call now looks the same: status and duration only. The only way to tell which tool a span ran is the error message, and only when the call fails (MCP tool "github-get_file_contents" on server "litellm" failed: …).

Expected: the attributes from v1, ideally also with the OTel GenAI names, so GenAI-aware backends can show the calls:

  • tool.name / gen_ai.tool.name
  • tool.call_id / gen_ai.tool.call.id
  • gen_ai.operation.name = execute_tool
  • session.id
  • for MCP: the server name, e.g. mcp.server.name

The values are already in scope there (name, context.id, context.sessionID, input.server). The tool.execute.after hook receives them too.

Related: #46856 (trace context on MCP calls). Together these two would let MCP calls show up properly inside the agent trace.

Plugins

none

OpenCode version

2.1.2 (checked the code on v2.2.5)

Steps to reproduce
  1. Set OTEL_EXPORTER_OTLP_ENDPOINT and run opencode run with a prompt that uses a few tools (built-in and MCP).
  2. Open the trace in any OTLP backend.
  3. Tool.execute / MCP.callTool spans have no tool.name or call id. On v1 they did.
Operating System

Linux (container)

Terminal

n/a (opencode run)

Lenguaje dominante
TypeScript
Estrellas
224k
Forks
30k
Merge medio
5 h 25 min
PR fusionados (30 d)
494

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de anomalyco/opencode

Todos los issues de anomalyco/opencode

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.