LangChain Reference home pageLangChain ReferenceLangChain Reference
  • GitHub
  • Main Docs
Deep Agents
LangChain
LangGraph
Integrations
LangSmith
  • Overview
  • Agent
  • Middleware
  • Backends
  • Sandboxes
  • Skills
  • Subagents
  • Configuration
  • Types
Modal
Daytona
Deno
Node VFS
Sandbox Standard Tests
  • Vitest
⌘I

LangChain Assistant

Ask a question to get started

Enter to send•Shift+Enter new line

Menu

OverviewAgentMiddlewareBackendsSandboxesSkillsSubagentsConfigurationTypes
Modal
Daytona
Deno
Node VFS
Sandbox Standard Tests
Vitest
Language
Theme
JavaScriptdeepagentsindexBackendProtocolV2
Interfaceā—Since v1.8

BackendProtocolV2

Copy
interface BackendProtocolV2

Bases

Omit<BackendProtocolV1, "read" | "readRaw" | "grepRaw" | "lsInfo" | "globInfo">

Properties

Methods

View source on GitHub
property
downloadFiles: (paths: string[]) => MaybePromise<FileDownloadResponse[]>
property
uploadFiles: (files: [string, Uint8Array<ArrayBufferLike>][]) => MaybePromise<FileUploadResponse[]>
method
edit→ Promise<EditResult>

Edit a file by replacing string occurrences.

Uses downloadFiles() to read, performs string replacement in TypeScript, then uploadFiles() to write back. No runtime needed on the sandbox host.

Memory-conscious: releases intermediate references early so the GC can reclaim buffers before the next large allocation is made.

method
glob→ Promise<GlobResult>

Structured glob matching returning FileInfo objects.

Uses pure POSIX shell (find + stat) via execute() to list all files, then applies glob-to-regex matching in TypeScript. No Python or Node.js needed on the sandbox host.

Glob patterns are matched against paths relative to the search base:

  • * matches any characters except /
  • ** matches any characters including / (recursive)
  • ? matches a single character except /
  • [...] character classes
method
grep→ Promise<GrepResult>

Search for a literal text pattern in files using grep.

method
ls→ Promise<LsResult>

List files and directories in the specified directory (non-recursive).

Uses pure POSIX shell (find + stat) via execute() — works on any Linux including Alpine. No Python or Node.js needed.

method
read→ Promise<ReadResult>

Read file content with line numbers.

Uses pure POSIX shell (awk) via execute() — only the requested slice is returned over the wire, making this efficient for large files. Works on any Linux including Alpine (no Python or Node.js needed).

method
readRaw→ Promise<ReadRawResult>

Read file content as raw FileData.

Uses downloadFiles() directly — no runtime needed on the sandbox host.

method
write→ Promise<WriteResult>

Create a new file with content.

Uses downloadFiles() to check existence and uploadFiles() to write. No runtime needed on the sandbox host.

Updated protocol for pluggable memory backends.

Key differences from BackendProtocol:

  • read() returns ReadResult instead of a plain string
  • readRaw() returns ReadRawResult instead of FileData
  • grep() returns GrepResult instead of GrepMatch[] | string
  • ls() returns LsResult instead of FileInfo[]
  • glob() returns GlobResult instead of FileInfo[]

Existing v1 backends can be adapted to this interface using adaptBackendProtocol from utils.