Skip to content

docs: update /docs for PRs merged 2026-06-22–23#3208

Merged
dgageot merged 4 commits into
mainfrom
docs/auto-update
Jun 23, 2026
Merged

docs: update /docs for PRs merged 2026-06-22–23#3208
dgageot merged 4 commits into
mainfrom
docs/auto-update

Conversation

@aheritier

Copy link
Copy Markdown
Contributor

Updates documentation for two recently merged PRs:

PR #3192 — Add Miro to remote MCP service list

  • Added mcp.miro.com (streamable HTTP, OAuth DCR) to the Content & Media table in /features/remote-mcp/, with a note about the Enterprise plan requirement and a link to the official Miro MCP docs.

PR #2620 — Document OTel traces + metrics + logs

  • Corrected the --otel flag description from "Enable OpenTelemetry tracing" to "Enable OpenTelemetry observability: traces, metrics, and logs" in both the docker agent run flags table and the Global Flags section.
  • Added a new OpenTelemetry environment variables subsection documenting OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT (capture prompt/response PII, default off) and OTEL_SEMCONV_STABILITY_OPT_IN (switch to spec-only gen_ai.* keys).

This PR also carries forward two pending docs commits from the previous cycle (PRs #3184 and #3189).

PR #3184 replaced the blank-import opt-in pattern with an explicit
toolset registry (pkg/teamloader/toolsets). The RAG toolset is now
included in NewDefaultToolsetRegistry() by default.

Document the opt-out pattern (delete creators["rag"] from the registry)
for binaries that want a load-time warning rather than a deferred
runtime error. Note that teamloader.Load() does not return an error for
unknown toolset types — failures become load-time warnings attached to
the agent. Clarify that pkg/rag/treesitter build-tag guards handle the
cgo boundary automatically regardless of CGO_ENABLED.
PR #3189 decoupled the OS keyring token store from the embedder
packages. The CLI calls keyringstore.Register() at startup; embedders
that want persistent MCP OAuth tokens across restarts must call it
before teamloader.Load() on configs with remote MCP toolsets.

Document the Register() call, the panic trigger (MCP toolset
construction, not OAuth lookup), and when to omit it.
@aheritier aheritier requested a review from a team as a code owner June 23, 2026 04:07
@aheritier aheritier added the kind/docs Documentation-only changes label Jun 23, 2026

@docker-agent docker-agent left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Assessment: 🟡 NEEDS ATTENTION

| Variable | Default | Description |
| -------- | ------- | ----------- |
| `OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT` | `false` | Set to `true` to capture prompt text, model responses, tool arguments, and tool results as span attributes. Off by default because these fields may contain PII. |
| `OTEL_SEMCONV_STABILITY_OPT_IN` | (dual-emit) | Set to `gen_ai_latest_experimental` to emit only the spec-defined `gen_ai.*` keys from the [GenAI semantic conventions](https://opentelemetry.io/docs/specs/semconv/gen-ai/). The default dual-emit mode emits both `gen_ai.*` and legacy keys so existing dashboards continue working. |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[HIGH] Incorrect OTEL_SEMCONV_STABILITY_OPT_IN value: gen_ai_latest_experimental is not a recognized OTel opt-in token

The documented value gen_ai_latest_experimental does not appear in the OpenTelemetry specification or the go.opentelemetry.io/contrib instrumentation libraries. The recognized values for OTEL_SEMCONV_STABILITY_OPT_IN in the GenAI semconv ecosystem are:

  • gen_ai — emit only the stable, spec-defined gen_ai.* keys (opt into the new semconv exclusively)
  • gen_ai_experimental — used in some pre-stable contrib packages for experimental attributes

If a user follows this documentation and sets OTEL_SEMCONV_STABILITY_OPT_IN=gen_ai_latest_experimental, the SDK will treat it as an unrecognized value and silently remain in dual-emit mode — the opposite of the documented behavior. Users trying to reduce cardinality or migrate away from legacy keys will be misled.

Suggested fix: Change gen_ai_latest_experimental to gen_ai (or gen_ai_experimental if this refers to pre-stable attributes). If this project's OTel instrumentation layer defines a custom value, add a note explaining that.


// Opt out of the RAG toolset; a config that declares type: rag attaches
// a load-time warning to the agent instead of failing at document processing.
creators := loadertoolsets.DefaultToolsetCreators()

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[MEDIUM] Go code snippet uses := outside a function body — invalid Go syntax

The snippet shows:

import (
    "github.com/docker/docker-agent/pkg/teamloader"
    loadertoolsets "github.com/docker/docker-agent/pkg/teamloader/toolsets"
)

creators := loadertoolsets.DefaultToolsetCreators()
delete(creators, "rag")
registry := teamloader.NewToolsetRegistry(creators)

In Go, short variable declarations (:=) are only valid inside function bodies. At package scope only var declarations are allowed. As written, this snippet will not compile if copied into a Go source file.

This is inconsistent with the keyringstore.Register() snippet immediately below it in the same file, which is correctly wrapped in func main() { ... }.

Suggested fix: Wrap the statements in a function scope, e.g.:

import (
    "github.com/docker/docker-agent/pkg/teamloader"
    loadertoolsets "github.com/docker/docker-agent/pkg/teamloader/toolsets"
)

func main() {
    creators := loadertoolsets.DefaultToolsetCreators()
    delete(creators, "rag")
    registry := teamloader.NewToolsetRegistry(creators)
    // Pass to teamloader.Load via teamloader.WithToolsetRegistry(registry)
}

@aheritier aheritier added the area/docs Documentation changes label Jun 23, 2026
@dgageot dgageot merged commit 2b9fd7a into main Jun 23, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/docs Documentation changes kind/docs Documentation-only changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants