cantian-ai 0.0.26 → 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 +13 -2
- package/dist/Agent.js +40 -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;
|
|
@@ -22,7 +31,9 @@ export declare class Agent {
|
|
|
22
31
|
signal?: AbortSignal;
|
|
23
32
|
maxRounds?: number;
|
|
24
33
|
context?: any;
|
|
34
|
+
temperature?: number;
|
|
25
35
|
}): AsyncGenerator<AgentChunk>;
|
|
36
|
+
executeAgenticTool(toolCall: ToolCallChunk, context: any): AsyncGenerator<AgenticToolToken>;
|
|
26
37
|
executeTool(toolCall: ToolCallChunk, context: any): Promise<{
|
|
27
38
|
error?: any;
|
|
28
39
|
result?: any;
|
package/dist/Agent.js
CHANGED
|
@@ -44,6 +44,7 @@ export class Agent {
|
|
|
44
44
|
const response = this.model.stream(input, {
|
|
45
45
|
tools: roundIndex < maxRounds - 1 ? toolDefinitions : undefined,
|
|
46
46
|
signal: options?.signal,
|
|
47
|
+
temperature: options?.temperature,
|
|
47
48
|
});
|
|
48
49
|
toolCalls = [];
|
|
49
50
|
for await (const chunk of response) {
|
|
@@ -73,27 +74,47 @@ export class Agent {
|
|
|
73
74
|
break;
|
|
74
75
|
}
|
|
75
76
|
}
|
|
77
|
+
let hasStreaming = false;
|
|
76
78
|
if (toolCalls.length) {
|
|
77
79
|
for (const toolCall of toolCalls) {
|
|
78
80
|
yield { ...toolCall, type: 'TOOL_CALLING' };
|
|
79
81
|
const { error, result, aiText } = await this.executeTool(toolCall, options?.context);
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
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
|
+
}
|
|
90
100
|
}
|
|
91
101
|
}
|
|
92
102
|
roundIndex++;
|
|
103
|
+
// streaming的时候会正常推AI token给客户端展示,不应该再把结果返回给agent,会导致消息错乱
|
|
104
|
+
if (hasStreaming) {
|
|
105
|
+
break;
|
|
106
|
+
}
|
|
93
107
|
} while (toolCalls.length && roundIndex < maxRounds && !options?.signal?.aborted);
|
|
94
108
|
agentUsage.totalCostMs = Date.now() - startedTimestamp;
|
|
95
109
|
yield agentUsage;
|
|
96
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
|
+
}
|
|
97
118
|
async executeTool(toolCall, context) {
|
|
98
119
|
const tool = this.toolMap[toolCall.name];
|
|
99
120
|
if (!tool) {
|
|
@@ -111,11 +132,13 @@ export class Agent {
|
|
|
111
132
|
if (!valid) {
|
|
112
133
|
return { error: new Error(`Invalid arguments: ${tool.validate.errors?.[0].message}`) };
|
|
113
134
|
}
|
|
114
|
-
const
|
|
115
|
-
|
|
116
|
-
if (
|
|
117
|
-
|
|
135
|
+
const handlerResult = tool.handler(json, context);
|
|
136
|
+
const isAsyncGen = isAsyncGenerator(handlerResult);
|
|
137
|
+
if (isAsyncGen) {
|
|
138
|
+
return { result: handlerResult };
|
|
118
139
|
}
|
|
140
|
+
const result = await handlerResult;
|
|
141
|
+
const aiText = tool.toAiText ? await tool.toAiText(result, context, json) : undefined;
|
|
119
142
|
return { result, aiText };
|
|
120
143
|
}
|
|
121
144
|
catch (error) {
|
|
@@ -123,4 +146,7 @@ export class Agent {
|
|
|
123
146
|
}
|
|
124
147
|
}
|
|
125
148
|
}
|
|
149
|
+
function isAsyncGenerator(value) {
|
|
150
|
+
return value && typeof value[Symbol.asyncIterator] === 'function';
|
|
151
|
+
}
|
|
126
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":"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"}
|
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 {};
|