Le Wiki Agent organise de manière asynchrone les fichiers source d'un Agent en pages Markdown structurées et interconnectées, formant un graphe de connaissances consultable. Vous pouvez répertorier, lire et rechercher les pages par chemin d'accès. Cette fonctionnalité convient au stockage des spécifications produit, des manuels d'utilisation, des conventions de projet et d'autres documents au niveau de l'Agent devant être partagés entre les sessions.
Le Wiki fournit des pages, des liens, des citations de sources et des fonctionnalités de recherche, mais ne propose pas de triplets d'entités ni d'interfaces de requête de graphe. Pour effectuer des requêtes sur les entités et les relations de type base de données graphique, utilisez un modèle de données différent.
Prérequis
Vous devez avoir créé un magasin de mémoire (tout type d'entrée est acceptable ; un Wiki appartient à un magasin de mémoire ainsi qu'à une portée Agent composée de trois parties).
Limites des ressources
Chaque Wiki appartient exclusivement à un magasin de mémoire et à une portée Agent composée de trois parties :
memoryStoreName + appId / tenantId / agentId
Le Wiki n'utilise pas
runId; différentes sessions du même Agent partagent un seul Wiki.Lorsque vous appelez
GetWiki, le service récupère ou crée automatiquement le Wiki correspondant à cette portée. AucunwikiId, ID de build ni ID de tâche n'est requis.Les trois champs sont obligatoires, ne doivent pas dépasser 128 octets chacun, ne doivent pas contenir
/et n'autorisent pas le caractère générique*.
Fichiers source pris en charge
|
Type |
Extension |
Méthode d'écriture |
Limite par fichier |
|
Markdown, texte |
|
|
100 KiB |
|
|
|
|
2 000 000 octets |
|
Word |
|
|
2 000 000 octets |
|
Excel |
|
|
2 000 000 octets |
|
PowerPoint |
|
|
2 000 000 octets |
|
Image |
|
|
2 000 000 octets |
Les fichiers binaires utilisent le codage Base64 standard. L'extension, mediaType et la signature du fichier doivent être cohérents.
Interroger le Wiki
Récupérez ou créez le Wiki pour la portée Agent actuelle et consultez le dernier statut de build. Le premier appel crée automatiquement le Wiki.
Console
Ouvrez le magasin de mémoire, accédez à Knowledge compilation Wiki > Raw files (ou Knowledge graph), définissez l'application, le locataire et l'Agent, puis consultez le statut du Wiki et le nombre de pages.
SDK
Le SDK Agent Storage actuel n'intègre pas encore de méthodes Wiki de haut niveau. Utilisez l'appel de bas niveau ots_client.request(Action, body).
Python
from tablestore_agent_storage import AgentStorageClient
client = AgentStorageClient(
api_key="<your-api-key>",
ots_endpoint="https://<instance>.<region>.ots.aliyuncs.com",
ots_instance_name="<instance-name>",
)
wiki = client.ots_client.request("GetWiki", {
"memoryStoreName": "agent_memory",
"scope": {"appId": "app-001", "tenantId": "user-001", "agentId": "assistant"},
})
print(f"Status: {wiki.get('status')}, Pages: {wiki.get('pageCount')}, Pending: {wiki.get('hasPendingChanges')}")
API
Appelez GetWiki pour interroger le Wiki. Pour connaître l'ensemble des champs, consultez Interroger le Wiki.
Générer le Wiki
Compile de manière asynchrone les fichiers source situés sous /.wiki/raw/ en un nouvel ensemble de pages et les publie de façon atomique.
Console
Sur la page Knowledge compilation Wiki > Raw files, cliquez sur Add raw material ou Batch upload pour écrire les fichiers source dans
/.wiki/raw/.Cliquez sur Build Wiki ; le service compile les pages de manière asynchrone.
Consultez les pages publiées sur la page Knowledge graph ; les pages existantes restent lisibles pendant la génération.
SDK
Python
from tablestore_agent_storage import AgentStorageClient
client = AgentStorageClient(
api_key="<your-api-key>",
ots_endpoint="https://<instance>.<region>.ots.aliyuncs.com",
ots_instance_name="<instance-name>",
)
# 1. Write the source file (for AddItem, see the "File memory" document)
client.add_item({
"memoryStoreName": "agent_memory",
"scope": {"appId": "app-001", "tenantId": "user-001", "agentId": "assistant"},
"path": "/.wiki/raw/product/payment.md",
"content": "# Payment notes\n\nPayment callbacks must validate the idempotency key.",
})
# 2. Start the build
resp = client.ots_client.request("IngestWiki", {
"memoryStoreName": "agent_memory",
"scope": {"appId": "app-001", "tenantId": "user-001", "agentId": "assistant"},
"clientToken": "wiki-build-001",
})
print(resp)
API
Appelez IngestWiki pour générer le Wiki. Pour connaître l'ensemble des champs, consultez Générer le Wiki.
IngestWiki est une opération asynchrone. Utilisez le même clientToken pour effectuer des nouvelles tentatives sécurisées. Dans la réponse, reused indique que la même génération a été réutilisée, et skipped indique que les sources n'ont pas changé et qu'aucune régénération n'est nécessaire.
Voici les statuts de génération courants :
|
Statut |
Description |
|
|
Génération acceptée ou en cours |
|
|
Pages en cours de génération, de validation, d'indexation ou de publication |
|
|
<!--@p {"id":"9015021dd795e"}--br>Nouvelles pages publiées de manière atomique ; lecture et recherche possibles |
|
|
Échec de la génération ; vérifiez |
|
|
Modification des sources ou de la version actuelle pendant la génération ; récupérez à nouveau le statut et lancez une nouvelle génération |
Répertorier les pages
Parcourez les métadonnées des pages publiées par ordre de chemin d'accès.
Les pages ne sont disponibles pour la liste qu'après la publication d'une génération. Si aucune génération n'a été effectuée, une erreur de ressource introuvable est renvoyée.
La valeur par défaut de
limitest 50 et sa valeur maximale est 100. N'analysez pas et ne modifiez pasnextToken; lors de la pagination, les pages sont verrouillées sur la même version publiée.
Console
Consultez la liste des pages publiées (chemin d'accès, titre, résumé) sur la page Knowledge graph.
SDK
Python
from tablestore_agent_storage import AgentStorageClient
client = AgentStorageClient(
api_key="<your-api-key>",
ots_endpoint="https://<instance>.<region>.ots.aliyuncs.com",
ots_instance_name="<instance-name>",
)
resp = client.ots_client.request("ListWikiPages", {
"memoryStoreName": "agent_memory",
"scope": {"appId": "app-001", "tenantId": "user-001", "agentId": "assistant"},
"limit": 50,
})
for p in resp.get("pages", []):
print(p.get("path"), p.get("title"))
API
Appelez ListWikiPages pour répertorier les pages. Pour connaître l'ensemble des champs, consultez Répertorier les pages du Wiki.
Lire une page
Lisez le corps complet d'une page publiée via son chemin d'accès.
Console
Sur la page Knowledge graph, cliquez sur la page cible pour afficher son corps complet, les citations de sources ainsi que les liens entrants et sortants.
SDK
Python
from tablestore_agent_storage import AgentStorageClient
client = AgentStorageClient(
api_key="<your-api-key>",
ots_endpoint="https://<instance>.<region>.ots.aliyuncs.com",
ots_instance_name="<instance-name>",
)
resp = client.ots_client.request("GetWikiPage", {
"memoryStoreName": "agent_memory",
"scope": {"appId": "app-001", "tenantId": "user-001", "agentId": "assistant"},
"path": "/wiki/payment-callback.md",
})
print(resp.get("content"))
API
Appelez GetWikiPage pour lire une page. Pour connaître l'ensemble des champs, consultez GetWikiPage.
Rechercher des pages
Effectuez une recherche sémantique sur les pages publiées en utilisant le langage naturel. La fonction renvoie le chemin d'accès, le titre, le résumé et le score des pages correspondantes.
Console
Sur la page Knowledge retrieval, saisissez des mots-clés pour rechercher les pages générées par titre, résumé et corps.
SDK
Python
from tablestore_agent_storage import AgentStorageClient
client = AgentStorageClient(
api_key="<your-api-key>",
ots_endpoint="https://<instance>.<region>.ots.aliyuncs.com",
ots_instance_name="<instance-name>",
)
resp = client.ots_client.request("SearchWikiPages", {
"memoryStoreName": "agent_memory",
"scope": {"appId": "app-001", "tenantId": "user-001", "agentId": "assistant"},
"query": "How do payment callbacks ensure idempotency",
"limit": 5,
})
for p in resp.get("pages", []):
print(f"[{p.get('score')}] {p.get('path')} - {p.get('title')}")
API
Appelez SearchWikiPages pour rechercher des pages. Pour connaître l'ensemble des champs, consultez Rechercher des pages du Wiki.
Mettre à jour le Wiki
Mettez à jour le nom d'affichage ou le résumé d'un Wiki.
Console
Sur la page du Wiki, cliquez sur Settings pour modifier le nom ou le résumé.
SDK
Python
from tablestore_agent_storage import AgentStorageClient
client = AgentStorageClient(
api_key="<your-api-key>",
ots_endpoint="https://<instance>.<region>.ots.aliyuncs.com",
ots_instance_name="<instance-name>",
)
client.ots_client.request("UpdateWiki", {
"memoryStoreName": "agent_memory",
"scope": {"appId": "app-001", "tenantId": "user-001", "agentId": "assistant"},
"name": "Payment and reconciliation Wiki",
"summary": "Covers payment callbacks, reconciliation, and idempotency conventions",
})
API
Appelez UpdateWiki pour mettre à jour le Wiki. Pour connaître l'ensemble des champs, consultez Mettre à jour le Wiki.
Qualité de la génération et limites
GetWiki.latestBuild.quality fournit des métriques telles que la couverture des sources, le statut des citations de pages et la qualité des liens afin de déterminer si les pages nécessitent un contrôle ponctuel manuel. Une génération réussie ne signifie pas que chaque source est entièrement représentée, ni que tous les faits ont été validés métier.
|
Élément |
Limite |
|
Fichiers source par Wiki |
2000 |
|
Sources binaires uniques par génération |
50 |
|
Taille totale des sources par génération |
20 MiB |
|
Pages par génération |
500 |
|
Corps d'une seule page |
100 KiB |
|
Taille totale des pages par génération |
20 MiB |
|
|
50 / 100 |
|
|
10 / 100 |