Skip to content
Concepts fondamentaux

Concepts fondamentaux de Kova

D’Agent, Workflow et Swarm jusqu’à la persistance WAL — comprendre les composants architecturaux fondamentaux de Kova et sa philosophie de conception.

3μsLatence d’ordonnancement
315Kops/s de débit
21crates du workspace
<10MBBinaire unique

Agent ​

L’Agent est l’unité d’exécution de base, composée des éléments suivants :

ÉlémentDescription
System PromptSystem PromptInvite système qui définit le rôle, les limites de capacité et les règles de comportement de l'IA. Elle est placée en première position du tableau de messages.Définit le rôle de l’Agent, les limites de ses capacités et ses règles de comportement
ModelLe modèle LLM utilisé (commutable à l’exécution)
ToolsL’ensemble d’outils que l’Agent peut appeler
MemoryL’historique de conversation et l’état persistant de l’Agent

Cycle de vie de l’Agent ​

Machine à états de l’Agent
graph LR
  Created --> Idle
  Idle --> Running
  Running --> Completed
  Running --> Paused
  Running --> Failed
  Running --> Recovering
  Paused -.reprise.-> Running
  Recovering -.rejouer WAL.-> Running
ÉtatSignification
IdleAgent créé, en attente d’une tâche
RunningExécution d’une tâche en cours
PausedMis en pause manuellement, reprise possible
CompletedTâche terminée
FailedÉchec de l’exécution (nombre de tentatives dépassé)
RecoveringEnregistrement WAL incomplet détecté, récupération automatique

Boucle de décision de l’Agent ​

Boucle de décision
graph LR
  A[Réception de la tâche / résultat de l’étape précédente] --> B[Raisonnement LLM<br/>analyse + planification]
  B --> C{Un outil est-il nécessaire ?}
  C -->|Yes| D[Appel de l’outil] --> E[Résultat de l’outil] --> B
  C -->|No| F[Génération de la réponse finale] --> G[Renvoi du résultat]

Chaque tour est écrit sur disque

Chaque tour de décision est écrit dans le WAL, garantissant qu’après un crash, l’exécution peut reprendre depuis le point d’arrêt sans avoir à rappeler le LLM.

Workflow ​

Le Workflow orchestre plusieurs Agents ou étapes en un pipeline d’exécution ordonné.

Types d’étapes ​

TypeDescription
Étape AgentDéléguée à un Agent désigné pour exécution
Branche conditionnelleChoisit un chemin différent selon le résultat de l’étape précédente
Étape parallèlePlusieurs étapes s’exécutent simultanément
Étape d’attenteAttend un événement externe ou une approbation manuelle
Étape en boucleRépète l’exécution jusqu’à ce qu’une condition soit satisfaite

Transmission des données ​

Les données sont transmises entre les étapes via des variables de modèle :

{{input.topic}}              → 工作流输入参数
{{steps.research.output}}    → "research" 步骤的输出
{{steps.research.metadata}}  → "research" 步骤的元数据

Gestion des erreurs ​

Chaque étape peut configurer une stratégie d’erreur indépendante :

StratégieComportement
retryRéessaie N fois (3 par défaut, backoff exponentiel)
skipIgnore l’étape en échec et continue l’exécution
abortTermine l’ensemble du workflow
fallbackBascule vers une étape de secours

SwarmSwarmMode d'intelligence collective où plusieurs agents reçoivent leurs tâches d'un coordinateur et collaborent de façon autonome, sans flux fixe prédéfini.En savoir plus → (intelligence collective) ​

Le mode Swarm permet à plusieurs Agents de collaborer de façon autonome, sans flux fixe prédéfini.

Fonctionnement ​

Flux de collaboration Swarm
graph LR
  U[Tâche utilisateur] --> C[Agent coordinateur]
  C --> S[Décomposition en sous-tâches]
  S --> R[Agent de recherche]
  S --> D[Agent de codage]
  S --> T[Agent de test]
  R --> M[Collecte des résultats]
  D --> M
  T --> M
  M --> O[Sortie synthétisée]

Les Agents communiquent directement entre eux via le protocole A2A (Agent-to-Agent)A2AProtocole Agent-to-Agent, qui permet à plusieurs agents de communiquer directement, de déléguer des tâches et d'échanger des informations. :

json
{
  "from": "coordinator",
  "to": "researcher",
  "type": "task_delegate",
  "payload": {
    "task": "调研 WebAssembly 在服务端的性能基准",
    "constraints": {
      "max_tokens": 2000,
      "deadline": "5min"
    }
  }
}

WALWALWrite-Ahead Log (journal d'écriture anticipée). Tout changement d'état est d'abord écrit dans le journal puis exécuté, garantissant une reprise après crash à partir du journal.En savoir plus → (Write-Ahead Log) ​

Le WAL est le mécanisme central de persistance de Kova, inspiré de la conception des systèmes de bases de données.

Processus d’écriture ​

Processus d’écriture WAL
graph LR
  A[Changement d’état de l’Agent] --> B[Sérialisation + CRC32<br/>calcul de la somme de contrôle]
  B --> C[Écriture dans le fichier WAL<br/>journal d’abord]
  C --> D[Exécution de l’opération réelle]
  D --> E[Marquage WAL terminé<br/>confirmation du commit]

Processus de récupération ​

Au démarrage, le WAL est automatiquement scanné pour récupérer les opérations incomplètes :

  1. Enregistrements terminés —— ignorés.
  2. Échec du contrôle CRC32 —— marqués comme corrompus et ignorés.
  3. Enregistrements incomplets —— réexécutés.

Tampon circulaireRing BufferTampon circulaire : structure de stockage cyclique de taille fixe. Lorsque le pointeur d'écriture atteint la fin, il revient au début et écrase les anciennes données ; le WAL utilise un tampon circulaire de taille en puissance de 2. ​

Le WAL utilise un tampon circulaire dont la taille est une puissance de 2 :

  • Le pointeur d’écriture revient au début lorsqu’il atteint la fin
  • Les anciens enregistrements confirmés sont écrasés par les nouveaux
  • Une compaction est déclenchée lorsque le tampon est plein

Modes de synchronisation ​

ModeDescriptionPerformanceDurabilité
normalLe système d’exploitation décide quand effectuer le fsyncÉlevéeQuelques secondes de données peuvent être perdues
fullfsync à chaque écritureFaibleAucune perte de données

Options de chiffrement ​

Dans les scénarios sensibles, le chiffrement du WAL peut être activé :

AlgorithmeDescription
aes-256-gcmChiffrement AES-256 standard
sm4Algorithme national chinois SM4

Un contrôle d’intégrité HMAC peut également être activé pour empêcher toute altération du fichier WAL.


Ordre de verrouillage ​

Kova utilise en interne un ordre strict d’acquisition des verrous, éliminant fondamentalement les interblocages :

Ordre d’acquisition des verrous
graph LR
  A[Buffer Lock] --> B[Queue Lock] --> C[Transaction Lock]

Prévention des interblocages à la compilation

Tous les chemins de code doivent respecter cet ordre. Toute tentative d’acquisition de verrous en violant l’ordre déclenche une vérification à la compilation (garantie par le système de types de Rust).

Système d’outils ​

Outils intégrés ​

OutilFonction
web_searchRecherche sur Internet
file_readLecture de fichiers
file_writeÉcriture de fichiers
http_requestEnvoi de requêtes HTTP
shell_execExécution de commandes Shell (environnement sandbox)
db_queryRequêtes de base de données

Outils MCP ​

Connectez des services d’outils externes via le Model Context Protocol :

toml
# kova.toml
[[mcp.servers]]
name = "github"
command = "npx"
args = ["-y", "@modelcontextprotocol/server-github"]
env = { GITHUB_PERSONAL_ACCESS_TOKEN = "ghp_xxx" }

[[mcp.servers]]
name = "postgres"
command = "npx"
args = ["-y", "@modelcontextprotocol/server-postgres"]
env = { DATABASE_URL = "postgres://..." }

L’Agent peut appeler les outils MCP comme s’il s’agissait d’outils intégrés.

Protocole A2A ​

Protocole de communication Agent-to-Agent, qui prend en charge :

  • Délégation de tâches : un Agent confie une sous-tâche à un autre
  • Requête d’informations : les Agents échangent directement des informations
  • Notification de résultat : notification de l’initiateur une fois la tâche terminée
  • Découverte de capacités : interroger ce que les autres Agents peuvent faire

Niveaux de fonctionnalités ​

Kova contrôle la portée de la compilation à l’aide des feature flags de Rust. Une compilation minimale ne nécessite que pure-rust, à laquelle s’ajoutent selon les besoins : serde (sérialisation), workflow (orchestration de workflows) → agent (moteur d’Agent) → swarm (intelligence collective), encrypt (chiffrement) → sm4 (cryptographie nationale chinoise) / wal-hmac (contrôle d’intégrité), etc.


Étapes suivantes ​

Étapes suivantes

Powered by Lurus Technologies