cantian-ai 0.0.27 → 0.0.28
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/dist/Agent.d.ts +12 -2
- package/dist/Agent.js +39 -14
- package/dist/Agent.js.map +1 -1
- package/dist/type.d.ts +5 -1
- package/package.json +1 -1
package/dist/Agent.d.ts
CHANGED
|
@@ -1,14 +1,23 @@
|
|
|
1
1
|
import { ValidateFunction } from 'ajv';
|
|
2
2
|
import { JSONSchema } from 'json-schema-to-ts';
|
|
3
3
|
import { BaseModel } from './models/BaseModel.js';
|
|
4
|
-
import { AgentChunk, ToolCallChunk } from './type.js';
|
|
5
|
-
export type
|
|
4
|
+
import { AgentChunk, AgenticToolToken, ToolCallChunk } from './type.js';
|
|
5
|
+
export type GeneralAgentTool<Context = any, Result = any> = {
|
|
6
6
|
name: string;
|
|
7
7
|
description?: string;
|
|
8
8
|
parameters: JSONSchema;
|
|
9
9
|
handler: (args: any, context: Context) => Result | Promise<Result>;
|
|
10
10
|
toAiText?: (result: any, context: Context, args: any) => string | Promise<string>;
|
|
11
11
|
};
|
|
12
|
+
export type AgentAgenticTool<Context = any, Result = any> = {
|
|
13
|
+
agentic: true;
|
|
14
|
+
name: string;
|
|
15
|
+
description?: string;
|
|
16
|
+
parameters: JSONSchema;
|
|
17
|
+
handler: (args: any, context: Context) => AsyncGenerator<AgenticToolToken>;
|
|
18
|
+
toAiText?: (result: any, context: Context, args: any) => string | Promise<string>;
|
|
19
|
+
};
|
|
20
|
+
export type AgentTool<Context = any, Result = any> = GeneralAgentTool<Context, Result> | AgentAgenticTool<Context, Result>;
|
|
12
21
|
export declare class Agent {
|
|
13
22
|
toolMap: Record<string, AgentTool & {
|
|
14
23
|
validate: ValidateFunction;
|
|
@@ -24,6 +33,7 @@ export declare class Agent {
|
|
|
24
33
|
context?: any;
|
|
25
34
|
temperature?: number;
|
|
26
35
|
}): AsyncGenerator<AgentChunk>;
|
|
36
|
+
executeAgenticTool(toolCall: ToolCallChunk, context: any): AsyncGenerator<AgenticToolToken>;
|
|
27
37
|
executeTool(toolCall: ToolCallChunk, context: any): Promise<{
|
|
28
38
|
error?: any;
|
|
29
39
|
result?: any;
|
package/dist/Agent.js
CHANGED
|
@@ -74,27 +74,47 @@ export class Agent {
|
|
|
74
74
|
break;
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
|
+
let hasStreaming = false;
|
|
77
78
|
if (toolCalls.length) {
|
|
78
79
|
for (const toolCall of toolCalls) {
|
|
79
80
|
yield { ...toolCall, type: 'TOOL_CALLING' };
|
|
80
81
|
const { error, result, aiText } = await this.executeTool(toolCall, options?.context);
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
82
|
+
if (isAsyncGenerator(result)) {
|
|
83
|
+
for await (const chunk of result) {
|
|
84
|
+
yield { type: 'AGENTIC_TOOL_TOKEN', data: chunk };
|
|
85
|
+
}
|
|
86
|
+
hasStreaming = true;
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
const toolCallOutputChunk = {
|
|
90
|
+
type: 'TOOL_CALL_OUTPUT',
|
|
91
|
+
name: toolCall.name,
|
|
92
|
+
callId: toolCall.callId,
|
|
93
|
+
error,
|
|
94
|
+
result: result,
|
|
95
|
+
aiText,
|
|
96
|
+
};
|
|
97
|
+
input.push(toolCallOutputChunk);
|
|
98
|
+
yield toolCallOutputChunk;
|
|
99
|
+
}
|
|
91
100
|
}
|
|
92
101
|
}
|
|
93
102
|
roundIndex++;
|
|
103
|
+
// streaming的时候会正常推AI token给客户端展示,不应该再把结果返回给agent,会导致消息错乱
|
|
104
|
+
if (hasStreaming) {
|
|
105
|
+
break;
|
|
106
|
+
}
|
|
94
107
|
} while (toolCalls.length && roundIndex < maxRounds && !options?.signal?.aborted);
|
|
95
108
|
agentUsage.totalCostMs = Date.now() - startedTimestamp;
|
|
96
109
|
yield agentUsage;
|
|
97
110
|
}
|
|
111
|
+
async *executeAgenticTool(toolCall, context) {
|
|
112
|
+
const tool = this.toolMap[toolCall.name];
|
|
113
|
+
const json = JSON.parse(toolCall.arguments);
|
|
114
|
+
for await (const chunk of tool.handler(json, context)) {
|
|
115
|
+
yield { type: 'AGENTIC_TOOL_TOKEN', data: chunk };
|
|
116
|
+
}
|
|
117
|
+
}
|
|
98
118
|
async executeTool(toolCall, context) {
|
|
99
119
|
const tool = this.toolMap[toolCall.name];
|
|
100
120
|
if (!tool) {
|
|
@@ -112,11 +132,13 @@ export class Agent {
|
|
|
112
132
|
if (!valid) {
|
|
113
133
|
return { error: new Error(`Invalid arguments: ${tool.validate.errors?.[0].message}`) };
|
|
114
134
|
}
|
|
115
|
-
const
|
|
116
|
-
|
|
117
|
-
if (
|
|
118
|
-
|
|
135
|
+
const handlerResult = tool.handler(json, context);
|
|
136
|
+
const isAsyncGen = isAsyncGenerator(handlerResult);
|
|
137
|
+
if (isAsyncGen) {
|
|
138
|
+
return { result: handlerResult };
|
|
119
139
|
}
|
|
140
|
+
const result = await handlerResult;
|
|
141
|
+
const aiText = tool.toAiText ? await tool.toAiText(result, context, json) : undefined;
|
|
120
142
|
return { result, aiText };
|
|
121
143
|
}
|
|
122
144
|
catch (error) {
|
|
@@ -124,4 +146,7 @@ export class Agent {
|
|
|
124
146
|
}
|
|
125
147
|
}
|
|
126
148
|
}
|
|
149
|
+
function isAsyncGenerator(value) {
|
|
150
|
+
return value && typeof value[Symbol.asyncIterator] === 'function';
|
|
151
|
+
}
|
|
127
152
|
//# sourceMappingURL=Agent.js.map
|
package/dist/Agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Agent.js","sourceRoot":"","sources":["../src/Agent.ts"],"names":[],"mappings":"AAAA,OAAO,GAAyB,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"Agent.js","sourceRoot":"","sources":["../src/Agent.ts"],"names":[],"mappings":"AAAA,OAAO,GAAyB,MAAM,KAAK,CAAC;AA8B5C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;AAE3E,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAE7B,MAAM,OAAO,KAAK;IACT,OAAO,GAA+D,EAAE,CAAC;IACzE,KAAK,CAAY;IAExB,YAAY,OAAiD;QAC3D,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;gBACxB,GAAG,IAAI;gBACP,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;aACvC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,CAAC,MAAM,CACX,QAAe,EACf,OAA2F;QAE3F,MAAM,KAAK,GAAgB,CAAC,GAAG,QAAQ,CAAC,CAAC;QACzC,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,SAA0B,CAAC;QAC/B,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9D,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,UAAU,EAAE,CAAC,CAAC,UAAU;SACzB,CAAC,CAAC,CAAC;QACJ,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,kBAAkB,CAAC;QAC3D,MAAM,UAAU,GAAG;YACjB,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,CAAC;YACd,UAAU,EAAE;gBACV,WAAW,EAAE,CAAC;gBACd,YAAY,EAAE,CAAC;aAChB;YACD,WAAW,EAAE;gBACX,YAAY,EAAE,CAAC;gBACf,eAAe,EAAE,CAAC;aACnB;YACD,gBAAgB,EAAE,CAAC;YACnB,WAAW,EAAE,CAAC;YACd,aAAa,EAAE,CAAC;YAChB,MAAM,EAAE,EAAE;SACkC,CAAC;QAC/C,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACpC,GAAG,CAAC;YACF,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE;gBACxC,KAAK,EAAE,UAAU,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;gBAC/D,MAAM,EAAE,OAAO,EAAE,MAAM;gBACvB,WAAW,EAAE,OAAO,EAAE,WAAW;aAClC,CAAC,CAAC;YACH,SAAS,GAAG,EAAE,CAAC;YACf,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;gBACnC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;oBACnB,KAAK,OAAO,CAAC;oBACb,KAAK,SAAS,CAAC;oBACf,KAAK,eAAe;wBAClB,MAAM,KAAK,CAAC;wBACZ,MAAM;oBACR,KAAK,OAAO;wBACV,UAAU,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC;wBACjD,UAAU,CAAC,UAAU,CAAC,WAAW,IAAI,KAAK,CAAC,UAAU,CAAC,WAAW,IAAI,CAAC,CAAC;wBACvE,UAAU,CAAC,UAAU,CAAC,YAAY,IAAI,KAAK,CAAC,UAAU,CAAC,YAAY,IAAI,CAAC,CAAC;wBACzE,UAAU,CAAC,WAAW,CAAC,YAAY,IAAI,KAAK,CAAC,WAAW,CAAC,YAAY,IAAI,CAAC,CAAC;wBAC3E,UAAU,CAAC,WAAW,CAAC,eAAe,IAAI,KAAK,CAAC,WAAW,CAAC,eAAe,IAAI,CAAC,CAAC;wBACjF,UAAU,CAAC,gBAAgB,GAAG,UAAU,CAAC,gBAAgB,IAAI,KAAK,CAAC,gBAAgB,CAAC;wBACpF,UAAU,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,CAAC;wBAChD,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;wBACrE,MAAM,KAAK,CAAC;wBACZ,MAAM;oBACR,KAAK,WAAW;wBACd,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACtB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBAClB,MAAM,KAAK,CAAC;wBACZ,MAAM;oBACR;wBACE,MAAM;gBACV,CAAC;YACH,CAAC;YACD,IAAI,YAAY,GAAG,KAAK,CAAC;YACzB,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;gBACrB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;oBACjC,MAAM,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,cAAc,EAA6B,CAAC;oBACvE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;oBACrF,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;wBAC7B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;4BACjC,MAAM,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,KAAK,EAA6B,CAAC;wBAC/E,CAAC;wBACD,YAAY,GAAG,IAAI,CAAC;oBACtB,CAAC;yBAAM,CAAC;wBACN,MAAM,mBAAmB,GAAwB;4BAC/C,IAAI,EAAE,kBAAkB;4BACxB,IAAI,EAAE,QAAQ,CAAC,IAAI;4BACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;4BACvB,KAAK;4BACL,MAAM,EAAE,MAAM;4BACd,MAAM;yBACP,CAAC;wBACF,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;wBAChC,MAAM,mBAAmB,CAAC;oBAC5B,CAAC;gBACH,CAAC;YACH,CAAC;YACD,UAAU,EAAE,CAAC;YAEb,yDAAyD;YACzD,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM;YACR,CAAC;QACH,CAAC,QAAQ,SAAS,CAAC,MAAM,IAAI,UAAU,GAAG,SAAS,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;QAClF,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB,CAAC;QACvD,MAAM,UAAU,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,CAAC,kBAAkB,CAAC,QAAuB,EAAE,OAAY;QAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;YACtD,MAAM,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QACpD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,QAAuB,EAAE,OAAY;QACrD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,+BAA+B,CAAC,EAAE,CAAC;QAC/D,CAAC;QACD,IAAI,IAAY,CAAC;QACjB,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,kDAAkD,CAAC,EAAE,CAAC;QAClF,CAAC;QAED,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,sBAAsB,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;YACzF,CAAC;YACD,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAClD,MAAM,UAAU,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;YACnD,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;YACnC,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;YACnC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACtF,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,EAAE,KAAK,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;CACF;AAED,SAAS,gBAAgB,CAAC,KAAK;IAC7B,OAAO,KAAK,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,UAAU,CAAC;AACpE,CAAC"}
|
package/dist/type.d.ts
CHANGED
|
@@ -35,6 +35,10 @@ export type TokenChunk = {
|
|
|
35
35
|
type: 'TOKEN';
|
|
36
36
|
delta: string;
|
|
37
37
|
};
|
|
38
|
+
export type AgenticToolToken = {
|
|
39
|
+
type: 'AGENTIC_TOOL_TOKEN';
|
|
40
|
+
data: any;
|
|
41
|
+
};
|
|
38
42
|
export type UsageChunk = {
|
|
39
43
|
type: 'USAGE';
|
|
40
44
|
totalTokens: number;
|
|
@@ -77,5 +81,5 @@ export type ToolDefinition = {
|
|
|
77
81
|
parameters: JSONSchema;
|
|
78
82
|
};
|
|
79
83
|
export type ModelChunk = ModelCallingChunk | TokenChunk | MessageChunk | ToolCallChunk | UsageChunk;
|
|
80
|
-
export type AgentChunk = ModelChunk | ToolCallingChunk | ToolCallOutputChunk | AgentUsageChunk;
|
|
84
|
+
export type AgentChunk = ModelChunk | AgenticToolToken | ToolCallingChunk | ToolCallOutputChunk | AgentUsageChunk;
|
|
81
85
|
export {};
|