Creare collegamenti per gli agenti dell' LangGraph

LangGraph Gli agenti possono richiedere connessioni a servizi esterni quali fornitori di modelli di linguaggio di grandi dimensioni (LLM), database o API. Questi requisiti di connessione vengono definiti nella funzione di creazione degli agenti, mentre l' watsonx Orchestrate e verifica la validità delle connessioni a livello di agente durante l'esecuzione.

Prima di iniziare

Prima di definire le connessioni necessarie, attenersi alle seguenti indicazioni:

  • Sono supportate solo le connessioni configurate con credenziali di gruppo.
  • Gli ID delle app di connessione nella funzione di creazione degli agenti devono corrispondere agli ID delle app delle connessioni create. Il sistema non verifica se le connessioni selezionate soddisfano i requisiti del tuo agente.
  • Effettua le connessioni necessarie prima di importare l'agente.

creazione connessioni

  1. In " watsonx Orchestrate ", vai su "Connessioni".
  2. Fai clic su "Aggiungi connessione".
  3. Configura la connessione utilizzando le credenziali richieste dal tuo agente LangGraph.
  4. Annotare l'ID dell'app e il tipo di credenziali per la connessione.

Ad esempio, se si crea una connessione con l'ID openai_api dell'app e il tipo di api_keycredenziale, l'agente accede alla credenziale come openai_api_api_key.

Per ulteriori informazioni sulla creazione e la gestione delle connessioni, consultare la sezione Gestione delle connessioni.

Accesso alle credenziali nella funzione predefinita

Tutte le credenziali relative alle connessioni selezionate durante l'importazione vengono inserite automaticamente in fase di esecuzione tramite il config parametro della funzione predefinita. All'interno della funzione factory, le credenziali sono disponibili all'indirizzo:

credentials = config.get("configurable", {}).get("credentials", {})

Utilizzo delle credenziali nella funzione factory

def create_agent(config: RunnableConfig) -> StateGraph:
    # Get all credentials
    credentials = config.get("configurable", {}).get("credentials", {})
    
    # Access specific credentials
    openai_key = credentials.get("openai_api_api_key")
    gemini_key = credentials.get("gemini_api_api_key")
    
    # Use credentials as needed
    if openai_key:
        llm = ChatOpenAI(api_key=openai_key)
    elif gemini_key:
        llm = ChatGoogleGenerativeAI(api_key=gemini_key)
    else:
        raise ValueError("No LLM credentials provided")
    
    # Build and return your graph
    workflow = StateGraph(AgentState)
    # ... rest of your graph setup
    return workflow

La chiave di autenticazione segue il seguente schema:

{app_id}_{credential_type}

dove:

  • app_id è l'ID dell'app specificato al momento della creazione della connessione.
  • credential_type è il tipo di credenziale. I tipi possono essere:
    • api_key
    • basic
    • bearer
    • key_value
    • oauth_auth_client_credentials_flow
    • oauth_auth_code_flow
    • oauth_auth_implicit_flow
    • oauth_auth_on_behalf_of_flow
    • oauth_auth_password_flow