敢让 AI 执行代码?Sandbox 护体!LangChain Deep Agents 集成 Claude Skills 最佳实践,这篇值回票价!

1. 整体思路

在当今的大模型应用开发中,构建一个既具备深度思考能力又能安全执行复杂任务的智能体(Agent)是核心挑战之一。本文旨在构建一个具备深度思考和安全执行能力的智能体系统。核心架构由三部分组成:

  1. 大脑:LangChain Deep Agents利用 LangChain 构建具备 ReAct(推理+行动)能力的深度智能体。它不直接回答问题,而是通过思考、规划、调用工具来逐步解决复杂任务。
  2. 知识:Claude Skills采用类似 Claude 的 Skills 机制,将特定领域的能力(如 PDF 处理、数据分析)封装为SKILL.md文档。智能体通过读取这些文档动态获得操作指南,而非硬编码工具函数,极大地提升了扩展性。
  3. 手脚:Daytona Sandbox为了让智能体“不仅能想,还能做”,我们需要一个安全的代码执行环境。本项目集成 Daytona Sandbox,允许智能体编写 Python 代码并在隔离容器中运行。支持动态依赖安装、本地文件上传/下载,确保智能体能安全地处理实际文件任务。

工作流程: 用户下达指令(如“给 PDF 加水印”) -> 智能体检索 Skill -> 编写 Python 代码 -> 投递到 Daytona 沙箱执行 -> 获取结果文件并反馈。

2. Daytona 沙箱环境构建

2.1 Daytona 沙箱技术选型

本文应用的是 Daytona 沙箱。

Daytona SDK 提供官方的 Python 和 TypeScript 接口,用于与 Daytona 进行交互,使您能够以编程方式管理开发环境并执行代码。

选取 Daytona 沙箱的原因是其提供自托管方案,您可以在自己的基础设施上运行 Daytona,而无需依赖 Daytona 提供的云服务。Open Source Deployment,虽然提及 ‘not safe to use in production’,但考虑到本文是学习和实验的目的,因此可以在沙箱环境中使用。自托管方案后续可进行验证,本文先以线上 SaaS 方案进行演示。

2.2 环境配置与密钥管理

前往 Daytona Dashboard 获取密钥,并保存到.env文件中。

img

.env文件示例:

DAYTONA_API_KEY=dtn_...DAYTONA_API_URL=https://app.daytona.io/apiDAYTONA_TARGET=us

安装 SDK:

uv add python-dotenv daytona

编写验证代码:

import osimport sysimport argparsefrom daytona import Daytona, DaytonaConfigfrom dotenv import load_dotenvdef run_code_in_sandbox(code: str) -> int: load_dotenv() api_key = os.getenv("DAYTONA_API_KEY") api_url = os.getenv("DAYTONA_API_URL") target = os.getenv("DAYTONA_TARGET") ifnot api_key: print("DAYTONA_API_KEY is not set", file=sys.stderr) return1 config = DaytonaConfig(api_key=api_key, api_url=api_url, target=target) daytona = Daytona(config) sandbox = daytona.create() try: response = sandbox.process.code_run(code) if response.exit_code != 0: print(f"Error: {response.exit_code} {response.result}", file=sys.stderr) return response.exit_code else: print(response.result) return0 finally: sandbox.delete()def main() -> None: parser = argparse.ArgumentParser(description="Run code in Daytona sandbox") parser.add_argument( "--code", default='print("Hello World from code!")', help="Python code string to run inside sandbox", ) args = parser.parse_args() exit_code = run_code_in_sandbox(args.code) sys.exit(exit_code)if __name__ == "__main__": main()

运行uv run main.py,输出Hello World from code!,表示验证成功。

2.3 Daytona SDK 核心功能详解

在同智能体结合过程中,难免遇到各种场景,需要结合沙箱 SDK 手册 Python SDK Reference 进行功能补充。以下重点介绍本文涉及的核心功能:Image、命令执行和文件操作。

Image:环境镜像定义

在 Daytona 平台中,Image是 Python SDK 中一个核心的抽象类,用于定义启动 Sandbox(沙盒环境)所需的 Docker 镜像。它允许开发者以编程方式(而非手动编写 Dockerfile)构建自定义的容器镜像,从而确保 AI 生成代码或开发环境的高度可复现性和一致性。这特别适合 AI Agent 执行不确定代码的场景,避免了传统手动管理 Dockerfile 的繁琐。

Image 和 Sandbox 的区别

  • Image:是静态的镜像定义(类似于 Dockerfile 的描述)。它是一个蓝图,描述了容器镜像的内容,包括基础镜像、依赖安装、文件复制、环境变量、命令等。Daytona 的 Python SDK 通过Image类让你以流畅的链式 API 方式构建这个定义,最终 Daytona 会基于它构建实际的 Docker 镜像。
  • Sandbox:是运行时的动态容器实例(运行中的开发/执行环境)。Sandbox 是从 Image(或 Snapshot)启动的实际容器,用于执行代码、运行进程。Image 是 Sandbox 的“模板”,一个 Image 可以启动多个 Sandbox,而 Sandbox 是可销毁的、隔离的运行环境。

简单来说:Image 定义“环境长什么样”,Sandbox 是“运行这个环境”。SDK 中的 Image 只负责定义部分,Daytona 后台负责构建镜像并启动 Sandbox。

Image 的核心 API 和使用方式

Image类是一个 Pydantic 模型,你不直接实例化它,而是通过静态工厂方法创建,然后链式调用配置方法。所有配置方法都会返回 Image 实例,便于链式操作。

常见工厂方法:

  • Image.debian_slim(python_version=None):基于官方 Python Debian-slim 镜像(推荐起点,轻量且安全)。
  • Image.base(image):从任意 Docker 镜像名称起步。
  • Image.from_dockerfile(path):直接从现有 Dockerfile 创建。
命令执行:Process 模块

Process类用于在 Sandbox 内执行命令,可以用来安装 pip 包,也可以用来执行任意命令。

在 Daytona 平台的 Python SDK(同步版本)中,Process类是专为在 Sandbox 环境中处理进程和代码执行而设计的。它提供了一个统一的接口,用于运行 shell 命令、执行支持的语言代码(如 Python)、管理长运行的后台会话,以及创建交互式 PTY(伪终端)会话。这使得开发者或 AI Agent 能够在隔离的环境中安全、可靠地执行各种任务。

Process 的作用与目的

  • 核心功能:在 Sandbox 内执行 shell 命令或代码,支持捕获输出、退出码和 artifacts(如 Matplotlib 生成的图表)。
  • 适用场景:单次命令执行、多步工作流(通过 Session)、交互式终端(通过 PTY)、自动检测并提取可视化图表。
  • 优势:支持持久化会话(状态保持)、实时日志流、超时控制,以及与语言特定工具箱(如 SandboxPythonCodeToolbox)的集成。

Process 与 Sandbox 的区别

  • Process:聚焦于进程级操作,是 Sandbox 内部的执行引擎。你通过sandbox.process获取 Process 实例,用于运行命令、代码、管理会话等。它不负责 Sandbox 的创建或生命周期管理。
  • Sandbox:是运行时的容器实例(隔离环境),Process 是其子组件,用于在该环境中实际执行任务。一个 Sandbox 可以有多个 Process 操作(如多个会话或命令)。

简单来说:Sandbox 是“容器”,Process 是“容器里的执行器”。Process 依赖 Sandbox 存在,无法独立使用。

Process 的创建与访问

Process 实例通常不直接手动创建,而是通过已有的 Sandbox 获取:

process = sandbox.process # sandbox 是 Sandbox 实例

内部初始化依赖 SandboxPythonCodeToolbox(语言执行工具箱)和 API 客户端。

核心方法对比

类别方法功能关键参数
命令执行exec(command)执行单次 Shell 命令command: 命令字符串timeout: 超时时间 (0 为无限)
代码执行code_run(code, ...)执行 Python 代码片段code: 代码字符串
会话管理create_session(id)创建持久化 Shell 会话id: 会话唯一标识符
会话管理execute_session_command(...)在指定会话中运行命令id: 会话标识符;req: 包含命令的请求对象
会话管理delete_session(id)销毁持久会话id: 会话标识符
文件操作:FileSystem 模块

在 Daytona 平台的 Python SDK(同步版本)中,FileSystem类提供了一个高级接口,用于在 Sandbox 环境中执行文件系统操作。它允许开发者或 AI Agent 以编程方式上传/下载文件、创建目录、列出内容、搜索文件、修改权限等,所有路径默认相对于 Sandbox 的工作目录解析。这极大简化了在隔离环境中管理文件的工作流,尤其适合需要动态读写数据的 AI Agent 场景。

FileSystem 的作用与目的

  • 核心功能:提供完整的文件系统操作接口,包括上传(小文件内存/大文件流式)、下载(内存或本地文件)、目录管理、文件搜索(名称或内容)、文本替换、元数据查询和权限设置。
  • 适用场景:AI Agent 生成代码后上传文件、执行后下载结果(如日志、输出文件、图表 artifacts)、多文件批量操作、文件内容搜索与替换。
  • 优势:支持大文件流式传输、批量操作、超时控制、错误拦截,所有操作安全隔离在 Sandbox 内。

FileSystem 与 Sandbox 的区别

  • FileSystem:聚焦于文件系统操作,是 Sandbox 的子组件,专责文件/目录的管理和传输。你通过sandbox.fs获取实例,用于上传、下载、搜索等。
  • Sandbox:是运行时的容器实例(整体隔离环境),FileSystem 是其文件管理工具。FileSystem 依赖 Sandbox 存在,所有路径都在 Sandbox 内解析,无法操作本地主机文件(除上传/下载外)。

简单来说:Sandbox 是“隔离容器”,FileSystem 是“容器里的文件管理器”。它与 Process(进程执行)互补:Process 执行命令产生文件,FileSystem 负责传输和管理这些文件。

  1. Claude Skills 技能库集成

工程目录resource下,我们需要准备好 Skills 库。

使用git clone获取所需的 skills 功能,本文以 Claude skills (https://github.com/anthropics/skills) 为例:

git clone https://github.com/anthropics/skills.git

目标是让智能体能够扫描skills目录,读取能力描述,并根据用户需求,使用 Skills 中提及的技能。

  1. LangChain Deep Agents 核心开发

4.1 动态技能注册机制

基于文件的、声明式的技能管理机制,其核心思想是:

  1. 把每一个“技能”独立存放在一个文件夹中。
  2. 每个技能必须有一个SKILL.md文件,文件开头使用 YAML frontmatter(---包裹的元数据)定义namedescription
  3. 系统启动时,SkillRegistry会扫描指定目录,自动解析所有合法的SKILL.md,提取元数据,注册这些技能。
  4. 注册后的技能信息会被格式化成一段自然语言文本,追加到系统的 system prompt 中,告诉 AI:“你有这些技能,当任务匹配时,先用read_file工具读取对应的SKILL.md获取详细指令,再执行”。

这实现了**渐进式披露(Progressive Disclosure)**的设计模式:

  • AI 先知道技能的存在和大致用途(轻量级)。
  • 只在真正需要时才去读取完整说明(减少 prompt 长度、提升效率)。

这种模式非常适合工具调用(tool-calling)类型的 Agent 系统,比如结合 o1、Claude 或 Groq 等支持 function calling 的模型。

核心能力

  • 自动发现技能:无需手动在代码里硬编码技能列表,只要在skills目录下新增文件夹 +SKILL.md即可自动加载,支持热扩展。
  • 元数据解析:支持简单的 YAML frontmatter 解析,提取namedescription
  • 生成 system prompt 片段:输出一段结构化的提示文本,清晰列出所有可用技能及其描述,并教 AI 使用流程。
  • 容错性较好:目录不存在、文件缺失、解析失败时都会优雅处理(打印警告或返回 None),不会崩溃。
  • 路径无关性:使用Path.resolve()确保路径是绝对路径,便于在不同环境中运行。

4.2 安全沙箱工具封装

在安全的 Daytona 沙盒环境中执行任意 Python 代码的函数run_code_in_sandbox,其核心目标是提供隔离、可控、支持网络访问的代码执行能力,特别适合用于 AI Agent、在线代码运行平台、自动化任务等场景,避免直接在主机上运行不可信代码带来的安全风险。

使用 Daytona(一个云端沙盒服务,类似于远程轻量级容器/VM)来创建临时执行环境。每次执行代码时:

  1. 创建一个基于python:3.12-slim-bookworm的干净沙盒。
  2. 允许完全网络访问(network_allow_list="0.0.0.0/0"),支持安装包、访问 API 等。
  3. 在沙盒内动态安装依赖(pip install)。
  4. 上传用户提供的辅助文件(可选)。
  5. 执行用户代码。
  6. 下载执行后生成的文件(可选)。
  7. 无论成功失败,都清理沙盒。

通过环境变量配置 API 密钥和目标,保持灵活性。返回标准化的(exit_code, output)元组,便于调用方判断执行结果。

这是一种典型的“沙盒即服务”代码执行架构,兼顾了安全性和功能完整性。

核心能力

  • 隔离执行:代码不在本地运行,完全在远程沙盒中,避免污染主机环境或权限提升风险。
  • 支持动态安装依赖:可传入任意 pip 包列表,实时安装,支持复杂项目运行。
  • 文件上传与下载:支持上传数据文件、配置文件等;执行后可下载生成的文件(如图片、CSV、模型权重等)。
  • 自动资源清理:使用finally确保沙盒被删除,避免资源泄漏。

4.3 智能体编排与构建

将前两段代码(SkillRegistry 和 run_code_in_sandbox)整合起来,形成了一个完整的 Deep Agent 系统,基于 LangChain 框架,使用 LLM 驱动的工具调用(tool-calling)机制。

这是一个典型的 ReAct-style(Reasoning + Acting)工具增强型 AI Agent 系统,设计哲学是:

  • 不要让 LLM 直接“想象”怎么做复杂任务,而是让它动态学习专业技能(Skills)并在安全沙盒中执行真实代码。
  • 通过渐进式技能披露(Progressive Disclosure):LLM 先看到技能列表 → 需要时用read_file读取详细SKILL.md→ 学习最佳实践 → 生成代码 → 用execute_sandbox_code执行。
  • 所有真实计算都在 Daytona 沙盒中进行,主机只负责协调和文件传递,确保安全。

最终目标:构建一个能处理真实世界复杂任务的 AI 代理,如数据分析、PDF 处理、网页抓取、图像生成等,只要提供对应的 Skill 即可无限扩展能力。

核心能力

  • 动态技能学习
  • 自动发现并加载resources/skills/skills/目录下的所有技能。
  • 在 system prompt 中注入技能列表和使用指南。
  • 支持无限扩展新技能(只需新增文件夹 +SKILL.md)。
  • 安全代码执行
  • 动态安装任意 pip 包

  • 上传本地文件到沙盒

  • 执行代码

  • 下载生成的文件

  • 提供

    execute_sandbox_code

    工具,支持:

  • 所有代码在隔离的 Daytona 沙盒中运行,零本地风险。

  • LLM 工具调用集成
  • 使用 LangChain 的@tool装饰器定义工具。
  • 支持 LLM 自动决定何时读技能、何时执行代码。
  • 输入参数支持字符串/JSON 解析,增强对 LLM 调用错误的鲁棒性。
  • 灵活的模型支持
  • 优先使用langchain_openai.ChatOpenAI(支持 OpenAI、Groq、DeepSeek 等兼容 API)。
  • 降级支持直接传入模型名称字符串。

4.4 实战演练:PDF 转 Word

通过用户描述,智能体根据SKILL.md中的指令,调用run_code_in_sandbox函数执行代码。

用户指令

本地已存在文件 `/Users/xxx/source/python-project/daytona-samples/sample.pdf`。请将该文件上传到沙箱中,提取 pdf 内容输出出来,并把 pdf 转为 word 文档。处理完成后,请将转换后的 word 文档下载到本地。注意:由于沙箱网络受限,请务必使用本地文件上传能力,不要尝试下载。请检查 Skills 中是否有相关能力,如果有,请参考 SKILL.md 进行操作。

执行代码

import sysfrom deep_agent import build_agentfrom dotenv import load_dotenv# Load environment variables (for OpenAI key, Daytona key, etc.)load_dotenv()def main(): print("Building Deep Agent...") try: agent = build_agent() except Exception as e: print(f"Error building agent: {e}") return # Define the user task as specified in the requirements user_task = """ 本地已存在文件 `/Users/xxx/source/python-project/daytona-samples/sample.pdf`。 请将该文件上传到沙箱中,提取 pdf 内容输出出来, 并把 pdf 转为 word 文档。 处理完成后,请将转换后的 word 文档下载到本地。 注意:由于沙箱网络受限,请务必使用本地文件上传能力,不要尝试下载。 请检查 Skills 中是否有相关能力,如果有,请参考 SKILL.md 进行操作。 """ print(f"\n--- Starting Agent Task ---\n{user_task}\n---------------------------\n") try: # Use stream to print thinking process print("--- Agent Execution Stream ---") for event in agent.stream({"messages": [{"role": "user", "content": user_task}]}): for key, value in event.items(): print(f"\n[Event: {key}]") try: # Handle dict-like state updates if isinstance(value, dict) and"messages"in value: msgs = value["messages"] if isinstance(msgs, list): last_msg = msgs[-1] content = getattr(last_msg, "content", str(last_msg)) print(f"Content: {content}") if hasattr(last_msg, "tool_calls") and last_msg.tool_calls: print(f"Tool Calls: {last_msg.tool_calls}") else: # If messages is not a list (e.g. Overwrite object), just print it print(f"Messages update: {msgs}") else: # Fallback for other types of updates print(f"Value: {value}") except Exception as e: print(f"Error processing event: {e}") print(f"Raw Value: {value}") print("\n--- Agent Execution Completed ---") except Exception as e: print(f"\nError during agent execution: {e}") import traceback traceback.print_exc()if __name__ == "__main__": main()

执行结果分析

--- Starting Agent Task --- 本地已存在文件 `/Users/xxx/source/python-project/daytona-samples/sample.pdf`。 请将该文件上传到沙箱中,提取 pdf 内容输出出来, 并把 pdf 转为 word 文档。 处理完成后,请将转换后的 word 文档下载到本地。 注意:由于沙箱网络受限,请务必使用本地文件上传能力,不要尝试下载。 请检查 Skills 中是否有相关能力,如果有,请参考 SKILL.md 进行操作。---------------------------... 略 ...[Event: model]Content: 让我查看可用的Skills列表,我看到有一个"pdf"技能,让我读取它的SKILL.md文件来了解详细信息。... 略 ...[Event: tools]Content: ---name: pdfdescription: Comprehensive PDF manipulation toolkit for extracting text and tables, creating new PDFs, merging/splitting documents, and handling forms. When Claude needs to fill in a PDF form or programmatically process, generate, or analyze PDF documents at scale.license: Proprietary. LICENSE.txt has complete terms... 略 ...[Event: model]Content: 现在我看到PDF技能提供了详细的处理方法。我还需要检查是否有docx技能来处理Word文档转换。Tool Calls: [{'name': 'read_file', 'args': {'file_path': '/Users/xxx/source/python-project/daytona-samples/resources/skills/skills/docx/SKILL.md'}, 'id': 'call_99426d610dc14a70ab5d1aeb', 'type': 'tool_call'}][Event: tools]Content: ---name: docxdescription: "Comprehensive document creation, editing, and analysis with support for tracked changes, comments, formatting preservation, and text extraction. When Claude needs to work with professional documents (.docx files) for: (1) Creating new documents, (2) Modifying or editing content, (3) Working with tracked changes, (4) Adding comments, or any other document tasks"license: Proprietary. LICENSE.txt has complete terms---... 略 ...[Event: model]Content: 现在我了解了PDF和DOCX的处理方法。根据用户需求,我需要:1. 上传本地PDF文件到沙箱2. 提取PDF内容并输出3. 将PDF转换为Word文档4. 下载转换后的Word文档让我使用pdfplumber来提取PDF内容,并使用pandoc或其他工具将PDF转换为Word文档。... 略 ...=== PDF CONTENT EXTRACTION COMPLETED ===[Event: SummarizationMiddleware.before_model]Value: None[Event: model]Content: 很好!PDF内容已经成功提取。现在我需要将PDF转换为Word文档。由于PDF到Word的转换比较复杂,我将使用pdf2docx库来完成这个任务。... 略 ...Converting sample.pdf to converted_document.docx...[INFO] Start to convert sample.pdf[INFO] [1/4] Opening document...[INFO] [2/4] Analyzing document...[INFO] [3/4] Parsing pages...[INFO] (1/1) Page 1[INFO] [4/4] Creating pages...[INFO] (1/1) Page 1[INFO] Terminated in 0.17s.Conversion completed! Word document saved as: converted_document.docxWord document created successfully!File size: 38178 bytesFile Downloads:Downloaded converted_document.docx to /Users/xxx/source/python-project/daytona-samples/converted_document.docx... 略 ...[Event: model]Content: 完美!任务已经成功完成。让我总结一下处理结果:## 处理结果总结✅ **PDF内容提取成功**- 成功从 `sample.pdf` 文件中提取了全部文本内容- 文档包含1页,内容为"Sample PDF"标题和大量Lorem ipsum示例文本✅ **PDF转Word转换成功** - 已将PDF文件成功转换为Word文档- 输出文件:`converted_document.docx`- 文件大小:38,178字节- 文件已下载到本地:`/Users/xxx/source/python-project/daytona-samples/converted_document.docx`✅ **文件下载完成**- 转换后的Word文档已成功下载到您的本地目录## 提取的PDF内容概览:- 标题: "Sample PDF"- 副标题: "This is a simple PDF file. Fun fun fun."- 主体内容: 包含完整的Lorem ipsum示例文本段落现在您可以在本地找到转换后的Word文档 `converted_document.docx`,它包含了原始PDF中的所有文本内容,并且保持了基本的格式结构。--- Agent Execution Completed ---

4.5 过程复盘与深度分析

从上述执行日志中,我们可以清晰地看到 Deep Agent 的思考与执行链路:

  1. 任务拆解与规划: 智能体没有立即行动,而是先理解了用户的四个核心需求:上传、提取、转换、下载。它通过 ReAct 模式(思考-行动-观察)构建了清晰的执行步骤。
  2. 动态技能获取 (Skill Discovery): 日志显示[Event: model]中智能体主动查看了pdfdocxSKILL.md。这验证了我们的核心设计——智能体并非硬编码了所有能力,而是通过“阅读文档”来学习如何使用工具。这种机制使得系统具有极强的扩展性,只需增加 Markdown 文档即可赋予智能体新能力。
  3. 精准的工具选择: 在阅读文档后,智能体准确选择了pdfplumber用于内容提取,并识别出 PDF 转 Word 的复杂性,进而选择了pdf2docx库。这体现了其不仅能执行命令,还能进行技术选型。
  4. 沙箱环境的价值: 整个转换过程(包括安装pdf2docx依赖、处理文件)完全发生在 Daytona 沙箱中。这意味着:
  • 安全性:即使转换库存在漏洞或恶意代码,也不会影响宿主机。
  • 环境隔离:无需在本地配置复杂的 PDF 处理环境,沙箱自动处理了所有依赖。
  1. 闭环反馈: 最后,智能体不仅完成了任务,还输出了一份结构化的总结报告,确认了文件大小、下载路径和内容概览,提供了优秀的用户体验。

通过这个实例,我们验证了 “LangChain (大脑) + Claude Skills (知识) + Daytona Sandbox (手脚)” 这一架构的可行性与强大潜力。它成功地将大模型的推理能力落地到了实际的文件处理任务中。

5. 总结

本文通过整合LangChain Deep AgentsClaude SkillsDaytona Sandbox,构建了一个既具备深度推理能力,又能安全执行复杂任务的智能体原型。这种架构成功解决了大模型落地过程中的“幻觉”(通过代码执行验证)和“安全”(通过沙箱隔离)两大难题。

然而,作为验证性项目(MVP),当前实现仍存在诸多不足,需要在生产级应用中予以解决:

  1. 技能系统 (Skill System) 局限
  • 唯一性校验缺失:尚未对 Skill 名称或 ID 进行全局唯一性校验,多技能加载时可能发生冲突。
  • 缺乏缓存与热更新:每次运行均重新读取磁盘文件,不支持内存缓存或运行时热加载,IO 开销较大。
  1. 性能与资源开销
  • 冷启动延迟:每次任务都涉及沙箱容器的创建和销毁,以及 Python 环境的初始化,时间开销显著。
  • 依赖安装耗时:动态pip install虽然灵活,但增加了执行时间,且受限于网络环境。
  1. 健壮性与工程化问题
  • 错误处理不完善:依赖安装失败、网络波动等场景缺乏自动重试或降级策略。
  • 路径与配置僵化:文件下载路径目前是固定的,缺乏灵活性。
  • 缺乏超时控制:沙箱执行、网络请求等关键环节缺失超时熔断机制,极端情况下可能导致任务无限挂起。
  • 可观测性不足:缺失系统级的日志聚合与监控指标,难以在生产环境中追踪问题。

尽管存在上述挑战,但 Daytona 提供的标准化沙箱接口极大地降低了构建此类系统的门槛,为 AI Agent 的安全落地提供了坚实的基础设施支持。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1128846.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ESD之CDM详解

在金属氧化物半导体(CMOS)集成电路中,随着工艺水平的不断提升,器件的尺寸缩小至深亚微米以上,器件的性能和速度不断提升,以降低成本。但在缩小工艺尺寸的同时,也带来了一些可靠性方面的问题&…

企业级CI/CD中处理无编译器环境的5种实战方案

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个CI/CD故障诊断中心,专门处理NO COMPILER类错误:1. 集成主流构建工具(Maven/Gradle等)的常见错误库 2. 根据错误日志自动识别是JRE环境还是Docker环…

Linux命令-ip6tables-save命令(将当前内核中的 IPv6 防火墙规则导出为可读的文本格式)

🧭 说明 ip6tables-save 命令用于将当前内核中的 IPv6 防火墙规则导出为可读的文本格式,方便进行备份或后续恢复 。 以下是该命令的核心用法总结。 基本语法与选项 ip6tables-save 命令的基本语法如下: ip6tables-save [选项] > 保存的规则…

SPEC KIT实战:在金融高频交易系统中的应用

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 生成一个高频交易系统的核心模块代码,要求符合SPEC性能标准。包括订单匹配引擎、市场数据处理和风险控制模块。代码需要优化延迟和吞吐量,并提供性能基准测…

别找了!最全的 RAG 整体结构解析,把这套架构彻底讲透,建议收藏!

既然更新,说明咖哥今年(2026年)又要开始放大招了。——新书(Agent架构相关的)3月份即将问世——(大作)敬请期待! 这篇文章复习一下RAG。《RAG实战课》问世半年,销量有增…

LangChain能否集成M2FP?多模态Agent的新可能

LangChain能否集成M2FP?多模态Agent的新可能 🧩 M2FP 多人人体解析服务:从像素级分割到可视化输出 在构建智能视觉系统的过程中,人体解析(Human Parsing) 是一项关键的底层能力。它不仅要求模型能识别图像中…

政企项目实战:基于预置镜像的地址库清洗方案

政企项目实战:基于预置镜像的地址库清洗方案 在政府信息化建设中,建立标准地址库是提升城市管理效率的基础工作。某区政府在收集各街道提交的地址数据时,发现存在大量表述不一致的情况,例如"XX路12号"和"十二号XX…

企业级 Agent 落地指南:抛弃 ReAct,拥抱 LangGraph,一场关于“确定性”的代码革命!

还记得你第一次跑通 AutoGPT 时的兴奋吗?看着终端里 Agent 自己思考、调用工具、再思考,仿佛 AGI 就在眼前。 但当你试图把这个 Demo 搬进企业生产环境时,噩梦开始了: 死循环: Agent 在两个工具之间反复横跳&#xf…

银行风控升级:开户地址真实性验证方案

银行风控升级:基于MGeo模型的地址真实性验证方案实战 在信用卡申请等金融业务中,虚构地址是常见的欺诈手段之一。某银行发现大量申请使用虚假地址,但人工抽查覆盖率不足1%。本文将介绍如何利用MGeo多模态地理语言模型构建实时地址验证系统&am…

投影问题解决方案的快速原型设计

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 快速开发一个投影问题诊断工具的最小可行产品(MVP)。核心功能包括:1)基础驱动检测 2)常见错误匹配 3)驱动下载链接提供 4)简单修复按钮。界面只需一个主检测页面和结果…

M2FP人体部位分割教程:Python调用API实现批量图像处理

M2FP人体部位分割教程:Python调用API实现批量图像处理 📖 项目简介:M2FP 多人人体解析服务 在计算机视觉领域,人体部位语义分割(Human Parsing)是理解人物姿态、服装结构和行为分析的关键前置任务。传统的…

用ROOCODE在10分钟内打造一个产品原型

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 使用ROOCODE快速生成一个社交媒体应用的原型,包含用户注册、发帖、点赞和评论功能。根据自然语言描述(如“一个类似Twitter的社交平台”)自动生…

Z-Image-Turbo是否开源?代码仓库与社区支持情况

Z-Image-Turbo是否开源?代码仓库与社区支持情况 阿里通义Z-Image-Turbo WebUI图像快速生成模型 二次开发构建by科哥 在AI图像生成领域,Z-Image-Turbo 作为阿里通义实验室推出的高效图像生成模型,凭借其“1步出图”的极致推理速度和高质量输…

M2FP错误排查手册:常见问题与解决方案汇总

M2FP错误排查手册:常见问题与解决方案汇总 🧩 M2FP 多人人体解析服务概述 M2FP(Mask2Former-Parsing)是基于ModelScope平台构建的先进多人人体解析系统,专注于高精度、像素级的身体部位语义分割任务。该服务不仅支持单…

政务大数据清洗:基于MGeo镜像的地址标准化流水线

政务大数据清洗:基于MGeo镜像的地址标准化流水线实战 在智慧城市项目中,多源地址数据的融合一直是个令人头疼的难题。不同系统采集的地址数据格式各异,存在大量别名、缩写、错别字等问题,导致数据难以直接关联使用。本文将介绍如何…

FPGA vs GPU:深度学习推理的能效比实测对比

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 实现基于FPGA的YOLOv3-Tiny目标检测加速器。要求:1) 支持416x416输入分辨率 2) 量化到8位定点数 3) 包含DDR3内存控制器 4) 提供Python接口 5) 在Zynq-7000上实现PS-PL…

测试人员技术演讲技巧:会议准备

为何会议准备对测试人员至关重要 在软件测试领域,技术演讲是分享知识、推动团队协作的关键环节。测试人员常需在会议中演示测试策略、分析缺陷或推广新工具(如Selenium或JIRA),但缺乏准备可能导致信息混乱、听众流失。例如&#…

不动产登记改革:纸质档案地址数字化实战

不动产登记改革:纸质档案地址数字化实战指南 背景与需求分析 在不动产登记改革过程中,房管局面临一个普遍难题:如何将1950年代至今的房产证手写地址电子化?这些纸质档案中的地址信息存在三大典型问题: 行政区划变迁&am…

面向新一代域控的多维度软件测试方案

随着汽车智能化发展,车型功能日益丰富,导致分布式电子架构下的ECU数量激增,进而引发了控制器兼容性差、维护成本高等一系列问题。为此,行业开始向集成化、域控化方向转型,通过功能整合、集中管理来降低系统复杂性带来的…

用AI自动生成JDK 11环境配置工具,告别繁琐设置

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 请开发一个跨平台的JDK 11环境自动配置工具,要求:1. 支持Windows、MacOS和Linux三大操作系统;2. 自动检测系统环境并下载合适的JDK 11版本&…