Jypyter和LangSmith简介欲善其功必先利其器。在进行AI Agent开发时日志非常的多往往会淹没在文本的海洋中调试步骤也比较麻烦如果每次都从头调试不仅浪费时间还很烧钱(token).此时选择趁手的工具就很重要了。你可以选择Jupyter 作为你的“实验台”LangSmith 是你的“监控器”两者都要用但侧重点不同。Jupyter Notebook 是AI的IDE在这里“运行即保存”。你不需要每次为了调试最后一步而重新跑前面耗时、耗 Token 的第一步。它是你构建 LangGraph 节点的草稿本。你先在 Jupyter 里把一个个 Node 函数写通最后再拼成一个.py文件。LangSmith必须同步开启它是你的“黑匣子”在写第一行 LangChain 代码时就挂载它即可声明几个环境变量API Key、ProjectName就好了。 LangGraph 的逻辑很复杂模型在后台到底收到了什么 Prompt它为什么没走你设定的分支只看控制台输出Print会让你崩溃。挂载LangSmith后你在 Jupyter 里跑的每一行代码在 LangSmith 后台都会生成一个精美的可视化链路图。方便你查看问题。Jupyter Notebook的安装方法是两条命令然后登录web入口即可使用参考https://docs.jupyter.org/en/latest/install/notebook-classic.htmlhttps://github.com/langchain-ai/langchain-academy/LangSmith是需要外网环境先到Langsmith官网申请key创建project然后把这些变量export到你的代码开头当langgraph真正运行起来后就可以到langsmith官网你创建的这个工程链接里面看到图的动态变化了。可以参考https://smith.langchain.com/下面就是我根据以上官方文档安装以及使用jupyter和langsmith的详细步骤需要的话可以往后看。Jupyter安装和使用Jupyter的安装安装Jupyter官网(https://docs.jupyter.org/en/latest/install/notebook-classic.html)的描述安装方法如下在主机上安装Jypyterpip3 install --upgrade pip pip3 install jupyter # 卸载命令如下 # pip3 uninstall notebook jupyter_core jupyter_server jupyterlab -y # 启动 jupyter 服务 # 注意生产环境不建议用 --allow-root --no-browser不启动浏览器 jupyter notebook --ip0.0.0.0 --port8888 --no-browser --allow-root安装完成后启动时可能报错 ModuleNotFoundError: No module named jupyter_core这可能是因为主机上安装了多套 python 环境系统命令链接出了问题用以下命令试一下如果你安装了python3.12:python3.12 -m jupyter notebook --ip0.0.0.0 --port8888 --allow-root鉴于这种方法容易出现环境链接问题因此我不推荐使用这种方法可以考虑下面几种环境隔离的方法。使用conda安装Jypyterconda install jupyter # 如果已经安装过 jupyter conda 环境那么就更新即可 conda update jupyter # 以上在你的 Conda 环境里“全新安装” Jupyter 全家桶还需要另外创建jupter环境 # 创建一个专门的环境例如叫 jupyter_env conda create -n jupyter_env python3.12 jupyter -y # 激活环境 conda activate jupyter_env # 在该环境中启动jupyter jupyter notebook --ip0.0.0.0 --allow-root使用 uv安装Jypyteruv是一种现在的方法怎么个现代法uv的现代不只是安装环境速度更快更是一套全新的、更符合直觉的项目管理哲学。它将 Python 开发中繁琐的环境管理步骤大大简化让你能更专注于 LangGraph 等具体的业务逻辑。# 1. 安装 uv pip install uv # 2. 创建虚拟环境并安装 jupyter 和 langgraph uv init my_langgraph_study cd my_langgraph_study # 3. 添加你需要的依赖 (uv 会自动创建虚拟环境) uv add langgraph langchain jupyter # 3. 运行 jupyter如果是本地开发去掉权限参数 uv run jupyter notebook # 如果是 Docker/服务器环境需要暴露端口 uv run jupyter notebook --ip0.0.0.0 --port8888 --no-browser --allow-rootuv venv创建环境uv add安装自动添加依赖自动生成跨平台的uv.lock锁定文件保证团队成员、生产环境与本地环境100%一致. 注意这里uv add和uv pip install是平行关系不是前后步骤。用了uv add就不需要uv pip install。使用uv run python script.py自动执行无需手动激活和记忆环境路径。注意uv add 是直接在环境里面安装包命令退出包还在。如果是共享服务器建议使用uv venv命令该命令会创建虚拟环境在当前目录生成 .venv然后需要激活虚拟环境 source .venv/bin/activate 然后在环境里面干活。pip、conda和uv的区别前面叙述了pip、conda和uv三种工具你可能会想这三种方法到底有啥区别下面简述如下 特性pipCondauv主要功能安装包环境管理 安装包极速安装 环境管理语言PythonPython/CRust速度慢中等极快依赖解决有时冲突需手动修稳健擅长处理非Python库非常稳健兼容 pip 标准运行限制只管安装不管运行必须激活环境(conda activate)在指定目录下运行定位Python 官方默认工具数据科学领域的“老大哥”新一代的高性能挑战者使用传统虚拟环境安装Jupyter这种方法更简单稳定# 1. 创建虚拟环境 python -m venv venv source venv/bin/activate # Linux/Mac # 或 venv\Scripts\activate # Windows # 2. 安装包 pip install jupyter langgraph langchain # 3. 运行 jupyter notebook运行jupyter其实上面的内容里已经提到了这几种安装方法如何拉起jupyter进程运行界面如下所示你在那个目录下敲运行命令uv run jupyter notebook 就显示的是该目录下的所有文件然后你选择你的工程目录这里使用的是langchain学院的代码你可以到github上去下载https://github.com/langchain-ai/langchain-academy.git。另外还可以参考deep_research_scratch项目https://github.com/langchain-ai/deep_research_from_scratch.git 重点关注notebooks文件夹。如果才conda环境中切换目录运行jupyter进程需要重新activate虚拟环境。然后打开module-0/basics.ipynb通过查看界面上的菜单可以知道jupyter notebook的单元是cell即一块一块的代码段。你可以通过菜单栏来创建、删除、运行、中断你当前选中的cell.你可以复用这段初始化代码from langchain_openai import ChatOpenAI from langchain_core.messages import HumanMessage import os, getpass def _set_env(var: str): if not os.environ.get(var): os.environ[var] getpass.getpass(f{var}: ) _set_env(OPENAI_API_KEY) deepseek_chat ChatOpenAI(modeldeepseek-v3-2-251201, base_urlhttps://ark.cn-beijing.volces.com/api/v3, temperature0) # Create a message msg HumanMessage(contentHello world, nameLance) # Message list messages [msg] # Invoke the model with a list of messages deepseek_chat.invoke(messages)鼠标放在cell上点击Run按钮就单独运行该cell的代码不用加打印语句运行结果会自动显示在下面如果运行错误也会有日志显示在Cell下面。运行完毕cell左侧的中括号里面会显示数字编号即当前运行的几号cell正在运行时显示为[*]如果一直是这样的话则说明有问题点击kernel interrupt或者直接点击那个停止按钮。LangSmith的注册和使用Jupyter需要你安装环境而langsmith不需要安装只需要注册然后到langsmith官网查看你的工程详情。下面就以langchain-academy(https://github.com/langchain-ai/langchain-academy.git)为例来说明如何利用LangSmith进行便捷的监控即看agent干了些啥。本地langgraph dev 方式打开langchain-academy/module-1/router.ipynb文件最下面让你在langchain-academy/module-1/studio/目录下用langgraph dev 命令拉起进程然后输出提示符- API: http://127.0.0.1:2024 - Studio UI: https://smith.langchain.com/studio/?baseUrlhttp://127.0.0.1:2024 - API Docs: http://127.0.0.1:2024/docs然后你在浏览器中输入出Studio UI 地址。由于我的运行环境是服务器导致访问不通如下所示这是因为baseUrl[http://127.0.0.1:2024](http://127.0.0.1:2024)指向的是你当前电脑宿主机的本地环回地址。当你在自己电脑的浏览器里打开 LangChain Studio 时它会尝试去你自己电脑上寻找 2024 端口而你的程序实际上跑在远程服务器上两边根本没有通所以才会报Failed to fetch。注意不要把127.0.0.1改成你的服务器地址。而是需要做SSH 端口转发即在你的主机上输入如下命令 ssh -N -L 2024:127.0.0.1:2024 用户名服务器IP-N表示只建立连接不打开远程服务器的 Shell 终端单纯做端口转发。-L 2024:127.0.0.1:2024将远程服务器本地的 2024 端口映射到你当前电脑的 2024 端口。输入命令和密码成功后终端会处于静止/阻塞状态这是正常的说明通道已经建立请不要关闭这个终端窗口。再去刷新刚才失败的页面正常显示如下我们观察到langchain-academy/module-1/studio目录下有三个py文件和一个langgraph.json以及其他环境依赖文件。其中langgraph.json内容如下{ dockerfile_lines: [], graphs: { simple_graph: ./simple.py:graph, router: ./router.py:graph, agent: ./agent.py:graph }, env: ./.env, python_version: 3.11, dependencies: [ . ] }这意味着当你运行 langgraph dev 时它在后台同时加载了 3 个独立的工作流Graphs去 simple.py 里加载一个叫 graph 的变量对应 simple_graph。去 router.py 里加载一个叫 graph 的变量对应 router。去 agent.py 里加载一个叫 graph 的变量对应 agent。这在 LangChain Studio 网页里意味着什么当你通过浏览器和 SSH 隧道成功进入 LangChain Studio 的可视化界面后你会在界面的左上角或者顶部看到一个下拉切换菜单。在这个菜单里你可以在 simple_graph、router 和 agent 之间自由切换切换到 simple_graph网页会把 simple.py 里的 Python 逻辑画成节点流程图你可以在输入框里给它发消息进行测试。切换到 agent网页就会实时渲染 agent.py 里的复杂智能体流程。其他关键配置env: ./.env它在启动时会自动读取当前目录下的 .env 文件。你的大模型 API 密钥比如 OPENAI_API_KEY 或 ANTHROPIC_API_KEY就必须写在这个文件里否则程序和网页虽然能通但运行节点时会报密钥缺失的错误。dependencies: [.]告诉系统把当前目录.加入到 Python 的搜索路径中这样这几个 .py 文件之间才能互相 import引用。运行条件langgraph dev这种本地运行方式需要几个条件1. 有 langgraph.json 配置文件2. 图是纯 LangGraph不依赖外部基础设施或者能解决外部依赖问题3. 入口模块直接暴露 graph builder.compile()如果我们要这种模式那么就需要解决以上三个问题其中外部依赖是工程中常常遇到的问题。例如MCP Server, 数据库的连接等。langsmith环境变量方式还有一种工程中常用的方式就是在工程中设置环境变量首先你需要在langsmith网站创建project,如下所示我这里创建了多个project用于不同环境的测试创建好工程后网页会自动跳转到如下页面注意这里产生API key, 并且把红框里面的环境变量生效到你的程序运行环境中。注意要等到图开始运行之后然后再点击该工程就能看到图运转的详细过程了。