Remove module-scope langchain imports so the package imports without the langgraph extra
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 52/100
- Tipo di issue
- Refactoring
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- python
- Ambito
- backend, developer-experience
Direzione di ricerca
Inizia da src/orchestrator/control_systems/research_control_system.py e src/orchestrator/tools/auto_debugger.py, quindi esamina come vengono importati questi moduli e come viene registrata l’integrazione opzionale. Esegui i controlli documentati di grep e importazione in un ambiente virtuale senza l’extra [langgraph]. Il lavoro è completo quando non rimangono import di langchain a livello di modulo e ogni modulo in orchestrator.all viene importato correttamente.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Verified on main today.
Evidence
src/orchestrator/tools/auto_debugger.py:29:from langchain.tools import BaseTool
src/orchestrator/control_systems/research_control_system.py:516:from langchain.agents import create_react_agent
src/orchestrator/control_systems/research_control_system.py:517:from langchain.tools import Tool
src/orchestrator/control_systems/research_control_system.py:557:from langchain.agents import initialize_agent, AgentType
src/orchestrator/control_systems/research_control_system.py:558:from langchain.tools import DuckDuckGoSearchRun, WikipediaQueryRun
Impact
langchain is behind the [langgraph] extra, not a core dependency. Any import path reaching these modules fails outright without that extra, which defeats the lazy-import work that got import orchestrator down to ~5 ms with zero heavy modules.
auto_debugger.py is the harder case: it subclasses BaseTool, so it cannot be made lazy by moving the import into a function — the class body needs the symbol at definition time.
Proposed fix
research_control_system.py: move the imports into the functions that use them. Mechanical.auto_debugger.py: needs restructuring — either invert the dependency (compose rather than subclassBaseTool, adapting at the boundary), or move the whole module behind the extra and register it conditionally.
Recommend composition: subclassing a third-party type to satisfy an optional integration is what created the coupling.
Acceptance criteria
grep -rn "^from langchain\|^import langchain" src/orchestrator/returns nothing- In a venv without the
[langgraph]extra, importing every module inorchestrator.__all__succeeds
- Lingua principale
- Python
- Stelle
- 3
- Fork
- 2
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di ContextLab/orchestrator
-
Stop textually splicing variable values into expression source in ControlFlowAutoResolver._safe_evalApertaarchitecture bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
ContextLab/orchestrator#427 ·
-
MVP: evidence-driven recursive agentic runtimeForse già presa @jeremymanning l’ha presa 57 giorni fa. Apertaarchitecture enhancement epic
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
ContextLab/orchestrator#492 ·
-
architecture enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
ContextLab/orchestrator#491 ·
-
architecture enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 28/100
ContextLab/orchestrator#490 ·
-
architecture enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
ContextLab/orchestrator#489 ·
Tutte le issue di ContextLab/orchestrator
Issue simili
-
wr.dynamodb.read_items returns [{}] for a single partition value that does not existForse già presa @auraseb l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
aws/aws-sdk-pandas#3520 ·
I maintainer di solito rispondono entro 2 giorni
-
requires triage typing
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
sqlalchemy/sqlalchemy#13704 ·
I maintainer di solito rispondono entro 1 giorno
-
Edit tool converts CRLF files to LFForse già presa @RaphaelFakhri l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
huggingface/tau#774 ·
I maintainer di solito rispondono entro 1 giorno
-
show ignores the row limit when a column or table name contains "limit"Forse già presa @RaphaelFakhri l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
What happened to `check.py`?Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
linebender/resvg#1179 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni