本地运行LangChain Agent用于开发调试

基于DeepAgents轻松构建 AI Coding Agent这篇文章中,我介绍了如何基于最新的 LangChain 1.0DeepAgents 轻松构建一个简单但却功能强大和全面的 Coding Agent,其中还通过子 Agent 实现了代码审查、测试生成、文档生成、调试和代码重构等能力。

那么,当完成了一个 Agent 的开发后,我们应该如何在本地进行快速地测试、调试和验证呢?好在 LangChain 生态很完善,它提供了LangSmith DeploymentLangGraph CLIAgent Chat UI等工具,涵盖了后端 agent 服务部署、前端 UI 交互等功能,可以帮助我们很方便地在本地进行验证开发和调测。

接下来就基于deep-code-agent这个项目具体聊聊如何使用 LangChain 的这些工具进行 Agent 的测试和开发。

项目环境准备

从源码安装

  1. 克隆仓库

    bash 复制代码
    git clone https://github.com/hzhaoy/deep-code-agent.git
    cd deep-code-agent
  2. 安装依赖

    bash 复制代码
    uv sync

通过 uv sync 一个命令,就可以完成从 python 虚拟环境创建到项目依赖安装的所有工作,其中用于部署 Agent 服务的依赖主要是"langgraph-cli[inmem]",它提供了langgraph dev的启动部署命令,用于部署 Agent 服务。

项目配置

这里主要是环境变量的设置,通过新建一个.env文件进行配置:

  1. 从示例模板创建一个.env 文件

    bash 复制代码
    cp .env.example .env
  2. 使用你的配置编辑 .env 文件:

    python 复制代码
    # OpenAI API Configuration
    OPENAI_API_KEY=your-openai-api-key-here
    OPENAI_API_BASE=https://api.openai.com/v1
    
    # LLM Model Configuration
    MODEL_NAME=your-model-name-here

Agent

这里我们需要新建一个目录用于保存测试所需的文件,可以放在项目根目录下(比如项目目录下的 server,这里也以根目录下的 server 目录为例进行说明),也可以是其他任意的位置。

然后创建一个用于调试的 Agent,后续用于部署服务和前端交互:

python 复制代码
from deep_code_agent import create_code_agent

agent = create_code_agent(codebase_dir="/tmp/test")

将上面的代码保存为一个名为 agent.py 的 python 文件,并放在 server 目录下

LangGraph配置文件

创建一个名为langgraph.json的文件,输入以下内容,并放置在 server 目录下:

json 复制代码
{
    "$schema": "https://langgra.ph/schema.json",
    "dependencies": [
        "."
    ],
    "graphs": {
        "agent": "agent:agent"
    }
}

这是使用 langgraph-cli 启动服务时所需的配置文件,简单解释下几个字段的含义:

  • $schema:JSON配置文件遵循的 schema,按官方固定值配置即可
  • dependencies:这是必填项,指定 LangGraph API 服务器的所需的依赖项数组。这里使用一个单独的句点(".")表示使用本地的Python包。
  • graphs:必填项。从 Graph ID 到具体的 Agent 定义的映射。
    在这里,agent 为 Graph ID,用于后续在前端指定与哪个 agent 进行交互;
    agent:agent表示当前目录下 agent.py 这个模块中名为 agent 的变量所定义的智能体

启动LangGraph API 服务器

进入 server 目录,执行以下命令:

python 复制代码
uv run langgraph dev

如果服务成功启动,你将看到类似以下的输出:

复制代码
INFO:langgraph_api.cli:

         Welcome to

   ╦  ┌─┐┌┐┌┌─┐╔═╗┬─┐┌─┐┌─┐┬ ┬
   ║  ├─┤││││ ┬║ ╦├┬┘├─┤├─┘├─┤
   ╩═╝┴ ┴┘└┘└─┘╚═╝┴└─┴ ┴┴  ┴ ┴

   - 🚀 API: http://127.0.0.1:2024
   - 🎨 Studio UI: https://smith.langchain.com/studio/?baseUrl=http://127.0.0.1:2024
   - 📚 API Docs: http://127.0.0.1:2024/docs

   This in-memory server is designed for development and testing.
   For production use, please use LangSmith Deployment.

Chat UI 交互

访问 Agent Chat UI,输入上面显示的API URL(这里是http://127.0.0.1:2024)以及Graph ID(在这里是agent)。然后,点击"Continue"后就可以开始与该agent 进行交互了,如下所示:

在交互界面上,你可以直接与你开发的 Agent 进行对话,查看 Agent 的输出、工具调用情况、工具返回结果等,这些内容对于 Agent 的开发调试是很有帮助的。

一个交互示例

最后,贴上一个使用 deep-code-agent 完成编码任务的示例:

agent_demo

相关推荐
沛沛老爹3 小时前
Prompt Engineering 基础原理:从入门到实践
llm·prompt·提示词·提示词工程·核心原则·思维链技术
IALab-检测行业AI报告生成3 小时前
AI驱动万页报告审核革新:IACheck技术架构与实践价值解析
人工智能·架构
小马过河R3 小时前
Codebuddy使用CloudBase MCP辅助AI编码基于Spec工作流开发的坦克大战小游戏
人工智能·团队开发·ai编程·codebuddy
多则惑少则明3 小时前
AI测试、大模型测试(九)spring集成大模型(AI4J)
人工智能·ai测试·大模型测试
benxin12343 小时前
智能压力测试代理系统:基于AI的自动化压测解决方案
人工智能·自动化·压力测试
老蒋新思维3 小时前
创客匠人:小团队的知识变现革命 —— 超级个体 + 多智能体如何重构组织价值
服务器·网络·人工智能·重构·创始人ip·创客匠人·知识变现
serve the people3 小时前
tensorflow 零基础吃透:tf.sparse.SparseTensor 与核心 TensorFlow API 的协同使用
人工智能·python·tensorflow
SamtecChina20233 小时前
Electronica现场演示 | Samtec前面板解决方案
大数据·人工智能·算法·计算机外设
2401_841495643 小时前
【自然语言处理】字符编码与字频统计:中文信息处理的底层逻辑与实践维度
人工智能·自然语言处理·中文信息处理·西文字符编码的奠基·中文编码的演进·字符编码的实践价值·字频统计的作用与方法