Todos os produtos
Search
Central de documentação

AgentBay:Context

Última atualização: Jun 29, 2026

Descrição

A Context API permite gerenciar contextos de armazenamento persistente no ambiente de nuvem do AgentBay. Os contextos possibilitam persistir dados entre sessões e reutilizá-los posteriormente.

Método

Descrição

list

Lista todos os contextos disponíveis.

get

Obtém um contexto pelo nome. Suporta criação automática.

create

Crie um novo contexto.

delete

Exclua um contexto por nome ou ID.

modify

Modifique as propriedades de um contexto.

update

Atualize as propriedades de um contexto.

Info

Obtém informações sobre um contexto.

Sync

Sincroniza um contexto especificado.

Propriedades

Propriedade

Descrição

ID

Identificador exclusivo do contexto.

Name

Nome do contexto.

State

Status atual do contexto, como available ou in-use.

CreatedAt

Data e hora de criação do contexto.

LastUsedAt

Data e hora da última utilização do contexto.

OsType

Tipo de sistema operacional associado ao contexto.

Métodos

List - Listar todos os contextos

Golang

List() (*ContextListResult, error)

Valores de retorno

  • *ContextListResult: Objeto de resultado que contém a lista de contextos e o ID da solicitação.

  • error: Mensagem de erro caso a operação falhe.

Exemplo

package main

import (
	"fmt"
	"os"

	"github.com/aliyun/wuying-agentbay-sdk/golang/pkg/agentbay"
)

func main() {
	// Initialize the SDK.
	client, err := agentbay.NewAgentBay("your_api_key", nil)
	if err != nil {
		fmt.Printf("Error initializing AgentBay client: %v\n", err)
		os.Exit(1)
	}

	// List all contexts.
	result, err := client.Context.List()
	if err != nil {
		fmt.Printf("Error listing contexts: %v\n", err)
		os.Exit(1)
	}

	fmt.Printf("Found %d contexts:\n", len(result.Contexts))
	for _, context := range result.Contexts {
		fmt.Printf("Context ID: %s, Name: %s, State: %s\n", context.ID, context.Name, context.State)
	}
}

Python

def list() -> ContextListResult

Valor de retorno

  • ContextListResult: Objeto de resultado que contém a lista de contextos e o ID da solicitação.

Exemplo

from agentbay import AgentBay

# Initialize the SDK.
agent_bay = AgentBay(api_key="your_api_key")

# List all contexts.
result = agent_bay.context.list()
if result.success:
    print(f"Found {len(result.contexts)} contexts:")
    for context in result.contexts:
        print(f"Context ID: {context.id}, Name: {context.name}, State: {context.state}")
else:
    print("Failed to list contexts")

TypeScript

list(): Promise<ContextListResult>

Valor de retorno

  • Promise<ContextListResult>: Promise resolvida com um objeto de resultado que contém a lista de contextos e o ID da solicitação.

Exemplo

import { AgentBay } from 'wuying-agentbay-sdk';

// Initialize the SDK.
const agentBay = new AgentBay({ apiKey: 'your_api_key' });

// List all contexts.
async function listContexts() {
  try {
    const result = await agentBay.context.list();
    if (result.success) {
      console.log(`Found ${result.contexts.length} contexts:`);
      result.contexts.forEach(context => {
        console.log(`Context ID: ${context.id}, Name: ${context.name}, State: ${context.state}`);
      });
    } else {
      console.log('Failed to list contexts');
    }
  } catch (error) {
    console.error('Error:', error);
  }
}

listContexts();

Get - Obter um contexto

Golang

Get(name string, create bool) (*ContextResult, error)

Parâmetros

  • name (string): Nome do contexto a recuperar.

  • create (bool): Define se o contexto deve ser criado caso não exista.

Valores de retorno

  • *ContextResult: Objeto de resultado que contém o objeto de contexto e o ID da solicitação.

  • error: Mensagem de erro caso a operação falhe.

Exemplo

package main

import (
	"fmt"
	"os"

	"github.com/aliyun/wuying-agentbay-sdk/golang/pkg/agentbay"
)

func main() {
	// Initialize the SDK.
	client, err := agentbay.NewAgentBay("your_api_key", nil)
	if err != nil {
		fmt.Printf("Error initializing AgentBay client: %v\n", err)
		os.Exit(1)
	}

	// Get the context. If the context does not exist, create it.
	result, err := client.Context.Get("my-persistent-context", true)
	if err != nil {
		fmt.Printf("Error getting context: %v\n", err)
		os.Exit(1)
	}

	context := result.Context
	fmt.Printf("Context ID: %s, Name: %s, State: %s\n", context.ID, context.Name, context.State)
}

Python

def get(name: str, create: bool = False) -> ContextResult

Parâmetros

  • name (str): Nome do contexto a recuperar.

  • create (bool, optional): Define se o contexto deve ser criado caso não exista. O padrão é False.

Valor de retorno

  • ContextResult: Objeto de resultado que contém o objeto de contexto e o ID da solicitação.

Exemplo

from agentbay import AgentBay

# Initialize the SDK.
agent_bay = AgentBay(api_key="your_api_key")

# Get the context. If the context does not exist, create it.
result = agent_bay.context.get("my-persistent-context", create=True)
if result.success:
    context = result.context
    print(f"Context ID: {context.id}, Name: {context.name}, State: {context.state}")
else:
    print(f"Failed to get context: {result.error_message}")

TypeScript

get(name: string, create?: boolean): Promise<ContextResult>

Parâmetros

  • name (string): Nome do contexto a recuperar.

  • create (boolean, optional): Define se o contexto deve ser criado caso não exista. O padrão é false.

Valor de retorno

  • Promise<ContextResult>: Promise resolvida com um objeto de resultado que contém o contexto e o ID da solicitação.

Exemplo

import { AgentBay } from 'wuying-agentbay-sdk';

// Initialize the SDK.
const agentBay = new AgentBay({ apiKey: 'your_api_key' });

// Get the context. If the context does not exist, create it.
async function getOrCreateContext() {
  try {
    const result = await agentBay.context.get('my-persistent-context', true);
    if (result.success) {
      const context = result.context;
      console.log(`Context ID: ${context.id}, Name: ${context.name}, State: ${context.state}`);
    } else {
      console.log(`Failed to get context: ${result.errorMessage}`);
    }
  } catch (error) {
    console.error('Error:', error);
  }
}

getOrCreateContext();

Create - Criar um novo contexto

Golang

Create(name string) (*ContextResult, error)

Parâmetro

  • name (string): Nome do contexto a criar.

Valores de retorno

  • *ContextResult: Objeto de resultado que contém o objeto de contexto criado e o ID da solicitação.

  • error: Mensagem de erro caso a operação falhe.

Exemplo

package main

import (
	"fmt"
	"os"

	"github.com/aliyun/wuying-agentbay-sdk/golang/pkg/agentbay"
)

func main() {
	// Initialize the SDK.
	client, err := agentbay.NewAgentBay("your_api_key", nil)
	if err != nil {
		fmt.Printf("Error initializing AgentBay client: %v\n", err)
		os.Exit(1)
	}

	// Create a new context.
	result, err := client.Context.Create("my-new-context")
	if err != nil {
		fmt.Printf("Error creating context: %v\n", err)
		os.Exit(1)
	}

	context := result.Context
	fmt.Printf("Created context with ID: %s, Name: %s\n", context.ID, context.Name)
}

Python

def create(name: str) -> ContextResult

Parâmetro

  • name (str): Nome do contexto a criar.

Valor de retorno

  • ContextResult: Objeto de resultado que contém o objeto de contexto criado e o ID da solicitação.

Exemplo

from agentbay import AgentBay

# Initialize the SDK.
agent_bay = AgentBay(api_key="your_api_key")

# Create a new context.
result = agent_bay.context.create("my-new-context")
if result.success:
    context = result.context
    print(f"Created context with ID: {context.id}, Name: {context.name}")
else:
    print(f"Failed to create context: {result.error_message}")

TypeScript

create(name: string): Promise<ContextResult>

Parâmetro

  • name (string): Nome do contexto a criar.

Valor de retorno

  • Promise<ContextResult>: Promise resolvida com um objeto de resultado que contém o contexto criado e o ID da solicitação.

Exemplo

import { AgentBay } from 'wuying-agentbay-sdk';

// Initialize the SDK.
const agentBay = new AgentBay({ apiKey: 'your_api_key' });

// Create a new context.
async function createContext() {
  try {
    const result = await agentBay.context.create('my-new-context');
    if (result.success) {
      const context = result.context;
      console.log(`Created context with ID: ${context.id}, Name: ${context.name}`);
    } else {
      console.log(`Failed to create context: ${result.errorMessage}`);
    }
  } catch (error) {
    console.error('Error:', error);
  }
}

createContext();

Update - Atualizar um contexto

Golang

Update(context *Context) (*OperationResult, error)

Parâmetro

  • context (*Context): Objeto de contexto a atualizar.

Valores de retorno

  • *OperationResult: Objeto de resultado que contém o status da operação e o ID da solicitação.

  • error: Mensagem de erro caso a operação falhe.

Exemplo

package main

import (
	"fmt"
	"os"

	"github.com/aliyun/wuying-agentbay-sdk/golang/pkg/agentbay"
)

func main() {
	// Initialize the SDK.
	client, err := agentbay.NewAgentBay("your_api_key", nil)
	if err != nil {
		fmt.Printf("Error initializing AgentBay client: %v\n", err)
		os.Exit(1)
	}

	// Get an existing context.
	result, err := client.Context.Get("my-context", false)
	if err != nil {
		fmt.Printf("Error getting context: %v\n", err)
		os.Exit(1)
	}

	context := result.Context
	
	// Update the context name.
	context.Name = "my-updated-context"
	
	// Save the changes.
	updateResult, err := client.Context.Update(context)
	if err != nil {
		fmt.Printf("Error updating context: %v\n", err)
		os.Exit(1)
	}

	fmt.Println("Context updated successfully")
	fmt.Printf("Request ID: %s\n", updateResult.RequestID)
}

TypeScript

update(context: Context): Promise<OperationResult>

Parâmetro

  • context (Context): Objeto de contexto a atualizar.

Valor de retorno

  • Promise<OperationResult>: Promise resolvida com um objeto de resultado que contém o status da operação, o ID da solicitação e a mensagem de erro.

Exemplo

import { AgentBay } from 'wuying-agentbay-sdk';

// Initialize the SDK.
const agentBay = new AgentBay({ apiKey: 'your_api_key' });

// Update an existing context.
async function updateContext() {
  try {
    // Get an existing context.
    const result = await agentBay.context.get('my-context');
    if (result.success) {
      const context = result.context;
      
      // Update the context name.
      context.name = 'my-updated-context';
      
      // Save the changes.
      const updateResult = await agentBay.context.update(context);
      if (updateResult.success) {
        console.log(`Context updated successfully, request ID: ${updateResult.requestId}`);
      } else {
        console.log(`Failed to update context: ${updateResult.errorMessage}`);
      }
    } else {
      console.log(`Failed to get context: ${result.errorMessage}`);
    }
  } catch (error) {
    console.error('Error:', error);
  }
}

updateContext();

modify - Modificar propriedades do contexto

Python

def modify(context_id_or_name: str, **kwargs) -> ContextResult

Parâmetros

  • context_id_or_name (str): ID ou nome do contexto a modificar.

  • kwargs: Pares chave-valor das propriedades a modificar, como name="new-name".

Valor de retorno

  • ContextResult: Objeto de resultado que contém o objeto de contexto modificado e o ID da solicitação.

Exemplo

from agentbay import AgentBay

# Initialize the SDK.
agent_bay = AgentBay(api_key="your_api_key")

# Modify the context.
result = agent_bay.context.modify("my-context", name="my-renamed-context")
if result.success:
    context = result.context
    print(f"Modified context: {context.name}")
else:
    print(f"Failed to modify context: {result.error_message}")

Delete - Excluir um contexto

Golang

Delete(context *Context) (*OperationResult, error)

Parâmetro

  • context (*Context): Objeto de contexto a excluir.

Valores de retorno

  • *OperationResult: Objeto de resultado que contém o status da operação e o ID da solicitação.

  • error: Mensagem de erro caso a operação falhe.

Exemplo

package main

import (
	"fmt"
	"os"

	"github.com/aliyun/wuying-agentbay-sdk/golang/pkg/agentbay"
)

func main() {
	// Initialize the SDK.
	client, err := agentbay.NewAgentBay("your_api_key", nil)
	if err != nil {
		fmt.Printf("Error initializing AgentBay client: %v\n", err)
		os.Exit(1)
	}

	// Get an existing context.
	result, err := client.Context.Get("my-context", false)
	if err != nil {
		fmt.Printf("Error getting context: %v\n", err)
		os.Exit(1)
	}

	context := result.Context
	
	// Delete the context.
	deleteResult, err := client.Context.Delete(context)
	if err != nil {
		fmt.Printf("Error deleting context: %v\n", err)
		os.Exit(1)
	}

	fmt.Println("Context deleted successfully")
	fmt.Printf("Request ID: %s\n", deleteResult.RequestID)
}

Python

def delete(context_id_or_name: str) -> DeleteResult

Parâmetro

  • context_id_or_name (str): ID ou nome do contexto a excluir.

Valor de retorno

  • DeleteResult: Objeto de resultado que contém o status da operação e o ID da solicitação.

Exemplo

from agentbay import AgentBay

# Initialize the SDK.
agent_bay = AgentBay(api_key="your_api_key")

# Delete the context by name.
result = agent_bay.context.delete("my-context")
if result.success:
    print("Context deleted successfully")
else:
    print(f"Failed to delete context: {result.error_message}")

# Delete the context by ID.
result = agent_bay.context.delete("ctx-1234567890abcdef")
if result.success:
    print("Context deleted successfully")
else:
    print(f"Failed to delete context: {result.error_message}")

TypeScript

delete(context: Context): Promise<OperationResult>

Parâmetro

  • context (Context): Objeto de contexto a excluir.

Valor de retorno

  • Promise<OperationResult>: Promise resolvida com um objeto de resultado que contém o status da operação, o ID da solicitação e a mensagem de erro.

Exemplo

import { AgentBay } from 'wuying-agentbay-sdk';

// Initialize the SDK.
const agentBay = new AgentBay({ apiKey: 'your_api_key' });

// Delete an existing context.
async function deleteContext() {
  try {
    // Get an existing context.
    const result = await agentBay.context.get('my-context');
    if (result.success) {
      const context = result.context;
      
      // Delete the context.
      const deleteResult = await agentBay.context.delete(context);
      if (deleteResult.success) {
        console.log(`Context deleted successfully, request ID: ${deleteResult.requestId}`);
      } else {
        console.log(`Failed to delete context: ${deleteResult.errorMessage}`);
      }
    } else {
      console.log(`Failed to get context: ${result.errorMessage}`);
    }
  } catch (error) {
    console.error('Error:', error);
  }
}

deleteContext();

Info - Obter informações do contexto

Golang

GetInfo(path string) (*OperationResult, error)

Parâmetro

  • path (string): Caminho onde o contexto está montado.

Valores de retorno

  • *OperationResult: Objeto de resultado que contém o status da operação e o ID da solicitação.

  • error: Mensagem de erro caso a operação falhe.

Exemplo

package main

import (
	"fmt"
	"os"

	"github.com/aliyun/wuying-agentbay-sdk/golang/pkg/agentbay"
)

func main() {
	// Initialize the SDK.
	client, err := agentbay.NewAgentBay("your_api_key", nil)
	if err != nil {
		fmt.Printf("Error initializing AgentBay client: %v\n", err)
		os.Exit(1)
	}

	// Create a session with a synchronized context.
	// ... (assume context is synchronized to '/mnt/persistent')
	
	// Get information about the synchronized context.
	infoResult, err := session.Context.GetInfo("/mnt/persistent")
	if err != nil {
		fmt.Printf("Error getting context info: %v\n", err)
		os.Exit(1)
	}
	
	// The data is returned as an interface{}. Convert it to ContextInfo.
	contextInfo, ok := infoResult.Data.(*agentbay.ContextInfo)
	if !ok {
		fmt.Println("Error: Context info data is not in expected format")
		os.Exit(1)
	}
	
	fmt.Println("Context Information:")
	fmt.Printf("  Context ID: %s\n", contextInfo.ContextID)
	fmt.Printf("  Path: %s\n", contextInfo.Path)
	fmt.Printf("  State: %s\n", contextInfo.State)
	fmt.Printf("Request ID: %s\n", infoResult.RequestID)
}

Python

info(context_id: Optional[str] = None, path: Optional[str] = None, task_type: Optional[str] = None) -> ContextInfoResult

Parâmetros

  • context_id (str, optional): ID do contexto a consultar.

  • path (str, optional): Caminho de montagem do contexto.

  • task_type (str, optional): Tipo de tarefa a consultar.

Valor de retorno

  • ContextInfoResult: Objeto de resultado que contém os dados de status do contexto, o status de sucesso e o ID da solicitação.

Exemplo

from agentbay import AgentBay

# Initialize the SDK.
agent_bay = AgentBay(api_key="your_api_key")

# Create a session.
result = agent_bay.create()
if result.success:
    session = result.session
    
    # Get context synchronization information.
    info_result = session.context.info()
    if info_result.context_status_data:
        for item in info_result.context_status_data:
            print(f"Context {item.context_id} status: {item.status}")
    else:
        print("No context synchronization tasks found")

TypeScript

getInfo(path: string): Promise<OperationResult>

Parâmetro

  • path (string): Caminho onde o contexto está montado.

Valor de retorno

  • Promise<OperationResult>: Promise resolvida com um objeto de resultado que contém o status da operação, o ID da solicitação e a mensagem de erro.

Exemplo

import { AgentBay } from 'wuying-agentbay-sdk';

// Initialize the SDK.
const agentBay = new AgentBay({ apiKey: 'your_api_key' });

// Create a session with a synchronized context.
// ... (assume context is synchronized to '/mnt/persistent')

// Get information about the synchronized context.
async function getContextInfo() {
  try {
    const infoResult = await session.context.getInfo('/mnt/persistent');
    if (infoResult.success) {
      const contextInfo = infoResult.data;
      console.log('Context Information:');
      console.log(`  Context ID: ${contextInfo.contextId}`);
      console.log(`  Path: ${contextInfo.path}`);
      console.log(`  State: ${contextInfo.state}`);
      console.log(`Request ID: ${infoResult.requestId}`);
    } else {
      console.log(`Failed to get context info: ${infoResult.errorMessage}`);
    }
  } catch (error) {
    console.error('Error:', error);
  }
}

getContextInfo();

Sync - Sincronizar um contexto especificado

Golang

SyncContext(contextID string, path string, policy *SyncPolicy) (*OperationResult, error)

Parâmetros

  • contextID (string): ID do contexto a sincronizar.

  • path (string): Caminho onde o contexto está montado.

  • policy (*SyncPolicy, optional): Política de sincronização. O padrão é nil, que utiliza a política padrão.

Valores de retorno

  • *OperationResult: Objeto de resultado que contém o status da operação e o ID da solicitação.

  • error: Mensagem de erro caso a operação falhe.

Exemplo

package main

import (
	"fmt"
	"os"

	"github.com/aliyun/wuying-agentbay-sdk/golang/pkg/agentbay"
)

func main() {
	// Initialize the SDK.
	client, err := agentbay.NewAgentBay("your_api_key", nil)
	if err != nil {
		fmt.Printf("Error initializing AgentBay client: %v\n", err)
		os.Exit(1)
	}

	// Create a session.
	createResult, err := client.Create(nil)
	if err != nil {
		fmt.Printf("Error creating session: %v\n", err)
		os.Exit(1)
	}
	
	session := createResult.Session
	
	// Get or create a context.
	contextResult, err := client.Context.Get("my-context", true)
	if err != nil {
		fmt.Printf("Error getting context: %v\n", err)
		os.Exit(1)
	}
	
	// Create a sync policy.
	policy := agentbay.NewSyncPolicy()
	
	// Synchronize the context with the session.
	syncResult, err := session.Context.SyncContext(
		contextResult.Context.ID,
		"/mnt/persistent",
		policy,
	)
	if err != nil {
		fmt.Printf("Error synchronizing context: %v\n", err)
		os.Exit(1)
	}
	
	fmt.Println("Context synchronized successfully")
	fmt.Printf("Request ID: %s\n", syncResult.RequestID)
}

Python

sync(context_id: Optional[str] = None, path: Optional[str] = None, mode: Optional[str] = None) -> ContextSyncResult

Parâmetros

  • context_id (str, optional): ID do contexto a sincronizar.

  • path (str, optional): Caminho onde o contexto está montado.

  • mode (str, optional): Modo de sincronização.

Valor de retorno

  • ContextSyncResult: Objeto de resultado que contém o status de sucesso e o ID da solicitação.

Exemplo

from agentbay import AgentBay

# Initialize the SDK.
agent_bay = AgentBay(api_key="your_api_key")

# Create a session.
result = agent_bay.create()
if result.success:
    session = result.session
    
    # Trigger context synchronization.
    sync_result = session.context.sync()
    
    if sync_result.success:
        print(f"Context synchronization triggered successfully, request ID: {sync_result.request_id}")
    else:
        print(f"Failed to trigger context synchronization")

TypeScript

syncContext(contextId: string, path: string, policy?: SyncPolicy): Promise<OperationResult>

Parâmetros

  • contextId (string): ID do contexto a sincronizar.

  • path (string): Caminho onde o contexto está montado.

  • policy (SyncPolicy, optional): Política de sincronização. Assume a política padrão se não for especificada.

Valor de retorno

  • Promise<OperationResult>: Promise resolvida com um objeto de resultado que contém o status da operação, o ID da solicitação e a mensagem de erro.

Exemplo

import { AgentBay } from 'wuying-agentbay-sdk';
import { SyncPolicy } from 'wuying-agentbay-sdk/context-sync';

// Initialize the SDK.
const agentBay = new AgentBay({ apiKey: 'your_api_key' });

// Create a session and synchronize a context.
async function syncContextInSession() {
  try {
    // Create a session.
    const result = await agentBay.create();
    if (result.success) {
      const session = result.session;
      
      // Get or create a context.
      const contextResult = await agentBay.context.get('my-context', true);
      if (contextResult.success) {
        // Synchronize the context with the session.
        const syncResult = await session.context.syncContext(
          contextResult.context.id,
          '/mnt/persistent',
          SyncPolicy.default()
        );
        
        if (syncResult.success) {
          console.log(`Context synchronized successfully, request ID: ${syncResult.requestId}`);
        } else {
          console.log(`Failed to synchronize context: ${syncResult.errorMessage}`);
        }
      } else {
        console.log(`Failed to get context: ${contextResult.errorMessage}`);
      }
    } else {
      console.log(`Failed to create session: ${result.errorMessage}`);
    }
  } catch (error) {
    console.error('Error:', error);
  }
}

syncContextInSession();