Skip to content

feat: Add a way to skip context variable interpolation/injection. #5179

@gspencergoog

Description

@gspencergoog

Is your feature request related to a specific problem?

Yes, I'm unable to include the string ${<expression>} in my prompt. The interpolation code wants to expand it to the contents of a context key <expression> and remove the curly braces.

Describe the Solution You'd Like

I'd like a way to turn off or escape curly brace expressions in prompt strings.

Impact on your work

I'm working on something that requires describing the output format I'd like the LLM to produce, and part of that format includes curly braces. I have had to monkey-patch the ADK in order to get the functionality I need.

Willingness to contribute

I would be willing to contribute a PR, although I don't have one prepared.

Describe Alternatives You've Considered

I've tried escaping the curly braces with backslashes, doubling them, and including the the key "<expression>" = "{<expression>}" in the context, but escaping didn't work, and including the contents of every curly brace in the context isn't scalable.

Proposed API / Implementation

Option 1: Support Escaping via Double Braces

Adopt the Python standard (used in str.format) where double braces {{ and }} are resolved to literal { and } and ignored by the parser.

Option 2: Allow Custom Delimiters

Allow users to specify custom delimiters for templates to avoid collisions with the target template's syntax.

Metadata

Metadata

Labels

core[Component] This issue is related to the core interface and implementationneeds review[Status] The PR/issue is awaiting review from the maintainer

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions