knight-agent 1.1.0 → 1.1.2
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/Host.d.ts +3 -11
- package/Host.d.ts.map +1 -1
- package/Host.js +4 -5
- package/Host.js.map +1 -1
- package/base/AbstractAgent.d.ts +1 -99
- package/base/AbstractAgent.d.ts.map +1 -1
- package/base/AbstractAgent.js +94 -20
- package/base/AbstractAgent.js.map +1 -1
- package/base/AbstractLLM.d.ts +43 -0
- package/base/AbstractLLM.d.ts.map +1 -0
- package/base/AbstractLLM.js +121 -0
- package/base/AbstractLLM.js.map +1 -0
- package/base/AbstractModule.d.ts +1 -0
- package/base/AbstractModule.d.ts.map +1 -1
- package/base/AbstractModule.js +3 -0
- package/base/AbstractModule.js.map +1 -1
- package/base/AbstractObject.d.ts +6 -4
- package/base/AbstractObject.d.ts.map +1 -1
- package/base/AbstractObject.js +6 -2
- package/base/AbstractObject.js.map +1 -1
- package/base/index.d.ts +1 -4
- package/base/index.d.ts.map +1 -1
- package/base/index.js +1 -4
- package/base/index.js.map +1 -1
- package/index.d.ts +2 -1
- package/index.d.ts.map +1 -1
- package/index.js +2 -6
- package/index.js.map +1 -1
- package/module/AgentModule/Agent.d.ts +1 -54
- package/module/AgentModule/Agent.d.ts.map +1 -1
- package/module/AgentModule/Agent.js +22 -207
- package/module/AgentModule/Agent.js.map +1 -1
- package/module/AgentModule/AgentModule.d.ts +1 -25
- package/module/AgentModule/AgentModule.d.ts.map +1 -1
- package/module/AgentModule/AgentModule.js +78 -63
- package/module/AgentModule/AgentModule.js.map +1 -1
- package/module/AgentModule/index.d.ts +1 -1
- package/module/AgentModule/index.d.ts.map +1 -1
- package/module/AgentModule/index.js +2 -15
- package/module/AgentModule/index.js.map +1 -1
- package/module/LLMModule/ClaudeLLM.d.ts +23 -0
- package/module/LLMModule/ClaudeLLM.d.ts.map +1 -0
- package/module/LLMModule/ClaudeLLM.js +138 -0
- package/module/LLMModule/ClaudeLLM.js.map +1 -0
- package/module/LLMModule/DeepSeekLLM.d.ts +24 -0
- package/module/LLMModule/DeepSeekLLM.d.ts.map +1 -0
- package/module/LLMModule/DeepSeekLLM.js +136 -0
- package/module/LLMModule/DeepSeekLLM.js.map +1 -0
- package/module/LLMModule/GeminiLLM.d.ts +23 -0
- package/module/LLMModule/GeminiLLM.d.ts.map +1 -0
- package/module/LLMModule/GeminiLLM.js +168 -0
- package/module/LLMModule/GeminiLLM.js.map +1 -0
- package/module/LLMModule/LLMModule.d.ts +33 -0
- package/module/LLMModule/LLMModule.d.ts.map +1 -0
- package/module/LLMModule/LLMModule.js +92 -0
- package/module/LLMModule/LLMModule.js.map +1 -0
- package/module/LLMModule/OpenAILLM.d.ts +23 -0
- package/module/LLMModule/OpenAILLM.d.ts.map +1 -0
- package/module/LLMModule/OpenAILLM.js +145 -0
- package/module/LLMModule/OpenAILLM.js.map +1 -0
- package/module/LLMModule/QWenLLM.d.ts +23 -0
- package/module/LLMModule/QWenLLM.d.ts.map +1 -0
- package/module/LLMModule/QWenLLM.js +137 -0
- package/module/LLMModule/QWenLLM.js.map +1 -0
- package/module/LLMModule/index.d.ts +7 -0
- package/module/LLMModule/index.d.ts.map +1 -0
- package/module/{SkillModule → LLMModule}/index.js +6 -1
- package/module/LLMModule/index.js.map +1 -0
- package/module/index.d.ts +1 -4
- package/module/index.d.ts.map +1 -1
- package/module/index.js +1 -4
- package/module/index.js.map +1 -1
- package/package.json +1 -1
- package/utility/AgentUtility.d.ts +38 -0
- package/utility/AgentUtility.d.ts.map +1 -0
- package/{base/AbstractTool.js → utility/AgentUtility.js} +1 -1
- package/utility/AgentUtility.js.map +1 -0
- package/utility/LLMUtility.d.ts +1328 -0
- package/utility/LLMUtility.d.ts.map +1 -0
- package/utility/LLMUtility.js +114 -0
- package/utility/LLMUtility.js.map +1 -0
- package/utility/index.d.ts +2 -1
- package/utility/index.d.ts.map +1 -1
- package/utility/index.js +2 -1
- package/utility/index.js.map +1 -1
- package/base/AbstractDialog.d.ts +0 -54
- package/base/AbstractDialog.d.ts.map +0 -1
- package/base/AbstractDialog.js +0 -86
- package/base/AbstractDialog.js.map +0 -1
- package/base/AbstractReason.d.ts +0 -44
- package/base/AbstractReason.d.ts.map +0 -1
- package/base/AbstractReason.js +0 -23
- package/base/AbstractReason.js.map +0 -1
- package/base/AbstractSkill.d.ts +0 -25
- package/base/AbstractSkill.d.ts.map +0 -1
- package/base/AbstractSkill.js +0 -3
- package/base/AbstractSkill.js.map +0 -1
- package/base/AbstractTool.d.ts +0 -34
- package/base/AbstractTool.d.ts.map +0 -1
- package/base/AbstractTool.js.map +0 -1
- package/docs/ARCHITECTURE.md +0 -601
- package/docs/README.md +0 -562
- package/module/AgentModule/Memory.d.ts +0 -55
- package/module/AgentModule/Memory.d.ts.map +0 -1
- package/module/AgentModule/Memory.js +0 -288
- package/module/AgentModule/Memory.js.map +0 -1
- package/module/DialogModule/Dialog.d.ts +0 -14
- package/module/DialogModule/Dialog.d.ts.map +0 -1
- package/module/DialogModule/Dialog.js +0 -27
- package/module/DialogModule/Dialog.js.map +0 -1
- package/module/DialogModule/DialogModule.d.ts +0 -39
- package/module/DialogModule/DialogModule.d.ts.map +0 -1
- package/module/DialogModule/DialogModule.js +0 -118
- package/module/DialogModule/DialogModule.js.map +0 -1
- package/module/DialogModule/index.d.ts +0 -3
- package/module/DialogModule/index.d.ts.map +0 -1
- package/module/DialogModule/index.js +0 -19
- package/module/DialogModule/index.js.map +0 -1
- package/module/ReasonModule/ChainReason.d.ts +0 -11
- package/module/ReasonModule/ChainReason.d.ts.map +0 -1
- package/module/ReasonModule/ChainReason.js +0 -34
- package/module/ReasonModule/ChainReason.js.map +0 -1
- package/module/ReasonModule/CommanderReason.d.ts +0 -15
- package/module/ReasonModule/CommanderReason.d.ts.map +0 -1
- package/module/ReasonModule/CommanderReason.js +0 -151
- package/module/ReasonModule/CommanderReason.js.map +0 -1
- package/module/ReasonModule/CompetitiveReason.d.ts +0 -13
- package/module/ReasonModule/CompetitiveReason.d.ts.map +0 -1
- package/module/ReasonModule/CompetitiveReason.js +0 -133
- package/module/ReasonModule/CompetitiveReason.js.map +0 -1
- package/module/ReasonModule/PlanReason.d.ts +0 -25
- package/module/ReasonModule/PlanReason.d.ts.map +0 -1
- package/module/ReasonModule/PlanReason.js +0 -133
- package/module/ReasonModule/PlanReason.js.map +0 -1
- package/module/ReasonModule/ReasonModule.d.ts +0 -41
- package/module/ReasonModule/ReasonModule.d.ts.map +0 -1
- package/module/ReasonModule/ReasonModule.js +0 -83
- package/module/ReasonModule/ReasonModule.js.map +0 -1
- package/module/ReasonModule/ReflectReason.d.ts +0 -15
- package/module/ReasonModule/ReflectReason.d.ts.map +0 -1
- package/module/ReasonModule/ReflectReason.js +0 -86
- package/module/ReasonModule/ReflectReason.js.map +0 -1
- package/module/ReasonModule/TreeReason.d.ts +0 -16
- package/module/ReasonModule/TreeReason.d.ts.map +0 -1
- package/module/ReasonModule/TreeReason.js +0 -139
- package/module/ReasonModule/TreeReason.js.map +0 -1
- package/module/ReasonModule/index.d.ts +0 -8
- package/module/ReasonModule/index.d.ts.map +0 -1
- package/module/ReasonModule/index.js +0 -24
- package/module/ReasonModule/index.js.map +0 -1
- package/module/SkillModule/SkillModule.d.ts +0 -42
- package/module/SkillModule/SkillModule.d.ts.map +0 -1
- package/module/SkillModule/SkillModule.js +0 -134
- package/module/SkillModule/SkillModule.js.map +0 -1
- package/module/SkillModule/index.d.ts +0 -2
- package/module/SkillModule/index.d.ts.map +0 -1
- package/module/SkillModule/index.js.map +0 -1
- package/module/ToolModule/ToolModule.d.ts +0 -57
- package/module/ToolModule/ToolModule.d.ts.map +0 -1
- package/module/ToolModule/ToolModule.js +0 -220
- package/module/ToolModule/ToolModule.js.map +0 -1
- package/module/ToolModule/ToolRAG.d.ts +0 -38
- package/module/ToolModule/ToolRAG.d.ts.map +0 -1
- package/module/ToolModule/ToolRAG.js +0 -124
- package/module/ToolModule/ToolRAG.js.map +0 -1
- package/module/ToolModule/index.d.ts +0 -3
- package/module/ToolModule/index.d.ts.map +0 -1
- package/module/ToolModule/index.js +0 -19
- package/module/ToolModule/index.js.map +0 -1
- package/utility/OpenAIUtility.d.ts +0 -333
- package/utility/OpenAIUtility.d.ts.map +0 -1
- package/utility/OpenAIUtility.js +0 -95
- package/utility/OpenAIUtility.js.map +0 -1
|
@@ -1,55 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
import { NetworkUtility, OpenAIUtility } from "../../utility";
|
|
3
|
-
import { Memory } from "./Memory";
|
|
4
|
-
/** 智能体类 */
|
|
5
|
-
export declare class Agent extends AbstractAgent {
|
|
6
|
-
/** 智能体配置 */
|
|
7
|
-
readonly config: AgentConfig;
|
|
8
|
-
/** 记忆管理器(消息缓存 + 草稿区 + 上下文优化) */
|
|
9
|
-
readonly memory: Memory;
|
|
10
|
-
/** 运行状态 */
|
|
11
|
-
private _state;
|
|
12
|
-
/** 对话轮次 */
|
|
13
|
-
private _turnCount;
|
|
14
|
-
/** 当前 run() 的执行选项 */
|
|
15
|
-
private _runOptions?;
|
|
16
|
-
/** 构造函数 */
|
|
17
|
-
constructor(config: AgentConfig);
|
|
18
|
-
/** 当前状态 */
|
|
19
|
-
get state(): AgentState;
|
|
20
|
-
/** 对话轮次 */
|
|
21
|
-
get turnCount(): number;
|
|
22
|
-
/** 思考模式是否开启 */
|
|
23
|
-
get thinkingEnabled(): boolean;
|
|
24
|
-
/** @internal 发送用户消息(缓存→发送→缓存回复) */
|
|
25
|
-
sendUserMessage(content: string): Promise<NetworkUtility.HTTP.Response<OpenAIUtility.OpenAI.ChatResponse>>;
|
|
26
|
-
/** @internal 发送当前消息缓存 */
|
|
27
|
-
sendRequest(): Promise<NetworkUtility.HTTP.Response<OpenAIUtility.OpenAI.ChatResponse>>;
|
|
28
|
-
/** 发送消息缓存中的消息到LLM */
|
|
29
|
-
protected OnSendRequest(overrides?: Partial<OpenAIUtility.OpenAI.ChatRequest>): Promise<NetworkUtility.HTTP.Response<OpenAIUtility.OpenAI.ChatResponse>>;
|
|
30
|
-
/** 发送用户消息(自动缓存用户消息和助手回复) */
|
|
31
|
-
protected OnSend(content: string): Promise<NetworkUtility.HTTP.Response<OpenAIUtility.OpenAI.ChatResponse>>;
|
|
32
|
-
/** 模型基础请求(HTTP POST) */
|
|
33
|
-
OnBaseRequest(apiKey: string, chatRequest: OpenAIUtility.OpenAI.ChatRequest): Promise<NetworkUtility.HTTP.Response<OpenAIUtility.OpenAI.ChatResponse>>;
|
|
34
|
-
/** @internal 执行工具调用(含缓存+重试) */
|
|
35
|
-
executeTool(toolCall: OpenAIUtility.OpenAI.ToolResponse): Promise<string>;
|
|
36
|
-
/** @internal 添加工具结果到消息缓存和记忆 */
|
|
37
|
-
addToolResult(result: string, toolCallId: string): void;
|
|
38
|
-
/** @internal 添加助手消息到缓存(含 tool_calls) */
|
|
39
|
-
addAssistantMessage(content: string, toolCalls?: Array<OpenAIUtility.OpenAI.ToolResponse>): void;
|
|
40
|
-
/** @internal 设置运行状态 */
|
|
41
|
-
setState(state: AgentState): void;
|
|
42
|
-
/**
|
|
43
|
-
* 运行 Agent 主循环
|
|
44
|
-
* 1. 发送用户消息
|
|
45
|
-
* 2. 检查响应
|
|
46
|
-
* 3. 如果模型要求工具调用 → 执行工具 → 继续发送
|
|
47
|
-
* 4. 返回最终结果
|
|
48
|
-
*/
|
|
49
|
-
run(input: string, options?: AgentRunOptions): Promise<AgentRunResult>;
|
|
50
|
-
/** 导出当前状态为可序列化快照 */
|
|
51
|
-
snapshot(): AgentSnapshot;
|
|
52
|
-
/** 从快照恢复状态(需先构造 Agent 再调用此方法) */
|
|
53
|
-
restore(snapshot: AgentSnapshot): void;
|
|
54
|
-
}
|
|
1
|
+
export {};
|
|
55
2
|
//# sourceMappingURL=Agent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Agent.d.ts","sourceRoot":"","sources":["../../../src/module/AgentModule/Agent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Agent.d.ts","sourceRoot":"","sources":["../../../src/module/AgentModule/Agent.ts"],"names":[],"mappings":""}
|
|
@@ -1,210 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
// import { AbstractAgent, AbstractLLM } from "../../base";
|
|
3
|
+
// import { AgentUtility, LLMUtility } from "../../utility";
|
|
2
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
/** 思考模式是否开启 */
|
|
24
|
-
get thinkingEnabled() { return this.config.enableThinking ?? true; }
|
|
25
|
-
// #region 大模型消息请求及响应
|
|
26
|
-
/** @internal 发送用户消息(缓存→发送→缓存回复) */
|
|
27
|
-
async sendUserMessage(content) {
|
|
28
|
-
return this.OnSend(content);
|
|
29
|
-
}
|
|
30
|
-
/** @internal 发送当前消息缓存 */
|
|
31
|
-
async sendRequest() {
|
|
32
|
-
return this.OnSendRequest();
|
|
33
|
-
}
|
|
34
|
-
/** 发送消息缓存中的消息到LLM */
|
|
35
|
-
async OnSendRequest(overrides) {
|
|
36
|
-
// 上下文窗口优化: 按压力级别分级压缩
|
|
37
|
-
const pressure = this.memory.checkPressure();
|
|
38
|
-
if (pressure > Memory_1.MemoryPressure.None) {
|
|
39
|
-
await this.memory.optimize(pressure);
|
|
40
|
-
}
|
|
41
|
-
const msgs = this.memory.messages.GetAll();
|
|
42
|
-
if (0 >= msgs.length) {
|
|
43
|
-
return null;
|
|
44
|
-
}
|
|
45
|
-
this._state = base_1.AgentState.Thinking;
|
|
46
|
-
const chatRequest = {
|
|
47
|
-
model: this.config.model,
|
|
48
|
-
messages: msgs,
|
|
49
|
-
thinking: { type: this.thinkingEnabled ? 'enabled' : 'disabled' },
|
|
50
|
-
reasoning_effort: this.config.reasoningEffort,
|
|
51
|
-
stream: false,
|
|
52
|
-
temperature: this.config.temperature,
|
|
53
|
-
max_tokens: this.config.maxTokens,
|
|
54
|
-
tools: this.host.toolModule.ToAPITools(this._runOptions?.toolNames, true),
|
|
55
|
-
tool_choice: overrides?.tool_choice ?? (this.host.toolModule.count > 0 ? "auto" : undefined),
|
|
56
|
-
...overrides,
|
|
57
|
-
};
|
|
58
|
-
const response = await this.OnBaseRequest(this.config.apiKey, chatRequest);
|
|
59
|
-
this._state = base_1.AgentState.Running;
|
|
60
|
-
// 检查 API 错误响应
|
|
61
|
-
if (response?.data?.error) {
|
|
62
|
-
const err = response.data.error;
|
|
63
|
-
console.error(`[LLM Error] ${err.code ?? ""} ${err.type ?? ""}: ${err.message ?? JSON.stringify(err)}`);
|
|
64
|
-
}
|
|
65
|
-
return response;
|
|
66
|
-
}
|
|
67
|
-
/** 发送用户消息(自动缓存用户消息和助手回复) */
|
|
68
|
-
async OnSend(content) {
|
|
69
|
-
this.memory.messages.AddUser(content);
|
|
70
|
-
this._turnCount++;
|
|
71
|
-
const response = await this.OnSendRequest();
|
|
72
|
-
if (response?.data?.choices?.[0]?.message) {
|
|
73
|
-
const msg = response.data.choices[0].message;
|
|
74
|
-
this.memory.messages.AddAssistant(msg.content ?? "", msg.name, msg.thinking, msg.tool_calls);
|
|
75
|
-
}
|
|
76
|
-
return response;
|
|
77
|
-
}
|
|
78
|
-
/** 模型基础请求(HTTP POST) */
|
|
79
|
-
async OnBaseRequest(apiKey, chatRequest) {
|
|
80
|
-
if (utility_1.StringUtility.empty(apiKey) || !chatRequest?.model || !chatRequest?.messages?.length) {
|
|
81
|
-
return null;
|
|
82
|
-
}
|
|
83
|
-
const options = {
|
|
84
|
-
method: utility_1.NetworkUtility.E_ProtocalType.Post,
|
|
85
|
-
headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer ${apiKey}` },
|
|
86
|
-
data: chatRequest,
|
|
87
|
-
timeout: 60000,
|
|
88
|
-
validateStatus: () => true,
|
|
89
|
-
};
|
|
90
|
-
return await utility_1.NetworkUtility.HTTP.OnRequest(this.config.address, options);
|
|
91
|
-
}
|
|
92
|
-
// #endregion
|
|
93
|
-
// #region 智能体上下文
|
|
94
|
-
/** @internal 执行工具调用(含缓存+重试) */
|
|
95
|
-
async executeTool(toolCall) {
|
|
96
|
-
const ctx = this._runOptions?.toolContext ?? { agentId: this.id, turnCount: this._turnCount };
|
|
97
|
-
return this.host.toolModule.Execute(toolCall, ctx);
|
|
98
|
-
}
|
|
99
|
-
/** @internal 添加工具结果到消息缓存和记忆 */
|
|
100
|
-
addToolResult(result, toolCallId) {
|
|
101
|
-
this.memory.messages.AddTool(result, toolCallId);
|
|
102
|
-
this.memory.toolResults.set(toolCallId, result);
|
|
103
|
-
}
|
|
104
|
-
/** @internal 添加助手消息到缓存(含 tool_calls) */
|
|
105
|
-
addAssistantMessage(content, toolCalls) {
|
|
106
|
-
this.memory.messages.AddAssistant(content, undefined, undefined, toolCalls);
|
|
107
|
-
}
|
|
108
|
-
/** @internal 设置运行状态 */
|
|
109
|
-
setState(state) {
|
|
110
|
-
this._state = state;
|
|
111
|
-
}
|
|
112
|
-
// #endregion
|
|
113
|
-
// #region 智能体上下文
|
|
114
|
-
/**
|
|
115
|
-
* 运行 Agent 主循环
|
|
116
|
-
* 1. 发送用户消息
|
|
117
|
-
* 2. 检查响应
|
|
118
|
-
* 3. 如果模型要求工具调用 → 执行工具 → 继续发送
|
|
119
|
-
* 4. 返回最终结果
|
|
120
|
-
*/
|
|
121
|
-
async run(input, options) {
|
|
122
|
-
this._runOptions = options;
|
|
123
|
-
// 1. 发送用户消息
|
|
124
|
-
let response = await this.sendUserMessage(input);
|
|
125
|
-
if (!response?.data) {
|
|
126
|
-
this.setState(base_1.AgentState.Error);
|
|
127
|
-
return { success: false, content: "" };
|
|
128
|
-
}
|
|
129
|
-
let choice = response.data.choices?.[0];
|
|
130
|
-
if (!choice) {
|
|
131
|
-
this.setState(base_1.AgentState.Done);
|
|
132
|
-
return { success: true, content: "", usage: response.data.usage };
|
|
133
|
-
}
|
|
134
|
-
// 2. 工具调用循环
|
|
135
|
-
while (choice.finish_reason === "tool_calls" && choice.message.tool_calls) {
|
|
136
|
-
this.setState(base_1.AgentState.WaitingTool);
|
|
137
|
-
for (const tc of choice.message.tool_calls) {
|
|
138
|
-
const result = await this.executeTool(tc);
|
|
139
|
-
this.addToolResult(result, tc.id);
|
|
140
|
-
}
|
|
141
|
-
try {
|
|
142
|
-
response = await this.sendRequest();
|
|
143
|
-
}
|
|
144
|
-
catch (e) {
|
|
145
|
-
this.setState(base_1.AgentState.Error);
|
|
146
|
-
return {
|
|
147
|
-
success: false,
|
|
148
|
-
content: `工具结果提交失败: ${e}`,
|
|
149
|
-
finishReason: "error",
|
|
150
|
-
};
|
|
151
|
-
}
|
|
152
|
-
if (!response?.data) {
|
|
153
|
-
break;
|
|
154
|
-
}
|
|
155
|
-
choice = response.data.choices?.[0];
|
|
156
|
-
if (!choice) {
|
|
157
|
-
break;
|
|
158
|
-
}
|
|
159
|
-
// 将助手响应(含 tool_calls)缓存到消息历史,否则下一轮 tool 消息
|
|
160
|
-
// 会缺少对应的 assistant tool_calls 前缀,API 会返回 400 错误
|
|
161
|
-
if (choice.message) {
|
|
162
|
-
this.addAssistantMessage(choice.message.content ?? "", choice.message.tool_calls);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
// 3. 返回结果
|
|
166
|
-
this.setState(base_1.AgentState.Idle);
|
|
167
|
-
return {
|
|
168
|
-
success: true,
|
|
169
|
-
content: choice?.message?.content ?? "",
|
|
170
|
-
thinking: choice?.message?.thinking,
|
|
171
|
-
toolCalls: choice?.message?.tool_calls,
|
|
172
|
-
usage: response?.data?.usage,
|
|
173
|
-
finishReason: choice?.finish_reason,
|
|
174
|
-
};
|
|
175
|
-
}
|
|
176
|
-
// #endregion
|
|
177
|
-
// #region 持久化
|
|
178
|
-
/** 导出当前状态为可序列化快照 */
|
|
179
|
-
snapshot() {
|
|
180
|
-
const msgs = this.memory.messages.GetAll();
|
|
181
|
-
return {
|
|
182
|
-
version: 1,
|
|
183
|
-
createdAt: Date.now(),
|
|
184
|
-
agentId: this.id,
|
|
185
|
-
turnCount: this._turnCount,
|
|
186
|
-
messages: msgs,
|
|
187
|
-
scratchpad: this.memory.scratchpad,
|
|
188
|
-
toolResults: [...this.memory.toolResults.entries()],
|
|
189
|
-
config: {
|
|
190
|
-
model: this.config.model,
|
|
191
|
-
systemPrompt: this.config.systemPrompt,
|
|
192
|
-
temperature: this.config.temperature,
|
|
193
|
-
maxTokens: this.config.maxTokens,
|
|
194
|
-
enableThinking: this.config.enableThinking,
|
|
195
|
-
reasoningEffort: this.config.reasoningEffort,
|
|
196
|
-
maxTurns: this.config.maxTurns,
|
|
197
|
-
},
|
|
198
|
-
};
|
|
199
|
-
}
|
|
200
|
-
/** 从快照恢复状态(需先构造 Agent 再调用此方法) */
|
|
201
|
-
restore(snapshot) {
|
|
202
|
-
this._turnCount = snapshot.turnCount;
|
|
203
|
-
this.memory.scratchpad = snapshot.scratchpad;
|
|
204
|
-
this.memory.toolResults = new Map(snapshot.toolResults);
|
|
205
|
-
this.memory.messages.Clear();
|
|
206
|
-
this.memory.messages.AddRange(snapshot.messages);
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
exports.Agent = Agent;
|
|
5
|
+
// /** 默认智能体 — 使用单一大模型直接回答问题 */
|
|
6
|
+
// export class Agent extends AbstractAgent
|
|
7
|
+
// {
|
|
8
|
+
// public constructor(config: LLMUtility.Config, llm?: AbstractLLM)
|
|
9
|
+
// {
|
|
10
|
+
// super(config, llm);
|
|
11
|
+
// }
|
|
12
|
+
// /**
|
|
13
|
+
// * 发送消息 — 调用 LLM,记录对话
|
|
14
|
+
// * @param prompt 用户输入
|
|
15
|
+
// */
|
|
16
|
+
// public async send(prompt: string): Promise<LLMUtility.Response>
|
|
17
|
+
// {
|
|
18
|
+
// let usage: AgentUtility.Usage = { input: 0, output: 0, total: 0 };
|
|
19
|
+
// const tools: LLMUtility.ToolDefinition[] = []; // 后续从 ToolModule 获取
|
|
20
|
+
// const response = await this.llm.send({ prompt, skill: "", tools, onUsage: (u) => { usage = u; } });
|
|
21
|
+
// this.record(prompt, response.content, usage);
|
|
22
|
+
// return response;
|
|
23
|
+
// }
|
|
24
|
+
// }
|
|
210
25
|
//# sourceMappingURL=Agent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Agent.js","sourceRoot":"","sources":["../../../src/module/AgentModule/Agent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Agent.js","sourceRoot":"","sources":["../../../src/module/AgentModule/Agent.ts"],"names":[],"mappings":";AAAA,2DAA2D;AAC3D,4DAA4D;;AAE5D,+BAA+B;AAC/B,2CAA2C;AAC3C,IAAI;AACJ,uEAAuE;AACvE,QAAQ;AACR,8BAA8B;AAC9B,QAAQ;AAER,UAAU;AACV,4BAA4B;AAC5B,4BAA4B;AAC5B,UAAU;AACV,sEAAsE;AACtE,QAAQ;AACR,6EAA6E;AAC7E,8EAA8E;AAE9E,8GAA8G;AAE9G,wDAAwD;AACxD,2BAA2B;AAC3B,QAAQ;AACR,IAAI"}
|
|
@@ -1,26 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
import { Agent } from "./Agent";
|
|
3
|
-
/** 智能体管理模块 — 负责 Agent 的创建、销毁、查询 */
|
|
4
|
-
export declare class AgentModule extends AbstractModule {
|
|
5
|
-
/** 智能体池 */
|
|
6
|
-
private readonly agents;
|
|
7
|
-
/** 构造函数 */
|
|
8
|
-
constructor();
|
|
9
|
-
/** 智能体数量 */
|
|
10
|
-
get agentCount(): number;
|
|
11
|
-
/**
|
|
12
|
-
* 创建 Agent 并注入系统提示词
|
|
13
|
-
* @param config 智能体配置
|
|
14
|
-
* @returns 就绪的 Agent 实例
|
|
15
|
-
*/
|
|
16
|
-
createAgent(config: AgentConfig): Agent | null;
|
|
17
|
-
/** 销毁指定 Agent */
|
|
18
|
-
destroyAgent(id: string): boolean;
|
|
19
|
-
/** 销毁所有 Agent */
|
|
20
|
-
destroyAll(): number;
|
|
21
|
-
/** 根据 ID 获取 Agent */
|
|
22
|
-
getAgent(id: string): Agent | undefined;
|
|
23
|
-
/** 获取全部 Agent */
|
|
24
|
-
getAllAgents(): Array<Agent>;
|
|
25
|
-
}
|
|
1
|
+
export {};
|
|
26
2
|
//# sourceMappingURL=AgentModule.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentModule.d.ts","sourceRoot":"","sources":["../../../src/module/AgentModule/AgentModule.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AgentModule.d.ts","sourceRoot":"","sources":["../../../src/module/AgentModule/AgentModule.ts"],"names":[],"mappings":""}
|
|
@@ -1,66 +1,81 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
// import { AbstractAgent } from "../../base";
|
|
3
|
+
// import { AbstractModule } from "../../base";
|
|
4
|
+
// import { AgentUtility, LLMUtility, ObjectUtility } from "../../utility";
|
|
5
|
+
// import { Agent } from "./Agent";
|
|
2
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
7
|
+
// /** 智能体管理模块 */
|
|
8
|
+
// export class AgentModule extends AbstractModule
|
|
9
|
+
// {
|
|
10
|
+
// /** 智能体池 */
|
|
11
|
+
// private readonly agents: ObjectUtility.MapPool<AbstractAgent>;
|
|
12
|
+
// /** 构造函数 */
|
|
13
|
+
// public constructor()
|
|
14
|
+
// {
|
|
15
|
+
// super();
|
|
16
|
+
// this.agents = new ObjectUtility.MapPool<AbstractAgent>();
|
|
17
|
+
// }
|
|
18
|
+
// /**
|
|
19
|
+
// * 创建智能体实例
|
|
20
|
+
// * @param config 大模型配置
|
|
21
|
+
// */
|
|
22
|
+
// public create(config: LLMUtility.Config): Agent
|
|
23
|
+
// {
|
|
24
|
+
// const agent = new Agent(config);
|
|
25
|
+
// this.agents.Set(agent.id, agent);
|
|
26
|
+
// return agent;
|
|
27
|
+
// }
|
|
28
|
+
// /**
|
|
29
|
+
// * 从快照恢复智能体 — 重建 LLM、恢复消息缓存与对话记录
|
|
30
|
+
// * @param data 智能体快照
|
|
31
|
+
// */
|
|
32
|
+
// public restore(data: AgentUtility.AgentSnapshot): AbstractAgent
|
|
33
|
+
// {
|
|
34
|
+
// const llm = this.host.llmModule.restore(data.llmSnapshot);
|
|
35
|
+
// const agent = new Agent(data.llmSnapshot.config, llm);
|
|
36
|
+
// this.agents.Set(agent.id, agent);
|
|
37
|
+
// Object.assign(agent, { id: data.id });
|
|
38
|
+
// for (const turn of data.turns) { agent.record(turn.input, turn.output, turn.usage); }
|
|
39
|
+
// return agent;
|
|
40
|
+
// }
|
|
41
|
+
// /** 获取智能体实例 */
|
|
42
|
+
// public get<T extends AbstractAgent = AbstractAgent>(id: string): T
|
|
43
|
+
// {
|
|
44
|
+
// return this.agents.Get<T>(id);
|
|
45
|
+
// }
|
|
46
|
+
// /** 列出全部智能体 */
|
|
47
|
+
// public list(): AbstractAgent[]
|
|
48
|
+
// {
|
|
49
|
+
// return this.agents.ValuesToArray();
|
|
50
|
+
// }
|
|
51
|
+
// /** 智能体总数 */
|
|
52
|
+
// public get count(): number
|
|
53
|
+
// {
|
|
54
|
+
// return this.agents.Count;
|
|
55
|
+
// }
|
|
56
|
+
// /**
|
|
57
|
+
// * 移除智能体实例
|
|
58
|
+
// * @param id 智能体ID
|
|
59
|
+
// */
|
|
60
|
+
// public remove(id: string): boolean
|
|
61
|
+
// {
|
|
62
|
+
// const agent = this.agents.Get(id);
|
|
63
|
+
// if (!agent) { return false; }
|
|
64
|
+
// agent.OnDestroy();
|
|
65
|
+
// this.agents.Remove(id);
|
|
66
|
+
// return true;
|
|
67
|
+
// }
|
|
68
|
+
// /** 移除全部智能体实例 */
|
|
69
|
+
// public removeAll(): void
|
|
70
|
+
// {
|
|
71
|
+
// const agents = this.agents.ValuesToArray();
|
|
72
|
+
// for (const agent of agents) { agent.OnDestroy(); }
|
|
73
|
+
// this.agents.RemoveAll();
|
|
74
|
+
// }
|
|
75
|
+
// public OnDestroy(): boolean
|
|
76
|
+
// {
|
|
77
|
+
// this.removeAll();
|
|
78
|
+
// return super.OnDestroy();
|
|
79
|
+
// }
|
|
80
|
+
// }
|
|
66
81
|
//# sourceMappingURL=AgentModule.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentModule.js","sourceRoot":"","sources":["../../../src/module/AgentModule/AgentModule.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AgentModule.js","sourceRoot":"","sources":["../../../src/module/AgentModule/AgentModule.ts"],"names":[],"mappings":";AAAA,8CAA8C;AAC9C,+CAA+C;AAC/C,2EAA2E;AAC3E,mCAAmC;;AAEnC,iBAAiB;AACjB,kDAAkD;AAClD,IAAI;AACJ,kBAAkB;AAClB,qEAAqE;AAErE,kBAAkB;AAClB,2BAA2B;AAC3B,QAAQ;AACR,mBAAmB;AACnB,oEAAoE;AACpE,QAAQ;AAER,UAAU;AACV,iBAAiB;AACjB,6BAA6B;AAC7B,UAAU;AACV,sDAAsD;AACtD,QAAQ;AACR,2CAA2C;AAC3C,4CAA4C;AAC5C,wBAAwB;AACxB,QAAQ;AAER,UAAU;AACV,uCAAuC;AACvC,2BAA2B;AAC3B,UAAU;AACV,sEAAsE;AACtE,QAAQ;AACR,qEAAqE;AACrE,iEAAiE;AACjE,4CAA4C;AAC5C,iDAAiD;AACjD,gGAAgG;AAChG,wBAAwB;AACxB,QAAQ;AAER,qBAAqB;AACrB,yEAAyE;AACzE,QAAQ;AACR,yCAAyC;AACzC,QAAQ;AAER,qBAAqB;AACrB,qCAAqC;AACrC,QAAQ;AACR,8CAA8C;AAC9C,QAAQ;AAER,mBAAmB;AACnB,iCAAiC;AACjC,QAAQ;AACR,oCAAoC;AACpC,QAAQ;AAER,UAAU;AACV,iBAAiB;AACjB,yBAAyB;AACzB,UAAU;AACV,yCAAyC;AACzC,QAAQ;AACR,6CAA6C;AAC7C,wCAAwC;AACxC,6BAA6B;AAC7B,kCAAkC;AAClC,uBAAuB;AACvB,QAAQ;AAER,uBAAuB;AACvB,+BAA+B;AAC/B,QAAQ;AACR,sDAAsD;AACtD,6DAA6D;AAC7D,mCAAmC;AACnC,QAAQ;AAER,kCAAkC;AAClC,QAAQ;AACR,4BAA4B;AAC5B,oCAAoC;AACpC,QAAQ;AACR,IAAI"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export
|
|
1
|
+
export {};
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/module/AgentModule/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/module/AgentModule/index.ts"],"names":[],"mappings":""}
|
|
@@ -1,18 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
|
|
3
|
+
// export * from "./Agent";
|
|
4
|
+
// export * from "./AgentModule";
|
|
18
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/module/AgentModule/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/module/AgentModule/index.ts"],"names":[],"mappings":";;AAAA,2BAA2B;AAC3B,iCAAiC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { AbstractLLM } from "../../base";
|
|
2
|
+
import { LLMUtility } from "../../utility";
|
|
3
|
+
/** Claude大模型 */
|
|
4
|
+
export declare class ClaudeLLM extends AbstractLLM<LLMUtility.Claude.Config, LLMUtility.Claude.MessageData> {
|
|
5
|
+
/** 构造函数 */
|
|
6
|
+
constructor(config?: LLMUtility.Claude.Config);
|
|
7
|
+
/** @override — Claude 的系统消息是顶层字段,不进入缓存 */
|
|
8
|
+
protected addSystemMessage(text: string): void;
|
|
9
|
+
/** @override */
|
|
10
|
+
protected addUserMessage(text: string): void;
|
|
11
|
+
/** @override */
|
|
12
|
+
protected addAssistantMessage(content: string, toolCalls?: Array<LLMUtility.ToolCall>): void;
|
|
13
|
+
/** @override */
|
|
14
|
+
protected addToolMessage(result: LLMUtility.ToolResult): void;
|
|
15
|
+
/** @override — 截断过长的 tool_result 内容 */
|
|
16
|
+
protected compactMessages(): void;
|
|
17
|
+
/** @override — 停止原因 */
|
|
18
|
+
protected stopReason(reason: string): LLMUtility.FinishReason;
|
|
19
|
+
/** @override */
|
|
20
|
+
protected request(tools: LLMUtility.ToolDefinition[]): Promise<LLMUtility.Response>;
|
|
21
|
+
OnDestroy(): boolean;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=ClaudeLLM.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClaudeLLM.d.ts","sourceRoot":"","sources":["../../../src/module/LLMModule/ClaudeLLM.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAkB,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3D,gBAAgB;AAChB,qBAAa,SAAU,SAAQ,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC;IAG/F,WAAW;gBACQ,MAAM,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM;IA0BpD,0CAA0C;IAC1C,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAE9C,gBAAgB;IAChB,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAM5C,gBAAgB;IAChB,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,IAAI;IAkB5F,gBAAgB;IAChB,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,UAAU,GAAG,IAAI;IAM7D,uCAAuC;IACvC,SAAS,CAAC,eAAe,IAAI,IAAI;IAsBjC,uBAAuB;IACvB,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,YAAY;IAU7D,gBAAgB;cACA,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;IAqDlF,SAAS,IAAI,OAAO;CAI9B"}
|