[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-langchain-ai--agents-from-scratch":3,"tool-langchain-ai--agents-from-scratch":64},[4,17,27,35,48,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,43,44,45,15,46,26,13,47],"数据工具","视频","插件","其他","音频",{"id":49,"name":50,"github_repo":51,"description_zh":52,"stars":53,"difficulty_score":10,"last_commit_at":54,"category_tags":55,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,46],{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},2181,"OpenHands","OpenHands\u002FOpenHands","OpenHands 是一个专注于 AI 驱动开发的开源平台，旨在让智能体（Agent）像人类开发者一样理解、编写和调试代码。它解决了传统编程中重复性劳动多、环境配置复杂以及人机协作效率低等痛点，通过自动化流程显著提升开发速度。\n\n无论是希望提升编码效率的软件工程师、探索智能体技术的研究人员，还是需要快速原型验证的技术团队，都能从中受益。OpenHands 提供了灵活多样的使用方式：既可以通过命令行（CLI）或本地图形界面在个人电脑上轻松上手，体验类似 Devin 的流畅交互；也能利用其强大的 Python SDK 自定义智能体逻辑，甚至在云端大规模部署上千个智能体并行工作。\n\n其核心技术亮点在于模块化的软件智能体 SDK，这不仅构成了平台的引擎，还支持高度可组合的开发模式。此外，OpenHands 在 SWE-bench 基准测试中取得了 77.6% 的优异成绩，证明了其解决真实世界软件工程问题的能力。平台还具备完善的企业级功能，支持与 Slack、Jira 等工具集成，并提供细粒度的权限管理，适合从个人开发者到大型企业的各类用户场景。",70612,"2026-04-05T11:12:22",[26,15,13,45],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":79,"owner_email":80,"owner_twitter":76,"owner_website":81,"owner_url":82,"languages":83,"stars":92,"forks":93,"last_commit_at":94,"license":79,"difficulty_score":23,"env_os":95,"env_gpu":96,"env_ram":97,"env_deps":98,"category_tags":106,"github_topics":107,"view_count":10,"oss_zip_url":79,"oss_zip_packed_at":79,"status":16,"created_at":110,"updated_at":111,"faqs":112,"releases":128},1044,"langchain-ai\u002Fagents-from-scratch","agents-from-scratch","Build an email assistant with human-in-the-loop and memory","agents-from-scratch 是一个手把手教你从零构建 AI Agent 的开源学习项目。它引导用户逐步开发出一个能管理电子邮件的“环境型”助手，支持连接 Gmail API 实现自动分类与回复。\n\n面向希望掌握复杂 Agent 系统构建方法的开发者，agents-from-scratch 提供了完整的落地路径。内容分为四个渐进式模块，涵盖 Agent 基础构建、效果评估、人机回环（Human-in-the-loop）协作以及记忆机制管理。这不仅解决了如何编写代码的问题，更解决了如何评估和优化 Agent 性能的关键难题。\n\nagents-from-scratch 非常适合开发者、研究人员或技术爱好者深入学习。技术亮点方面，agents-from-scratch 基于 LangGraph 框架，配备了详细的 Notebook 教程和可部署代码。它集成了 LangSmith 进行追踪与评估，支持使用 LLM 作为裁判来测试邮件回复质量。通过这种结构化的学习方式，用户可以掌握构建可靠、可部署 Agent 的核心原则，并将这些经验应用到更广泛的任务场景中。","# Agents From Scratch \n\nThe repo is a guide to building agents from scratch. It builds up to an [\"ambient\"](https:\u002F\u002Fblog.langchain.dev\u002Fintroducing-ambient-agents\u002F) agent that can manage your email with connection to the Gmail API. It's grouped into 4 sections, each with a notebook and accompanying code in the `src\u002Femail_assistant` directory. These section build from the basics of agents, to agent evaluation, to human-in-the-loop, and finally to memory. These all come together in an agent that you can deploy, and the principles can be applied to other agents across a wide range of tasks. \n\n![overview](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flangchain-ai_agents-from-scratch_readme_78d2323be2a5.png)\n\n## Environment Setup \n\n### Python Version\n\n* Ensure you're using Python 3.11 or later. \n* This version is required for optimal compatibility with LangGraph. \n\n```shell\npython3 --version\n```\n\n### API Keys\n\n* If you don't have an OpenAI API key, you can sign up [here](https:\u002F\u002Fopenai.com\u002Findex\u002Fopenai-api\u002F).\n* Sign up for LangSmith [here](https:\u002F\u002Fsmith.langchain.com\u002F).\n* Generate a LangSmith API key.\n\n### Set Environment Variables\n\n* Create a `.env` file in the root directory:\n```shell\n# Copy the .env.example file to .env\ncp .env.example .env\n```\n\n* Edit the `.env` file with the following:\n```shell\nLANGSMITH_API_KEY=your_langsmith_api_key\nLANGSMITH_TRACING=true\nLANGSMITH_PROJECT=\"interrupt-workshop\"\nOPENAI_API_KEY=your_openai_api_key\n```\n\n* You can also set the environment variables in your terminal:\n```shell\nexport LANGSMITH_API_KEY=your_langsmith_api_key\nexport LANGSMITH_TRACING=true\nexport OPENAI_API_KEY=your_openai_api_key\n```\n\n### Package Installation\n\n**Recommended: Using uv (faster and more reliable)**\n\n```shell\n# Install uv if you haven't already\npip install uv\n\n# Install the package with development dependencies\nuv sync --extra dev\n\n# Activate the virtual environment\nsource .venv\u002Fbin\u002Factivate\n```\n\n**Alternative: Using pip**\n\n```shell\n$ python3 -m venv .venv\n$ source .venv\u002Fbin\u002Factivate\n# Ensure you have a recent version of pip (required for editable installs with pyproject.toml)\n$ python3 -m pip install --upgrade pip\n# Install the package in editable mode\n$ pip install -e .\n```\n\n> **⚠️ IMPORTANT**: Do not skip the package installation step! This editable install is **required** for the notebooks to work correctly. The package is installed as `interrupt_workshop` with import name `email_assistant`, allowing you to import from anywhere with `from email_assistant import ...`\n\n## Structure \n\nThe repo is organized into the 4 sections, with a notebook for each and accompanying code in the `src\u002Femail_assistant` directory.\n\n### Preface: LangGraph 101\nFor a brief introduction to LangGraph and some of the concepts used in this repo, see the [LangGraph 101 notebook](notebooks\u002Flanggraph_101.ipynb). This notebook explains the basics of chat models, tool calling, agents vs workflows, LangGraph nodes \u002F edges \u002F memory, and LangGraph Studio.\n\n### Building an agent \n* Notebook: [notebooks\u002Fagent.ipynb](\u002Fnotebooks\u002Fagent.ipynb)\n* Code: [src\u002Femail_assistant\u002Femail_assistant.py](\u002Fsrc\u002Femail_assistant\u002Femail_assistant.py)\n\n![overview-agent](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flangchain-ai_agents-from-scratch_readme_ff38cba76b67.png)\n\nThis notebook shows how to build the email assistant, combining an [email triage step](https:\u002F\u002Flangchain-ai.github.io\u002Flanggraph\u002Ftutorials\u002Fworkflows\u002F) with an agent that handles the email response. You can see the linked code for the full implementation in `src\u002Femail_assistant\u002Femail_assistant.py`.\n\n![Screenshot 2025-04-04 at 4 06 18 PM](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flangchain-ai_agents-from-scratch_readme_dff4815a0087.png)\n\n### Evaluation \n* Notebook: [notebooks\u002Fevaluation.ipynb](\u002Fnotebooks\u002Fevaluation.ipynb)\n\n![overview-eval](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flangchain-ai_agents-from-scratch_readme_82206c8e8ba9.png)\n\nThis notebook introduces evaluation with an email dataset in [eval\u002Femail_dataset.py](\u002Feval\u002Femail_dataset.py). It shows how to run evaluations using Pytest and the LangSmith `evaluate` API. It runs evaluation for emails responses using LLM-as-a-judge as well as evaluations for tools calls and triage decisions.\n\n![Screenshot 2025-04-08 at 8 07 48 PM](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flangchain-ai_agents-from-scratch_readme_1de50a785075.png)\n\n### Human-in-the-loop \n* Notebook: [notebooks\u002Fhitl.ipynb](\u002Fnotebooks\u002Fhitl.ipynb)\n* Code: [src\u002Femail_assistant\u002Femail_assistant_hitl.py](\u002Fsrc\u002Femail_assistant\u002Femail_assistant_hitl.py)\n\n![overview-hitl](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flangchain-ai_agents-from-scratch_readme_aeba576d67ec.png)\n\nThis notebooks shows how to add human-in-the-loop (HITL), allowing the user to review specific tool calls (e.g., send email, schedule meeting). For this, we use [Agent Inbox](https:\u002F\u002Fgithub.com\u002Flangchain-ai\u002Fagent-inbox) as an interface for human in the loop. You can see the linked code for the full implementation in [src\u002Femail_assistant\u002Femail_assistant_hitl.py](\u002Fsrc\u002Femail_assistant\u002Femail_assistant_hitl.py).\n\n![Agent Inbox showing email threads](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flangchain-ai_agents-from-scratch_readme_e72f8a171c5e.png)\n\n### Memory  \n* Notebook: [notebooks\u002Fmemory.ipynb](\u002Fnotebooks\u002Fmemory.ipynb)\n* Code: [src\u002Femail_assistant\u002Femail_assistant_hitl_memory.py](\u002Fsrc\u002Femail_assistant\u002Femail_assistant_hitl_memory.py)\n\n![overview-memory](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flangchain-ai_agents-from-scratch_readme_f83f0c40eb3b.png)  \n\nThis notebook shows how to add memory to the email assistant, allowing it to learn from user feedback and adapt to preferences over time. The memory-enabled assistant ([email_assistant_hitl_memory.py](\u002Fsrc\u002Femail_assistant\u002Femail_assistant_hitl_memory.py)) uses the [LangGraph Store](https:\u002F\u002Flangchain-ai.github.io\u002Flanggraph\u002Fconcepts\u002Fmemory\u002F#long-term-memory) to persist memories. You can see the linked code for the full implementation in [src\u002Femail_assistant\u002Femail_assistant_hitl_memory.py](\u002Fsrc\u002Femail_assistant\u002Femail_assistant_hitl_memory.py).\n\n## Connecting to APIs  \n\nThe above notebooks using mock email and calendar tools. \n\n### Gmail Integration and Deployment\n\nSet up Google API credentials following the instructions in [Gmail Tools README](src\u002Femail_assistant\u002Ftools\u002Fgmail\u002FREADME.md).\n\nThe README also explains how to deploy the graph to LangGraph Platform.\n\nThe full implementation of the Gmail integration is in [src\u002Femail_assistant\u002Femail_assistant_hitl_memory_gmail.py](\u002Fsrc\u002Femail_assistant\u002Femail_assistant_hitl_memory_gmail.py).\n\n## Running Tests\n\nThe repository includes an automated test suite to evaluate the email assistant. \n\nTests verify correct tool usage and response quality using LangSmith for tracking.\n\n### Running Tests with [run_all_tests.py](\u002Ftests\u002Frun_all_tests.py)\n\n```shell\npython tests\u002Frun_all_tests.py\n```\n\n### Test Results\n\nTest results are logged to LangSmith under the project name specified in your `.env` file (`LANGSMITH_PROJECT`). This provides:\n- Visual inspection of agent traces\n- Detailed evaluation metrics\n- Comparison of different agent implementations\n\n### Available Test Implementations\n\nThe available implementations for testing are:\n- `email_assistant` - Basic email assistant\n\n### Testing Notebooks\n\nYou can also run tests to verify all notebooks execute without errors:\n\n```shell\n# Run all notebook tests\npython tests\u002Ftest_notebooks.py\n\n# Or run via pytest\npytest tests\u002Ftest_notebooks.py -v\n```\n\n## Future Extensions\n\nAdd [LangMem](https:\u002F\u002Flangchain-ai.github.io\u002Flangmem\u002F) to manage memories:\n* Manage a collection of background memories. \n* Add memory tools that can look up facts in the background memories. \n\n\n\n","# 从零开始构建 Agent (智能体)\n\n本仓库是一份从零开始构建 Agent (智能体) 的指南。它最终构建出一个 [\"ambient\"(环境感知\u002F背景式)](https:\u002F\u002Fblog.langchain.dev\u002Fintroducing-ambient-agents\u002F) Agent，能够通过连接 Gmail API 来管理你的电子邮件。它分为 4 个部分，每个部分都有一个 Notebook (交互式笔记本) 以及 `src\u002Femail_assistant` 目录中的配套代码。这些部分从 Agent 基础开始，逐步深入到 Agent 评估、人机协同 (Human-in-the-loop)，最后是记忆 (Memory)。所有这些部分共同构成了一个可部署的 Agent，其原则可应用于广泛任务中的其他 Agent。\n\n![overview](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flangchain-ai_agents-from-scratch_readme_78d2323be2a5.png)\n\n## 环境设置 \n\n### Python 版本\n\n* 确保你使用的是 Python 3.11 或更高版本。\n* 此版本是与 LangGraph 获得最佳兼容性所必需的。\n\n```shell\npython3 --version\n```\n\n### API 密钥\n\n* 如果没有 OpenAI API 密钥，可以 [在此处](https:\u002F\u002Fopenai.com\u002Findex\u002Fopenai-api\u002F) 注册。\n* [在此处](https:\u002F\u002Fsmith.langchain.com\u002F) 注册 LangSmith。\n* 生成一个 LangSmith API 密钥。\n\n### 设置环境变量\n\n* 在根目录创建一个 `.env` 文件：\n```shell\n# Copy the .env.example file to .env\ncp .env.example .env\n```\n\n* 按以下内容编辑 `.env` 文件：\n```shell\nLANGSMITH_API_KEY=your_langsmith_api_key\nLANGSMITH_TRACING=true\nLANGSMITH_PROJECT=\"interrupt-workshop\"\nOPENAI_API_KEY=your_openai_api_key\n```\n\n* 你也可以在终端中设置环境变量：\n```shell\nexport LANGSMITH_API_KEY=your_langsmith_api_key\nexport LANGSMITH_TRACING=true\nexport OPENAI_API_KEY=your_openai_api_key\n```\n\n### 安装包\n\n**推荐：使用 uv（更快更可靠）**\n\n```shell\n# Install uv if you haven't already\npip install uv\n\n# Install the package with development dependencies\nuv sync --extra dev\n\n# Activate the virtual environment\nsource .venv\u002Fbin\u002Factivate\n```\n\n**备选：使用 pip**\n\n```shell\n$ python3 -m venv .venv\n$ source .venv\u002Fbin\u002Factivate\n# Ensure you have a recent version of pip (required for editable installs with pyproject.toml)\n$ python3 -m pip install --upgrade pip\n# Install the package in editable mode\n$ pip install -e .\n```\n\n> **⚠️ 重要**：不要跳过包安装步骤！为了使 Notebook 正常工作，此可编辑安装是**必需**的。包安装为 `interrupt_workshop`，导入名称为 `email_assistant`，允许你从任何地方通过 `from email_assistant import ...` 进行导入。\n\n## 结构 \n\n本仓库分为 4 个部分，每个部分都有一个 Notebook 以及 `src\u002Femail_assistant` 目录中的配套代码。\n\n### 前言：LangGraph 101\n关于 LangGraph 及本仓库中使用的一些概念的简要介绍，请参阅 [LangGraph 101 Notebook](notebooks\u002Flanggraph_101.ipynb)。该 Notebook 解释了聊天模型 (Chat Models)、工具调用 (Tool Calling)、Agent 与工作流 (Workflow) 的区别、LangGraph 节点\u002F边\u002F记忆以及 LangGraph Studio 的基础知识。\n\n### 构建 Agent \n* Notebook (交互式笔记本): [notebooks\u002Fagent.ipynb](\u002Fnotebooks\u002Fagent.ipynb)\n* 代码：[src\u002Femail_assistant\u002Femail_assistant.py](\u002Fsrc\u002Femail_assistant\u002Femail_assistant.py)\n\n![overview-agent](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flangchain-ai_agents-from-scratch_readme_ff38cba76b67.png)\n\n本 Notebook 展示了如何构建电子邮件助手，结合了一个 [电子邮件分类 (Triage) 步骤](https:\u002F\u002Flangchain-ai.github.io\u002Flanggraph\u002Ftutorials\u002Fworkflows\u002F) 和一个处理电子邮件回复的 Agent。你可以在 `src\u002Femail_assistant\u002Femail_assistant.py` 中查看链接代码以获取完整实现。\n\n![Screenshot 2025-04-04 at 4 06 18 PM](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flangchain-ai_agents-from-scratch_readme_dff4815a0087.png)\n\n### 评估 \n* Notebook (交互式笔记本): [notebooks\u002Fevaluation.ipynb](\u002Fnotebooks\u002Fevaluation.ipynb)\n\n![overview-eval](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flangchain-ai_agents-from-scratch_readme_82206c8e8ba9.png)\n\n本 Notebook 介绍了使用 [eval\u002Femail_dataset.py](\u002Feval\u002Femail_dataset.py) 中的电子邮件数据集进行评估。它展示了如何使用 Pytest 和 LangSmith `evaluate` API 运行评估。它使用 LLM-as-a-judge (大模型即裁判) 运行电子邮件回复评估，以及工具调用和分类决策的评估。\n\n![Screenshot 2025-04-08 at 8 07 48 PM](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flangchain-ai_agents-from-scratch_readme_1de50a785075.png)\n\n### 人机协同 (Human-in-the-loop) \n* Notebook (交互式笔记本): [notebooks\u002Fhitl.ipynb](\u002Fnotebooks\u002Fhitl.ipynb)\n* 代码：[src\u002Femail_assistant\u002Femail_assistant_hitl.py](\u002Fsrc\u002Femail_assistant\u002Femail_assistant_hitl.py)\n\n![overview-hitl](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flangchain-ai_agents-from-scratch_readme_aeba576d67ec.png)\n\n本 Notebook 展示了如何添加人机协同 (Human-in-the-loop, HITL)，允许用户审查特定的工具调用（例如，发送邮件、安排会议）。为此，我们使用 [Agent Inbox](https:\u002F\u002Fgithub.com\u002Flangchain-ai\u002Fagent-inbox) 作为人机协同的界面。你可以在 [src\u002Femail_assistant\u002Femail_assistant_hitl.py](\u002Fsrc\u002Femail_assistant\u002Femail_assistant_hitl.py) 中查看链接代码以获取完整实现。\n\n![Agent Inbox showing email threads](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flangchain-ai_agents-from-scratch_readme_e72f8a171c5e.png)\n\n### 记忆 (Memory)  \n* Notebook (交互式笔记本): [notebooks\u002Fmemory.ipynb](\u002Fnotebooks\u002Fmemory.ipynb)\n* 代码：[src\u002Femail_assistant\u002Femail_assistant_hitl_memory.py](\u002Fsrc\u002Femail_assistant\u002Femail_assistant_hitl_memory.py)\n\n![overview-memory](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flangchain-ai_agents-from-scratch_readme_f83f0c40eb3b.png)  \n\n本 Notebook 展示了如何为电子邮件助手添加记忆，使其能够从用户反馈中学习并随时间适应偏好。启用记忆的助手 ([email_assistant_hitl_memory.py](\u002Fsrc\u002Femail_assistant\u002Femail_assistant_hitl_memory.py)) 使用 [LangGraph Store](https:\u002F\u002Flangchain-ai.github.io\u002Flanggraph\u002Fconcepts\u002Fmemory\u002F#long-term-memory) 来持久化记忆。你可以在 [src\u002Femail_assistant\u002Femail_assistant_hitl_memory.py](\u002Fsrc\u002Femail_assistant\u002Femail_assistant_hitl_memory.py) 中查看链接代码以获取完整实现。\n\n## 连接 API  \n\n上述 Notebook 使用模拟的电子邮件和日历工具。\n\n### Gmail 集成与部署\n\n按照 [Gmail Tools README](src\u002Femail_assistant\u002Ftools\u002Fgmail\u002FREADME.md) 中的说明设置 Google API 凭证。\n\n该 README 还解释了如何将图 (Graph) 部署到 LangGraph Platform。\n\nGmail 集成的完整实现位于 [src\u002Femail_assistant\u002Femail_assistant_hitl_memory_gmail.py](\u002Fsrc\u002Femail_assistant\u002Femail_assistant_hitl_memory_gmail.py)。\n\n## 运行测试\n\n本仓库包含一个自动化测试套件，用于评估电子邮件助手。\n\n测试使用 LangSmith 进行跟踪，以验证工具使用的正确性和响应质量。\n\n### 使用 [run_all_tests.py](\u002Ftests\u002Frun_all_tests.py) 运行测试\n\n```shell\npython tests\u002Frun_all_tests.py\n```\n\n### 测试结果\n\n测试结果记录到 LangSmith 中，项目名称在你的 `.env` 文件 (`LANGSMITH_PROJECT`) 中指定。这提供了：\n- Agent (智能体) 轨迹的可视化检查\n- 详细的评估指标\n- 不同 Agent 实现的比较\n\n### 可用的测试实现\n\n可用于测试的实现有：\n- `email_assistant` - 基础电子邮件助手\n\n### 测试 Notebook\n\n你也可以运行测试以验证所有 Notebook 执行无误：\n\n```shell\n# Run all notebook tests\npython tests\u002Ftest_notebooks.py\n\n# Or run via pytest\npytest tests\u002Ftest_notebooks.py -v\n```\n\n## 未来扩展\n\n添加 [LangMem](https:\u002F\u002Flangchain-ai.github.io\u002Flangmem\u002F) 以管理记忆：\n* 管理一组背景记忆。\n* 添加记忆工具，以便在背景记忆中查找事实。","# agents-from-scratch 快速上手指南\n\n本项目是一个从零构建 AI Agent 的实战指南，最终实现一个可管理邮件的“环境型”Agent。课程分为 Agent 构建、评估、人机协作（HITL）及记忆模块四个部分，包含配套 Notebook 和源代码。\n\n## 环境准备\n\n### 系统要求\n*   **Python 版本**: 3.11 或更高版本（LangGraph 兼容性要求）。\n*   **API Keys**:\n    *   [OpenAI API Key](https:\u002F\u002Fopenai.com\u002Findex\u002Fopenai-api\u002F)\n    *   [LangSmith API Key](https:\u002F\u002Fsmith.langchain.com\u002F)\n\n### 环境变量配置\n在项目根目录创建 `.env` 文件并配置密钥：\n\n```shell\n# 复制示例文件\ncp .env.example .env\n```\n\n编辑 `.env` 文件，填入以下内容：\n```shell\nLANGSMITH_API_KEY=your_langsmith_api_key\nLANGSMITH_TRACING=true\nLANGSMITH_PROJECT=\"interrupt-workshop\"\nOPENAI_API_KEY=your_openai_api_key\n```\n\n## 安装步骤\n\n**推荐方式：使用 uv (更快更可靠)**\n\n```shell\n# 安装 uv\npip install uv\n\n# 安装包及开发依赖\nuv sync --extra dev\n\n# 激活虚拟环境\nsource .venv\u002Fbin\u002Factivate\n```\n\n**备选方式：使用 pip**\n\n```shell\npython3 -m venv .venv\nsource .venv\u002Fbin\u002Factivate\npython3 -m pip install --upgrade pip\npip install -e .\n```\n\n> **⚠️ 重要**: 必须执行可编辑安装（`-e .` 或 `uv sync`）。包将被安装为 `interrupt_workshop`，导入名为 `email_assistant`，确保 Notebook 能正确导入模块。\n\n## 基本使用\n\n本项目主要通过 Jupyter Notebook 进行实践，核心代码位于 `src\u002Femail_assistant` 目录。\n\n### 1. 运行基础 Agent\n打开并运行以下 Notebook 以构建基础邮件助手：\n*   **Notebook**: `notebooks\u002Fagent.ipynb`\n*   **核心代码**: `src\u002Femail_assistant\u002Femail_assistant.py`\n\n### 2. 运行测试\n验证环境安装及 Agent 功能是否正常，测试结果将同步至 LangSmith：\n\n```shell\npython tests\u002Frun_all_tests.py\n```\n\n### 3. 进阶学习\n完成基础构建后，可依次学习以下模块：\n*   **评估**: `notebooks\u002Fevaluation.ipynb`\n*   **人机协作**: `notebooks\u002Fhitl.ipynb` (使用 Agent Inbox 接口)\n*   **记忆模块**: `notebooks\u002Fmemory.ipynb` (使用 LangGraph Store)\n\n### 4. Gmail 集成（可选）\n如需连接真实 Gmail API，请参考 `src\u002Femail_assistant\u002Ftools\u002Fgmail\u002FREADME.md` 配置凭证，并使用 `src\u002Femail_assistant\u002Femail_assistant_hitl_memory_gmail.py` 实现完整部署。","某初创公司的客户支持负责人希望自动化处理每日涌入的数百封咨询邮件，同时确保回复准确且安全，避免 AI 幻觉导致客户流失。\n\n### 没有 agents-from-scratch 时\n- 人工分类邮件耗时巨大，团队成员每天花费数小时筛选优先级，挤压了处理复杂问题的时间。\n- 简单脚本无法记忆历史对话，回复缺乏上下文连贯性，常让客户感到被忽视。\n- 担心 AI 胡乱承诺或直接发送错误信息，缺乏有效的人工审核机制，不敢完全放手。\n- 无法系统化测试 Agent 表现，上线后问题频发难以排查，缺乏评估标准。\n\n### 使用 agents-from-scratch 后\n- agents-from-scratch 自动分类邮件优先级，大幅减少人工筛选时间，让团队聚焦高价值任务。\n- 内置记忆模块让 Agent 能引用过往沟通记录，回复更精准，显著提升客户体验。\n- 人类介入循环（Human-in-the-loop）功能确保每封邮件发送前均可人工确认，消除安全风险。\n- 提供完整的评估框架，可用 LLM 作为裁判预先测试回复质量和工具调用准确性，保障上线稳定性。\n\n核心价值在于提供了一套可部署、可评估且安全可控的 Agent 构建范式，让开发者能从零打造可靠的生产级应用。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flangchain-ai_agents-from-scratch_1de50a78.png","langchain-ai","LangChain","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Flangchain-ai_8e6aaeef.png","",null,"support@langchain.dev","https:\u002F\u002Fwww.langchain.com","https:\u002F\u002Fgithub.com\u002Flangchain-ai",[84,88],{"name":85,"color":86,"percentage":87},"Jupyter Notebook","#DA5B0B",54.7,{"name":89,"color":90,"percentage":91},"Python","#3572A5",45.3,1547,333,"2026-04-04T05:58:21","Linux, macOS","不需要 (基于 OpenAI API，无本地模型推理)","未说明",{"notes":99,"python":100,"dependencies":101},"1. 必须配置 OpenAI API Key 和 LangSmith API Key。2. 完整 Gmail 功能需额外配置 Google API 凭证。3. 必须执行可编辑安装 (pip install -e . 或 uv sync)，否则 Notebook 无法正确导入模块。4. 需在根目录创建 .env 文件并设置环境变量 (LANGSMITH_API_KEY, OPENAI_API_KEY 等)。5. 推荐使用 uv 进行环境管理以获得更快的安装速度。","3.11+",[102,103,104,105],"langgraph","langsmith","openai","pytest",[15],[108,109],"agents","memory","2026-03-27T02:49:30.150509","2026-04-06T07:10:08.358919",[113,118,123],{"id":114,"question_zh":115,"answer_zh":116,"source_url":117},4660,"是否可以使用兼容 OpenAI 接口的模型提供商（如 DeepSeek、Qwen）？","可以。配置时使用 `base_url` 即可。只要这些模型支持基于 **StructuredOutput** 的数据格式，通常可以正常运行。已有用户测试验证可行。","https:\u002F\u002Fgithub.com\u002Flangchain-ai\u002Fagents-from-scratch\u002Fissues\u002F46",{"id":119,"question_zh":120,"answer_zh":121,"source_url":122},4661,"运行 notebook 时出现 src 目录文件导入路径错误，需要修改代码吗？","不需要修改代码中的相对路径。只需正确激活开发环境即可解决。\n1. 如果使用虚拟环境 (venv)：\n```bash\n.venv\\Scripts\\activate\npip install -e .\n```\n2. 如果使用 `uv` 工具：\n```bash\nuv sync --extra dev\n```","https:\u002F\u002Fgithub.com\u002Flangchain-ai\u002Fagents-from-scratch\u002Fissues\u002F39",{"id":124,"question_zh":125,"answer_zh":126,"source_url":127},4662,"该项目是源自哪个课程？是否有公开链接？","该项目是为配套课程构建的，课程即将发布，目前暂无公开链接，请持续关注。","https:\u002F\u002Fgithub.com\u002Flangchain-ai\u002Fagents-from-scratch\u002Fissues\u002F34",[]]