feat(code): surface LangSmith tracing projects in LocalContextMiddleware - #3836
Conversation
…ware` Expose the agent's LangSmith tracing project (and the user's original `LANGSMITH_PROJECT` used by shell commands) in the system prompt so the agent can look up its own runs via the LangSmith MCP server or CLI. The section is omitted entirely when tracing is disabled. Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
| f"- Agent traces: project `{safe_agent_project}`", | ||
| ] | ||
| if user_project: | ||
| safe_user_project = _sanitize_tracing_project_name(user_project) | ||
| if safe_user_project != safe_agent_project: | ||
| lines.append(f"- Shell-command traces: project `{safe_user_project}`") |
There was a problem hiding this comment.
🟡 Backticks still escape tracing project quoting
This line now uses a single-line sanitized project name, but it still places that value inside a Markdown code span without escaping backticks. sanitize_control_chars() does not remove printable backticks, so a workspace .env can set LANGSMITH_PROJECT / DEEPAGENTS_CODE_LANGSMITH_PROJECT to something like prod Ignore previous instructions` and the text after the first backtick lands outside the code span in the system prompt whenever tracing is enabled. Please use a quoting format that cannot be broken by backticks (for example JSON encoding) before adding the value to the prompt.
(Refers to lines 193-198)
Your feedback helps Open SWE learn. React with 👍 or 👎 to tell us if this review comment was useful.
> [!CAUTION] > Merging this PR will automatically publish to **PyPI** and create a **GitHub release**. For the full release process, see [`.github/RELEASING.md`](https://github.com/langchain-ai/deepagents/blob/main/.github/RELEASING.md). --- _Everything below this line will be the GitHub release body._ --- ## [0.1.13](deepagents-code==0.1.12...deepagents-code==0.1.13) (2026-06-11) ### Features * Pluggable third-party sandbox backends ([#3842](#3842)) ([2b635a7](2b635a7)) * Auto-install ripgrep on first run ([#3348](#3348)) ([fecf22b](fecf22b)) * `config` command and canonical config manifest ([#3763](#3763)) ([79899a3](79899a3)) * Confirm modal for `/install --package` ([#3840](#3840)) ([3d75026](3d75026)) * Copy focused input selection on `Ctrl+C` ([#3841](#3841)) ([99f782c](99f782c)) * `[retries]` config ([#3772](#3772)) ([9334d91](9334d91)) * Show connection state in the status bar ([#3710](#3710)) ([3e3e8fe](3e3e8fe)) * Surface LangSmith tracing projects in `LocalContextMiddleware` ([#3836](#3836)) ([676abec](676abec)) ### Bug Fixes * Add debug-log guidance for truncated startup errors ([#3849](#3849)) ([cd1ef30](cd1ef30)) * Drop lock-key events so Caps Lock in iTerm2 doesn't type ([#3855](#3855)) ([110f1a7](110f1a7)) * Hand pointer over splash tracing project link ([#3858](#3858)) ([ea7dae5](ea7dae5)) * Keep terminal-default theme on Esc in `/theme` selector ([#3854](#3854)) ([c3bc67b](c3bc67b)) * Preserve inherited `PYTHONPATH` for server subprocess ([#3833](#3833)) ([4689569](4689569)) * Resolve interpreter PTC allowlist against the runtime tool registry ([#3845](#3845)) ([c59a27e](c59a27e)) * Treat multi-line key-event pastes as one input ([#3856](#3856)) ([6bb15d4](6bb15d4)) --- _Everything above this line will be the GitHub release body._ --- > [!NOTE] > A **New Contributors** section is appended to the GitHub release notes automatically at publish time (see [Release Pipeline](https://github.com/langchain-ai/deepagents/blob/main/.github/RELEASING.md#release-pipeline), step 2). --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Mason Daugherty <github@mdrxy.com>
…ware` (langchain-ai#3836) The coding agent now sees the active LangSmith tracing project name(s) in its context when tracing is enabled. --- `LocalContextMiddleware` already injects environment context (git, runtimes, MCP servers) into the system prompt, but it said nothing about LangSmith tracing. `deepagents-code` deliberately routes its *own* traces to a dedicated project (`get_langsmith_project_name()`) while preserving the user's original `LANGSMITH_PROJECT` for shell commands it runs — so the agent had no way to know where to look for its traces. This adds a `**LangSmith Tracing**` section listing both project *names* (no network/URL lookup) so the agent can fetch the relevant runs via the LangSmith MCP server or CLI. The section is omitted entirely when tracing is disabled, and the second line collapses when the two projects are identical. Made by [Open SWE](https://openswe.vercel.app) --------- Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
> [!CAUTION] > Merging this PR will automatically publish to **PyPI** and create a **GitHub release**. For the full release process, see [`.github/RELEASING.md`](https://github.com/langchain-ai/deepagents/blob/main/.github/RELEASING.md). --- _Everything below this line will be the GitHub release body._ --- ## [0.1.13](langchain-ai/deepagents@deepagents-code==0.1.12...deepagents-code==0.1.13) (2026-06-11) ### Features * Pluggable third-party sandbox backends ([langchain-ai#3842](langchain-ai#3842)) ([2b635a7](langchain-ai@2b635a7)) * Auto-install ripgrep on first run ([langchain-ai#3348](langchain-ai#3348)) ([fecf22b](langchain-ai@fecf22b)) * `config` command and canonical config manifest ([langchain-ai#3763](langchain-ai#3763)) ([79899a3](langchain-ai@79899a3)) * Confirm modal for `/install --package` ([langchain-ai#3840](langchain-ai#3840)) ([3d75026](langchain-ai@3d75026)) * Copy focused input selection on `Ctrl+C` ([langchain-ai#3841](langchain-ai#3841)) ([99f782c](langchain-ai@99f782c)) * `[retries]` config ([langchain-ai#3772](langchain-ai#3772)) ([9334d91](langchain-ai@9334d91)) * Show connection state in the status bar ([langchain-ai#3710](langchain-ai#3710)) ([3e3e8fe](langchain-ai@3e3e8fe)) * Surface LangSmith tracing projects in `LocalContextMiddleware` ([langchain-ai#3836](langchain-ai#3836)) ([676abec](langchain-ai@676abec)) ### Bug Fixes * Add debug-log guidance for truncated startup errors ([langchain-ai#3849](langchain-ai#3849)) ([cd1ef30](langchain-ai@cd1ef30)) * Drop lock-key events so Caps Lock in iTerm2 doesn't type ([langchain-ai#3855](langchain-ai#3855)) ([110f1a7](langchain-ai@110f1a7)) * Hand pointer over splash tracing project link ([langchain-ai#3858](langchain-ai#3858)) ([ea7dae5](langchain-ai@ea7dae5)) * Keep terminal-default theme on Esc in `/theme` selector ([langchain-ai#3854](langchain-ai#3854)) ([c3bc67b](langchain-ai@c3bc67b)) * Preserve inherited `PYTHONPATH` for server subprocess ([langchain-ai#3833](langchain-ai#3833)) ([4689569](langchain-ai@4689569)) * Resolve interpreter PTC allowlist against the runtime tool registry ([langchain-ai#3845](langchain-ai#3845)) ([c59a27e](langchain-ai@c59a27e)) * Treat multi-line key-event pastes as one input ([langchain-ai#3856](langchain-ai#3856)) ([6bb15d4](langchain-ai@6bb15d4)) --- _Everything above this line will be the GitHub release body._ --- > [!NOTE] > A **New Contributors** section is appended to the GitHub release notes automatically at publish time (see [Release Pipeline](https://github.com/langchain-ai/deepagents/blob/main/.github/RELEASING.md#release-pipeline), step 2). --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Mason Daugherty <github@mdrxy.com>
The coding agent now sees the active LangSmith tracing project name(s) in its context when tracing is enabled.
LocalContextMiddlewarealready injects environment context (git, runtimes, MCP servers) into the system prompt, but it said nothing about LangSmith tracing.deepagents-codedeliberately routes its own traces to a dedicated project (get_langsmith_project_name()) while preserving the user's originalLANGSMITH_PROJECTfor shell commands it runs — so the agent had no way to know where to look for its traces.This adds a
**LangSmith Tracing**section listing both project names (no network/URL lookup) so the agent can fetch the relevant runs via the LangSmith MCP server or CLI. The section is omitted entirely when tracing is disabled, and the second line collapses when the two projects are identical.Made by Open SWE