@zhin.js/ai 1.0.0 → 1.0.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.
Files changed (94) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +131 -497
  3. package/lib/agent.d.ts +54 -6
  4. package/lib/agent.d.ts.map +1 -1
  5. package/lib/agent.js +468 -116
  6. package/lib/agent.js.map +1 -1
  7. package/lib/compaction.d.ts +132 -0
  8. package/lib/compaction.d.ts.map +1 -0
  9. package/lib/compaction.js +370 -0
  10. package/lib/compaction.js.map +1 -0
  11. package/lib/context-manager.d.ts.map +1 -1
  12. package/lib/context-manager.js +10 -3
  13. package/lib/context-manager.js.map +1 -1
  14. package/lib/conversation-memory.d.ts +192 -0
  15. package/lib/conversation-memory.d.ts.map +1 -0
  16. package/lib/conversation-memory.js +619 -0
  17. package/lib/conversation-memory.js.map +1 -0
  18. package/lib/index.d.ts +25 -163
  19. package/lib/index.d.ts.map +1 -1
  20. package/lib/index.js +24 -1122
  21. package/lib/index.js.map +1 -1
  22. package/lib/output.d.ts +93 -0
  23. package/lib/output.d.ts.map +1 -0
  24. package/lib/output.js +176 -0
  25. package/lib/output.js.map +1 -0
  26. package/lib/providers/anthropic.d.ts +7 -0
  27. package/lib/providers/anthropic.d.ts.map +1 -1
  28. package/lib/providers/anthropic.js +5 -0
  29. package/lib/providers/anthropic.js.map +1 -1
  30. package/lib/providers/ollama.d.ts +10 -0
  31. package/lib/providers/ollama.d.ts.map +1 -1
  32. package/lib/providers/ollama.js +19 -4
  33. package/lib/providers/ollama.js.map +1 -1
  34. package/lib/providers/openai.d.ts +7 -0
  35. package/lib/providers/openai.d.ts.map +1 -1
  36. package/lib/providers/openai.js +11 -0
  37. package/lib/providers/openai.js.map +1 -1
  38. package/lib/rate-limiter.d.ts +38 -0
  39. package/lib/rate-limiter.d.ts.map +1 -0
  40. package/lib/rate-limiter.js +86 -0
  41. package/lib/rate-limiter.js.map +1 -0
  42. package/lib/session.d.ts +7 -0
  43. package/lib/session.d.ts.map +1 -1
  44. package/lib/session.js +47 -18
  45. package/lib/session.js.map +1 -1
  46. package/lib/storage.d.ts +68 -0
  47. package/lib/storage.d.ts.map +1 -0
  48. package/lib/storage.js +105 -0
  49. package/lib/storage.js.map +1 -0
  50. package/lib/tone-detector.d.ts +19 -0
  51. package/lib/tone-detector.d.ts.map +1 -0
  52. package/lib/tone-detector.js +72 -0
  53. package/lib/tone-detector.js.map +1 -0
  54. package/lib/types.d.ts +84 -8
  55. package/lib/types.d.ts.map +1 -1
  56. package/package.json +13 -42
  57. package/src/agent.ts +518 -135
  58. package/src/compaction.ts +529 -0
  59. package/src/context-manager.ts +10 -9
  60. package/src/conversation-memory.ts +816 -0
  61. package/src/index.ts +121 -1406
  62. package/src/output.ts +261 -0
  63. package/src/providers/anthropic.ts +4 -0
  64. package/src/providers/ollama.ts +23 -4
  65. package/src/providers/openai.ts +8 -1
  66. package/src/rate-limiter.ts +129 -0
  67. package/src/session.ts +47 -18
  68. package/src/storage.ts +135 -0
  69. package/src/tone-detector.ts +89 -0
  70. package/src/types.ts +95 -6
  71. package/tests/agent.test.ts +123 -70
  72. package/tests/compaction.test.ts +310 -0
  73. package/tests/context-manager.test.ts +73 -47
  74. package/tests/conversation-memory.test.ts +128 -0
  75. package/tests/output.test.ts +128 -0
  76. package/tests/providers.test.ts +574 -0
  77. package/tests/rate-limiter.test.ts +108 -0
  78. package/tests/session.test.ts +139 -48
  79. package/tests/setup.ts +82 -240
  80. package/tests/storage.test.ts +224 -0
  81. package/tests/tone-detector.test.ts +80 -0
  82. package/tsconfig.json +4 -5
  83. package/vitest.setup.ts +1 -0
  84. package/TOOLS.md +0 -294
  85. package/lib/tools.d.ts +0 -45
  86. package/lib/tools.d.ts.map +0 -1
  87. package/lib/tools.js +0 -194
  88. package/lib/tools.js.map +0 -1
  89. package/src/tools.ts +0 -205
  90. package/tests/ai-trigger.test.ts +0 -369
  91. package/tests/integration.test.ts +0 -596
  92. package/tests/providers.integration.test.ts +0 -227
  93. package/tests/tool.test.ts +0 -800
  94. package/tests/tools-builtin.test.ts +0 -346
@@ -8,7 +8,7 @@
8
8
  * - 智能总结,保持上下文简洁
9
9
  * - 支持多平台、多场景
10
10
  */
11
- import { Logger } from '@zhin.js/core';
11
+ import { Logger } from '@zhin.js/logger';
12
12
  const logger = new Logger(null, 'ContextManager');
13
13
  // ============================================================================
14
14
  // 数据库模型定义
@@ -84,7 +84,11 @@ export class ContextManager {
84
84
  async getRecentMessages(sceneId, limit = this.config.maxRecentMessages) {
85
85
  try {
86
86
  // 查询最近的消息,按时间倒序
87
- const messages = await this.messageModel.select({ scene_id: sceneId }, { orderBy: { time: 'desc' }, limit });
87
+ const messages = await this.messageModel
88
+ .select()
89
+ .where({ scene_id: sceneId })
90
+ .orderBy('time', 'DESC')
91
+ .limit(limit);
88
92
  // 反转为时间正序
89
93
  return messages.reverse();
90
94
  }
@@ -98,7 +102,10 @@ export class ContextManager {
98
102
  */
99
103
  async getSummaries(sceneId) {
100
104
  try {
101
- const summaries = await this.summaryModel.select({ scene_id: sceneId }, { orderBy: { created_at: 'asc' } });
105
+ const summaries = await this.summaryModel
106
+ .select()
107
+ .where({ scene_id: sceneId })
108
+ .orderBy('created_at', 'ASC');
102
109
  return summaries;
103
110
  }
104
111
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"context-manager.js","sourceRoot":"","sources":["../src/context-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-manager.js","sourceRoot":"","sources":["../src/context-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,192 @@
1
+ /**
2
+ * ConversationMemory — 基于数据库的会话记忆(话题感知 + 链式摘要)
3
+ *
4
+ * 两张表分离存储:
5
+ *
6
+ * ai_messages 表(逐条记录):
7
+ * ┌──────────────────────────────────────────────────────────┐
8
+ * │ session_id | role | content | round | time │
9
+ * │ s1 | user | 你好 | 1 | ... │
10
+ * │ s1 | assistant | 你好呀! | 1 | ... │
11
+ * │ ... | ... | ... | ... | ... │
12
+ * └──────────────────────────────────────────────────────────┘
13
+ *
14
+ * ai_summaries 表(链式摘要):
15
+ * ┌────────────────────────────────────────────────────────────────────┐
16
+ * │ id | session_id | parent_id | from_round | to_round | summary │
17
+ * │ 1 | s1 | null | 1 | 7 | 用户讨论了… │
18
+ * │ 2 | s1 | 1 | 8 | 15 | 之前...又… │
19
+ * └────────────────────────────────────────────────────────────────────┘
20
+ *
21
+ * 摘要触发规则:
22
+ * 1. 检测到话题切换(当前消息与最近消息的关键词重合度低)
23
+ * 2. 且上一个话题持续 ≥ minTopicRounds 轮
24
+ * → 异步生成摘要,覆盖上一话题的全部消息
25
+ *
26
+ * 上下文构建规则:
27
+ * 1. 取最新 summary + 最近 slidingWindowSize 轮消息(滑动窗口)
28
+ * 2. 检查连续性:summary.to_round === window第一条round - 1
29
+ * → 连续:[summary] + [window]
30
+ * → 不连续:丢弃 summary,仅用 [window]
31
+ */
32
+ import type { AIProvider, ChatMessage } from './types.js';
33
+ /** ai_messages 表结构 */
34
+ export declare const AI_MESSAGE_MODEL: {
35
+ session_id: {
36
+ type: "text";
37
+ nullable: boolean;
38
+ };
39
+ role: {
40
+ type: "text";
41
+ nullable: boolean;
42
+ };
43
+ content: {
44
+ type: "text";
45
+ nullable: boolean;
46
+ };
47
+ round: {
48
+ type: "integer";
49
+ nullable: boolean;
50
+ };
51
+ created_at: {
52
+ type: "integer";
53
+ default: number;
54
+ };
55
+ };
56
+ /** ai_summaries 表结构(链式) */
57
+ export declare const AI_SUMMARY_MODEL: {
58
+ session_id: {
59
+ type: "text";
60
+ nullable: boolean;
61
+ };
62
+ parent_id: {
63
+ type: "integer";
64
+ nullable: boolean;
65
+ };
66
+ from_round: {
67
+ type: "integer";
68
+ nullable: boolean;
69
+ };
70
+ to_round: {
71
+ type: "integer";
72
+ nullable: boolean;
73
+ };
74
+ summary: {
75
+ type: "text";
76
+ nullable: boolean;
77
+ };
78
+ created_at: {
79
+ type: "integer";
80
+ default: number;
81
+ };
82
+ };
83
+ /**
84
+ * 数据库模型接口(与 RelatedModel 的链式查询 API 对齐)
85
+ *
86
+ * select(...fields) → Selection (thenable, 支持 .where().orderBy().limit())
87
+ * create(data) → Promise<any>
88
+ */
89
+ interface DbModel {
90
+ select(...fields: string[]): any;
91
+ create(data: Record<string, any>): Promise<any>;
92
+ }
93
+ export interface ConversationMemoryConfig {
94
+ /** 一个话题至少持续多少轮才触发摘要(默认 5) */
95
+ minTopicRounds?: number;
96
+ /** 滑动窗口大小:最近 N 轮消息(默认 5) */
97
+ slidingWindowSize?: number;
98
+ /** 话题切换检测阈值(0-1,值越低越敏感,默认 0.15) */
99
+ topicChangeThreshold?: number;
100
+ }
101
+ export declare class ConversationMemory {
102
+ private store;
103
+ private provider;
104
+ private config;
105
+ private summarizing;
106
+ /** per-session 话题跟踪 */
107
+ private topicStates;
108
+ /** per-session 轮次缓存(避免每次查数据库) */
109
+ private roundCache;
110
+ /** 各 session 最后活跃时间(用于淘汰) */
111
+ private lastAccess;
112
+ /** 内存缓存上限:超过此数量时淘汰过期条目 */
113
+ private static readonly MAX_TRACKED_SESSIONS;
114
+ /** 缓存过期时间:24 小时未访问即淘汰 */
115
+ private static readonly SESSION_CACHE_TTL;
116
+ constructor(config?: ConversationMemoryConfig);
117
+ setProvider(provider: AIProvider): void;
118
+ upgradeToDatabase(msgModel: DbModel, sumModel: DbModel): void;
119
+ /**
120
+ * 保存一轮对话,并检测话题切换来触发摘要
121
+ */
122
+ saveRound(sessionId: string, userContent: string, assistantContent: string): Promise<void>;
123
+ /**
124
+ * 话题检测流程(全程异步,不阻塞对话):
125
+ *
126
+ * 1. 短消息(token ≤ 3)→ 跳过检测,视为延续话题
127
+ * 2. Jaccard 快检 → 高相似(≥ 0.5) → 肯定同话题,跳过 LLM
128
+ * 3. Jaccard 不确定(< 0.5) → 调 LLM 裁决
129
+ * 4. LLM 判定切换 + 旧话题 ≥ minTopicRounds → 触发摘要
130
+ */
131
+ private handleTopicAndSummary;
132
+ /** 更新话题状态(同话题情况) */
133
+ private updateTopicState;
134
+ /**
135
+ * 调用 LLM 判断话题是否切换
136
+ *
137
+ * 输入: 最近几条用户消息 + 当前用户消息
138
+ * 输出: true = 话题切换, false = 同话题
139
+ */
140
+ private detectTopicChangeByLLM;
141
+ /**
142
+ * 异步生成链式摘要(不阻塞对话)
143
+ */
144
+ private generateSummaryAsync;
145
+ /**
146
+ * 构建 LLM 上下文消息列表
147
+ *
148
+ * 规则:
149
+ * 1. 取滑动窗口(最近 slidingWindowSize 轮)
150
+ * 2. 取最新 summary
151
+ * 3. 检查连续性:summary.to_round === window第一轮 - 1
152
+ * → 连续:[summary] + [window 消息]
153
+ * → 不连续:仅 [window 消息]
154
+ */
155
+ buildContext(sessionId: string): Promise<ChatMessage[]>;
156
+ private callLLMSummarize;
157
+ searchMessages(sessionId: string, keyword: string, limit?: number): Promise<{
158
+ round: number;
159
+ role: string;
160
+ content: string;
161
+ time: number;
162
+ }[]>;
163
+ getMessagesByRound(sessionId: string, fromRound: number, toRound: number): Promise<{
164
+ round: number;
165
+ role: string;
166
+ content: string;
167
+ time: number;
168
+ }[]>;
169
+ getCurrentRound(sessionId: string): Promise<number>;
170
+ traceByKeyword(sessionId: string, keyword: string, limit?: number): Promise<{
171
+ summary: {
172
+ id: number;
173
+ fromRound: number;
174
+ toRound: number;
175
+ summary: string;
176
+ } | null;
177
+ messages: {
178
+ round: number;
179
+ role: string;
180
+ content: string;
181
+ time: number;
182
+ }[];
183
+ }>;
184
+ /**
185
+ * 淘汰长时间未访问的 session 缓存,防止 topicStates/roundCache 无限增长。
186
+ * 触发条件:Map size 超过 MAX_TRACKED_SESSIONS。
187
+ */
188
+ private pruneStaleSessionCaches;
189
+ dispose(): void;
190
+ }
191
+ export {};
192
+ //# sourceMappingURL=conversation-memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation-memory.d.ts","sourceRoot":"","sources":["../src/conversation-memory.ts"],"names":[],"mappings":"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"}