import { Context } from "koishi"; import { ToolService } from "../services/extension"; import { ChatModelSwitcher } from "../services/model"; import { PromptService } from "../services/prompt"; import { AgentStimulus } from "../services/worldstate"; import { InteractionManager } from "../services/worldstate/interaction-manager"; import { AgentBehaviorConfig } from "./config"; import { PromptContextBuilder } from "./context-builder"; /** * @description 负责执行 Agent 的核心“心跳”循环 * 它协调上下文构建、LLM调用、响应解析和动作执行 */ export declare class HeartbeatProcessor { private readonly ctx; private readonly config; private readonly modelSwitcher; private readonly promptService; private readonly toolService; private readonly interactionManager; private readonly contextBuilder; private readonly logger; constructor(ctx: Context, config: AgentBehaviorConfig, modelSwitcher: ChatModelSwitcher, promptService: PromptService, toolService: ToolService, interactionManager: InteractionManager, contextBuilder: PromptContextBuilder); /** * 运行完整的 Agent 思考-行动周期 * @returns 返回 true 如果至少有一次心跳成功 */ runCycle(stimulus: AgentStimulus): Promise; /** * 准备LLM请求所需的消息负载 */ private _prepareLlmRequest; /** * 执行单次心跳的完整逻辑(非流式) */ private performSingleHeartbeat; /** * 执行单次心跳的完整逻辑(流式,支持重试批次切换) */ private performSingleHeartbeatWithStreaming; /** * 解析并验证来自LLM的响应 */ private parseAndValidateResponse; private displayThoughts; private executeActions; }