如何让LangGraph人机交互节点同时兼容Studio与CLI模式?
兼容CLI与LangGraph Studio的人机交互实现方案
核心思路是通过环境检测或异常捕获,自动适配两种环境的交互API,无需手动切换模式。
实现方式一:基于环境变量检测
LangGraph Studio运行时会自动设置LANGGRAPH_STUDIO环境变量,可通过该变量判断当前环境:
import os from langgraph.types import interrupt def get_user_input(prompt: str) -> str: # 判断是否处于LangGraph Studio环境 if os.getenv("LANGGRAPH_STUDIO"): return interrupt(prompt) # CLI环境使用原生input函数 return input(prompt)
实现方式二:基于异常捕获(更鲁棒)
如果环境变量未被正确设置,可尝试调用interrupt,捕获失败异常后回退到input:
from langgraph.types import interrupt def get_user_input(prompt: str) -> str: try: # 优先尝试LangGraph Studio的交互方式 return interrupt(prompt) except Exception: # 非Studio环境下调用interrupt会抛出异常,此时使用CLI的input return input(prompt)
使用示例
在你的LangGraph交互节点中,直接调用这个通用函数即可:
def human_interaction_node(state): user_response = get_user_input("Enter yes or no: ") # 将用户输入更新到状态中 return {"user_input": user_response}
这样修改后,智能体在CLI环境下会通过终端接收输入,在LangGraph Studio中则会触发平台内置的交互弹窗,完全兼容两种运行模式。
内容的提问来源于stack exchange,提问作者Sowmya
相关产品推荐
相关产品推荐

