/**
 * Agent 配置
 */
export interface AgentConfig {
  /** Agent 名称 */
  name: string;
  /** 使用的模型 */
  model: string;
  /** 温度参数 */
  temperature: number;
  /** 最大 token 数 */
  maxTokens?: number;
}

/**
 * Agent 消息
 */
export interface AgentMessage {
  /** 角色 */
  role: 'user' | 'assistant' | 'system';
  /** 消息内容 */
  content: string;
  /** 时间戳 */
  timestamp?: number;
}

/**
 * Agent 执行结果
 */
export interface AgentResult {
  /** 是否成功 */
  success: boolean;
  /** 响应消息 */
  message?: AgentMessage;
  /** 错误信息 */
  error?: string;
}

/**
 * Agent 记忆配置
 */
export interface AgentMemoryConfig {
  enableCheckpointer: boolean;
  enableSummarization: boolean;
  maxMessages: number;
  keepRecentMessages: number;
}

/**
 * Agent 完整配置
 */
export interface AgentConfigFull {
  name: string;
  displayName: string;
  description?: string;
  modelId: string;
  systemPrompt?: string;
  skillIds: string[];
  temperature: number;
  maxTokens?: number;
  memoryConfig: AgentMemoryConfig;
  tags?: string[];
}

/**
 * Agent 对话请求
 */
export interface AgentChatRequest {
  threadId: string;
  message: string;
}

/**
 * Agent 对话响应
 */
export interface AgentChatResponse {
  threadId: string;
  message: string;
  toolCalls?: Array<{
    name: string;
    args: Record<string, any>;
    result?: string;
  }>;
}
