import type { AgentOptions, AgentQueryInput, AgentQueryResult, AgentRunInput, AgentRunResult } from "./types/agent.js"; export declare class Agent { private readonly options; constructor(options: AgentOptions); /** * @deprecated sirius 本体不再调用此方法(改用 host 自驱 runHostToolLoop)。 * 保留供外部 SDK 消费者使用:封装 multi-turn tool loop + compact + hook + text-loop recovery。 * sirius 本体通过 agent.query(单轮)+ 自驱 loop 承担等价能力(见 packages/sirius/src/agent/tool-loop.ts)。 */ run(input: AgentRunInput): Promise; private emitHook; private recordTelemetry; /** * 路径 A:每轮 query 前按 input.memory 自动召回并注入 systemPrompt。 * - 无 memory 字段 → 返回 input.systemPrompt(向后兼容,交回 query 的 ?? 回退)。 * - recallQuery 返回 undefined → 跳过本轮召回,返回 input.systemPrompt。 * - 命中为空 → 不注入,返回 input.systemPrompt。 * - 命中非空 → [baseSystem, format(hits)] 拼接,baseSystem = input.systemPrompt ?? options.systemPrompt。 */ /** * P0-2: 如果 skillRegistry 有已注册 skill,构造 skill 列表段落注入 systemPrompt。 * 让模型知道有哪些 skill 可用(名称+描述),配合 createSkillTool 让模型主动加载。 */ /** * P0: 调 LLM 做压缩总结。用主模型的 gatewayConfig,独立 systemPrompt。 * 返回总结文本。 */ private runCompactSummary; private resolveSkillSection; private resolveMemorySystemPrompt; query(input: AgentQueryInput): Promise; /** * 运行 workflow 脚本(动态 fan-out 子 agent)。 * 用 createWorkflowApis 构建 agent()/parallel()/pipeline()/phase()/log() API, * 在脚本执行时动态派发子 Agent.run。 * * 用法: * const result = await agent.runWorkflow({ * script: `export const meta = { name: "research", description: "..." }\nconst r = await agent("analyze codebase")\nlog(r)`, * sessionId: "wf-1", * }) */ runWorkflow(input: { script: string; sessionId?: string; abortSignal?: AbortSignal; budget?: number; maxConcurrency?: number; onProgress?: (event: import("./workflow/types.js").WorkflowProgressEvent) => void; onLog?: (message: string) => void; resolvePersona?: (opts: import("./workflow/workflow-apis.js").AgentOpts) => Promise | (import("./workflow/workflow-apis.js").AgentPersona | undefined); /** P3: 续跑时传之前的 journal entries(agent_completed),agent() 自动跳过已完成 agentIndex */ resumeFrom?: import("./workflow/types.js").JournalLine[]; /** P3: 每个 agent 完成后回调(agent_completed entry),宿主落盘用于 resume */ onCheckpoint?: (entry: import("./workflow/types.js").JournalLine) => void; /** P1 M3: SDK AgentRegistry 兜底 persona 源。input.resolvePersona 不传时用 buildPersona(registry.get(agentType))。host 传 resolvePersona 则优先。 */ agentRegistry?: import("./agent-registry.js").AgentRegistry; /** * 工具调用前拦截钩子(可干预),转发给内部每个 agent.run()。 * 语义同 AgentRunInput.onToolCall。 */ onToolCall?: (ctx: import("./stream-adapter/native-stream.js").ToolCallContext) => import("./stream-adapter/native-stream.js").ToolCallResult | Promise; /** * 工具调用后观察钩子(只读),转发给内部每个 agent.run()。 * 语义同 AgentRunInput.onToolResult。 */ onToolResult?: (ctx: import("./stream-adapter/native-stream.js").ToolResultContext) => void | Promise; /** * Memory 记忆钩子(每轮 query 前自动召回注入 systemPrompt),转发给内部每个 agent.run()。 * 语义同 AgentRunInput.memory。不传则子 agent 无自动召回(向后兼容)。 */ memory?: import("./types/agent.js").AgentMemoryHook; /** * 工具上下文(含 permissionManager/workdir/sessionId),转发给内部每个 agent.run()。 * 使 workflow script 内的 agent() 调用能过 PermissionManager 沙箱。 * 不传则 agent.run 回退到 { workdir, sessionId }(向后兼容)。 */ toolContext?: import("./types/tool.js").ToolContext; }): Promise<{ result: unknown; phases: import("./workflow/types.js").WorkflowPhaseState[]; budget: import("./workflow/types.js").BudgetInfo; }>; }