fix: update langfuse>=3.8.0 and fix cuga_agent.py by haroldship · Pull Request #11519 · langflow-ai/langflow (original) (raw)
- feat: upgrade to LangChain 1.0
- langchain ~=1.2.0
- langchain-core ~=1.2.3
- langchain-community ~=0.4.1
Updated all langchain-* integration packages to versions compatible with langchain-core 1.0+.
- feat(lfx): add langchain-classic dependency for legacy agent classes
LangChain 1.0 removed AgentExecutor and related classes to langchain-classic. This adds the dependency to maintain backward compatibility.
- refactor(lfx): update imports for LangChain 1.0 compatibility
- Move AgentExecutor, agent creators from langchain to langchain_classic
- Move AsyncCallbackHandler from langchain.callbacks to langchain_core.callbacks
- Move Chain, BaseChatMemory from langchain to langchain_classic
- Update LANGCHAIN_IMPORT_STRING for code generation
- fix(lfx): make sqlalchemy import lazy in session_scope
LangChain 1.0 no longer includes sqlalchemy as a transitive dependency. Move the import inside the function where it's used to avoid import errors when sqlalchemy is not installed.
chore: update uv.lock for langchain-classic
feat: enable nv-ingest optional dependencies for langchain 1.0
- Uncomment nv-ingest-api and nv-ingest-client, update to >=26.1.0 (no longer has openai version conflict)
- Bump datasets from <4.0.0 to <5.0.0 to allow fsspec>=2025.5.1 required by nv-ingest
- Update mlx-vlm TODO comment with accurate blocking reason
- chore: update nv-ingest to 26.1.1
nv-ingest 26.1.1 removes the openai dependency, resolving the conflict with langchain-openai>=1.0.0 (which requires openai>=1.109.1).
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
- feat: enable mlx and mlx-vlm dependencies for langchain 1.0
opencv-python 4.13+ now supports numpy>=2, resolving the conflict with langchain-aws>=1.0.0 (which requires numpy>=2.2 on Python 3.12+).
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
- style: fix import order in callback.py
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
refactor: update imports to use langchain_classic for agent modules
[autofix.ci] apply automated fixes
fix: remove .item() calls in knowledge_bases.py
fix(lfx): import BaseMemory from langchain_classic for langchain 1.0
[autofix.ci] apply automated fixes
[autofix.ci] apply automated fixes (attempt 2/3)
refactor: update deprecated langchain imports for langchain 1.0
- langchain.callbacks.base -> langchain_core.callbacks.base
- langchain.tools -> langchain_core.tools
- langchain.schema -> langchain_core.messages/documents
- langchain.chains -> langchain_classic.chains
- langchain.retrievers -> langchain_classic.retrievers
- langchain.memory -> langchain_classic.memory
- langchain.globals -> langchain_core.globals
- langchain.docstore -> langchain_core.documents
- langchain.prompts -> langchain_core.prompts
Also simplified GoogleGenerativeAIEmbeddingsComponent to use native langchain-google-genai 4.x which now supports output_dimensionality.
[autofix.ci] apply automated fixes
fix: add _to_int helper for pandas sum() compatibility across Python versions
fix: update langfuse>=3.8.0 and fix cuga_agent.py (#11519)
fix: update langfuse>=3.8.0 and fix cuga_agent.py
[autofix.ci] apply automated fixes
[autofix.ci] apply automated fixes (attempt 2/3)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
feat: implement LangFuseTracer for langfuse v3 API compatibility and add unit tests
fix: upgrade cuga to 0.2.9 for langchain 1.0 compatibility
fix: improve error handling and return value in get_langchain_callback method
fix: update package versions for compatibility and improvements
[autofix.ci] apply automated fixes
[autofix.ci] apply automated fixes (attempt 2/3)
[autofix.ci] apply automated fixes (attempt 3/3)
fix: update langwatch dependency to version 0.10.0 for compatibility
fix: update environment variable for Langfuse host to LANGFUSE_BASE_URL
Update dependency versions in Youtube Analysis project
- Downgraded googleapiclient from 2.188.0 to 2.154.0
- Updated langchain_core from 1.2.7 to 1.2.9
- Updated fastapi from 0.128.1 to 0.128.5
- Downgraded youtube_transcript_api from 1.2.4 to 1.2.3
- Changed langchain_core version from 1.2.7 to 0.3.81
- Cleared input_types in model selection
Conflicts:
src/backend/base/langflow/initial_setup/starter_projects/Basic Prompt Chaining.json
src/backend/base/langflow/initial_setup/starter_projects/Basic Prompting.json
src/backend/base/langflow/initial_setup/starter_projects/Blog Writer.json
src/backend/base/langflow/initial_setup/starter_projects/Custom Component Generator.json
src/backend/base/langflow/initial_setup/starter_projects/Document Q&A.json
src/backend/base/langflow/initial_setup/starter_projects/Financial Report Parser.json
src/backend/base/langflow/initial_setup/starter_projects/Hybrid Search RAG.json
src/backend/base/langflow/initial_setup/starter_projects/Image Sentiment Analysis.json
src/backend/base/langflow/initial_setup/starter_projects/Instagram Copywriter.json
src/backend/base/langflow/initial_setup/starter_projects/Invoice Summarizer.json
src/backend/base/langflow/initial_setup/starter_projects/Knowledge Retrieval.json
src/backend/base/langflow/initial_setup/starter_projects/Market Research.json
src/backend/base/langflow/initial_setup/starter_projects/Meeting Summary.json
src/backend/base/langflow/initial_setup/starter_projects/Memory Chatbot.json
src/backend/base/langflow/initial_setup/starter_projects/News Aggregator.json
src/backend/base/langflow/initial_setup/starter_projects/Nvidia Remix.json
src/backend/base/langflow/initial_setup/starter_projects/Pokédex Agent.json
src/backend/base/langflow/initial_setup/starter_projects/Portfolio Website Code Generator.json
src/backend/base/langflow/initial_setup/starter_projects/Price Deal Finder.json
src/backend/base/langflow/initial_setup/starter_projects/Research Agent.json
src/backend/base/langflow/initial_setup/starter_projects/Research Translation Loop.json
src/backend/base/langflow/initial_setup/starter_projects/SEO Keyword Generator.json
src/backend/base/langflow/initial_setup/starter_projects/SaaS Pricing.json
src/backend/base/langflow/initial_setup/starter_projects/Search agent.json
src/backend/base/langflow/initial_setup/starter_projects/Sequential Tasks Agents.json
src/backend/base/langflow/initial_setup/starter_projects/Simple Agent.json
src/backend/base/langflow/initial_setup/starter_projects/Social Media Agent.json
src/backend/base/langflow/initial_setup/starter_projects/Text Sentiment Analysis.json
src/backend/base/langflow/initial_setup/starter_projects/Travel Planning Agents.json
src/backend/base/langflow/initial_setup/starter_projects/Twitter Thread Generator.json
src/backend/base/langflow/initial_setup/starter_projects/Vector Store RAG.json
src/backend/base/langflow/initial_setup/starter_projects/Youtube Analysis.json
fix: handle InvalidRequestError during session rollback
update projects
⚡️ Speed up method
LangFuseTracer.endby 141% in PR #11114 (feat/langchain-1.0) (#11682)
Optimize LangFuseTracer.end
The optimized code achieves a 140% speedup (8.23ms → 3.42ms) through two complementary optimizations:
1. Fast-path for Common Primitives in serialize()
What changed: Added an early-exit check that returns immutable primitives (str, int, float, bool) directly when no truncation or special handling is needed:
if max_length is None and max_items is None and not to_str:
if isinstance(obj, (str, int, float, bool)):
return objWhy it's faster:
- The profiler shows
_serialize_dispatcher()consumed 81.5% of runtime in the original code (40.4ms out of 49.6ms) - This optimization reduced dispatcher calls from 8,040 to 1,013 (~87% reduction), as primitives now bypass the expensive pattern-matching dispatcher entirely
- The fast-path check itself is extremely cheap: just two quick conditionals and an
isinstance()check against a tuple of built-in types
When it helps: This optimization is particularly effective for workloads with many primitive values in dictionaries and lists—which is exactly what the tracing use case provides (metadata dicts with strings, numbers, booleans).
2. Eliminate Redundant Serialization in LangFuseTracer.end()
What changed: Serialize inputs, outputs, and metadata once each, then reuse the results:
inputs_ser = serialize(inputs)
outputs_ser = serialize(outputs)
metadata_ser = serialize(metadata) if metadata else NoneWhy it's faster:
- The original code called
serialize()6 times total (3 for.update()+ 3 for.update_trace()) - The optimized version calls it 3 times, then passes the cached results
- Profiler shows the time spent in
serialize()calls dropped from 72.2ms to 31.2ms (~57% reduction) - This is pure elimination of redundant work—the same dictionaries were being serialized twice with identical results
Impact on workloads: The test_end_multiple_iterations_calls_end_each_time test (500 iterations) demonstrates this matters in hot paths. If LangFuseTracer.end() is called frequently during flow execution, avoiding duplicate serialization provides compounding benefits.
Combined Effect
Both optimizations target the serialization bottleneck from different angles:
- The fast-path reduces the cost of each serialize call by ~75% for primitive-heavy data
- The caching reduces the number of serialize calls by 50%
Together, they deliver the observed 140% speedup, with the optimization being especially effective for the common case of metadata dictionaries containing mostly primitive types.
Co-authored-by: codeflash-ai[bot] <148906541+codeflash-ai[bot]@users.noreply.github.com>
refactor: reorder imports and simplify serialization logic for primitives
[autofix.ci] apply automated fixes
fix: update google dependency version to 0.4.0 in component_index.json
[autofix.ci] apply automated fixes
[autofix.ci] apply automated fixes (attempt 2/3)
fix: pin z3-solver<4.15.7 to restore Linux wheels for Docker build
z3-solver 4.15.7 dropped manylinux wheels, causing the Docker build to fail when trying to compile from source. Temporary pin until codeflash is removed.
[autofix.ci] apply automated fixes
fix: update google dependency version to 0.4.0
[autofix.ci] apply automated fixes
fix: update langchain_core version to 1.2.17 in multiple starter project JSON files
[autofix.ci] apply automated fixes
[autofix.ci] apply automated fixes (attempt 2/3)
fix: update deprecated langchain imports to langchain_classic for 1.0 compatibility
fix: align langchain-chroma version in optional chroma dependency group
fix: nightly now properly gets 1.9.0 branch (#12215)
before it was attempting to pull release-notes as letters are alphanumerically after numbers when we sort -V then grab tail now we only look at branch names that follow the pattern '^release-[0-9]+.[0-9]+.[0-9]+$'
- docs: add search icon (#12216)
add-back-svg
[autofix.ci] apply automated fixes
[autofix.ci] apply automated fixes (attempt 2/3)
feat: fall back to langchain_classic for pre-1.0 imports in user components
Old flows using removed langchain imports (e.g. langchain.memory, langchain.schema, langchain.chains) now resolve via langchain_classic at two levels: module-level for entirely removed modules, and attribute-level for removed attributes in modules that still exist in langchain 1.0. New langchain 1.0 imports are never affected since fallbacks only trigger on import failure.
urllib parse module import bug
Update component_index.json
[autofix.ci] apply automated fixes
chore: rebuild component index
[autofix.ci] apply automated fixes
Co-authored-by: Claude Opus 4.5 noreply@anthropic.com Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Harold Ship harold.ship@gmail.com Co-authored-by: codeflash-ai[bot] <148906541+codeflash-ai[bot]@users.noreply.github.com> Co-authored-by: Adam-Aghili 149833988+Adam-Aghili@users.noreply.github.com Co-authored-by: Mendon Kissling 59585235+mendonk@users.noreply.github.com Co-authored-by: Eric Hare ericrhare@gmail.com