Documentation
¶
Overview ¶
Package engine contient la boucle agentique : il relie le fournisseur, les outils, les permissions, le contrôle sortant et l'audit, et émet des événements typés consommés par les interfaces.
Index ¶
Constants ¶
const ( // DefaultContextWindow s'applique quand Deps.ContextWindow vaut 0 ou moins. DefaultContextWindow = 32000 // DefaultCompactionThreshold s'applique quand Deps.CompactionThreshold // vaut 0 ou moins. DefaultCompactionThreshold = 0.8 )
const DefaultMaxIterations = 50
DefaultMaxIterations s'applique quand Deps.MaxIterations vaut 0 ou moins.
Variables ¶
var ( // ErrAuditFailure : un Sink a échoué ; l'engine refuse désormais tout tour. ErrAuditFailure = errors.New("audit log write failure") // ErrUnknownPermission : Respond avec un identifiant inconnu ou déjà résolu. ErrUnknownPermission = errors.New("unknown permission request") // ErrSessionActive : Restore sur une session déjà utilisée dans ce processus. ErrSessionActive = errors.New("session already active in this process") )
var DefaultSystemPrompt = i18n.SystemPrompt(i18n.FR)
DefaultSystemPrompt est le prompt système utilisé quand Deps.SystemPrompt est vide.
Functions ¶
This section is empty.
Types ¶
type Deps ¶
type Deps struct {
Provider provider.Provider
Tools *tools.Registry
Permissions *policy.Permissions
Outbound *policy.Outbound
Sinks []event.Sink // audit en premier
MaxIterations int
SystemPrompt string
ProjectRoot string
Instructions []string // fichiers d'instructions chargés, recopiés dans SessionStarted
Now func() time.Time
// ContextWindow est la fenêtre de contexte du modèle, en jetons estimés
// (0 : DefaultContextWindow).
ContextWindow int
// CompactionThreshold est la fraction de la fenêtre au-delà de laquelle
// l'historique est compacté (0 : DefaultCompactionThreshold).
CompactionThreshold float64
// McpServerDown est émis pour chacun juste après chaque SessionStarted.
UnavailableMCP []event.McpServerDownPayload
// MCP liste les serveurs MCP actifs, recopiés dans SessionStarted.
MCP []event.MCPServerInfo
}
Deps regroupe les dépendances de l'engine.
type Engine ¶
type Engine struct {
// contains filtered or unexported fields
}
Engine exécute les tours d'agent. Il est sûr en usage concurrent ; les tours d'une même session sont sérialisés.
func (*Engine) Restore ¶
Restore reconstruit l'état en mémoire d'une session à partir de ses événements persistés (session.Load), dans l'ordre. À appeler avant tout Submit de cette session ; renvoie ErrSessionActive si la session a déjà un état dans cet Engine (y compris après un premier Restore).
L'historique est reconstruit depuis UserMessage, AssistantMessage et ToolResult, tels quels (payloads masqués) ; ContextCompacted remplace les Replaced premiers messages (prompt système exclu) par le message de résumé, et un Replaced hors bornes rend le journal invalide (erreur). Tout appel d'outil resté sans ToolResult reçoit une réponse synthétique avant le message suivant de l'utilisateur ou de l'assistant, et après le dernier événement. Le compteur de séquence et celui des demandes de permission reprennent aux plus grandes valeurs lues ; les autorisations « pour la session » et l'avertissement de juridiction ne sont pas restaurés. Les autres types sont ignorés.
func (*Engine) Submit ¶
Submit exécute un tour complet et bloque jusqu'à sa fin (TurnCompleted, erreur du fournisseur, annulation du contexte ou échec d'audit).
func (*Engine) Subscribe ¶
Subscribe renvoie un canal recevant chaque événement émis après l'appel (tampon de 256). La livraison est bloquante quand le tampon est plein : l'abonné DOIT lire le canal en continu, sinon l'engine se bloque. Appeler avant Submit. Le canal n'est jamais fermé ; quand Submit rend la main, tous les événements du tour sont déjà dans le canal.