17 Creazione di agenti
In questa sezione viene descritta la creazione di agenti AI tramite Visual Flow Builder o tramite codice.
Sistemi multiagente e modelli supervisore
Un sistema multi-agente è una progettazione di applicazioni AI in cui una richiesta utente viene gestita da più agenti che collaborano invece di un unico agente generico.
Ogni agente ha il proprio ruolo, le istruzioni, la configurazione del modello, i criteri di memoria e gli strumenti consentiti. Il flusso definisce lo spostamento della richiesta tra tali agenti e la modalità di produzione della risposta finale.
Questo design è utile quando un flusso di lavoro si separa naturalmente in responsabilità specialistiche. Ad esempio, un agente può recuperare i dati, un altro può chiamare un'API, un altro può riepilogare i risultati e un supervisore può decidere quale specialista utilizzare e combinare i risultati in un'unica risposta.
Nota
Come principio di progettazione, è meglio iniziare con la più piccola progettazione dell'agente che soddisfa i requisiti. Aggiungi più agenti quando la separazione dei problemi migliora l'affidabilità, la sicurezza, la manutenibilità o l'osservabilità più di quanto non aumenti i costi e la complessità.Vantaggi dei sistemi multiagente
- Specializzazione: offrire a ciascun agente un job, un prompt e un set di strumenti mirati anziché un blocco di istruzioni affollato.
- Ciclo e decomposizione: consente a un supervisore di interpretare la richiesta, suddividerla in task secondari e scegliere lo specialista giusto per ogni task secondario.
- Strumento e isolamento dei dati: espone gli strumenti sensibili o ad alto impatto solo agli agenti responsabili dell'utilizzo.
- Governance e risoluzione dei problemi: semplifica l'ispezione di consegne, proprietà degli strumenti, impostazioni della memoria e punti di errore.
Quando scegliere progettazioni agente multiplo o agente singolo
Un singolo agente con più strumenti è spesso il primo design giusto. È più semplice testare, più economico da eseguire e più facile ragionare su quando l'attività ha un obiettivo chiaro e un modello di autorizzazione. Utilizza una progettazione con più agenti quando il flusso di lavoro beneficia di ruoli espliciti, accesso limitato agli strumenti o un supervisore in grado di coordinare più output specialistici.
| Domanda progettazione | Usa agenti singoli quando... | Utilizza più agenti quando... |
|---|---|---|
| Forma task | La richiesta ha un obiettivo principale e uno stile di risposta. | La richiesta deve essere decomposta, instradata, verificata o sintetizzata tra specialità. |
| Strumenti e dati | Lo stesso set di istruzioni e modello di autorizzazione possono governare in modo sicuro tutti gli strumenti | Agenti diversi hanno bisogno di strumenti, origini dati o limiti di accesso diversi. |
| Istruzioni | Il prompt rimane chiaro anche con tutte le regole aziendali e la guida agli strumenti in un unico posto. | Le istruzioni sono più facili da gestire come prompt più piccoli e specifici del ruolo. |
| Costo e latenza | Si desidera che il percorso più breve dal messaggio utente risponda. | I vantaggi di affidabilità, governance o manutenibilità giustificano un'orchestrazione aggiuntiva. |
| Risoluzione dei problemi | Gli errori sono semplici da eseguire in un'unica traccia. | Hai bisogno di consegne esplicite, isolamento dello stato e proprietà più chiara per ogni passo. |
Pattern supportato: orchestratore/supervisore
L'esperienza tela corrente supporta il pattern orchestratore/supervisore. In questo pattern, il trigger chat riceve il messaggio utente, i guardrail facoltativi valutano l'input e un agente supervisore funge da orchestratore per il resto del flusso.
Il supervisore deve concentrarsi sulla pianificazione, l'instradamento, la delega e la sintesi della risposta finale. Decide quale agente esecutore deve gestire un task, invia all'esecutore un'istruzione definita, esamina il risultato e quindi delega un altro passo o restituisce la risposta finale. Gli agenti esecutori dovrebbero essere specialisti più ristretti: eseguono il lavoro assegnato, utilizzano gli strumenti allegati e restituiscono risultati utili al supervisore.
Informazioni sullo sfondo del flusso visivo
Un agente viene assemblato trascinando nodi e modelli di strumenti dalla tavolozza sinistra sullo sfondo, quindi collegando i nodi nell'ordine in cui la richiesta dovrebbe viaggiare.
La selezione di un nodo consente di aprire un pannello di configurazione nella parte inferiore della schermata.

| Elemento sfondo | Scopo |
|---|---|
| Trigger chat | Punto di accesso per un messaggio utente. Nello screenshot questo nodo è denominato Messaggio e in genere si trova nella parte superiore del flusso.
Un nodo trigger chat può essere connesso a un agente, a un agente supervisore o a un nodo guardrail. È consentito un solo trigger chat per area di creazione. |
| Limiti | Livello di sicurezza e criteri facoltativi posizionati prima o dopo il lavoro del modello. Le politiche dei guardrail includono PII, moderazione dei contenuti e rilevamento rapido dell'iniezione.
Un nodo guardrail può filtrare il traffico tra un trigger di chat e un nodo agente, tra un supervisore e gli agenti dell'esecutore o tra i nodi agente e strumento. È consigliabile un singolo nodo di guardrail tra il trigger di chat e il nodo dell'agente. |
| Agente supervisore | L'orchestratore. Riceve la richiesta dell'utente, decide quale agente o strumento dell'esecutore deve gestire ogni attività e coordina la risposta finale.
In uno sfondo è consentito un solo agente supervisore. |
| Agente | Agente esecutore. Ogni esecutore deve avere una chiara specializzazione, come il recupero dei dati, la ricerca API, il riepilogo o la risposta alle domande sui documenti.
Usare un agente/esecutore per un sistema a agente singolo. |
| Template strumenti | Funzionalità riutilizzabili che possono essere collegate a un singolo esecutore o agente supervisore. I modelli di strumento includono SQL, RAG, Prompt, HTTP, Server MCP remoto e Strumento personalizzato. |
| Sviluppo / Parco giochi | Selettore di modalità sopra lo sfondo. Lo sviluppo viene utilizzato durante la modifica del sistema Agentic; Playground viene utilizzato per avviare le sessioni di test e ispezionare il comportamento dell'agente.
Playground richiede che una computazione AI sia collegata al tuo agente. |
| Controllo zoom | Selettore zoom sfondo. Gli screenshot mostrano livelli di zoom del 60% e del 90%. |
Crea agente
È possibile creare un agente in un'area di lavoro in cui si dispone dell'autorizzazione Gestisci.
Aggiungi trigger chat e agente all'area di creazione di Visual Builder
Il primo passo dopo la creazione di un agente con Visual Builder deve essere l'aggiunta di un trigger di chat e di un agente supervisore.

Configurare un agente supervisore
È necessario configurare un agente supervisore aggiunto all'area di creazione di Visual Builder con istruzioni che descrivono il ruolo supervisore.

| Campo | Configurazione |
|---|---|
| Nome agente | Fornire un nome descrittivo per l'agente supervisore. Un buon nome descrittivo sarà utile quando si esegue il debug del comportamento del sistema tramite tracce e log. |
| Descrizione agente | Fornire una descrizione dello scopo, del ruolo e del comportamento generale dell'agente. Utile ai fini della documentazione. |
| Area | Scegliere l'area in cui è ospitato il modello di AI generativa OCI utilizzato dall'agente supervisore. Vedere Modelli di intelligenza artificiale generativa per area. |
| Modello | Scegliere il modello di servizio OCI Generative AI utilizzato dal supervisore. Nell'elenco a discesa sono elencati i modelli disponibili nell'area selezionata. |
| Istruzioni agente | Descrivere il ruolo supervisore, le regole di instradamento, i criteri di delega, le aspettative di utilizzo degli strumenti e il formato di risposta finale. |
- Passare all'agente nell'area di lavoro.
- Fare clic sul nodo Agente supervisore nell'area di creazione.
- Fornire un nome e una descrizione dettagliati per l'agente supervisore.
- Immettere l'area e il modello per il modello di servizio OCI Generative AI utilizzato dal supervisore.
- Fornire le istruzioni per l'agente supervisore.
Istruzioni supervisore suggerite
Utilizzare il campo Istruzioni per un agente supervisore per rendere il supervisore responsabile dell'orchestrazione, non per eseguire ogni task stesso.
Mantieni le istruzioni concrete in modo che le decisioni di instradamento siano prevedibili. Per un esempio di serie di istruzioni del supervisore, vedere:
You are the supervisor for a multi-agent system.
Responsibilities:
- Understand the user's request and break it into subtasks.
- Select the most appropriate executor agent or tool for each subtask.
- Do not perform specialist work yourself when an executor agent is available.
- Ask for clarification only when required information is missing.
- Combine executor outputs into a concise final answer.
- Mention important assumptions, limits, or failed tool calls in the final answer.
Routing rules:
- Use the SQL agent for structured data questions.
- Use the HTTP agent/tool for external API lookups.
- Use the RAG agent/tool for document or knowledge-base questions.
- Use the prompt tool for reusable prompt-only transformations.Configurare la memoria dell'agente supervisore e l'isolamento dello stato
La scheda Memoria per un agente supervisore controlla la quantità di cronologia delle conversazioni e degli output degli strumenti disponibile per il supervisore e la quantità di contesto condivisa con gli agenti esecutore.

| Campo | Configurazione |
|---|---|
| Abilita memoria agente | Abilita quando gli utenti hanno bisogno di continuità multigiro. Disabilitare per attività isolate e monouso.
Impossibile disabilitare questo campo per gli agenti supervisore. |
| Limita la cronologia delle conversazioni | Abilitare per troncare la finestra di contesto LLM dopo che è stato raggiunto il limite specificato. Disattivare per visualizzare la cronologia completa. |
| Configurazione troncamento | Se l'opzione Limita cronologia conversazioni è abilitata, utilizzare questo campo per impostare le condizioni di troncamento della finestra di contesto.
Le opzioni sono le seguenti:
|
| Limite massimo messaggi e budget token | Viene visualizzata una o entrambe le opzioni, a seconda della scelta effettuata per Configurazione di esecuzione.
I valori predefiniti sono 20 messaggi e 5000 token. Si consiglia di iniziare con valori moderati e di regolare in base alle esigenze. |
| Isolamento dello stato per gli agenti esecutori | Selezionare Senza conservazione dello stato, Privato o Condiviso.
|
- Passare all'agente nell'area di lavoro.
- Fare clic sul nodo Agente supervisore nell'area di creazione.
- Fare clic sulla scheda Memoria.
- Scegliere se abilitare Limita cronologia conversazioni. Selezionare una configurazione di esecuzione e impostare i limiti, se abilitati.
- Scegliere un'opzione per Isolamento degli stati per gli agenti esecutore.
Scheda Parametro modelli
La scheda Parametri modello consente di configurare i parametri specifici del modello disponibili per il modello selezionato.
I parametri del modello possono essere configurati separatamente per gli agenti supervisore ed esecutore. I parametri che è possibile utilizzare includono temperatura, K superiore, P superiore e penalità di frequenza.
Nota
Solo un subset di modelli espone parametri configurabili. Inoltre, i parametri variano a seconda delle famiglie di modelli.
Aggiungi guardrail a un agente
È possibile aggiungere ulteriori livelli di protezione agli agenti aggiungendo uno o più nodi di guardrail all'area di creazione.
| Limite | Opzioni | Quando utilizzarla |
|---|---|---|
| Informazioni di identità personale (PII) |
|
Utilizzare quando il flusso deve bloccare o mascherare i dati personali sensibili prima o dopo l'elaborazione del modello. |
| Prevenzione della moderazione dei contenuti | Righe di input e output con opzioni Blocca, Informa e Consenti. | Utilizzare per definire come il flusso gestisce l'odio, i contenuti sessuali, violenti, tossici, dispregiativi o molesti. |
| Prompt rilevamento iniezione | Riga di input con opzioni Blocco e Consenti. | Utilizzare per ridurre la possibilità che istruzioni dannose sostituiscano le istruzioni del sistema o dell'agente. |
Aggiunta di agenti e strumenti esecutore a un agente
È possibile aggiungere agenti esecutore agli strumenti per eseguire lavori specializzati per l'agente supervisore.

- Passare all'agente nell'area di lavoro.
- Trascinare un nodo agente dalla tavolozza all'area di creazione. I nodi dell'agente devono essere posizionati sotto un agente supervior.
- Trascinare Strumenti dalla tavolozza all'area di creazione.
- Fare clic e trascinare l'handle del connettore sull'agente supervisore per connettersi ai nodi dell'agente.
- Fare clic e trascinare l'handle del connettore sugli agenti per connettersi ai nodi dello strumento.
Configurazione agente esecutore
I nodi agente possono essere configurati modificando le impostazioni nelle relative schede Configurazione, Memoria e Modello per definire lo scopo di ciascun agente.
Gli agenti devono essere configurati in modo limitato, data una funzione e un obiettivo specifici, in modo che l'agente supervisore possa instradare il lavoro in modo affidabile.
Tabella 17-1: scheda Configurazione agente
| Campo | Configurazione |
|---|---|
| Nome agente | La procedura consigliata consiste nel nominare ciascun agente esecutore in base alla sua specializzazione, ad esempio SQL_AGENT, DOCUMENT_AGENT, API_AGENT o SUMMARY_AGENT.
Il nome di ciascun agente esecutore è visibile all'agente supervisore, quindi utilizzare nomi descrittivi. |
| Descrizione agente | Fornire una descrizione dettagliata di ciascun agente esecutore. La descrizione di ciascun agente esecutore è visibile all'agente supervisore. |
| Area | Scegliere l'area in cui è ospitato il modello di AI generativa OCI utilizzato dall'agente. Vedere Modelli di intelligenza artificiale generativa per area. |
| Modello | Scegliere il modello di servizio OCI Generative AI utilizzato dall'agente. Nel menu a discesa sono elencati i modelli disponibili nell'area selezionata.
Selezionare un modello adatto al task dell'esecutore. Gli agenti esecutori non devono utilizzare lo stesso modello dell'agente supervisore. |
| Istruzioni agente | Descrivi esattamente cosa dovrebbe fare l'esecutore, quali strumenti potrebbe utilizzare e quale struttura di output dovrebbe restituire. |
Scheda memoria agente esecutore
Nel caso di agenti esecutore connessi a un agente supervisore, la memoria per gli esecutori viene configurata nel nodo supervisore e applicata a tutti gli agenti esecutore.
| Campo | Configurazione |
|---|---|
| Abilita memoria agente | Abilita quando gli utenti hanno bisogno di continuità multigiro. Disabilitare per attività isolate e monouso. |
| Limita la cronologia delle conversazioni | Abilitare per troncare la finestra di contesto LLM dopo che è stato raggiunto il limite specificato. Disattivare per visualizzare la cronologia completa. |
| Configurazione troncamento | Se l'opzione Limita cronologia conversazioni è abilitata, utilizzare questo campo per impostare le condizioni di troncamento della finestra di contesto.
Le opzioni sono le seguenti:
|
| Limite massimo messaggi e budget token | Viene visualizzata una o entrambe le opzioni, a seconda della scelta effettuata per Configurazione di esecuzione.
I valori predefiniti sono 20 messaggi e 5000 token. Si consiglia di iniziare con valori moderati e di regolare in base alle esigenze. |
| Isolamento dello stato per gli agenti esecutori | Selezionare Senza conservazione dello stato, Privato o Condiviso.
|
Scheda Parametri modello agente esecutore
La scheda Parametri modello consente di configurare i parametri specifici del modello disponibili per il modello selezionato.
Nota
Solo un subset di modelli espone parametri configurabili. I parametri variano anche tra le famiglie di modelli.Esempi di parametri includono temperatura, K superiore, P superiore e penalità di frequenza. I parametri del modello possono essere configurati separatamente per gli agenti supervisore ed esecutore.
Istruzioni esecutore suggerite
You are the SQL executor agent.
Responsibilities:
- Translate the supervisor's task into safe SQL tool usage.
- Use only the SQL tools attached to this agent.
- Return a concise answer plus any important query assumptions.
- Do not invent data. If the tool cannot answer, say what is missing.
- Return structured output with: answer, evidence, assumptions, and follow_up_needed.
Lista di controllo per gli agenti tramite Visual Builder
Utilizzare questa lista come guida per assicurarsi di aver incluso e configurato tutti i componenti necessari per un agente creato utilizzando Visual Builder.
Lista di controllo build
- L'agente ha esattamente un punto di ingresso previsto: Chat Trigger / Messaggio.
- I guardrail sono collegati nella posizione prevista e abilitati dove necessario. Si consiglia di inserire i guardrail tra il messaggio di trigger e l'agente.
- L'agente supervisore dispone di un'area selezionata, di un modello selezionato e di istruzioni di orchestrazione. Lo stesso vale per gli agenti esecutori.
- Configurare la memoria del sistema con più agenti nella scheda Memoria dell'agente supervisore. Selezionare l'isolamento dello stato dell'esecutore corrispondente ai requisiti di privacy e continuità.
- Ogni agente esecutore ha una chiara specializzazione e istruzioni strette.
- Ogni strumento è collegato solo all'agente che deve utilizzarlo.
- Nessun nodo disconnesso.
- Al sistema di autenticazione è collegata una computazione AI per testare i singoli strumenti e per eseguire l'esperienza Playground.
Tabella 17-2 Problemi comuni
| Problema | Causa probabile | Azione suggerita |
|---|---|---|
| Il supervisore non chiama un esecutore | Le istruzioni del supervisore sono troppo vaghe o nessun esecutore è connesso. | Aggiungere regole di instradamento esplicite e confermare che il nodo esecutore è connesso al supervisore. |
| L'esecutore restituisce risposte ampie o fuori argomento | Le istruzioni dell'esecutore sono troppo generali. | Rendere il ruolo esecutore più ristretto e definire la struttura di output richiesta. |
| Strumento non utilizzato | Lo strumento è disconnesso o collegato all'agente errato. | Controllare la connessione allo strumento e il badge del conteggio degli strumenti dell'agente. |
| Guardrail non brucia | La sezione Guardrail è configurata ma non abilitata. | Aprire il nodo guadrails e confermare che l'attivazione della sezione è attiva. |
| Perdite di contesto tra agenti | L'isolamento dello stato è impostato su Condiviso o la memoria è più ampia del previsto. | Utilizzare l'isolamento senza conservazione dello stato o privato per una separazione più rigorosa. |
| Le domande di follow-up perdono il contesto | La memoria è disabilitata o il troncamento è troppo aggressivo. | Abilita la memoria e regola il limite massimo di messaggi. |
Agenti tramite codice
Puoi trasferire la tua base di codice LangGraph agli agenti AI in Oracle AI Data Platform Workbench o creare un nuovo agente LangGraph direttamente sulla piattaforma attraverso l'esperienza di codifica degli agenti.
È possibile utilizzare la libreria Python della utility AI Data Platform Workbench aidputils per configurare il modello di base e importare gli strumenti di sistema nell'agente. Per il riferimento all'API helpputils, vedere API Aidp-utils per Oracle AI Data Platform Workbench.

È possibile creare un agente tramite il codice caricando un file di codice esistente o creando file di codice direttamente nell'agente tramite l'editor in linea.
- Python (.py)
- JSON
- TXT
- CSV
- PSV
- N. spedizione
- Cartella
È possibile visualizzare e spostarsi tra i file di codice disponibili facendo clic sull'elenco a discesa Selettore file.

File di voci e dipendenze
I file di voce sono file di codice con la classe con metodi di impostazione e richiamo previsti per un agente definito come codice. Oracle AI Data Platform Workbench richiede l'impostazione di un file di inserimento per gli agenti tramite codice.
I file delle dipendenze sono file che includono librerie di terze parti richieste dall'agente definito come codice. I file delle dipendenze sono in genere file requirements.txt che contengono una lista delle librerie di terze parti necessarie.
Nota
Le librerie di terze parti vengono installate quando si esegue il test del codice nell'editor facendo clic sul pulsante Riproduci o quando si esegue il test dell'agente tramite la scheda Test. Si consiglia di installare librerie di terze parti eseguendo prima il test del codice. Nella cella di output vengono visualizzati errori durante l'installazione delle librerie.Classe agente
AgentBasic è una classe modello per l'impostazione e il richiamo di un agente conversazionale semplice utilizzando un flusso di lavoro LangGraph con conservazione dello stato. Dimostra la struttura necessaria per lo sviluppo minimo dell'agente con due metodi principali:
setup(): inizializza il workflow dell'agente e definisce il grafico.invoke(user_query, **kwargs): esegue l'agente su un messaggio utente e restituisce la risposta.
Può essere eseguito e testato direttamente utilizzando una funzione main() prima dell'integrazione in un sistema più grande.
Definizione
class AgentBasic:
def __init__(self) -> None:
self.graph = None
def setup(self) -> None:
self.graph = StateGraph(MessagesState)
self.graph.add_node(mock_llm)
self.graph.add_edge(START, "mock_llm")
self.graph.add_edge("mock_llm", END)
self.graph = self.graph.compile()
system_prompt = "Be a helpful assistant."
async def invoke(self, user_query: str, **kwargs):
user_message = HumanMessage(content=user_query)
messages = {"messages": [dict(user_message)]}
try:
return self.graph.invoke(messages)
except Exception as e:
import traceback
logger.error(f"Exception while calling invoke {e}", exc_info=True)
print("Stack trace:\n", traceback.format_exc())
Richiamo test
Questo richiamo del test è ideale per i test funzionali iniziali.
Nota
Includere un punto di ingresso principale per i test standalone.import asyncio
async def main():
test_agent = AgentBasic()
test_agent.setup()
result = await test_agent.invoke("Hi there")
print("Agent response:", result)
if __name__ == "__main__":
asyncio.run(main())
- Lo script crea un agente, lo imposta e invia un messaggio utente di esempio.
- L'agente risponde ({"messages": [{"role": "ai", "content": "hello world"}]} in questo esempio).
Guida all'uso
Creare una classe agente con i metodi di impostazione e richiamo.
| configurazione() | Inizializza il workflow dell'agente | agent.setup() |
| richiamo() | Esegue l'agente con un messaggio utente | attendete agent.invoke("La tua domanda") |
- Asincrono:
invoke()è un metodo asincrono; utilizzarlo conawaito eseguirlo in un loop asincrono. - Test: il controllo
main()incluso (if __name__ == "__main__":) semplifica il test dell'agente prima della distribuzione.
Crea un agente tramite codice per caricamento
Puoi creare la tua applicazione agente end-to-end con il codice esistente caricando il codice base LangGraph.
Nota
È possibile caricare singoli file e cartelle fino a un massimo di 500 file, ogni file può avere una dimensione massima di 500 MB. Il caricamento è limitato a una dimensione totale di 5 GB.Crea un agente tramite codice creando un nuovo codice
Puoi creare la tua applicazione agente end-to-end con il codice esistente creando codice direttamente nel tuo agente tramite l'editor di codice.
- Python (.py)
- JSON
- TXT
- CSV
- PSV
- N. spedizione
- Cartelle
Impostare un file di immissione per gli agenti mediante il codice
L'agente AI tramite il codice richiede un file di inserimento con la classe, l'impostazione e i metodi di richiamo richiesti per l'agente.
Impostare un file di dipendenze per gli agenti mediante il codice
È necessario impostare un file di dipendenza per i flussi di agenti attraverso il codice che contiene librerie di terze parti da cui dipende il codice.
Codice agente test
È possibile eseguire il test del codice utilizzato per l'agente dalla scheda Test per convalidare ed eseguire il debug del codice.
Competenze agente nell'esperienza di codifica
Le competenze agente consentono a un agente di trovare e utilizzare istruzioni specifiche del task, file di riferimento, modelli, asset e script eseguibili facoltativi senza dover codificare la conoscenza del dominio nelle istruzioni dell'agente.
Uno skill viene memorizzato come cartella nel code base dell'agente. Ogni abilità ha un file SKILL.md richiesto che descrive cosa fa l'abilità e come l'agente dovrebbe usarla. Una competenza può anche includere file di supporto quali schemi, esempi, prompt, modelli, asset o script.
Per ulteriori informazioni, vedere Panoramica sulle competenze degli agenti.
- L'agente scopre che esiste uno skill.
- L'agente attiva lo skill solo quando è rilevante.
- L'agente carica file aggiuntivi dalla cartella skill solo quando necessario.
- L'agente può eseguire un punto di accesso skill dichiarato in modo esplicito, se lo consente.
Quando utilizzare le competenze agente
- Istruzioni specifiche del dominio
- Flussi di lavoro di codifica o analisi dei dati
- Guida alla generazione di SQL
- playbook dei processi aziendali
- Modelli di file
- Riferimenti schema
- Script riutilizzabili per calcoli, trasformazioni o ricerche sicure
Come funzionano le competenze in runtime
In fase di esecuzione, l'applicazione host determina quali directory skill sono disponibili, ad esempio le cartelle skill a livello di progetto e a livello di utente. La piattaforma carica i metadati di ogni skill da SKILL.md e crea un catalogo con chiave per nome skill.
L'agente può quindi utilizzare gli strumenti correlati alle competenze:
| Strumento | Scopo |
|---|---|
activate_skill(name) |
Carica le istruzioni di abilità da SKILL.md. |
list_skill_files(name, path) |
Elenca i file disponibili all'interno di una cartella skill. |
load_skill_file(name, path) |
Carica un file di supporto dalla cartella skill. |
run_skill_entrypoint(name, entrypoint, args_json, timeout_seconds) |
Esegue un punto di ingresso Python dichiarato in modo esplicito, se consentito dalla competenza. |
Alcuni ambienti possono anche incorporare un riepilogo delle competenze disponibili direttamente nel prompt di sistema. In questa impostazione, l'agente può individuare le competenze disponibili dal prompt, quindi utilizzare activate_skill quando sono necessarie le istruzioni complete.
Struttura cartella competenze
Uno skill utilizza un layout di cartella di tipo skill agente:
<skills_dir>/
some-skill/
SKILL.md
references/
...
scripts/
...
assets/
...È necessario solo SKILL.md. Le altre cartelle sono facoltative.
| Cartella o file | Obbligatorio. | Scopo |
|---|---|---|
SKILL.md |
Sì | Metadati e istruzioni delle competenze principali. |
references/ |
N. | Documentazione di supporto, schemi, esempi o modelli. |
scripts/ |
N. | Script Python che possono essere eseguiti solo se dichiarati esplicitamente come punti di ingresso. |
assets/ |
N. | Asset statici utilizzati dalla competenza. |
Scrivere SKILL.md
Ogni abilità deve includere il frontmatter YAML nella parte superiore di SKILL.md, seguito da istruzioni Markdown.
Esempio di base
---
name: sql-helper
description: Helps the agent write safe SQL queries using project schemas.
license: internal
compatibility: "agent-platform"
metadata:
owner: data-platform
domain: analytics
allowed-tools: "analyzeQuery inspectSchema"
---
# SQL Helper
Use this skill when the user asks for SQL generation, query review, or schema-aware analysis.
Before writing SQL:
1. Inspect the relevant schema files in `references/`.
2. Prefer explicit column names.
3. Avoid destructive statements unless the user explicitly asks for them and the environment allows them.
Tabella 17-3 Campi degli elementi anteriori supportati
| Campo | Obbligatorio. | Descrizione |
|---|---|---|
| name | Sì | Nome univoco dello skill utilizzato dal catalogo e dagli strumenti. |
| description | Sì | Breve descrizione utilizzata per la ricerca automatica e l'instradamento. |
| license | N. | Licenza o criterio di utilizzo per lo skill. |
| Compatibilità | N. | Nota sulla compatibilità per runtime o piattaforme supportate. |
| metadati | N. | Mappa dei metadati da stringa a stringa. |
| strumenti consentiti | N. | Lista separata da spazi di strumenti che questa abilità consente. |
| punti di accesso | N. | Lista di punti di accesso eseguibili dichiarati dallo skill. |
Aggiunta di file di supporto
I file di supporto consentono a un'abilità di mantenere contenuti dettagliati al di fuori delle istruzioni principali. Ciò mantiene SKILL.md focalizzato pur offrendo all'agente l'accesso a un contesto più ricco. Ad esempio:
skills/
sql-helper/
SKILL.md
references/
warehouse_schema.md
query_style_guide.md
examples.md
L'agente può esaminare questi file con:
list_skill_files("sql-helper", "references")
load_skill_file("sql-helper", "references/warehouse_schema.md")
- Schemi di database
- Esempi API
- Modelli prompt
- Guide stile
- Glossari di dominio
- Playbook dettagliati
- Casi o esempi di test
Creazione di una competenza eseguibile
Facoltativamente, una competenza può esporre un comportamento eseguibile riutilizzabile tramite run_skill_entrypoint. Questo è destinato a operazioni controllate come calcoli, trasformazioni, convalida o recupero di dati strutturati.
- Lo skill deve includere
run_skill_entrypointnegli strumenti consentiti. - Lo script deve essere dichiarato esplicitamente nella sezione entrypoints di
SKILL.md.
Skill eseguibile di esempio
skills/
statistics-helper/
SKILL.md
scripts/
summarize_numbers.py
SKILL.it
---
name: statistics-helper
description: Computes basic summary statistics for numeric data.
allowed-tools: "load_skill_file list_skill_files run_skill_entrypoint"
entrypoints:
- name: summarize_numbers
script: scripts/summarize_numbers.py
func: run
description: Returns count, min, max, mean, and median for a list of numbers.
---
# Statistics Helper
Use this skill when the user asks for basic descriptive statistics.
scripts/summarize_numbers.py:
from statistics import mean, median
def run(*, values: list[float]) -> dict:
if not values:
raise ValueError("values must not be empty")
return {
"count": len(values),
"min": min(values),
"max": max(values),
"mean": mean(values),
"median": median(values),
}
Example invocation:
run_skill_entrypoint(
name="statistics-helper",
entrypoint="summarize_numbers",
args_json="{\"values\": [10, 20, 30, 40]}",
timeout_seconds=10
)
The runner returns structured output that includes exit_code, stdout, stderr, and a best-effort parsed result when the script prints or returns JSON.
Regole per i punti di accesso eseguibili
- Si trova sotto la directory/script della skill
- Dichiarato nel frontmatter dei punti di ingresso dell'abilità
- Consentito dall'impostazione
allowed-toolsdello skill
La piattaforma non fornisce l'esecuzione di script arbitrari generici. Gli script non dichiarati in SKILL.md non possono essere eseguiti.
Il runner di script utilizza un timeout, per impostazione predefinita 10 secondi, esegue Python con funzionamento in modalità isolata e applica restrizioni di percorso. Tuttavia, l'esecuzione basata su sottoprocessi non è una sandbox completa del sistema operativo. Per l'uso in produzione, è necessario considerare un isolamento più elevato, come contenitori, file system limitati o controlli di rete.
Autorizzazioni strumento con allowed-tools
allowed-tools funge da controllo delle autorizzazioni a livello di skill. Per uno skill di sola documentazione, è possibile consentire solo strumenti di lettura dei file:
allowed-tools: "load_skill_file list_skill_files"Per la capacità di eseguire uno script dichiarato, includere run_skill_entrypoint:
allowed-tools: "load_skill_file list_skill_files run_skill_entrypoint" Non aggiungere run_skill_entrypoint a meno che lo skill non richieda effettivamente un comportamento eseguibile.
Come consentire ai tuoi agenti di scoprire e utilizzare le competenze
Per integrare l'agente con le competenze, è necessario creare un'istanza di un catalogo di competenze, un middleware di competenze e convertire le competenze in strumenti utilizzando i seguenti oggetti della libreria helppUtils:
| Strumento | Scopo |
|---|---|
discover_skill_catalog |
Determinare le posizioni di ricerca delle competenze predefinite (progetto + utente) Creare un SkillCatalog dalle directory trovate |
SkillMiddleware |
Aggiungere al prompt di sistema il riepilogo delle competenze e le regole di instradamento disponibili.
Fornisci aiuti di fabbrica per la costruzione di middleware basata sull'area di lavoro. |
make_skill_tools |
Questo metodo restituisce gli strumenti di ricerca delle competenze: activate_skill, list_skill_files, load_skill_file e run_skill_entrypoint. Questi strumenti possono essere utilizzati dall'agente per attivare ed eseguire competenze diverse. |
Di seguito è riportato un esempio di come includere il file di inserimento.
from aidputils.agents.skills.discovery import discover_skill_catalog
from aidputils.agents.skills.middleware import SkillMiddleware
from aidputils.agents.skills.tools.factories import make_skill_tools
...
class SchoolGradeAgentWithEmbededSkills:
...
def init(self) -> None:
...
self.catalog = discover_skill_catalog(skill_folder_whitelist=None)
self.skill_middleware = SkillMiddleware(self.catalog)
self.tools = make_skill_tools(self.catalog)
È possibile eseguire il debug del catalogo skill aggiungendo questa istruzione logger al codice. In questo modo verrà stampata ogni abilità scoperta nel catalogo delle competenze:
for info in self.catalog.list():
logger.info("skill_id=%s name=%s desc=%s root=%s skill_file=%s", info.skill_id, info.name, info.description, info.root_dir, info.skill_file)
Priorità competenze
La piattaforma può caricare le competenze da più posizioni, ad esempio directory a livello di progetto e di utente. Il catalogo aggrega tali ubicazioni in un unico elenco di skill con chiave nome.
Quando più negozi contengono uno skill con lo stesso nome, la precedenza determina quale viene utilizzato. I negozi successivi sostituiscono quelli precedenti, il che consente a un'applicazione host di controllare se le competenze a livello di utente, a livello di progetto o a livello di area di lavoro hanno la priorità.
Best practice per la redazione delle competenze
Mantieni SKILL.md focalizzato
Utilizzare SKILL.md per le istruzioni di base necessarie all'agente subito dopo l'attivazione. Inserire schemi lunghi, esempi e materiale di riferimento nei riferimenti/.
Scrivi descrizioni chiare
Il campo di descrizione viene utilizzato per la ricerca automatica. Rendere abbastanza specifico per l'agente sapere quando attivare l'abilità.
description: Helps generate BigQuery SQL using the finance warehouse schema. Meno utile: description: Helps with data. Usa nomi di punto di ingresso espliciti
entrypoints:
- name: validate_query
- name: summarize_numbers
- name: transform_csv Evitare nomi vaghi come: entrypoints:
- name: run
- name: do_it Restituisci risultati strutturati
Gli script eseguibili devono restituire risultati verificabili in JSON quando possibile. Ciò rende l'output più facile da ispezionare e utilizzare per l'agente.
Evita esecuzioni inutili
Preferire le istruzioni e i file di riferimento quando possibile. Utilizzare i punti di accesso eseguibili solo per le operazioni che richiedono effettivamente codice.
Aggiungi una nuova competenza
È possibile aggiungere nuove competenze agente creando una nuova cartella all'interno della directory skill e aggiungendo i file e le cartelle necessari.
Aggiunta di una nuova capacità eseguibile a una competenza esistente
È possibile aggiungere una nuova operazione eseguibile a una competenza esistente per espandere le capacità di SKILL.md.
Risoluzione dei problemi relativi alle competenze degli agenti
Se si riscontrano problemi con l'implementazione delle competenze agente, consultare questo elenco per assistenza nella risoluzione del problema.
L'agente non vede le mie competenze
- La cartella skill si trova in una directory skill configurata.
- La cartella contiene SKILL.md.
- SKILL.md ha una materia anteriore YAML valida.
- Il frontmatter include sia il nome che la descrizione.
L'agente attiva lo skill errato
Verificare la presenza di nomi skill duplicati nelle directory skill. Se due skill hanno lo stesso nome, la precedenza del catalogo determina quale viene utilizzato.
Impossibile caricare un file di supporto
- Il file si trova all'interno della cartella skill.
- Il percorso non include attraversamenti quali ../.
- Il file non è nascosto.
- Il file non è escluso, ad esempio __pycache__ o .pyc.
Un punto di accesso non verrà eseguito
- run_skill_entrypoint è incluso negli strumenti consentiti.
- Il punto di ingresso è dichiarato in SKILL.md.
- Il percorso dello script è in script/.
- Lo script è un file .py.
- Il nome della funzione in func esiste nello script.
- Gli argomenti sono un oggetto JSON valido.
Timeout del punto di accesso
Aumentare timeout_seconds solo se si prevede che l'operazione richieda più tempo. Per operazioni con tempi di esecuzione lunghi o a uso intensivo di risorse, considerare la possibilità di spostare l'operazione in un servizio dedicato o in un ambiente di esecuzione più isolato.
Esempio: capacità completa agente
Questo esempio mostra l'aspetto di una competenza agente completa dopo l'implementazione.
Struttura cartella
skills/
customer-support-reply/
SKILL.md
references/
tone_guide.md
refund_policy.md
escalation_rules.md
SKILL.it
---
name: customer-support-reply
description: Helps draft customer support replies using the company tone guide and policy references.
allowed-tools: "load_skill_file list_skill_files"
metadata:
owner: support-operations
domain: customer-support
---
# Customer Support Reply
Use this skill when the user asks for help drafting, reviewing, or improving a customer support response.
Workflow:
1. Identify the customer’s issue.
2. Load the relevant policy file from `references/` if needed.
3. Draft a clear, empathetic response.
4. Avoid making commitments that are not supported by policy.
5. Recommend escalation when the request matches the escalation rules.
This skill does not run code. It gives the agent structured instructions and optional policy files that can be loaded only when relevant.
Test agente
È possibile eseguire il test degli agenti per visualizzare in anteprima ed eseguire il debug dell'output. È inoltre possibile creare e gestire sessioni di test per esplorare diversi scenari di test per gli agenti.
Il primo passo per eseguire il test di un agente consiste nel collegare l'agente a una computazione AI. L'azione di collegamento di un agente esegue il push di una copia dell'agente in una computazione AI. Finché l'agente è collegato a una computazione AI, tutte le modifiche apportate all'agente vengono propagate alla computazione collegata ogni volta che si fa clic sul pulsante Test.
Dopo aver fatto clic sul pulsante Test, si viene portati al campo di gioco di prova.

- Finestra di chat in cui è possibile avviare una sessione e iniziare a chattare con l'agente oppure riprendere una sessione esistente
- Rappresentazione dell'agente basata su un grafico
- Un pannello che mostra un albero di tracce e intervalli generati durante la sessione
- Pannello Trace e estesa di Explorer in cui vengono visualizzati i trace e si estendono gli attributi, input/output. La scheda Dettagli include gli ID, l'ora di inizio e di fine, il tempo di esecuzione, mentre le schede Eventi evidenziano eventuali errori durante l'esecuzione.
Il Playground ti consente di interagire e testare ogni agente in modo indipendente se lo desideri. Per impostazione predefinita, l'agente supervisore è selezionato, ma è possibile scegliere di chattare e testare ciascun agente esecutore in modo indipendente. Ciò consente di simulare il comportamento di un agente supervisore che invia richieste agli agenti esecutore. A tale scopo, selezionare l'agente da sottoporre a test nel menu a discesa della finestra di chat.
Le tracce e gli intervalli vengono visualizzati nel pannello centrale non appena si crea il primo messaggio. Ogni attività corrisponde a un messaggio utente diverso. È possibile fare clic sul cursore sinistro per espandere la traccia e ispezionare gli intervalli.
Prova i tuoi agenti nel parco giochi
È possibile eseguire il test di visual builder e agenti basati su LangGraph dal campo di test per convalidare ed eseguire il debug degli agenti.
Crea una sessione di test agente
È possibile creare una sessione di test per avviare una nuova conversazione con l'agente.















