You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在LangChain Python Agent中使用scanpy?是否可行?

使用LangChain Python Agent调用scanpy和adata对象的解决方案

方案可行性结论

该方案完全可行,报错原因是Agent未识别到已注入的库和数据对象,或REPL工具的变量传递配置有误。

解决步骤及代码示例

1. 前置环境验证

先确保当前Python环境已安装scanpy,且adata对象能正常加载:

import scanpy as sc
# 加载测试数据或你的自定义adata
adata = sc.datasets.pbmc3k_processed()

# 验证环境
print("scanpy版本:", sc.__version__)
print("adata形状:", adata.shape)

2. 调整REPL工具配置

默认的PythonAstREPLTool可能存在沙箱限制,建议改用PythonREPLTool并直接注入全局变量,或修正Ast工具的变量传递逻辑:

方式一:使用PythonREPLTool(推荐)

from langchain.agents import create_python_agent, AgentType
from langchain.tools.python.tool import PythonREPLTool
from langchain.chat_models import ChatOpenAI

# 初始化LLM
openai_llm = ChatOpenAI(model="gpt-3.5-turbo", temperature=0)

# 创建REPL工具并注入全局变量
repl_tool = PythonREPLTool()
repl_tool.globals["sc"] = sc
repl_tool.globals["adata"] = adata

# 自定义提示词,明确告知Agent已有的资源
custom_prompt = """你是一个能执行Python代码的助手,当前环境已导入scanpy(别名sc)和adata对象,无需重复import或加载数据。请根据需求编写并执行代码完成任务。

{input}

{agent_scratchpad}"""

# 创建Agent
agent_executor = create_python_agent(
    llm=openai_llm,
    tool=repl_tool,
    verbose=True,
    agent_type=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
    agent_kwargs={"prompt": custom_prompt}
)

方式二:修正PythonAstREPLTool配置

若坚持使用Ast版本工具,需确保locals参数正确传递,并配合提示词说明:

from langchain.tools.python.tool import PythonAstREPLTool

ast_tool = PythonAstREPLTool(locals={"sc": sc, "adata": adata})

agent_executor = create_python_agent(
    llm=openai_llm,
    tool=ast_tool,
    verbose=True,
    agent_type=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
    agent_kwargs={"prompt": custom_prompt}
)

3. 测试验证

执行简单任务验证配置是否生效:

# 示例任务:绘制UMAP图并保存
agent_executor.run("使用sc.pl.umap绘制adata的UMAP图,将结果保存为'umap_plot.png'")

常见问题排查

  • 沙箱限制:部分REPL工具的安全沙箱可能阻止外部库调用,可检查LangChain工具的源码或配置,确认是否有禁用外部库的设置。
  • 版本兼容:不同版本的LangChain对工具参数的定义可能不同,若参数报错,可查看对应版本的官方文档调整参数名称(如部分版本需用globals替代locals)。
  • 提示词明确性:必须在提示词中清晰告知Agent无需重复导入库或加载数据,否则Agent可能尝试重新import导致报错。

内容的提问来源于stack exchange,提问作者kurt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 12:52:31