LiteLLM+LangFuse Support: Enhancing how request_params are overridden #129
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This enhancement performs a recursive merge of
request_paramsset initially on the agent with parameters passed in during an execution step. Consider the example below that adds a session identifier at runtime to a specific step in the process:Prior to this update, the inner
metadatawould be set to{"session_id": session_id}and basically would overwrite the default values set above on the agent. With this updatesession_idwould be merged and themetadatawould get set to:The specific use case I ran into was that I am using LiteLLM and LangFuse. It is easy enough to set
metadataand pass in the specifics needed for tracing when calling@app.agent. However, there are some situations - like adding a session identifier or other execution specific details - where it isn't feasible to set these globally when initializing the agent decorator, and doing a "deep merge" that overrides the agent defaults is needed.Note that although this is a small change and likely the behavior most folks would expect, it does introduce a potentially breaking change for any clients that rely on the "shallow" merge.