@cicctencent/agent-core 0.1.19 → 0.1.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/cjs/agent/engine.d.ts.map +1 -1
- package/dist/cjs/agent/engine.js +10 -4
- package/dist/cjs/agent/engine.js.map +1 -1
- package/dist/cjs/agent/llm-caller.d.ts +4 -1
- package/dist/cjs/agent/llm-caller.d.ts.map +1 -1
- package/dist/cjs/agent/llm-caller.js +15 -15
- package/dist/cjs/agent/llm-caller.js.map +1 -1
- package/dist/cjs/calendar/types.d.ts +41 -0
- package/dist/cjs/calendar/types.d.ts.map +1 -0
- package/dist/cjs/calendar/types.js +6 -0
- package/dist/cjs/calendar/types.js.map +1 -0
- package/dist/cjs/email/types.d.ts +46 -0
- package/dist/cjs/email/types.d.ts.map +1 -0
- package/dist/cjs/email/types.js +6 -0
- package/dist/cjs/email/types.js.map +1 -0
- package/dist/cjs/index.d.ts +4 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +14 -9
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/kb/types.d.ts +33 -50
- package/dist/cjs/kb/types.d.ts.map +1 -1
- package/dist/cjs/kb/types.js +1 -1
- package/dist/cjs/llm/ollama-provider.d.ts +18 -0
- package/dist/cjs/llm/ollama-provider.d.ts.map +1 -1
- package/dist/cjs/llm/ollama-provider.js +41 -0
- package/dist/cjs/llm/ollama-provider.js.map +1 -1
- package/dist/cjs/llm/openai-provider.d.ts +30 -2
- package/dist/cjs/llm/openai-provider.d.ts.map +1 -1
- package/dist/cjs/llm/openai-provider.js +261 -0
- package/dist/cjs/llm/openai-provider.js.map +1 -1
- package/dist/cjs/llm/provider.d.ts +2 -1
- package/dist/cjs/llm/provider.d.ts.map +1 -1
- package/dist/cjs/llm/provider.js +6 -1
- package/dist/cjs/llm/provider.js.map +1 -1
- package/dist/cjs/llm/types.d.ts +139 -0
- package/dist/cjs/llm/types.d.ts.map +1 -1
- package/dist/cjs/llm/types.js +74 -0
- package/dist/cjs/llm/types.js.map +1 -1
- package/dist/cjs/skill/router.js +1 -1
- package/dist/cjs/skill/router.js.map +1 -1
- package/dist/cjs/skill/vector-index.d.ts +32 -24
- package/dist/cjs/skill/vector-index.d.ts.map +1 -1
- package/dist/cjs/skill/vector-index.js +37 -50
- package/dist/cjs/skill/vector-index.js.map +1 -1
- package/dist/esm/agent/engine.d.ts.map +1 -1
- package/dist/esm/agent/engine.js +10 -4
- package/dist/esm/agent/engine.js.map +1 -1
- package/dist/esm/agent/llm-caller.d.ts +4 -1
- package/dist/esm/agent/llm-caller.d.ts.map +1 -1
- package/dist/esm/agent/llm-caller.js +15 -15
- package/dist/esm/agent/llm-caller.js.map +1 -1
- package/dist/esm/calendar/types.d.ts +41 -0
- package/dist/esm/calendar/types.d.ts.map +1 -0
- package/dist/esm/calendar/types.js +5 -0
- package/dist/esm/calendar/types.js.map +1 -0
- package/dist/esm/email/types.d.ts +46 -0
- package/dist/esm/email/types.d.ts.map +1 -0
- package/dist/esm/email/types.js +5 -0
- package/dist/esm/email/types.js.map +1 -0
- package/dist/esm/index.d.ts +4 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/kb/types.d.ts +33 -50
- package/dist/esm/kb/types.d.ts.map +1 -1
- package/dist/esm/kb/types.js +1 -1
- package/dist/esm/llm/ollama-provider.d.ts +18 -0
- package/dist/esm/llm/ollama-provider.d.ts.map +1 -1
- package/dist/esm/llm/ollama-provider.js +41 -0
- package/dist/esm/llm/ollama-provider.js.map +1 -1
- package/dist/esm/llm/openai-provider.d.ts +30 -2
- package/dist/esm/llm/openai-provider.d.ts.map +1 -1
- package/dist/esm/llm/openai-provider.js +261 -0
- package/dist/esm/llm/openai-provider.js.map +1 -1
- package/dist/esm/llm/provider.d.ts +2 -1
- package/dist/esm/llm/provider.d.ts.map +1 -1
- package/dist/esm/llm/provider.js +1 -0
- package/dist/esm/llm/provider.js.map +1 -1
- package/dist/esm/llm/types.d.ts +139 -0
- package/dist/esm/llm/types.d.ts.map +1 -1
- package/dist/esm/llm/types.js +70 -1
- package/dist/esm/llm/types.js.map +1 -1
- package/dist/esm/skill/router.js +1 -1
- package/dist/esm/skill/router.js.map +1 -1
- package/dist/esm/skill/vector-index.d.ts +32 -24
- package/dist/esm/skill/vector-index.d.ts.map +1 -1
- package/dist/esm/skill/vector-index.js +36 -49
- package/dist/esm/skill/vector-index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/llm/provider.ts"],"names":[],"mappings":"AAKA,YAAY,
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/llm/provider.ts"],"names":[],"mappings":"AAKA,YAAY,EACV,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EACxE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EACnD,YAAY,EAAE,gBAAgB,GAC/B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGzG,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACpE,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/cjs/llm/provider.js
CHANGED
|
@@ -3,7 +3,12 @@
|
|
|
3
3
|
// LLM Provider — 类型接口 + 实现 + 工厂
|
|
4
4
|
// ============================================================
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.BUILTIN_PROVIDERS = exports.createLLMProvider = exports.OllamaProvider = exports.AnthropicProvider = exports.OpenAIProvider = void 0;
|
|
6
|
+
exports.BUILTIN_PROVIDERS = exports.createLLMProvider = exports.OllamaProvider = exports.AnthropicProvider = exports.OpenAIProvider = exports.createBatchRequest = exports.serializeBatchRequests = exports.isFileProvider = exports.isBatchProvider = void 0;
|
|
7
|
+
var types_ts_1 = require("./types.js");
|
|
8
|
+
Object.defineProperty(exports, "isBatchProvider", { enumerable: true, get: function () { return types_ts_1.isBatchProvider; } });
|
|
9
|
+
Object.defineProperty(exports, "isFileProvider", { enumerable: true, get: function () { return types_ts_1.isFileProvider; } });
|
|
10
|
+
Object.defineProperty(exports, "serializeBatchRequests", { enumerable: true, get: function () { return types_ts_1.serializeBatchRequests; } });
|
|
11
|
+
Object.defineProperty(exports, "createBatchRequest", { enumerable: true, get: function () { return types_ts_1.createBatchRequest; } });
|
|
7
12
|
// 实现
|
|
8
13
|
var openai_provider_ts_1 = require("./openai-provider.js");
|
|
9
14
|
Object.defineProperty(exports, "OpenAIProvider", { enumerable: true, get: function () { return openai_provider_ts_1.OpenAIProvider; } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/llm/provider.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,gCAAgC;AAChC,+DAA+D;;;
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/llm/provider.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,gCAAgC;AAChC,+DAA+D;;;AAQ/D,uCAAyG;AAAhG,2GAAA,eAAe,OAAA;AAAE,0GAAA,cAAc,OAAA;AAAE,kHAAA,sBAAsB,OAAA;AAAE,8GAAA,kBAAkB,OAAA;AAEpF,KAAK;AACL,2DAAsD;AAA7C,oHAAA,cAAc,OAAA;AACvB,iEAA4D;AAAnD,0HAAA,iBAAiB,OAAA;AAC1B,2DAAsD;AAA7C,oHAAA,cAAc,OAAA;AAEvB,KAAK;AACL,2CAAoE;AAA3D,+GAAA,iBAAiB,OAAA;AAAE,+GAAA,iBAAiB,OAAA"}
|
package/dist/cjs/llm/types.d.ts
CHANGED
|
@@ -74,4 +74,143 @@ export interface LLMProvider {
|
|
|
74
74
|
/** 测试连接是否正常 */
|
|
75
75
|
ping(): Promise<boolean>;
|
|
76
76
|
}
|
|
77
|
+
/** 单条批处理请求(对应 JSONL 文件中的一行) */
|
|
78
|
+
export interface BatchRequest {
|
|
79
|
+
/** 自定义 ID,用于关联结果 */
|
|
80
|
+
customId: string;
|
|
81
|
+
/** 请求方法,固定为 POST */
|
|
82
|
+
method: 'POST';
|
|
83
|
+
/** 请求路径,如 /v1/chat/completions */
|
|
84
|
+
url: string;
|
|
85
|
+
/** 请求体(ChatParams 去掉 abortSignal) */
|
|
86
|
+
body: {
|
|
87
|
+
model: string;
|
|
88
|
+
messages: Message[];
|
|
89
|
+
tools?: ToolDefinition[];
|
|
90
|
+
toolChoice?: 'auto' | 'none' | {
|
|
91
|
+
type: 'function';
|
|
92
|
+
function: {
|
|
93
|
+
name: string;
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
temperature?: number;
|
|
97
|
+
maxTokens?: number;
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
/** 批处理任务信息 */
|
|
101
|
+
export interface BatchInfo {
|
|
102
|
+
id: string;
|
|
103
|
+
/** 任务状态 */
|
|
104
|
+
status: 'validating' | 'in_progress' | 'finalizing' | 'completed' | 'failed' | 'expired' | 'cancelling' | 'cancelled';
|
|
105
|
+
/** 输入文件 ID(JSONL) */
|
|
106
|
+
inputFileId: string;
|
|
107
|
+
/** 完成窗口 */
|
|
108
|
+
completionWindow: string;
|
|
109
|
+
/** 创建时间(Unix 时间戳,秒) */
|
|
110
|
+
createdAt: number;
|
|
111
|
+
/** 结束时间 */
|
|
112
|
+
expiresAt?: number;
|
|
113
|
+
/** 输出文件 ID(成功结果) */
|
|
114
|
+
outputFileId?: string;
|
|
115
|
+
/** 错误文件 ID(失败结果) */
|
|
116
|
+
errorFileId?: string;
|
|
117
|
+
/** 请求计数统计 */
|
|
118
|
+
requestCounts?: {
|
|
119
|
+
total: number;
|
|
120
|
+
completed: number;
|
|
121
|
+
failed: number;
|
|
122
|
+
};
|
|
123
|
+
/** 元数据 */
|
|
124
|
+
metadata?: Record<string, string>;
|
|
125
|
+
}
|
|
126
|
+
/** 单条批处理结果 */
|
|
127
|
+
export interface BatchResult {
|
|
128
|
+
/** 对应 BatchRequest.customId */
|
|
129
|
+
id: string;
|
|
130
|
+
customId: string;
|
|
131
|
+
/** 响应(成功时) */
|
|
132
|
+
response?: {
|
|
133
|
+
status: number;
|
|
134
|
+
body: ChatResponse;
|
|
135
|
+
};
|
|
136
|
+
/** 错误(失败时) */
|
|
137
|
+
error?: {
|
|
138
|
+
message: string;
|
|
139
|
+
type?: string;
|
|
140
|
+
code?: string;
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* 批处理能力接口(可选实现)
|
|
145
|
+
*
|
|
146
|
+
* OpenAI Batch API 流程:
|
|
147
|
+
* 1. uploadFile() 上传 JSONL 格式的请求文件(purpose='batch')
|
|
148
|
+
* 2. createBatch() 创建批处理任务,引用上传的文件
|
|
149
|
+
* 3. getBatch() 轮询任务状态
|
|
150
|
+
* 4. getBatchResults() 下载并解析结果
|
|
151
|
+
*/
|
|
152
|
+
export interface BatchProvider {
|
|
153
|
+
/** 创建批处理任务 */
|
|
154
|
+
createBatch(inputFileId: string, options?: {
|
|
155
|
+
completionWindow?: '24h';
|
|
156
|
+
endpoint?: '/v1/chat/completions';
|
|
157
|
+
metadata?: Record<string, string>;
|
|
158
|
+
}): Promise<BatchInfo>;
|
|
159
|
+
/** 查询批处理任务状态 */
|
|
160
|
+
getBatch(batchId: string): Promise<BatchInfo>;
|
|
161
|
+
/** 列出批处理任务 */
|
|
162
|
+
listBatches(limit?: number): Promise<BatchInfo[]>;
|
|
163
|
+
/** 取消批处理任务 */
|
|
164
|
+
cancelBatch(batchId: string): Promise<BatchInfo>;
|
|
165
|
+
/** 下载并解析批处理结果(自动下载 output + error 文件) */
|
|
166
|
+
getBatchResults(batchId: string): Promise<BatchResult[]>;
|
|
167
|
+
}
|
|
168
|
+
/** 已上传文件信息 */
|
|
169
|
+
export interface UploadedFileInfo {
|
|
170
|
+
id: string;
|
|
171
|
+
filename: string;
|
|
172
|
+
bytes: number;
|
|
173
|
+
createdAt: number;
|
|
174
|
+
purpose: string;
|
|
175
|
+
status: string;
|
|
176
|
+
mimeType?: string;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* 文件管理能力接口(可选实现)
|
|
180
|
+
*
|
|
181
|
+
* 用于上传文件到 LLM 供应商(如批处理 JSONL 文件、Fine-tune 数据、Assistants 附件等)。
|
|
182
|
+
*/
|
|
183
|
+
export interface FileProvider {
|
|
184
|
+
/** 上传文件 */
|
|
185
|
+
uploadFile(filename: string, content: Buffer | string, purpose: 'assistants' | 'batch' | 'fine-tune' | 'vision'): Promise<UploadedFileInfo>;
|
|
186
|
+
/** 获取文件信息 */
|
|
187
|
+
getFile(fileId: string): Promise<UploadedFileInfo>;
|
|
188
|
+
/** 列出文件 */
|
|
189
|
+
listFiles(limit?: number, purpose?: string): Promise<UploadedFileInfo[]>;
|
|
190
|
+
/** 删除文件 */
|
|
191
|
+
deleteFile(fileId: string): Promise<boolean>;
|
|
192
|
+
/** 下载文件内容(返回 Buffer) */
|
|
193
|
+
downloadFile(fileId: string): Promise<Buffer>;
|
|
194
|
+
/** 下载文件内容(返回文本字符串) */
|
|
195
|
+
getFileContent(fileId: string): Promise<string>;
|
|
196
|
+
}
|
|
197
|
+
/** 检测 Provider 是否支持批处理(Ollama 等不支持 Batch 的 Provider 会覆盖方法抛错,通过 provider 名称排除) */
|
|
198
|
+
export declare function isBatchProvider(provider: LLMProvider): provider is LLMProvider & BatchProvider;
|
|
199
|
+
/** 检测 Provider 是否支持文件管理 */
|
|
200
|
+
export declare function isFileProvider(provider: LLMProvider): provider is LLMProvider & FileProvider;
|
|
201
|
+
/**
|
|
202
|
+
* 将 BatchRequest[] 序列化为 JSONL 字符串(每行一个 JSON 对象)
|
|
203
|
+
*
|
|
204
|
+
* 格式遵循 OpenAI Batch API 规范:
|
|
205
|
+
* {"custom_id":"req-001","method":"POST","url":"/v1/chat/completions","body":{...}}
|
|
206
|
+
*/
|
|
207
|
+
export declare function serializeBatchRequests(requests: BatchRequest[]): string;
|
|
208
|
+
/**
|
|
209
|
+
* 从 ChatParams 快速构建 BatchRequest
|
|
210
|
+
*
|
|
211
|
+
* @param customId 自定义 ID(用于关联结果)
|
|
212
|
+
* @param model 模型名称
|
|
213
|
+
* @param params ChatParams(去掉 abortSignal)
|
|
214
|
+
*/
|
|
215
|
+
export declare function createBatchRequest(customId: string, model: string, params: ChatParams): BatchRequest;
|
|
77
216
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/llm/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIvD,MAAM,WAAW,WAAW;IAC1B,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW;IACX,KAAK,EAAE,MAAM,CAAC;IACd,cAAc;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0BAA0B;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAID,iBAAiB;AACjB,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,yCAAyC;IACzC,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB,aAAa;IACb,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,QAAQ,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IAChF,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW;IACX,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,eAAe;AACf,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,KAAK,CAAC;QACb,OAAO,EAAE,OAAO,CAAC;QACjB,+DAA+D;QAC/D,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC,CAAC;IACH,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB;AAED,aAAa;AACb,MAAM,WAAW,SAAS;IACxB,WAAW;IACX,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mCAAmC;IACnC,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB;AAID,kBAAkB;AAClB,MAAM,WAAW,WAAW;IAC1B,YAAY;IACZ,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAEhD,oCAAoC;IACpC,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAE1D,eAAe;IACf,QAAQ,IAAI,SAAS,CAAC;IAEtB,eAAe;IACf,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1B"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/llm/types.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/llm/types.js
CHANGED
|
@@ -3,4 +3,78 @@
|
|
|
3
3
|
// LLM Provider 类型定义
|
|
4
4
|
// ============================================================
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.isBatchProvider = isBatchProvider;
|
|
7
|
+
exports.isFileProvider = isFileProvider;
|
|
8
|
+
exports.serializeBatchRequests = serializeBatchRequests;
|
|
9
|
+
exports.createBatchRequest = createBatchRequest;
|
|
10
|
+
// ============================================================
|
|
11
|
+
// 类型守卫 — 运行时检测 Provider 是否支持 Batch/File
|
|
12
|
+
// ============================================================
|
|
13
|
+
/** 检测 Provider 是否支持批处理(Ollama 等不支持 Batch 的 Provider 会覆盖方法抛错,通过 provider 名称排除) */
|
|
14
|
+
function isBatchProvider(provider) {
|
|
15
|
+
const p = provider;
|
|
16
|
+
if (typeof p.createBatch !== 'function')
|
|
17
|
+
return false;
|
|
18
|
+
// Ollama 等本地 Provider 覆盖了方法但实际不支持
|
|
19
|
+
const model = provider.getModel();
|
|
20
|
+
if (model.provider === 'ollama')
|
|
21
|
+
return false;
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
/** 检测 Provider 是否支持文件管理 */
|
|
25
|
+
function isFileProvider(provider) {
|
|
26
|
+
const p = provider;
|
|
27
|
+
if (typeof p.uploadFile !== 'function')
|
|
28
|
+
return false;
|
|
29
|
+
const model = provider.getModel();
|
|
30
|
+
if (model.provider === 'ollama')
|
|
31
|
+
return false;
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
// ============================================================
|
|
35
|
+
// 工具函数 — BatchRequest JSONL 序列化/反序列化
|
|
36
|
+
// ============================================================
|
|
37
|
+
/**
|
|
38
|
+
* 将 BatchRequest[] 序列化为 JSONL 字符串(每行一个 JSON 对象)
|
|
39
|
+
*
|
|
40
|
+
* 格式遵循 OpenAI Batch API 规范:
|
|
41
|
+
* {"custom_id":"req-001","method":"POST","url":"/v1/chat/completions","body":{...}}
|
|
42
|
+
*/
|
|
43
|
+
function serializeBatchRequests(requests) {
|
|
44
|
+
return requests.map(r => JSON.stringify({
|
|
45
|
+
custom_id: r.customId,
|
|
46
|
+
method: r.method,
|
|
47
|
+
url: r.url,
|
|
48
|
+
body: {
|
|
49
|
+
model: r.body.model,
|
|
50
|
+
messages: r.body.messages,
|
|
51
|
+
...(r.body.tools?.length ? { tools: r.body.tools } : {}),
|
|
52
|
+
...(r.body.toolChoice ? { tool_choice: r.body.toolChoice } : {}),
|
|
53
|
+
...(r.body.temperature != null ? { temperature: r.body.temperature } : {}),
|
|
54
|
+
...(r.body.maxTokens != null ? { max_tokens: r.body.maxTokens } : {}),
|
|
55
|
+
},
|
|
56
|
+
})).join('\n');
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* 从 ChatParams 快速构建 BatchRequest
|
|
60
|
+
*
|
|
61
|
+
* @param customId 自定义 ID(用于关联结果)
|
|
62
|
+
* @param model 模型名称
|
|
63
|
+
* @param params ChatParams(去掉 abortSignal)
|
|
64
|
+
*/
|
|
65
|
+
function createBatchRequest(customId, model, params) {
|
|
66
|
+
return {
|
|
67
|
+
customId,
|
|
68
|
+
method: 'POST',
|
|
69
|
+
url: '/v1/chat/completions',
|
|
70
|
+
body: {
|
|
71
|
+
model,
|
|
72
|
+
messages: params.messages,
|
|
73
|
+
tools: params.tools,
|
|
74
|
+
toolChoice: params.toolChoice,
|
|
75
|
+
temperature: params.temperature,
|
|
76
|
+
maxTokens: params.maxTokens,
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
}
|
|
6
80
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/llm/types.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,oBAAoB;AACpB,+DAA+D"}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/llm/types.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,oBAAoB;AACpB,+DAA+D;;AAwO/D,0CAOC;AAGD,wCAMC;AAYD,wDAcC;AASD,gDAkBC;AA1ED,+DAA+D;AAC/D,wCAAwC;AACxC,+DAA+D;AAE/D,iFAAiF;AACjF,SAAgB,eAAe,CAAC,QAAqB;IACnD,MAAM,CAAC,GAAG,QAAoC,CAAC;IAC/C,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IACtD,kCAAkC;IAClC,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAClC,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC9C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,2BAA2B;AAC3B,SAAgB,cAAc,CAAC,QAAqB;IAClD,MAAM,CAAC,GAAG,QAAmC,CAAC;IAC9C,IAAI,OAAO,CAAC,CAAC,UAAU,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IACrD,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAClC,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC9C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,+DAA+D;AAC/D,qCAAqC;AACrC,+DAA+D;AAE/D;;;;;GAKG;AACH,SAAgB,sBAAsB,CAAC,QAAwB;IAC7D,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;QACtC,SAAS,EAAE,CAAC,CAAC,QAAQ;QACrB,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,IAAI,EAAE;YACJ,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK;YACnB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ;YACzB,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1E,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtE;KACF,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,kBAAkB,CAChC,QAAgB,EAChB,KAAa,EACb,MAAkB;IAElB,OAAO;QACL,QAAQ;QACR,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,sBAAsB;QAC3B,IAAI,EAAE;YACJ,KAAK;YACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B;KACF,CAAC;AACJ,CAAC"}
|
package/dist/cjs/skill/router.js
CHANGED
|
@@ -162,7 +162,7 @@ class VectorRouteStrategy {
|
|
|
162
162
|
if (best.score < this.minScore)
|
|
163
163
|
return null;
|
|
164
164
|
// 在 skills 列表中查找对应的 Skill
|
|
165
|
-
const skill = skills.find((s) => s.id === best.id);
|
|
165
|
+
const skill = skills.find((s) => s.id === best.item.id);
|
|
166
166
|
if (!skill)
|
|
167
167
|
return null;
|
|
168
168
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../../src/skill/router.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../../src/skill/router.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,42 +1,50 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* 向量索引项
|
|
3
|
+
*/
|
|
2
4
|
export interface VectorItem {
|
|
5
|
+
/** 唯一 ID */
|
|
3
6
|
id: string;
|
|
7
|
+
/** 向量数据 */
|
|
4
8
|
vector: number[];
|
|
9
|
+
/** 关联的元数据 */
|
|
5
10
|
metadata?: Record<string, unknown>;
|
|
6
11
|
}
|
|
7
|
-
/**
|
|
12
|
+
/**
|
|
13
|
+
* 向量检索结果
|
|
14
|
+
*/
|
|
8
15
|
export interface VectorSearchResult {
|
|
9
|
-
|
|
16
|
+
/** 匹配项 */
|
|
17
|
+
item: VectorItem;
|
|
18
|
+
/** 相似度分数(0-1,越高越相关) */
|
|
10
19
|
score: number;
|
|
11
|
-
metadata?: Record<string, unknown>;
|
|
12
20
|
}
|
|
13
|
-
/**
|
|
21
|
+
/**
|
|
22
|
+
* 向量索引接口 — Core 定义接口,App 可提供 embedding 增强版
|
|
23
|
+
*/
|
|
14
24
|
export interface VectorIndex {
|
|
15
|
-
/**
|
|
16
|
-
build(items: VectorItem[]): void
|
|
17
|
-
/**
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
|
|
23
|
-
/**
|
|
25
|
+
/** 构建索引(替换已有数据) */
|
|
26
|
+
build(items: VectorItem[]): Promise<void>;
|
|
27
|
+
/** 添加单个项 */
|
|
28
|
+
add(item: VectorItem): Promise<void>;
|
|
29
|
+
/** 搜索最相似的 topK 个项 */
|
|
30
|
+
search(query: number[], topK?: number): Promise<VectorSearchResult[]>;
|
|
31
|
+
/** 清空索引 */
|
|
32
|
+
clear(): void;
|
|
33
|
+
/** 索引大小 */
|
|
24
34
|
size(): number;
|
|
25
35
|
}
|
|
26
36
|
/**
|
|
27
|
-
*
|
|
28
|
-
*
|
|
37
|
+
* 内存向量索引 — 纯 JS 余弦相似度实现,零外部依赖
|
|
38
|
+
*
|
|
39
|
+
* 适合中小规模(<10000 项)场景。
|
|
40
|
+
* 大规模场景应由 App 层替换为基于 embedding 的持久化实现。
|
|
29
41
|
*/
|
|
30
42
|
export declare class InMemoryVectorIndex implements VectorIndex {
|
|
31
43
|
private items;
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
add(item: VectorItem): void;
|
|
37
|
-
remove(id: string): void;
|
|
44
|
+
build(items: VectorItem[]): Promise<void>;
|
|
45
|
+
add(item: VectorItem): Promise<void>;
|
|
46
|
+
search(query: number[], topK?: number): Promise<VectorSearchResult[]>;
|
|
47
|
+
clear(): void;
|
|
38
48
|
size(): number;
|
|
39
|
-
private dotProduct;
|
|
40
|
-
private computeNorm;
|
|
41
49
|
}
|
|
42
50
|
//# sourceMappingURL=vector-index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vector-index.d.ts","sourceRoot":"","sources":["../../../src/skill/vector-index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"vector-index.d.ts","sourceRoot":"","sources":["../../../src/skill/vector-index.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,YAAY;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,WAAW;IACX,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,aAAa;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,UAAU;IACV,IAAI,EAAE,UAAU,CAAC;IACjB,uBAAuB;IACvB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,mBAAmB;IACnB,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,YAAY;IACZ,GAAG,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,qBAAqB;IACrB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACtE,WAAW;IACX,KAAK,IAAI,IAAI,CAAC;IACd,WAAW;IACX,IAAI,IAAI,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,qBAAa,mBAAoB,YAAW,WAAW;IACrD,OAAO,CAAC,KAAK,CAAoB;IAE3B,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,GAAG,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,SAAK,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAavE,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,MAAM;CAGf"}
|
|
@@ -1,70 +1,57 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// ============================================================
|
|
3
|
-
// VectorIndex —
|
|
4
|
-
// 纯 JS 余弦相似度,零外部依赖
|
|
3
|
+
// VectorIndex — 向量索引接口与内存默认实现
|
|
5
4
|
// ============================================================
|
|
6
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
6
|
exports.InMemoryVectorIndex = void 0;
|
|
8
7
|
/**
|
|
9
|
-
*
|
|
10
|
-
*
|
|
8
|
+
* 内存向量索引 — 纯 JS 余弦相似度实现,零外部依赖
|
|
9
|
+
*
|
|
10
|
+
* 适合中小规模(<10000 项)场景。
|
|
11
|
+
* 大规模场景应由 App 层替换为基于 embedding 的持久化实现。
|
|
11
12
|
*/
|
|
12
13
|
class InMemoryVectorIndex {
|
|
13
|
-
items =
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
build(items) {
|
|
17
|
-
this.items.clear();
|
|
18
|
-
this.norms.clear();
|
|
19
|
-
for (const item of items) {
|
|
20
|
-
this.items.set(item.id, item);
|
|
21
|
-
this.norms.set(item.id, this.computeNorm(item.vector));
|
|
22
|
-
}
|
|
14
|
+
items = [];
|
|
15
|
+
async build(items) {
|
|
16
|
+
this.items = [...items];
|
|
23
17
|
}
|
|
24
|
-
async
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
if (
|
|
18
|
+
async add(item) {
|
|
19
|
+
this.items.push(item);
|
|
20
|
+
}
|
|
21
|
+
async search(query, topK = 10) {
|
|
22
|
+
if (this.items.length === 0 || query.length === 0)
|
|
29
23
|
return [];
|
|
30
24
|
const results = [];
|
|
31
|
-
for (const
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
continue;
|
|
35
|
-
const score = this.dotProduct(query, item.vector) / (queryNorm * itemNorm);
|
|
36
|
-
results.push({ id, score, metadata: item.metadata });
|
|
25
|
+
for (const item of this.items) {
|
|
26
|
+
const score = cosineSimilarity(query, item.vector);
|
|
27
|
+
results.push({ item, score });
|
|
37
28
|
}
|
|
38
29
|
results.sort((a, b) => b.score - a.score);
|
|
39
|
-
return results.slice(0,
|
|
30
|
+
return results.slice(0, topK);
|
|
40
31
|
}
|
|
41
|
-
|
|
42
|
-
this.items
|
|
43
|
-
this.norms.set(item.id, this.computeNorm(item.vector));
|
|
44
|
-
}
|
|
45
|
-
remove(id) {
|
|
46
|
-
this.items.delete(id);
|
|
47
|
-
this.norms.delete(id);
|
|
32
|
+
clear() {
|
|
33
|
+
this.items = [];
|
|
48
34
|
}
|
|
49
35
|
size() {
|
|
50
|
-
return this.items.
|
|
51
|
-
}
|
|
52
|
-
// ---- 内部方法 ----
|
|
53
|
-
dotProduct(a, b) {
|
|
54
|
-
let sum = 0;
|
|
55
|
-
const len = Math.min(a.length, b.length);
|
|
56
|
-
for (let i = 0; i < len; i++) {
|
|
57
|
-
sum += a[i] * b[i];
|
|
58
|
-
}
|
|
59
|
-
return sum;
|
|
60
|
-
}
|
|
61
|
-
computeNorm(vec) {
|
|
62
|
-
let sum = 0;
|
|
63
|
-
for (let i = 0; i < vec.length; i++) {
|
|
64
|
-
sum += vec[i] * vec[i];
|
|
65
|
-
}
|
|
66
|
-
return Math.sqrt(sum);
|
|
36
|
+
return this.items.length;
|
|
67
37
|
}
|
|
68
38
|
}
|
|
69
39
|
exports.InMemoryVectorIndex = InMemoryVectorIndex;
|
|
40
|
+
/**
|
|
41
|
+
* 计算两个向量的余弦相似度
|
|
42
|
+
*/
|
|
43
|
+
function cosineSimilarity(a, b) {
|
|
44
|
+
if (a.length !== b.length || a.length === 0)
|
|
45
|
+
return 0;
|
|
46
|
+
let dot = 0;
|
|
47
|
+
let magA = 0;
|
|
48
|
+
let magB = 0;
|
|
49
|
+
for (let i = 0; i < a.length; i++) {
|
|
50
|
+
dot += a[i] * b[i];
|
|
51
|
+
magA += a[i] * a[i];
|
|
52
|
+
magB += b[i] * b[i];
|
|
53
|
+
}
|
|
54
|
+
const denom = Math.sqrt(magA) * Math.sqrt(magB);
|
|
55
|
+
return denom === 0 ? 0 : dot / denom;
|
|
56
|
+
}
|
|
70
57
|
//# sourceMappingURL=vector-index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vector-index.js","sourceRoot":"","sources":["../../../src/skill/vector-index.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,
|
|
1
|
+
{"version":3,"file":"vector-index.js","sourceRoot":"","sources":["../../../src/skill/vector-index.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,8BAA8B;AAC9B,+DAA+D;;;AAwC/D;;;;;GAKG;AACH,MAAa,mBAAmB;IACtB,KAAK,GAAiB,EAAE,CAAC;IAEjC,KAAK,CAAC,KAAK,CAAC,KAAmB;QAC7B,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAgB;QACxB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAe,EAAE,IAAI,GAAG,EAAE;QACrC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAE7D,MAAM,OAAO,GAAyB,EAAE,CAAC;QACzC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACnD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAC1C,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IAClB,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;CACF;AA/BD,kDA+BC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,CAAW,EAAE,CAAW;IAChD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IACtD,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC;AACvC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/agent/engine.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAoE,MAAM,aAAa,CAAC;AAItI,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAe,MAAM,YAAY,CAAC;AAEvE,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AA4D5E,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAA4G;IAC1H,8BAA8B;IAC9B,OAAO,CAAC,SAAS,CAAkC;IACnD,6CAA6C;IAC7C,OAAO,CAAC,QAAQ,CAAsC;IACtD,4CAA4C;IAC5C,OAAO,CAAC,WAAW,CAA+B;IAElD,gBAAgB;IAChB,OAAO,CAAC,cAAc,CAAiB;IACvC,kBAAkB;IAClB,OAAO,CAAC,SAAS,CAAY;IAC7B,gBAAgB;IAChB,OAAO,CAAC,YAAY,CAAoB;IAExC,wBAAwB;IACxB,OAAO,CAAC,cAAc,CAAc;IACpC,iCAAiC;IACjC,OAAO,CAAC,WAAW,CAAc;gBAErB,MAAM,EAAE,WAAW;IAmD/B,yDAAyD;IACzD,eAAe,IAAI,YAAY;IAI/B,2CAA2C;IAC3C,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAInC,mEAAmE;IACnE,eAAe,IAAI,OAAO,qBAAqB,EAAE,YAAY,GAAG,SAAS;IAIzE;;;OAGG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;IAIxD;;OAEG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,EAAE;IAIhD;;;;OAIG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAItD;;;;;OAKG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;IAI3D;;;;;;OAMG;IACH,WAAW,CAAC,eAAe,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM;IAIzF,kBAAkB;IAClB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAI3C;;;OAGG;IACI,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC;IAoC3D,0CAA0C;YAC5B,YAAY;IAiB1B,wCAAwC;IACxC,OAAO,CAAC,oBAAoB;IAqE5B,6BAA6B;IAC7B,OAAO,CAAC,eAAe;IAyCvB,qBAAqB;IACrB,OAAO,CAAC,gBAAgB;IAmBxB,0BAA0B;YACZ,UAAU;IAyBxB,sCAAsC;YACvB,SAAS;
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/agent/engine.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/agent/engine.js
CHANGED
|
@@ -411,10 +411,16 @@ export class AgentEngine {
|
|
|
411
411
|
this.checkDataFetchLoop(state);
|
|
412
412
|
// 调用 LLM(流式,含重试与降级)
|
|
413
413
|
this.statusMap.set(state.sessionId, 'thinking');
|
|
414
|
-
const assistant = yield* this.llmCaller.callWithRetry(state.sessionId, state.messages, state.toolDefs, state.internalAbort.signal);
|
|
415
|
-
//
|
|
416
|
-
|
|
417
|
-
|
|
414
|
+
const { assistant, usage } = yield* this.llmCaller.callWithRetry(state.sessionId, state.messages, state.toolDefs, state.internalAbort.signal);
|
|
415
|
+
// 累加 Token 用量
|
|
416
|
+
if (usage) {
|
|
417
|
+
if (!state.totalUsage) {
|
|
418
|
+
state.totalUsage = { promptTokens: 0, completionTokens: 0, totalTokens: 0 };
|
|
419
|
+
}
|
|
420
|
+
state.totalUsage.promptTokens += usage.promptTokens || 0;
|
|
421
|
+
state.totalUsage.completionTokens += usage.completionTokens || 0;
|
|
422
|
+
state.totalUsage.totalTokens += usage.totalTokens || 0;
|
|
423
|
+
}
|
|
418
424
|
if (!assistant) {
|
|
419
425
|
// LLM 返回 null(上下文过长/错误)后,如果上一轮有工具调用,注入提示重试
|
|
420
426
|
if (state.lastIterationHadToolCalls && state.continuationNudges < 2) {
|