@zooique/memora 0.1.0
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/LICENSE +21 -0
- package/README.md +148 -0
- package/dist/agent/agent.d.ts +343 -0
- package/dist/agent/agent.d.ts.map +1 -0
- package/dist/agent/agent.js +893 -0
- package/dist/agent/agent.js.map +1 -0
- package/dist/agent/assembler.d.ts +77 -0
- package/dist/agent/assembler.d.ts.map +1 -0
- package/dist/agent/assembler.js +115 -0
- package/dist/agent/assembler.js.map +1 -0
- package/dist/agent/builtinToolHandlers.d.ts +96 -0
- package/dist/agent/builtinToolHandlers.d.ts.map +1 -0
- package/dist/agent/builtinToolHandlers.js +388 -0
- package/dist/agent/builtinToolHandlers.js.map +1 -0
- package/dist/agent/builtinTools.d.ts +35 -0
- package/dist/agent/builtinTools.d.ts.map +1 -0
- package/dist/agent/builtinTools.js +75 -0
- package/dist/agent/builtinTools.js.map +1 -0
- package/dist/agent/constants.d.ts +67 -0
- package/dist/agent/constants.d.ts.map +1 -0
- package/dist/agent/constants.js +67 -0
- package/dist/agent/constants.js.map +1 -0
- package/dist/agent/contextManager.d.ts +130 -0
- package/dist/agent/contextManager.d.ts.map +1 -0
- package/dist/agent/contextManager.js +287 -0
- package/dist/agent/contextManager.js.map +1 -0
- package/dist/agent/loop.d.ts +288 -0
- package/dist/agent/loop.d.ts.map +1 -0
- package/dist/agent/loop.js +756 -0
- package/dist/agent/loop.js.map +1 -0
- package/dist/agent/managers/autoConfigRefiner.d.ts +39 -0
- package/dist/agent/managers/autoConfigRefiner.d.ts.map +1 -0
- package/dist/agent/managers/autoConfigRefiner.js +150 -0
- package/dist/agent/managers/autoConfigRefiner.js.map +1 -0
- package/dist/agent/managers/configManager.d.ts +114 -0
- package/dist/agent/managers/configManager.d.ts.map +1 -0
- package/dist/agent/managers/configManager.js +186 -0
- package/dist/agent/managers/configManager.js.map +1 -0
- package/dist/agent/managers/insightExtractor.d.ts +141 -0
- package/dist/agent/managers/insightExtractor.d.ts.map +1 -0
- package/dist/agent/managers/insightExtractor.js +420 -0
- package/dist/agent/managers/insightExtractor.js.map +1 -0
- package/dist/agent/managers/memoryAdvisor.d.ts +96 -0
- package/dist/agent/managers/memoryAdvisor.d.ts.map +1 -0
- package/dist/agent/managers/memoryAdvisor.js +198 -0
- package/dist/agent/managers/memoryAdvisor.js.map +1 -0
- package/dist/agent/managers/memoryInspector.d.ts +231 -0
- package/dist/agent/managers/memoryInspector.d.ts.map +1 -0
- package/dist/agent/managers/memoryInspector.js +327 -0
- package/dist/agent/managers/memoryInspector.js.map +1 -0
- package/dist/agent/managers/sessionManager.d.ts +89 -0
- package/dist/agent/managers/sessionManager.d.ts.map +1 -0
- package/dist/agent/managers/sessionManager.js +178 -0
- package/dist/agent/managers/sessionManager.js.map +1 -0
- package/dist/agent/managers/userFactExtractor.d.ts +25 -0
- package/dist/agent/managers/userFactExtractor.d.ts.map +1 -0
- package/dist/agent/managers/userFactExtractor.js +81 -0
- package/dist/agent/managers/userFactExtractor.js.map +1 -0
- package/dist/agent/managers/workProjection.d.ts +117 -0
- package/dist/agent/managers/workProjection.d.ts.map +1 -0
- package/dist/agent/managers/workProjection.js +290 -0
- package/dist/agent/managers/workProjection.js.map +1 -0
- package/dist/agent/messageHistory.d.ts +157 -0
- package/dist/agent/messageHistory.d.ts.map +1 -0
- package/dist/agent/messageHistory.js +288 -0
- package/dist/agent/messageHistory.js.map +1 -0
- package/dist/agent/toolExecutor.d.ts +137 -0
- package/dist/agent/toolExecutor.d.ts.map +1 -0
- package/dist/agent/toolExecutor.js +209 -0
- package/dist/agent/toolExecutor.js.map +1 -0
- package/dist/agent/tracer.d.ts +122 -0
- package/dist/agent/tracer.d.ts.map +1 -0
- package/dist/agent/tracer.js +64 -0
- package/dist/agent/tracer.js.map +1 -0
- package/dist/agent/types.d.ts +98 -0
- package/dist/agent/types.d.ts.map +1 -0
- package/dist/agent/types.js +19 -0
- package/dist/agent/types.js.map +1 -0
- package/dist/config/loader.d.ts +229 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +194 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/eval/evalTypes.d.ts +118 -0
- package/dist/eval/evalTypes.d.ts.map +1 -0
- package/dist/eval/evalTypes.js +102 -0
- package/dist/eval/evalTypes.js.map +1 -0
- package/dist/index.d.ts +61 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +44 -0
- package/dist/index.js.map +1 -0
- package/dist/llm/embedding.d.ts +62 -0
- package/dist/llm/embedding.d.ts.map +1 -0
- package/dist/llm/embedding.js +162 -0
- package/dist/llm/embedding.js.map +1 -0
- package/dist/llm/factory.d.ts +39 -0
- package/dist/llm/factory.d.ts.map +1 -0
- package/dist/llm/factory.js +108 -0
- package/dist/llm/factory.js.map +1 -0
- package/dist/llm/openaiCompatible.d.ts +63 -0
- package/dist/llm/openaiCompatible.d.ts.map +1 -0
- package/dist/llm/openaiCompatible.js +340 -0
- package/dist/llm/openaiCompatible.js.map +1 -0
- package/dist/llm/provider.d.ts +91 -0
- package/dist/llm/provider.d.ts.map +1 -0
- package/dist/llm/provider.js +14 -0
- package/dist/llm/provider.js.map +1 -0
- package/dist/llm/types.d.ts +25 -0
- package/dist/llm/types.d.ts.map +1 -0
- package/dist/llm/types.js +7 -0
- package/dist/llm/types.js.map +1 -0
- package/dist/logging/logger.d.ts +39 -0
- package/dist/logging/logger.d.ts.map +1 -0
- package/dist/logging/logger.js +279 -0
- package/dist/logging/logger.js.map +1 -0
- package/dist/logging/loggerInterface.d.ts +33 -0
- package/dist/logging/loggerInterface.d.ts.map +1 -0
- package/dist/logging/loggerInterface.js +2 -0
- package/dist/logging/loggerInterface.js.map +1 -0
- package/dist/memory/inMemoryRelationStore.d.ts +51 -0
- package/dist/memory/inMemoryRelationStore.d.ts.map +1 -0
- package/dist/memory/inMemoryRelationStore.js +65 -0
- package/dist/memory/inMemoryRelationStore.js.map +1 -0
- package/dist/memory/inMemoryStorage.d.ts +97 -0
- package/dist/memory/inMemoryStorage.d.ts.map +1 -0
- package/dist/memory/inMemoryStorage.js +177 -0
- package/dist/memory/inMemoryStorage.js.map +1 -0
- package/dist/memory/loader.d.ts +49 -0
- package/dist/memory/loader.d.ts.map +1 -0
- package/dist/memory/loader.js +93 -0
- package/dist/memory/loader.js.map +1 -0
- package/dist/memory/projectManager.d.ts +182 -0
- package/dist/memory/projectManager.d.ts.map +1 -0
- package/dist/memory/projectManager.js +441 -0
- package/dist/memory/projectManager.js.map +1 -0
- package/dist/memory/recall.d.ts +77 -0
- package/dist/memory/recall.d.ts.map +1 -0
- package/dist/memory/recall.js +147 -0
- package/dist/memory/recall.js.map +1 -0
- package/dist/memory/relationStore.d.ts +78 -0
- package/dist/memory/relationStore.d.ts.map +1 -0
- package/dist/memory/relationStore.js +2 -0
- package/dist/memory/relationStore.js.map +1 -0
- package/dist/memory/sessionStore.d.ts +84 -0
- package/dist/memory/sessionStore.d.ts.map +1 -0
- package/dist/memory/sessionStore.js +2 -0
- package/dist/memory/sessionStore.js.map +1 -0
- package/dist/memory/storageInterface.d.ts +107 -0
- package/dist/memory/storageInterface.d.ts.map +1 -0
- package/dist/memory/storageInterface.js +2 -0
- package/dist/memory/storageInterface.js.map +1 -0
- package/dist/memory/store.d.ts +50 -0
- package/dist/memory/store.d.ts.map +1 -0
- package/dist/memory/store.js +160 -0
- package/dist/memory/store.js.map +1 -0
- package/dist/memory/types.d.ts +189 -0
- package/dist/memory/types.d.ts.map +1 -0
- package/dist/memory/types.js +230 -0
- package/dist/memory/types.js.map +1 -0
- package/dist/memory/userProfile.d.ts +156 -0
- package/dist/memory/userProfile.d.ts.map +1 -0
- package/dist/memory/userProfile.js +315 -0
- package/dist/memory/userProfile.js.map +1 -0
- package/dist/memory/vectorStore.d.ts +75 -0
- package/dist/memory/vectorStore.d.ts.map +1 -0
- package/dist/memory/vectorStore.js +144 -0
- package/dist/memory/vectorStore.js.map +1 -0
- package/dist/persona/personaManager.d.ts +121 -0
- package/dist/persona/personaManager.d.ts.map +1 -0
- package/dist/persona/personaManager.js +349 -0
- package/dist/persona/personaManager.js.map +1 -0
- package/dist/persona/types.d.ts +32 -0
- package/dist/persona/types.d.ts.map +1 -0
- package/dist/persona/types.js +5 -0
- package/dist/persona/types.js.map +1 -0
- package/dist/security/pathGuard.d.ts +121 -0
- package/dist/security/pathGuard.d.ts.map +1 -0
- package/dist/security/pathGuard.js +276 -0
- package/dist/security/pathGuard.js.map +1 -0
- package/dist/skill/skillManager.d.ts +82 -0
- package/dist/skill/skillManager.d.ts.map +1 -0
- package/dist/skill/skillManager.js +198 -0
- package/dist/skill/skillManager.js.map +1 -0
- package/dist/skill/types.d.ts +28 -0
- package/dist/skill/types.d.ts.map +1 -0
- package/dist/skill/types.js +5 -0
- package/dist/skill/types.js.map +1 -0
- package/dist/utils/errors.d.ts +86 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +143 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/eventEmitter.d.ts +87 -0
- package/dist/utils/eventEmitter.d.ts.map +1 -0
- package/dist/utils/eventEmitter.js +79 -0
- package/dist/utils/eventEmitter.js.map +1 -0
- package/dist/utils/frontmatter.d.ts +24 -0
- package/dist/utils/frontmatter.d.ts.map +1 -0
- package/dist/utils/frontmatter.js +44 -0
- package/dist/utils/frontmatter.js.map +1 -0
- package/dist/utils/json.d.ts +20 -0
- package/dist/utils/json.d.ts.map +1 -0
- package/dist/utils/json.js +65 -0
- package/dist/utils/json.js.map +1 -0
- package/dist/utils/loggerHolder.d.ts +37 -0
- package/dist/utils/loggerHolder.d.ts.map +1 -0
- package/dist/utils/loggerHolder.js +49 -0
- package/dist/utils/loggerHolder.js.map +1 -0
- package/dist/utils/math.d.ts +5 -0
- package/dist/utils/math.d.ts.map +1 -0
- package/dist/utils/math.js +19 -0
- package/dist/utils/math.js.map +1 -0
- package/dist/utils/path.d.ts +28 -0
- package/dist/utils/path.d.ts.map +1 -0
- package/dist/utils/path.js +33 -0
- package/dist/utils/path.js.map +1 -0
- package/dist/utils/safeTimer.d.ts +26 -0
- package/dist/utils/safeTimer.d.ts.map +1 -0
- package/dist/utils/safeTimer.js +49 -0
- package/dist/utils/safeTimer.js.map +1 -0
- package/dist/utils/scanner.d.ts +54 -0
- package/dist/utils/scanner.d.ts.map +1 -0
- package/dist/utils/scanner.js +115 -0
- package/dist/utils/scanner.js.map +1 -0
- package/dist/utils/segmenter.d.ts +30 -0
- package/dist/utils/segmenter.d.ts.map +1 -0
- package/dist/utils/segmenter.js +80 -0
- package/dist/utils/segmenter.js.map +1 -0
- package/dist/utils/strings.d.ts +18 -0
- package/dist/utils/strings.d.ts.map +1 -0
- package/dist/utils/strings.js +25 -0
- package/dist/utils/strings.js.map +1 -0
- package/dist/utils/time.d.ts +23 -0
- package/dist/utils/time.d.ts.map +1 -0
- package/dist/utils/time.js +31 -0
- package/dist/utils/time.js.map +1 -0
- package/dist/utils/toError.d.ts +13 -0
- package/dist/utils/toError.d.ts.map +1 -0
- package/dist/utils/toError.js +22 -0
- package/dist/utils/toError.js.map +1 -0
- package/package.json +73 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/agent/loop.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AutoConfigRefiner — Agent 智能总结接口(模式 3)
|
|
3
|
+
*
|
|
4
|
+
* 从对话中提取配置建议(规则/角色/技能),通过 ConfigManager.onConfigSuggestion 通知宿主。
|
|
5
|
+
*
|
|
6
|
+
* 设计原则:
|
|
7
|
+
* - 使用后台 Provider(setBackgroundProvider 注入),不占用前台对话资源
|
|
8
|
+
* - 无后台 Provider 时降级为启发式规则提取
|
|
9
|
+
* - 每次对话后异步执行,不阻塞主流程
|
|
10
|
+
* - 置信度低于阈值时静默跳过
|
|
11
|
+
*/
|
|
12
|
+
import type { LlmProvider } from '../../llm/provider.js';
|
|
13
|
+
import type { ConfigSuggestion } from '../../agent/managers/configManager.js';
|
|
14
|
+
/** AutoConfigRefiner 配置 */
|
|
15
|
+
export interface AutoConfigRefinerOptions {
|
|
16
|
+
/** 最低置信度阈值(0-1),低于此值的建议被丢弃 */
|
|
17
|
+
minConfidence?: number;
|
|
18
|
+
/** 单次对话最大建议数 */
|
|
19
|
+
maxSuggestions?: number;
|
|
20
|
+
}
|
|
21
|
+
export declare class AutoConfigRefiner {
|
|
22
|
+
private readonly onConfigSuggestion;
|
|
23
|
+
private readonly options;
|
|
24
|
+
private backgroundProvider;
|
|
25
|
+
constructor(onConfigSuggestion: (suggestion: ConfigSuggestion) => void, options?: AutoConfigRefinerOptions);
|
|
26
|
+
/** 注入后台 Provider(由 Agent.setBackgroundProvider 调用) */
|
|
27
|
+
setBackgroundProvider(provider: LlmProvider | null): void;
|
|
28
|
+
/**
|
|
29
|
+
* 分析对话,提取配置建议
|
|
30
|
+
*
|
|
31
|
+
* 在 Agent.postProcess 中异步调用,不阻塞主流程。
|
|
32
|
+
*/
|
|
33
|
+
analyze(userInput: string, assistantContent: string): Promise<void>;
|
|
34
|
+
/** 使用后台 LLM 分析对话 */
|
|
35
|
+
private analyzeWithLlm;
|
|
36
|
+
/** 启发式规则提取(无 LLM 时的降级方案) */
|
|
37
|
+
private analyzeWithHeuristics;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=autoConfigRefiner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autoConfigRefiner.d.ts","sourceRoot":"","sources":["../../../src/agent/managers/autoConfigRefiner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,WAAW,EAAW,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAI1E,2BAA2B;AAC3B,MAAM,WAAW,wBAAwB;IACvC,8BAA8B;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAgBD,qBAAa,iBAAiB;IAK1B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAJrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqC;IAC7D,OAAO,CAAC,kBAAkB,CAA4B;gBAGnC,kBAAkB,EAAE,CAAC,UAAU,EAAE,gBAAgB,KAAK,IAAI,EAC3E,OAAO,CAAC,EAAE,wBAAwB;IAKpC,sDAAsD;IACtD,qBAAqB,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI;IAIzD;;;;OAIG;IACG,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6CzE,oBAAoB;YACN,cAAc;IAqD5B,4BAA4B;IAC5B,OAAO,CAAC,qBAAqB;CAiD9B"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { logger } from '../../logging/logger.js';
|
|
2
|
+
import { parseLlmJson } from '../../utils/json.js';
|
|
3
|
+
const DEFAULT_OPTIONS = {
|
|
4
|
+
minConfidence: 0.6,
|
|
5
|
+
maxSuggestions: 3,
|
|
6
|
+
};
|
|
7
|
+
export class AutoConfigRefiner {
|
|
8
|
+
onConfigSuggestion;
|
|
9
|
+
options;
|
|
10
|
+
backgroundProvider = null;
|
|
11
|
+
constructor(onConfigSuggestion, options) {
|
|
12
|
+
this.onConfigSuggestion = onConfigSuggestion;
|
|
13
|
+
this.options = { ...DEFAULT_OPTIONS, ...options };
|
|
14
|
+
}
|
|
15
|
+
/** 注入后台 Provider(由 Agent.setBackgroundProvider 调用) */
|
|
16
|
+
setBackgroundProvider(provider) {
|
|
17
|
+
this.backgroundProvider = provider;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* 分析对话,提取配置建议
|
|
21
|
+
*
|
|
22
|
+
* 在 Agent.postProcess 中异步调用,不阻塞主流程。
|
|
23
|
+
*/
|
|
24
|
+
async analyze(userInput, assistantContent) {
|
|
25
|
+
// 短对话跳过(信息量不足)
|
|
26
|
+
if (userInput.length < 20 || assistantContent.length < 20) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
let suggestions;
|
|
30
|
+
if (this.backgroundProvider) {
|
|
31
|
+
suggestions = await this.analyzeWithLlm(userInput, assistantContent);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
suggestions = this.analyzeWithHeuristics(userInput);
|
|
35
|
+
}
|
|
36
|
+
// 过滤低置信度 + 限制数量
|
|
37
|
+
const filtered = suggestions
|
|
38
|
+
.filter((s) => s.confidence >= this.options.minConfidence)
|
|
39
|
+
.slice(0, this.options.maxSuggestions);
|
|
40
|
+
for (const raw of filtered) {
|
|
41
|
+
const suggestion = {
|
|
42
|
+
type: raw.type,
|
|
43
|
+
name: raw.name,
|
|
44
|
+
content: raw.content,
|
|
45
|
+
confidence: raw.confidence,
|
|
46
|
+
source: 'auto-config-refiner',
|
|
47
|
+
};
|
|
48
|
+
logger.info({ type: raw.type, name: raw.name, confidence: raw.confidence, reason: raw.reason }, 'AutoConfigRefiner: 提取到配置建议');
|
|
49
|
+
// FD-25: 单条建议回调失败时记日志并继续处理下一条,避免一条失败导致后续全部丢失
|
|
50
|
+
try {
|
|
51
|
+
this.onConfigSuggestion(suggestion);
|
|
52
|
+
}
|
|
53
|
+
catch (err) {
|
|
54
|
+
logger.warn({ err, suggestionName: raw.name, suggestionType: raw.type }, 'AutoConfigRefiner: 单条建议回调失败,跳过该条继续处理');
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/** 使用后台 LLM 分析对话 */
|
|
59
|
+
async analyzeWithLlm(userInput, assistantContent) {
|
|
60
|
+
if (!this.backgroundProvider)
|
|
61
|
+
return [];
|
|
62
|
+
const systemPrompt = `你是一个配置分析助手。分析用户和助手的对话,提取可能的配置建议。
|
|
63
|
+
|
|
64
|
+
规则(rule):用户反复提到的偏好、约束或工作方式
|
|
65
|
+
角色(persona):用户的工作角色或专业领域
|
|
66
|
+
技能(skill):用户经常需要的能力或工具
|
|
67
|
+
|
|
68
|
+
返回 JSON 数组,每个元素包含:
|
|
69
|
+
- type: "rule" | "persona" | "skill"
|
|
70
|
+
- name: 简短名称(2-6字)
|
|
71
|
+
- content: Markdown 格式的详细内容
|
|
72
|
+
- confidence: 0-1 置信度
|
|
73
|
+
- reason: 为什么提出此建议
|
|
74
|
+
|
|
75
|
+
如果没有有价值的建议,返回空数组 []。
|
|
76
|
+
只返回 JSON,不要其他内容。`;
|
|
77
|
+
const messages = [
|
|
78
|
+
{ role: 'system', content: systemPrompt },
|
|
79
|
+
{
|
|
80
|
+
role: 'user',
|
|
81
|
+
content: `用户输入:${userInput.slice(0, 500)}\n\n助手回复:${assistantContent.slice(0, 500)}`,
|
|
82
|
+
},
|
|
83
|
+
];
|
|
84
|
+
try {
|
|
85
|
+
// 收集流式输出
|
|
86
|
+
let fullContent = '';
|
|
87
|
+
for await (const chunk of this.backgroundProvider.chat(messages, {
|
|
88
|
+
temperature: 0.3,
|
|
89
|
+
})) {
|
|
90
|
+
if (chunk.content) {
|
|
91
|
+
fullContent += chunk.content;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
const parsed = parseLlmJson(fullContent || '[]');
|
|
95
|
+
const items = Array.isArray(parsed) ? parsed : parsed?.suggestions ?? [];
|
|
96
|
+
return items.filter((s) => s.type && s.name && s.content && typeof s.confidence === 'number');
|
|
97
|
+
}
|
|
98
|
+
catch (err) {
|
|
99
|
+
logger.warn({ err }, 'AutoConfigRefiner: LLM 分析失败,跳过');
|
|
100
|
+
return [];
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/** 启发式规则提取(无 LLM 时的降级方案) */
|
|
104
|
+
analyzeWithHeuristics(userInput) {
|
|
105
|
+
const suggestions = [];
|
|
106
|
+
const input = userInput.toLowerCase();
|
|
107
|
+
// 检测明确的偏好声明("我喜欢..."、"我习惯..."、"我偏好...")
|
|
108
|
+
const preferencePatterns = [
|
|
109
|
+
/我(?:喜欢|偏好|习惯|常用|一般用)\s*(.{2,20})/gu,
|
|
110
|
+
/(?:always|prefer|usually|typically)\s+(?:use|work with)\s+(.{2,20})/giu,
|
|
111
|
+
];
|
|
112
|
+
for (const pattern of preferencePatterns) {
|
|
113
|
+
const matches = input.matchAll(pattern);
|
|
114
|
+
for (const match of matches) {
|
|
115
|
+
const captured = match[1]?.trim() ?? '';
|
|
116
|
+
const original = match[0] ?? '';
|
|
117
|
+
if (!captured)
|
|
118
|
+
continue;
|
|
119
|
+
suggestions.push({
|
|
120
|
+
type: 'rule',
|
|
121
|
+
name: `偏好-${captured.slice(0, 10)}`,
|
|
122
|
+
content: `用户偏好:${captured}`,
|
|
123
|
+
confidence: 0.65,
|
|
124
|
+
reason: `检测到明确的偏好声明:${original}`,
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
// 检测专业领域关键词
|
|
129
|
+
const domainKeywords = {
|
|
130
|
+
'代码|编程|bug|debug|重构|函数|接口': '程序员助手',
|
|
131
|
+
'设计|UI|UX|原型|交互|视觉': '设计师助手',
|
|
132
|
+
'写作|文案|编辑|文章|内容': '写作助手',
|
|
133
|
+
'数据|分析|报表|统计|指标': '数据分析师',
|
|
134
|
+
};
|
|
135
|
+
for (const [keywordPattern, personaName] of Object.entries(domainKeywords)) {
|
|
136
|
+
const regex = new RegExp(keywordPattern, 'iu');
|
|
137
|
+
if (regex.test(input)) {
|
|
138
|
+
suggestions.push({
|
|
139
|
+
type: 'persona',
|
|
140
|
+
name: personaName,
|
|
141
|
+
content: `专业领域:${personaName}。用户对话中频繁出现相关术语。`,
|
|
142
|
+
confidence: 0.6,
|
|
143
|
+
reason: `检测到${personaName}领域关键词`,
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
return suggestions;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=autoConfigRefiner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autoConfigRefiner.js","sourceRoot":"","sources":["../../../src/agent/managers/autoConfigRefiner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 配置管理器 — 规则/技能注入 + 配置建议持久化
|
|
3
|
+
*
|
|
4
|
+
* 从 Agent 拆分出来,负责:
|
|
5
|
+
* - addRule / addSimpleRule:运行时规则注入(SQLite + System Prompt)
|
|
6
|
+
* - addSkill / addSimpleSkill:运行时技能注入(仅 SkillManager,session-only)
|
|
7
|
+
* - onConfigSuggestion / confirmConfigSuggestion:模式 3 配置建议回调 + 持久化
|
|
8
|
+
*
|
|
9
|
+
* 设计原则:
|
|
10
|
+
* - 独立于 Agent 生命周期,仅依赖 Storage / SkillManager / Loop
|
|
11
|
+
* - 不持有 LLM Provider(纯配置操作)
|
|
12
|
+
*/
|
|
13
|
+
import type { Memory } from '../../memory/types.js';
|
|
14
|
+
import type { IMemoryStorage } from '../../memory/storageInterface.js';
|
|
15
|
+
import type { SkillManager } from '../../skill/skillManager.js';
|
|
16
|
+
/**
|
|
17
|
+
* 配置建议(模式 3 · Agent 智能总结)
|
|
18
|
+
*
|
|
19
|
+
* AutoConfigRefiner 从对话中提取的配置建议,通过 onConfigSuggestion 回调通知宿主。
|
|
20
|
+
* 宿主决定展示方式(桌宠气泡 / CLI 打印 / WebUI 弹窗),
|
|
21
|
+
* 用户确认后调用 confirmConfigSuggestion() 写入配置文件。
|
|
22
|
+
*
|
|
23
|
+
* 与 addRule() 的区别:
|
|
24
|
+
* - addRule() 写入 SQLite(运行时注入,会话级)
|
|
25
|
+
* - confirmConfigSuggestion() 写入配置文件(持久化,重启后依然生效)
|
|
26
|
+
*/
|
|
27
|
+
export interface ConfigSuggestion {
|
|
28
|
+
/** 建议类型 */
|
|
29
|
+
type: 'rule' | 'persona' | 'skill';
|
|
30
|
+
/** 建议名称(如"代码风格"、"TypeScript 偏好") */
|
|
31
|
+
name: string;
|
|
32
|
+
/** 建议内容(Markdown 格式) */
|
|
33
|
+
content: string;
|
|
34
|
+
/** 置信度 0-1,低于阈值时宿主可选择性忽略 */
|
|
35
|
+
confidence: number;
|
|
36
|
+
/** 建议来源(如对话摘要、用户画像分析) */
|
|
37
|
+
source?: string;
|
|
38
|
+
}
|
|
39
|
+
/** 配置建议回调函数类型 */
|
|
40
|
+
export type ConfigSuggestionHandler = (suggestion: ConfigSuggestion) => void;
|
|
41
|
+
export declare class ConfigManager {
|
|
42
|
+
private readonly index;
|
|
43
|
+
private readonly skillManager;
|
|
44
|
+
private readonly injectSystemMessage;
|
|
45
|
+
private readonly writeConfigFile?;
|
|
46
|
+
/** 配置建议回调(模式 3) */
|
|
47
|
+
private suggestionHandler;
|
|
48
|
+
/**
|
|
49
|
+
* @param index - 记忆存储(规则写入 SQLite)
|
|
50
|
+
* @param skillManager - 技能管理器(运行时注入技能)
|
|
51
|
+
* @param injectSystemMessage - 注入 system 消息的回调(来自 AgentLoop)
|
|
52
|
+
* @param writeConfigFile - 写入配置文件的回调(来自 Agent,解耦 FileStore 依赖)
|
|
53
|
+
*/
|
|
54
|
+
constructor(index: IMemoryStorage, skillManager: SkillManager, injectSystemMessage: (message: string) => void, writeConfigFile?: ((memory: Memory) => Promise<void>) | undefined);
|
|
55
|
+
/**
|
|
56
|
+
* 注册配置建议回调(模式 3)
|
|
57
|
+
*
|
|
58
|
+
* 宿主项目通过此方法注册回调,当 AutoConfigRefiner 从对话中
|
|
59
|
+
* 提取到配置建议时,通过此回调通知宿主。
|
|
60
|
+
*/
|
|
61
|
+
onConfigSuggestion(handler: ConfigSuggestionHandler): void;
|
|
62
|
+
/** 获取当前注册的配置建议回调 */
|
|
63
|
+
get suggestionCallback(): ConfigSuggestionHandler | null;
|
|
64
|
+
/**
|
|
65
|
+
* 确认配置建议并写入配置文件(模式 3)
|
|
66
|
+
*
|
|
67
|
+
* 用户确认配置建议后,宿主调用此方法将建议持久化到 configDir/ 目录。
|
|
68
|
+
* 写入的是配置文件(真理源),下次启动时 MemoryLoader 自动扫描加载到 SQLite。
|
|
69
|
+
*
|
|
70
|
+
* 与 addRule() 的关键区别:
|
|
71
|
+
* - addRule() → 写入 SQLite(运行时注入,会话级,重启后需重新注入)
|
|
72
|
+
* - confirmConfigSuggestion() → 写入配置文件(持久化,重启后自动加载)
|
|
73
|
+
*/
|
|
74
|
+
confirmConfigSuggestion(suggestion: ConfigSuggestion): Promise<void>;
|
|
75
|
+
/**
|
|
76
|
+
* 新增项目规则记忆(Q-701 · v1.1)
|
|
77
|
+
*
|
|
78
|
+
* 宿主项目可通过此 API 在运行时动态注入规则记忆。
|
|
79
|
+
* 规则写入 SQLite 索引后,重启时由 bootstrap 自动召回。
|
|
80
|
+
* 当前轮次以 system 消息注入 AgentLoop。
|
|
81
|
+
*/
|
|
82
|
+
addRule(memory: Memory): Promise<void>;
|
|
83
|
+
/**
|
|
84
|
+
* 新增项目规则的便捷方法
|
|
85
|
+
*
|
|
86
|
+
* 宿主程序只需提供 name + content 两个业务字段,
|
|
87
|
+
* 内部自动填充 id / source / createdAt / accessedAt / score 等字段。
|
|
88
|
+
*/
|
|
89
|
+
addSimpleRule(name: string, content: string): Promise<void>;
|
|
90
|
+
/**
|
|
91
|
+
* 运行时动态注入技能(session-only)
|
|
92
|
+
*
|
|
93
|
+
* 技能在 Skill 的设计中属于"配置型记忆"——
|
|
94
|
+
* 由 SkillManager 在内存中管理,通过关键词匹配触发,
|
|
95
|
+
* 同时写入 SQLite 索引(source: skill)以支持 recall() 检索。
|
|
96
|
+
*
|
|
97
|
+
* 路径一(文件加载):SkillManager.load() 扫描 configDir/skills/*.md → 内存 + SQLite
|
|
98
|
+
* 路径二(运行时注入):addSkill() → SkillManager.register() → 内存 + SQLite
|
|
99
|
+
* 路径三(持久化新增):config.confirmConfigSuggestion({type:'skill',...}) → 写配置文件 → 下次 load() 自动加载
|
|
100
|
+
*
|
|
101
|
+
* 注意:运行时注入的技能仅在当前会话内生效,重启后需重新注入。
|
|
102
|
+
* 如需跨会话持久化,宿主应调用 config.confirmConfigSuggestion() 写入配置文件。
|
|
103
|
+
*/
|
|
104
|
+
addSkill(memory: Memory): Promise<void>;
|
|
105
|
+
/**
|
|
106
|
+
* 运行时注入技能的便捷方法(session-only)
|
|
107
|
+
*
|
|
108
|
+
* 宿主程序只需提供 name + content 两个业务字段,
|
|
109
|
+
* 内部自动填充 id / source / createdAt / accessedAt / score。
|
|
110
|
+
* 注入后仅在当前会话生效,持久化需调用 config.confirmConfigSuggestion()。
|
|
111
|
+
*/
|
|
112
|
+
addSimpleSkill(name: string, content: string, keywords?: string[]): Promise<void>;
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=configManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configManager.d.ts","sourceRoot":"","sources":["../../../src/agent/managers/configManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAM5D;;;;;;;;;;GAUG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW;IACX,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IACnC,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,iBAAiB;AACjB,MAAM,MAAM,uBAAuB,GAAG,CAAC,UAAU,EAAE,gBAAgB,KAAK,IAAI,CAAC;AAI7E,qBAAa,aAAa;IAWtB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC;IAbnC,mBAAmB;IACnB,OAAO,CAAC,iBAAiB,CAAwC;IAEjE;;;;;OAKG;gBAEgB,KAAK,EAAE,cAAc,EACrB,YAAY,EAAE,YAAY,EAC1B,mBAAmB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAC9C,eAAe,CAAC,GAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,aAAA;IAKtE;;;;;OAKG;IACH,kBAAkB,CAAC,OAAO,EAAE,uBAAuB,GAAG,IAAI;IAI1D,oBAAoB;IACpB,IAAI,kBAAkB,IAAI,uBAAuB,GAAG,IAAI,CAEvD;IAED;;;;;;;;;OASG;IACG,uBAAuB,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IA0D1E;;;;;;OAMG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAe5C;;;;;OAKG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBjE;;;;;;;;;;;;;OAaG;IACG,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB7C;;;;;;OAMG;IACG,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAc5F"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import { SOURCE_LABELS } from '../../memory/types.js';
|
|
2
|
+
import { configError, toError } from '../../utils/errors.js';
|
|
3
|
+
import { logger } from '../../logging/logger.js';
|
|
4
|
+
// ─── 类 ──────────────────────────────────────────────────
|
|
5
|
+
export class ConfigManager {
|
|
6
|
+
index;
|
|
7
|
+
skillManager;
|
|
8
|
+
injectSystemMessage;
|
|
9
|
+
writeConfigFile;
|
|
10
|
+
/** 配置建议回调(模式 3) */
|
|
11
|
+
suggestionHandler = null;
|
|
12
|
+
/**
|
|
13
|
+
* @param index - 记忆存储(规则写入 SQLite)
|
|
14
|
+
* @param skillManager - 技能管理器(运行时注入技能)
|
|
15
|
+
* @param injectSystemMessage - 注入 system 消息的回调(来自 AgentLoop)
|
|
16
|
+
* @param writeConfigFile - 写入配置文件的回调(来自 Agent,解耦 FileStore 依赖)
|
|
17
|
+
*/
|
|
18
|
+
constructor(index, skillManager, injectSystemMessage, writeConfigFile) {
|
|
19
|
+
this.index = index;
|
|
20
|
+
this.skillManager = skillManager;
|
|
21
|
+
this.injectSystemMessage = injectSystemMessage;
|
|
22
|
+
this.writeConfigFile = writeConfigFile;
|
|
23
|
+
}
|
|
24
|
+
// ─── 配置建议 ─────────────────────────────────────────
|
|
25
|
+
/**
|
|
26
|
+
* 注册配置建议回调(模式 3)
|
|
27
|
+
*
|
|
28
|
+
* 宿主项目通过此方法注册回调,当 AutoConfigRefiner 从对话中
|
|
29
|
+
* 提取到配置建议时,通过此回调通知宿主。
|
|
30
|
+
*/
|
|
31
|
+
onConfigSuggestion(handler) {
|
|
32
|
+
this.suggestionHandler = handler;
|
|
33
|
+
}
|
|
34
|
+
/** 获取当前注册的配置建议回调 */
|
|
35
|
+
get suggestionCallback() {
|
|
36
|
+
return this.suggestionHandler;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* 确认配置建议并写入配置文件(模式 3)
|
|
40
|
+
*
|
|
41
|
+
* 用户确认配置建议后,宿主调用此方法将建议持久化到 configDir/ 目录。
|
|
42
|
+
* 写入的是配置文件(真理源),下次启动时 MemoryLoader 自动扫描加载到 SQLite。
|
|
43
|
+
*
|
|
44
|
+
* 与 addRule() 的关键区别:
|
|
45
|
+
* - addRule() → 写入 SQLite(运行时注入,会话级,重启后需重新注入)
|
|
46
|
+
* - confirmConfigSuggestion() → 写入配置文件(持久化,重启后自动加载)
|
|
47
|
+
*/
|
|
48
|
+
async confirmConfigSuggestion(suggestion) {
|
|
49
|
+
if (!this.writeConfigFile) {
|
|
50
|
+
throw configError('writeConfigFile 未设置', '模式 3 需要注入配置文件写入回调才能持久化', [
|
|
51
|
+
'在 Agent 构造时传入 configDir 参数(Agent 会自动创建 FileStore 并注入回调)',
|
|
52
|
+
]);
|
|
53
|
+
}
|
|
54
|
+
// 根据建议类型映射到 source 标签
|
|
55
|
+
const sourceMap = {
|
|
56
|
+
rule: SOURCE_LABELS.RULE,
|
|
57
|
+
persona: SOURCE_LABELS.PERSONA,
|
|
58
|
+
skill: SOURCE_LABELS.SKILL,
|
|
59
|
+
};
|
|
60
|
+
const source = sourceMap[suggestion.type];
|
|
61
|
+
// 构造记忆对象并写入配置文件(真理源)
|
|
62
|
+
// 不写入 SQLite——遵守"配置文件是真理源"约束
|
|
63
|
+
const now = new Date().toISOString();
|
|
64
|
+
const memory = {
|
|
65
|
+
id: `${source}:${suggestion.name}`,
|
|
66
|
+
content: suggestion.content,
|
|
67
|
+
source,
|
|
68
|
+
name: suggestion.name,
|
|
69
|
+
createdAt: now,
|
|
70
|
+
accessedAt: now,
|
|
71
|
+
score: suggestion.confidence,
|
|
72
|
+
};
|
|
73
|
+
// 包裹错误处理:磁盘满/权限不足/路径越界等异常转为友好的 configError
|
|
74
|
+
try {
|
|
75
|
+
await this.writeConfigFile(memory);
|
|
76
|
+
}
|
|
77
|
+
catch (err) {
|
|
78
|
+
const e = toError(err);
|
|
79
|
+
throw configError('配置文件写入失败', `source=${source} name=${suggestion.name} 错误:${e.message}`, [
|
|
80
|
+
'检查 configDir 路径是否存在且可写',
|
|
81
|
+
'确认磁盘空间充足',
|
|
82
|
+
'确认进程对配置目录有写权限',
|
|
83
|
+
], e);
|
|
84
|
+
}
|
|
85
|
+
// 如果是规则,立即注入到 AgentLoop(当前会话生效,重启后由配置文件自动加载)
|
|
86
|
+
if (suggestion.type === 'rule') {
|
|
87
|
+
const rulePrompt = `【项目规则】${suggestion.name}\n${suggestion.content}`;
|
|
88
|
+
this.injectSystemMessage(rulePrompt);
|
|
89
|
+
}
|
|
90
|
+
logger.info({ type: suggestion.type, name: suggestion.name, confidence: suggestion.confidence }, '配置建议已确认并写入配置文件');
|
|
91
|
+
}
|
|
92
|
+
// ─── 规则注入 ─────────────────────────────────────────
|
|
93
|
+
/**
|
|
94
|
+
* 新增项目规则记忆(Q-701 · v1.1)
|
|
95
|
+
*
|
|
96
|
+
* 宿主项目可通过此 API 在运行时动态注入规则记忆。
|
|
97
|
+
* 规则写入 SQLite 索引后,重启时由 bootstrap 自动召回。
|
|
98
|
+
* 当前轮次以 system 消息注入 AgentLoop。
|
|
99
|
+
*/
|
|
100
|
+
async addRule(memory) {
|
|
101
|
+
if (memory.source !== SOURCE_LABELS.RULE) {
|
|
102
|
+
throw configError('无效来源', `addRule 只接受 source='rule',收到 '${memory.source}'`, [
|
|
103
|
+
'使用 SOURCE_LABELS.RULE 作为 source 字段',
|
|
104
|
+
]);
|
|
105
|
+
}
|
|
106
|
+
this.index.upsert(memory);
|
|
107
|
+
const rulePrompt = `【项目规则】${memory.name}\n${memory.content}`;
|
|
108
|
+
this.injectSystemMessage(rulePrompt);
|
|
109
|
+
logger.info({ name: memory.name, source: memory.source }, '项目规则已注入');
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* 新增项目规则的便捷方法
|
|
113
|
+
*
|
|
114
|
+
* 宿主程序只需提供 name + content 两个业务字段,
|
|
115
|
+
* 内部自动填充 id / source / createdAt / accessedAt / score 等字段。
|
|
116
|
+
*/
|
|
117
|
+
async addSimpleRule(name, content) {
|
|
118
|
+
const now = new Date().toISOString();
|
|
119
|
+
const memory = {
|
|
120
|
+
id: `rule:${name}`,
|
|
121
|
+
content,
|
|
122
|
+
source: SOURCE_LABELS.RULE,
|
|
123
|
+
name,
|
|
124
|
+
createdAt: now,
|
|
125
|
+
accessedAt: now,
|
|
126
|
+
score: 0.8,
|
|
127
|
+
};
|
|
128
|
+
await this.addRule(memory);
|
|
129
|
+
}
|
|
130
|
+
// ─── 技能注入 ─────────────────────────────────────────
|
|
131
|
+
/**
|
|
132
|
+
* 运行时动态注入技能(session-only)
|
|
133
|
+
*
|
|
134
|
+
* 技能在 Skill 的设计中属于"配置型记忆"——
|
|
135
|
+
* 由 SkillManager 在内存中管理,通过关键词匹配触发,
|
|
136
|
+
* 同时写入 SQLite 索引(source: skill)以支持 recall() 检索。
|
|
137
|
+
*
|
|
138
|
+
* 路径一(文件加载):SkillManager.load() 扫描 configDir/skills/*.md → 内存 + SQLite
|
|
139
|
+
* 路径二(运行时注入):addSkill() → SkillManager.register() → 内存 + SQLite
|
|
140
|
+
* 路径三(持久化新增):config.confirmConfigSuggestion({type:'skill',...}) → 写配置文件 → 下次 load() 自动加载
|
|
141
|
+
*
|
|
142
|
+
* 注意:运行时注入的技能仅在当前会话内生效,重启后需重新注入。
|
|
143
|
+
* 如需跨会话持久化,宿主应调用 config.confirmConfigSuggestion() 写入配置文件。
|
|
144
|
+
*/
|
|
145
|
+
async addSkill(memory) {
|
|
146
|
+
if (memory.source !== SOURCE_LABELS.SKILL) {
|
|
147
|
+
throw configError('无效来源', `addSkill 只接受 source='skill',收到 '${memory.source}'`, [
|
|
148
|
+
'使用 SOURCE_LABELS.SKILL 作为 source 字段',
|
|
149
|
+
]);
|
|
150
|
+
}
|
|
151
|
+
// 写入 SQLite 索引(遵循"万物皆记忆"——与 PersonaManager 一致)
|
|
152
|
+
this.index.upsert(memory);
|
|
153
|
+
// 同时注册到 SkillManager(内存缓存,用于关键词匹配)
|
|
154
|
+
this.skillManager.register({
|
|
155
|
+
name: memory.name,
|
|
156
|
+
keywords: [],
|
|
157
|
+
content: memory.content,
|
|
158
|
+
description: memory.content.slice(0, 80),
|
|
159
|
+
filePath: '',
|
|
160
|
+
layer: 'agent',
|
|
161
|
+
});
|
|
162
|
+
logger.info({ name: memory.name }, '技能已注入');
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* 运行时注入技能的便捷方法(session-only)
|
|
166
|
+
*
|
|
167
|
+
* 宿主程序只需提供 name + content 两个业务字段,
|
|
168
|
+
* 内部自动填充 id / source / createdAt / accessedAt / score。
|
|
169
|
+
* 注入后仅在当前会话生效,持久化需调用 config.confirmConfigSuggestion()。
|
|
170
|
+
*/
|
|
171
|
+
async addSimpleSkill(name, content, keywords = []) {
|
|
172
|
+
void keywords; // 基元驱动模型下关键词暂不存储到 Memory,由 SkillManager 管理
|
|
173
|
+
const now = new Date().toISOString();
|
|
174
|
+
const memory = {
|
|
175
|
+
id: `skill:${name}`,
|
|
176
|
+
content,
|
|
177
|
+
source: SOURCE_LABELS.SKILL,
|
|
178
|
+
name,
|
|
179
|
+
createdAt: now,
|
|
180
|
+
accessedAt: now,
|
|
181
|
+
score: 0.7,
|
|
182
|
+
};
|
|
183
|
+
await this.addSkill(memory);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=configManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configManager.js","sourceRoot":"","sources":["../../../src/agent/managers/configManager.ts"],"names":[],"mappings":"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"}
|