@unified-llm/core
Version:
Unified LLM interface (in-memory).
56 lines • 1.86 kB
TypeScript
import { ModelPricingKey, UsageTotals } from "../../utils/token-utils.js";
import { Thread } from "../../thread.js";
import type { MCPServerConfig, Logger } from "../../types/index.js";
import { Clock } from "../../utils/timing.js";
export declare const NOOP_LOGGER: Logger;
type OpenAiTool = {
type: "function";
name: string;
description?: string;
parameters: unknown;
};
type LocalToolHandler = (args: Record<string, unknown>) => Promise<unknown>;
type StructuredOutput = {
format: {
type: "json_schema";
name: string;
schema: unknown;
strict?: boolean;
};
};
type TruncationOption = string;
/**
* Responses API を用いて、MCP ツールとローカルツールの呼び出しを含む
* 反復処理(tool calling loop)を実行する。
* `previous_response_id` を使って会話履歴を連結し、最終出力を取得する。
* ループ回数は環境変数 `RESPONSES_MAX_LOOPS` で指定し、未設定時は 10 回。
*
* @param options - モデル設定、入力、MCP/ローカルツール、Structured Output 等の実行オプション
* @returns Responses API の最終レスポンス
*/
export declare function callResponsesApiAgent(options: {
mcpServers: MCPServerConfig[];
model: ModelPricingKey;
apiKey?: string;
baseInput: any[];
thread?: Thread;
structuredOutput?: StructuredOutput;
localTools?: {
tools: OpenAiTool[];
handlers: Map<string, LocalToolHandler>;
};
config?: {
temperature?: number;
truncation?: TruncationOption;
};
onProgress?: (event: any) => void;
signal?: AbortSignal;
logger?: Logger;
clock?: Clock;
}): Promise<{
result: unknown;
usageTotals: UsageTotals;
estimatedCostJpy: number;
}>;
export {};
//# sourceMappingURL=responses-api-agent.d.ts.map