package model import "context" // ============================================================ // 核心接口 // ============================================================ // Tool 外部工具接口 type Tool interface { Name() string Description() string Call(ctx context.Context, input string) (string, error) } // ChatModel 聊天模型接口,支持同步生成和流式输出 type ChatModel interface { Generate(ctx context.Context, messages []ChatMessage) (ChatReply, error) Stream(ctx context.Context, messages []ChatMessage) (<-chan ChatStreamEvent, <-chan error) } // Agent 智能体接口 type Agent interface { Name() string Run(ctx context.Context, content ChatContent) (string, error) Stream(ctx context.Context, content ChatContent, out chan<- string) error } // Runner 运行器接口,管理会话并执行 Agent type Runner interface { CreateSession(userID string) (string, error) Run(userID, sessionID string, content ChatContent) ([]string, error) Stream(userID, sessionID string, content ChatContent) (<-chan string, <-chan error) } // ============================================================ // 注册与存储接口 // ============================================================ // RegisteredAgent 已注册的 Agent 信息 type RegisteredAgent struct { AppName string AgentID string AgentName string AgentDesc string Runner Runner } // AgentRegistry Agent 注册表接口 type AgentRegistry interface { Register(agent RegisteredAgent) error Get(agentID string) (RegisteredAgent, bool) List() []RegisteredAgent } // SessionStore 会话存储接口 type SessionStore interface { Get(userID, agentID string) (string, bool) Set(userID, agentID, sessionID string) error }