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 |
|
|
Lista todos os contextos disponíveis. |
|
|
Obtém um contexto pelo nome. Suporta criação automática. |
|
|
Crie um novo contexto. |
|
|
Exclua um contexto por nome ou ID. |
|
|
Modifique as propriedades de um contexto. |
|
|
Atualize as propriedades de um contexto. |
|
|
Obtém informações sobre um contexto. |
|
|
Sincroniza um contexto especificado. |
Propriedades
|
Propriedade |
Descrição |
|
ID |
Identificador exclusivo do contexto. |
|
Name |
Nome do contexto. |
|
State |
Status atual do contexto, como |
|
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();