@cicctencent/agent-core 0.1.18 → 0.1.20
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/README.md +70 -1
- package/dist/cjs/agent/engine.d.ts +23 -0
- package/dist/cjs/agent/engine.d.ts.map +1 -1
- package/dist/cjs/agent/engine.js +88 -9
- package/dist/cjs/agent/engine.js.map +1 -1
- package/dist/cjs/agent/history-manager.d.ts +66 -1
- package/dist/cjs/agent/history-manager.d.ts.map +1 -1
- package/dist/cjs/agent/history-manager.js +232 -0
- package/dist/cjs/agent/history-manager.js.map +1 -1
- package/dist/cjs/agent/llm-caller.d.ts +4 -1
- package/dist/cjs/agent/llm-caller.d.ts.map +1 -1
- package/dist/cjs/agent/llm-caller.js +25 -19
- package/dist/cjs/agent/llm-caller.js.map +1 -1
- package/dist/cjs/agent/profile-loader.d.ts +56 -0
- package/dist/cjs/agent/profile-loader.d.ts.map +1 -0
- package/dist/cjs/agent/profile-loader.js +145 -0
- package/dist/cjs/agent/profile-loader.js.map +1 -0
- package/dist/cjs/agent/types.d.ts +32 -3
- package/dist/cjs/agent/types.d.ts.map +1 -1
- package/dist/cjs/agent/types.js.map +1 -1
- package/dist/cjs/calendar/types.d.ts +41 -0
- package/dist/cjs/calendar/types.d.ts.map +1 -0
- package/dist/cjs/calendar/types.js +6 -0
- package/dist/cjs/calendar/types.js.map +1 -0
- package/dist/cjs/context/types.d.ts +3 -3
- package/dist/cjs/context/types.d.ts.map +1 -1
- package/dist/cjs/email/types.d.ts +46 -0
- package/dist/cjs/email/types.d.ts.map +1 -0
- package/dist/cjs/email/types.js +6 -0
- package/dist/cjs/email/types.js.map +1 -0
- package/dist/cjs/index.d.ts +28 -3
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +42 -11
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/kb/in-memory-kb.d.ts +29 -0
- package/dist/cjs/kb/in-memory-kb.d.ts.map +1 -0
- package/dist/cjs/kb/in-memory-kb.js +210 -0
- package/dist/cjs/kb/in-memory-kb.js.map +1 -0
- package/dist/cjs/kb/rag-middleware.d.ts +31 -0
- package/dist/cjs/kb/rag-middleware.d.ts.map +1 -0
- package/dist/cjs/kb/rag-middleware.js +94 -0
- package/dist/cjs/kb/rag-middleware.js.map +1 -0
- package/dist/cjs/kb/types.d.ts +63 -0
- package/dist/cjs/kb/types.d.ts.map +1 -0
- package/dist/cjs/kb/types.js +6 -0
- package/dist/cjs/kb/types.js.map +1 -0
- package/dist/cjs/llm/anthropic-provider.d.ts +7 -0
- package/dist/cjs/llm/anthropic-provider.d.ts.map +1 -1
- package/dist/cjs/llm/anthropic-provider.js +84 -9
- package/dist/cjs/llm/anthropic-provider.js.map +1 -1
- package/dist/cjs/llm/ollama-provider.d.ts +18 -0
- package/dist/cjs/llm/ollama-provider.d.ts.map +1 -1
- package/dist/cjs/llm/ollama-provider.js +41 -0
- package/dist/cjs/llm/ollama-provider.js.map +1 -1
- package/dist/cjs/llm/openai-provider.d.ts +39 -2
- package/dist/cjs/llm/openai-provider.d.ts.map +1 -1
- package/dist/cjs/llm/openai-provider.js +302 -1
- package/dist/cjs/llm/openai-provider.js.map +1 -1
- package/dist/cjs/llm/pricing.d.ts +26 -0
- package/dist/cjs/llm/pricing.d.ts.map +1 -0
- package/dist/cjs/llm/pricing.js +86 -0
- package/dist/cjs/llm/pricing.js.map +1 -0
- package/dist/cjs/llm/provider.d.ts +2 -1
- package/dist/cjs/llm/provider.d.ts.map +1 -1
- package/dist/cjs/llm/provider.js +6 -1
- package/dist/cjs/llm/provider.js.map +1 -1
- package/dist/cjs/llm/types.d.ts +139 -0
- package/dist/cjs/llm/types.d.ts.map +1 -1
- package/dist/cjs/llm/types.js +74 -0
- package/dist/cjs/llm/types.js.map +1 -1
- package/dist/cjs/llm/usage-tracker.d.ts +119 -0
- package/dist/cjs/llm/usage-tracker.d.ts.map +1 -0
- package/dist/cjs/llm/usage-tracker.js +105 -0
- package/dist/cjs/llm/usage-tracker.js.map +1 -0
- package/dist/cjs/memory/extractor.js +1 -1
- package/dist/cjs/memory/extractor.js.map +1 -1
- package/dist/cjs/memory/persona.js +1 -1
- package/dist/cjs/memory/persona.js.map +1 -1
- package/dist/cjs/memory/scene.js +1 -1
- package/dist/cjs/memory/scene.js.map +1 -1
- package/dist/cjs/middleware/types.d.ts +2 -4
- package/dist/cjs/middleware/types.d.ts.map +1 -1
- package/dist/cjs/middleware/workspace-notes.d.ts +36 -0
- package/dist/cjs/middleware/workspace-notes.d.ts.map +1 -0
- package/dist/cjs/middleware/workspace-notes.js +53 -0
- package/dist/cjs/middleware/workspace-notes.js.map +1 -0
- package/dist/cjs/observability/logger.d.ts +1 -0
- package/dist/cjs/observability/logger.d.ts.map +1 -1
- package/dist/cjs/observability/logger.js.map +1 -1
- package/dist/cjs/observability/trace.d.ts +45 -0
- package/dist/cjs/observability/trace.d.ts.map +1 -0
- package/dist/cjs/observability/trace.js +59 -0
- package/dist/cjs/observability/trace.js.map +1 -0
- package/dist/cjs/runtime/run-registry-interface.d.ts +42 -0
- package/dist/cjs/runtime/run-registry-interface.d.ts.map +1 -0
- package/dist/cjs/runtime/run-registry-interface.js +7 -0
- package/dist/cjs/runtime/run-registry-interface.js.map +1 -0
- package/dist/cjs/runtime/run-registry.d.ts +15 -2
- package/dist/cjs/runtime/run-registry.d.ts.map +1 -1
- package/dist/cjs/runtime/run-registry.js +43 -1
- package/dist/cjs/runtime/run-registry.js.map +1 -1
- package/dist/cjs/sandbox/code-sandbox.d.ts +42 -0
- package/dist/cjs/sandbox/code-sandbox.d.ts.map +1 -0
- package/dist/cjs/sandbox/code-sandbox.js +59 -0
- package/dist/cjs/sandbox/code-sandbox.js.map +1 -0
- package/dist/cjs/skill/router.d.ts +20 -1
- package/dist/cjs/skill/router.d.ts.map +1 -1
- package/dist/cjs/skill/router.js +39 -1
- package/dist/cjs/skill/router.js.map +1 -1
- package/dist/cjs/skill/types.d.ts +1 -1
- package/dist/cjs/skill/types.d.ts.map +1 -1
- package/dist/cjs/skill/vector-index.d.ts +50 -0
- package/dist/cjs/skill/vector-index.d.ts.map +1 -0
- package/dist/cjs/skill/vector-index.js +57 -0
- package/dist/cjs/skill/vector-index.js.map +1 -0
- package/dist/cjs/store/history-persistence.d.ts +36 -0
- package/dist/cjs/store/history-persistence.d.ts.map +1 -0
- package/dist/cjs/store/history-persistence.js +142 -0
- package/dist/cjs/store/history-persistence.js.map +1 -0
- package/dist/cjs/types.d.ts +40 -1
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/cjs/types.js +34 -0
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/utils/token-counter.d.ts.map +1 -1
- package/dist/cjs/utils/token-counter.js +33 -1
- package/dist/cjs/utils/token-counter.js.map +1 -1
- package/dist/esm/agent/engine.d.ts +23 -0
- package/dist/esm/agent/engine.d.ts.map +1 -1
- package/dist/esm/agent/engine.js +88 -9
- package/dist/esm/agent/engine.js.map +1 -1
- package/dist/esm/agent/history-manager.d.ts +66 -1
- package/dist/esm/agent/history-manager.d.ts.map +1 -1
- package/dist/esm/agent/history-manager.js +232 -0
- package/dist/esm/agent/history-manager.js.map +1 -1
- package/dist/esm/agent/llm-caller.d.ts +4 -1
- package/dist/esm/agent/llm-caller.d.ts.map +1 -1
- package/dist/esm/agent/llm-caller.js +25 -19
- package/dist/esm/agent/llm-caller.js.map +1 -1
- package/dist/esm/agent/profile-loader.d.ts +56 -0
- package/dist/esm/agent/profile-loader.d.ts.map +1 -0
- package/dist/esm/agent/profile-loader.js +108 -0
- package/dist/esm/agent/profile-loader.js.map +1 -0
- package/dist/esm/agent/types.d.ts +32 -3
- package/dist/esm/agent/types.d.ts.map +1 -1
- package/dist/esm/agent/types.js.map +1 -1
- package/dist/esm/calendar/types.d.ts +41 -0
- package/dist/esm/calendar/types.d.ts.map +1 -0
- package/dist/esm/calendar/types.js +5 -0
- package/dist/esm/calendar/types.js.map +1 -0
- package/dist/esm/context/types.d.ts +3 -3
- package/dist/esm/context/types.d.ts.map +1 -1
- package/dist/esm/email/types.d.ts +46 -0
- package/dist/esm/email/types.d.ts.map +1 -0
- package/dist/esm/email/types.js +5 -0
- package/dist/esm/email/types.js.map +1 -0
- package/dist/esm/index.d.ts +28 -3
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +12 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/kb/in-memory-kb.d.ts +29 -0
- package/dist/esm/kb/in-memory-kb.d.ts.map +1 -0
- package/dist/esm/kb/in-memory-kb.js +206 -0
- package/dist/esm/kb/in-memory-kb.js.map +1 -0
- package/dist/esm/kb/rag-middleware.d.ts +31 -0
- package/dist/esm/kb/rag-middleware.d.ts.map +1 -0
- package/dist/esm/kb/rag-middleware.js +91 -0
- package/dist/esm/kb/rag-middleware.js.map +1 -0
- package/dist/esm/kb/types.d.ts +63 -0
- package/dist/esm/kb/types.d.ts.map +1 -0
- package/dist/esm/kb/types.js +5 -0
- package/dist/esm/kb/types.js.map +1 -0
- package/dist/esm/llm/anthropic-provider.d.ts +7 -0
- package/dist/esm/llm/anthropic-provider.d.ts.map +1 -1
- package/dist/esm/llm/anthropic-provider.js +84 -9
- package/dist/esm/llm/anthropic-provider.js.map +1 -1
- package/dist/esm/llm/ollama-provider.d.ts +18 -0
- package/dist/esm/llm/ollama-provider.d.ts.map +1 -1
- package/dist/esm/llm/ollama-provider.js +41 -0
- package/dist/esm/llm/ollama-provider.js.map +1 -1
- package/dist/esm/llm/openai-provider.d.ts +39 -2
- package/dist/esm/llm/openai-provider.d.ts.map +1 -1
- package/dist/esm/llm/openai-provider.js +302 -1
- package/dist/esm/llm/openai-provider.js.map +1 -1
- package/dist/esm/llm/pricing.d.ts +26 -0
- package/dist/esm/llm/pricing.d.ts.map +1 -0
- package/dist/esm/llm/pricing.js +81 -0
- package/dist/esm/llm/pricing.js.map +1 -0
- package/dist/esm/llm/provider.d.ts +2 -1
- package/dist/esm/llm/provider.d.ts.map +1 -1
- package/dist/esm/llm/provider.js +1 -0
- package/dist/esm/llm/provider.js.map +1 -1
- package/dist/esm/llm/types.d.ts +139 -0
- package/dist/esm/llm/types.d.ts.map +1 -1
- package/dist/esm/llm/types.js +70 -1
- package/dist/esm/llm/types.js.map +1 -1
- package/dist/esm/llm/usage-tracker.d.ts +119 -0
- package/dist/esm/llm/usage-tracker.d.ts.map +1 -0
- package/dist/esm/llm/usage-tracker.js +101 -0
- package/dist/esm/llm/usage-tracker.js.map +1 -0
- package/dist/esm/memory/extractor.js +1 -1
- package/dist/esm/memory/extractor.js.map +1 -1
- package/dist/esm/memory/persona.js +1 -1
- package/dist/esm/memory/persona.js.map +1 -1
- package/dist/esm/memory/scene.js +1 -1
- package/dist/esm/memory/scene.js.map +1 -1
- package/dist/esm/middleware/types.d.ts +2 -4
- package/dist/esm/middleware/types.d.ts.map +1 -1
- package/dist/esm/middleware/workspace-notes.d.ts +36 -0
- package/dist/esm/middleware/workspace-notes.d.ts.map +1 -0
- package/dist/esm/middleware/workspace-notes.js +49 -0
- package/dist/esm/middleware/workspace-notes.js.map +1 -0
- package/dist/esm/observability/logger.d.ts +1 -0
- package/dist/esm/observability/logger.d.ts.map +1 -1
- package/dist/esm/observability/logger.js.map +1 -1
- package/dist/esm/observability/trace.d.ts +45 -0
- package/dist/esm/observability/trace.d.ts.map +1 -0
- package/dist/esm/observability/trace.js +55 -0
- package/dist/esm/observability/trace.js.map +1 -0
- package/dist/esm/runtime/run-registry-interface.d.ts +42 -0
- package/dist/esm/runtime/run-registry-interface.d.ts.map +1 -0
- package/dist/esm/runtime/run-registry-interface.js +6 -0
- package/dist/esm/runtime/run-registry-interface.js.map +1 -0
- package/dist/esm/runtime/run-registry.d.ts +15 -2
- package/dist/esm/runtime/run-registry.d.ts.map +1 -1
- package/dist/esm/runtime/run-registry.js +43 -1
- package/dist/esm/runtime/run-registry.js.map +1 -1
- package/dist/esm/sandbox/code-sandbox.d.ts +42 -0
- package/dist/esm/sandbox/code-sandbox.d.ts.map +1 -0
- package/dist/esm/sandbox/code-sandbox.js +56 -0
- package/dist/esm/sandbox/code-sandbox.js.map +1 -0
- package/dist/esm/skill/router.d.ts +20 -1
- package/dist/esm/skill/router.d.ts.map +1 -1
- package/dist/esm/skill/router.js +37 -0
- package/dist/esm/skill/router.js.map +1 -1
- package/dist/esm/skill/types.d.ts +1 -1
- package/dist/esm/skill/types.d.ts.map +1 -1
- package/dist/esm/skill/vector-index.d.ts +50 -0
- package/dist/esm/skill/vector-index.d.ts.map +1 -0
- package/dist/esm/skill/vector-index.js +53 -0
- package/dist/esm/skill/vector-index.js.map +1 -0
- package/dist/esm/store/history-persistence.d.ts +36 -0
- package/dist/esm/store/history-persistence.d.ts.map +1 -0
- package/dist/esm/store/history-persistence.js +105 -0
- package/dist/esm/store/history-persistence.js.map +1 -0
- package/dist/esm/types.d.ts +40 -1
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/types.js +32 -1
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/utils/token-counter.d.ts.map +1 -1
- package/dist/esm/utils/token-counter.js +33 -1
- package/dist/esm/utils/token-counter.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> **内部库,仅供项目内部使用,不对外发布。**
|
|
4
4
|
|
|
5
|
-
AI Agent 核心引擎,提供 ReAct 循环编排、多 LLM 供应商抽象、工具注册与执行、MCP 协议集成、Skill 路由、安全守卫、渐进式记忆管道、A2A 协议互操作(流式事件透传),以及工具风险评估、审批管理、运行注册表、引擎复用池、JSON
|
|
5
|
+
AI Agent 核心引擎,提供 ReAct 循环编排、多 LLM 供应商抽象、工具注册与执行、MCP 协议集成、Skill 路由、安全守卫、渐进式记忆管道、A2A 协议互操作(流式事件透传),以及工具风险评估、审批管理、运行注册表、引擎复用池、JSON 存储、可观测性日志、多模态输入、对话历史持久化、Token 用量追踪与成本管控、声明式 Agent 定义(YAML front matter)、Anthropic Prompt 缓存优化、SSE 断流中断检测、非破坏性上下文投影(Context Collapse)、工作空间笔记中间件、知识库 RAG(KnowledgeBase + EmbeddingProvider)、向量检索(VectorIndex)、邮件发送接口(EmailProvider)、日历事件类型(CalendarEvent/CalendarStore)、批处理(BatchProvider,OpenAI Batch API)、文件上传与管理(FileProvider,OpenAI Files API)等应用级能力。
|
|
6
6
|
|
|
7
7
|
## 文档
|
|
8
8
|
|
|
@@ -60,6 +60,75 @@ if (delegateTool) registry.register(delegateTool);
|
|
|
60
60
|
|
|
61
61
|
详见 [A2A 协议文档](./docs/API.md#a2a--agent-to-agent-协议)。
|
|
62
62
|
|
|
63
|
+
## 多模态输入
|
|
64
|
+
|
|
65
|
+
`Message.content` 支持 `string | ContentPart[] | null`,可传图片/文件给 Vision 模型:
|
|
66
|
+
|
|
67
|
+
```typescript
|
|
68
|
+
import type { ContentPart } from '@cicctencent/agent-core';
|
|
69
|
+
|
|
70
|
+
const content: ContentPart[] = [
|
|
71
|
+
{ type: 'text', text: '这张图片里是什么?' },
|
|
72
|
+
{ type: 'image', source: 'data:image/png;base64,iVBOR...', mimeType: 'image/png' },
|
|
73
|
+
];
|
|
74
|
+
|
|
75
|
+
for await (const event of engine.run({ sessionId: 's1', message: content })) {
|
|
76
|
+
if (event.type === 'message') process.stdout.write(event.content);
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
- `TextPart` — 文本片段
|
|
81
|
+
- `ImagePart` — 图片(base64 data URI 或 URL),OpenAI/Anthropic Provider 自动适配
|
|
82
|
+
- `FilePart` — 文件内容(文本注入上下文)
|
|
83
|
+
- `extractTextFromContent()` — 从多模态内容提取纯文本
|
|
84
|
+
|
|
85
|
+
## 对话历史持久化
|
|
86
|
+
|
|
87
|
+
通过 `HistoryPersistence` 接口实现 JSONL append-only 持久化,服务重启后自动恢复:
|
|
88
|
+
|
|
89
|
+
```typescript
|
|
90
|
+
import { JsonlHistoryPersistence } from '@cicctencent/agent-core';
|
|
91
|
+
|
|
92
|
+
const persistence = new JsonlHistoryPersistence({ dir: 'history' });
|
|
93
|
+
const engine = new AgentEngine({
|
|
94
|
+
// ...
|
|
95
|
+
historyPersistence: persistence,
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
// 重启后恢复
|
|
99
|
+
await engine.loadHistory('session-001');
|
|
100
|
+
|
|
101
|
+
// 历史操作(自动同步持久化)
|
|
102
|
+
engine.truncateHistory('session-001', 10); // 截断到第 10 条
|
|
103
|
+
engine.forkHistory('session-001', 'session-002', 5); // 从第 5 条分叉
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## Token 用量追踪与成本管控
|
|
107
|
+
|
|
108
|
+
```typescript
|
|
109
|
+
import { InMemoryUsageTracker } from '@cicctencent/agent-core';
|
|
110
|
+
|
|
111
|
+
const tracker = new InMemoryUsageTracker();
|
|
112
|
+
const engine = new AgentEngine({
|
|
113
|
+
// ...
|
|
114
|
+
usageTracker: tracker,
|
|
115
|
+
tokenBudget: { maxTokens: 500_000, onExceed: 'warn' },
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
// 查询统计
|
|
119
|
+
const stats = tracker.stats({ startTime: Date.now() - 86400000 });
|
|
120
|
+
console.log(`总 Token: ${stats.totalTokens}, 成本: $${stats.totalCost}`);
|
|
121
|
+
|
|
122
|
+
// 预算检查
|
|
123
|
+
const budget = tracker.checkBudget('session-001', { maxTokens: 100_000 });
|
|
124
|
+
if (budget.exceeded) console.warn('预算超限!');
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
- 内置 20+ 常见模型定价表(`TokenPricing`)
|
|
128
|
+
- `calculateCost(provider, model, usage)` 自动计算成本
|
|
129
|
+
- 按 Provider/Model 分组统计
|
|
130
|
+
- 预算控制:超限时 `warn`(日志告警)或 `abort`(中止执行)
|
|
131
|
+
|
|
63
132
|
## 构建
|
|
64
133
|
|
|
65
134
|
```bash
|
|
@@ -36,6 +36,29 @@ export declare class AgentEngine {
|
|
|
36
36
|
* 获取会话历史副本(用于持久化保存)
|
|
37
37
|
*/
|
|
38
38
|
getHistorySnapshot(sessionId: string): Message[];
|
|
39
|
+
/**
|
|
40
|
+
* 从持久化存储加载会话历史(重启后恢复 Agent 上下文)
|
|
41
|
+
* 需要在 run() 之前调用
|
|
42
|
+
* @returns true 如果加载成功且有历史消息
|
|
43
|
+
*/
|
|
44
|
+
loadHistory(sessionId: string): Promise<boolean>;
|
|
45
|
+
/**
|
|
46
|
+
* 截断会话历史到指定位置(消息编辑场景)
|
|
47
|
+
* @param sessionId 会话 ID
|
|
48
|
+
* @param toIndex 保留的消息数量
|
|
49
|
+
* @returns 被截断掉的消息数量
|
|
50
|
+
*/
|
|
51
|
+
truncateHistory(sessionId: string, toIndex: number): number;
|
|
52
|
+
/**
|
|
53
|
+
* 从现有会话分叉创建新会话(对话分支场景)
|
|
54
|
+
* @param sourceSessionId 源会话 ID
|
|
55
|
+
* @param targetSessionId 目标会话 ID
|
|
56
|
+
* @param fromIndex 从源会话复制到哪个位置
|
|
57
|
+
* @returns 新会话中的消息数量
|
|
58
|
+
*/
|
|
59
|
+
forkHistory(sourceSessionId: string, targetSessionId: string, fromIndex?: number): number;
|
|
60
|
+
/** 获取会话历史的消息数量 */
|
|
61
|
+
getHistoryLength(sessionId: string): number;
|
|
39
62
|
/**
|
|
40
63
|
* 执行 Agent 任务(流式推送事件)
|
|
41
64
|
* 上层通过 for-await-of 消费事件流
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/agent/engine.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/agent/engine.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/agent/engine.js
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
// 历史管理、LLM 调用、工具执行已分别抽离到独立模块
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
8
|
exports.AgentEngine = void 0;
|
|
9
|
+
const types_ts_1 = require("../types.js");
|
|
9
10
|
const history_manager_ts_1 = require("./history-manager.js");
|
|
10
11
|
const llm_caller_ts_1 = require("./llm-caller.js");
|
|
11
12
|
const tool_executor_ts_1 = require("./tool-executor.js");
|
|
@@ -70,6 +71,7 @@ class AgentEngine {
|
|
|
70
71
|
maxMessages: this.config.maxMessages,
|
|
71
72
|
contextBudget: this.config.contextBudget,
|
|
72
73
|
toolResultStore: this.config.toolResultStore,
|
|
74
|
+
persistence: this.config.historyPersistence,
|
|
73
75
|
});
|
|
74
76
|
this.llmCaller = new llm_caller_ts_1.LLMCaller({
|
|
75
77
|
llmProvider: this.config.llmProvider,
|
|
@@ -126,6 +128,37 @@ class AgentEngine {
|
|
|
126
128
|
getHistorySnapshot(sessionId) {
|
|
127
129
|
return this.historyManager.getHistorySnapshot(sessionId);
|
|
128
130
|
}
|
|
131
|
+
/**
|
|
132
|
+
* 从持久化存储加载会话历史(重启后恢复 Agent 上下文)
|
|
133
|
+
* 需要在 run() 之前调用
|
|
134
|
+
* @returns true 如果加载成功且有历史消息
|
|
135
|
+
*/
|
|
136
|
+
async loadHistory(sessionId) {
|
|
137
|
+
return this.historyManager.loadHistory(sessionId);
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* 截断会话历史到指定位置(消息编辑场景)
|
|
141
|
+
* @param sessionId 会话 ID
|
|
142
|
+
* @param toIndex 保留的消息数量
|
|
143
|
+
* @returns 被截断掉的消息数量
|
|
144
|
+
*/
|
|
145
|
+
truncateHistory(sessionId, toIndex) {
|
|
146
|
+
return this.historyManager.truncateHistory(sessionId, toIndex);
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* 从现有会话分叉创建新会话(对话分支场景)
|
|
150
|
+
* @param sourceSessionId 源会话 ID
|
|
151
|
+
* @param targetSessionId 目标会话 ID
|
|
152
|
+
* @param fromIndex 从源会话复制到哪个位置
|
|
153
|
+
* @returns 新会话中的消息数量
|
|
154
|
+
*/
|
|
155
|
+
forkHistory(sourceSessionId, targetSessionId, fromIndex) {
|
|
156
|
+
return this.historyManager.forkHistory(sourceSessionId, targetSessionId, fromIndex);
|
|
157
|
+
}
|
|
158
|
+
/** 获取会话历史的消息数量 */
|
|
159
|
+
getHistoryLength(sessionId) {
|
|
160
|
+
return this.historyManager.getHistoryLength(sessionId);
|
|
161
|
+
}
|
|
129
162
|
/**
|
|
130
163
|
* 执行 Agent 任务(流式推送事件)
|
|
131
164
|
* 上层通过 for-await-of 消费事件流
|
|
@@ -174,9 +207,11 @@ class AgentEngine {
|
|
|
174
207
|
}
|
|
175
208
|
if (this.config.skillRouter) {
|
|
176
209
|
this.statusMap.set(sessionId, 'thinking');
|
|
177
|
-
|
|
210
|
+
// Skill 路由基于文本匹配,从多模态消息中提取文本
|
|
211
|
+
const routeText = typeof options.message === 'string' ? options.message : (0, types_ts_1.extractTextFromContent)(options.message);
|
|
212
|
+
const routeResult = await this.config.skillRouter.route(routeText);
|
|
178
213
|
if (routeResult.skill) {
|
|
179
|
-
return { skillContent: routeResult.skill.content, actualMessage:
|
|
214
|
+
return { skillContent: routeResult.skill.content, actualMessage: options.message, skillMatched: true };
|
|
180
215
|
}
|
|
181
216
|
}
|
|
182
217
|
return { actualMessage: options.message, skillMatched: false };
|
|
@@ -229,12 +264,20 @@ class AgentEngine {
|
|
|
229
264
|
// 则不再重复追加,避免 LLM 看到两条连续相同的 user 消息导致意图理解偏差
|
|
230
265
|
const history = this.historyManager.getHistory(sessionId);
|
|
231
266
|
const lastMsg = history.length > 0 ? history[history.length - 1] : null;
|
|
267
|
+
// 多模态消息去重:比较文本内容
|
|
268
|
+
const actualText = typeof actualMessage === 'string' ? actualMessage : (0, types_ts_1.extractTextFromContent)(actualMessage);
|
|
232
269
|
const isDuplicateUserMessage = lastMsg?.role === 'user'
|
|
233
270
|
&& typeof lastMsg.content === 'string'
|
|
234
|
-
&& lastMsg.content ===
|
|
271
|
+
&& lastMsg.content === actualText;
|
|
272
|
+
// 非破坏性上下文投影(Context Collapse):
|
|
273
|
+
// 当历史 token 超过预算时,使用投影而非破坏性压缩,保留原始历史完整
|
|
274
|
+
const maxContextTokens = this.config.contextBudget?.maxContextTokens ?? 100000;
|
|
275
|
+
const projectedHistory = this.historyManager.getProjectedHistory
|
|
276
|
+
? this.historyManager.getProjectedHistory(sessionId, maxContextTokens)
|
|
277
|
+
: history;
|
|
235
278
|
return this.config.contextManager.buildMessages({
|
|
236
279
|
systemPrompt,
|
|
237
|
-
history,
|
|
280
|
+
history: projectedHistory,
|
|
238
281
|
userMessage: isDuplicateUserMessage ? undefined : actualMessage,
|
|
239
282
|
});
|
|
240
283
|
}
|
|
@@ -329,6 +372,25 @@ class AgentEngine {
|
|
|
329
372
|
yield this.emitDone(state);
|
|
330
373
|
return;
|
|
331
374
|
}
|
|
375
|
+
// Token 预算检查
|
|
376
|
+
if (this.config.usageTracker && this.config.tokenBudget) {
|
|
377
|
+
const budgetCheck = this.config.usageTracker.checkBudget(state.sessionId, this.config.tokenBudget);
|
|
378
|
+
if (budgetCheck.exceeded) {
|
|
379
|
+
if (this.config.tokenBudget.onExceed === 'abort') {
|
|
380
|
+
console.warn(`[Engine] Token budget exceeded: ${budgetCheck.currentTokens}/${budgetCheck.maxTokens}, aborting session ${state.sessionId}`);
|
|
381
|
+
yield this.createEvent(state.sessionId, {
|
|
382
|
+
type: 'error',
|
|
383
|
+
error: `Token budget exceeded (${budgetCheck.currentTokens}/${budgetCheck.maxTokens} tokens). Task aborted to prevent cost overrun.`,
|
|
384
|
+
recoverable: false,
|
|
385
|
+
});
|
|
386
|
+
yield this.emitDone(state);
|
|
387
|
+
return;
|
|
388
|
+
}
|
|
389
|
+
else {
|
|
390
|
+
console.warn(`[Engine] Token budget warning: ${budgetCheck.currentTokens}/${budgetCheck.maxTokens} for session ${state.sessionId}`);
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
}
|
|
332
394
|
// Middleware.before + Hook: on_iteration_start
|
|
333
395
|
await this.runMiddlewarePhase('before', state);
|
|
334
396
|
await this.runHooks('on_iteration_start', {
|
|
@@ -352,10 +414,16 @@ class AgentEngine {
|
|
|
352
414
|
this.checkDataFetchLoop(state);
|
|
353
415
|
// 调用 LLM(流式,含重试与降级)
|
|
354
416
|
this.statusMap.set(state.sessionId, 'thinking');
|
|
355
|
-
const assistant = yield* this.llmCaller.callWithRetry(state.sessionId, state.messages, state.toolDefs, state.internalAbort.signal);
|
|
356
|
-
//
|
|
357
|
-
|
|
358
|
-
|
|
417
|
+
const { assistant, usage } = yield* this.llmCaller.callWithRetry(state.sessionId, state.messages, state.toolDefs, state.internalAbort.signal);
|
|
418
|
+
// 累加 Token 用量
|
|
419
|
+
if (usage) {
|
|
420
|
+
if (!state.totalUsage) {
|
|
421
|
+
state.totalUsage = { promptTokens: 0, completionTokens: 0, totalTokens: 0 };
|
|
422
|
+
}
|
|
423
|
+
state.totalUsage.promptTokens += usage.promptTokens || 0;
|
|
424
|
+
state.totalUsage.completionTokens += usage.completionTokens || 0;
|
|
425
|
+
state.totalUsage.totalTokens += usage.totalTokens || 0;
|
|
426
|
+
}
|
|
359
427
|
if (!assistant) {
|
|
360
428
|
// LLM 返回 null(上下文过长/错误)后,如果上一轮有工具调用,注入提示重试
|
|
361
429
|
if (state.lastIterationHadToolCalls && state.continuationNudges < 2) {
|
|
@@ -382,7 +450,7 @@ class AgentEngine {
|
|
|
382
450
|
}
|
|
383
451
|
this.historyManager.addHistory(state.sessionId, assistant);
|
|
384
452
|
if (assistant.content) {
|
|
385
|
-
state.lastContent = assistant.content;
|
|
453
|
+
state.lastContent = (0, types_ts_1.extractTextFromContent)(assistant.content);
|
|
386
454
|
state.consecutiveSilentIterations = 0;
|
|
387
455
|
}
|
|
388
456
|
// 无 tool_calls → 检查是否提前停止(上一轮有工具调用,说明任务可能未完成)
|
|
@@ -723,6 +791,17 @@ class AgentEngine {
|
|
|
723
791
|
// ---- 辅助 ----
|
|
724
792
|
emitDone(state) {
|
|
725
793
|
this.statusMap.set(state.sessionId, 'idle');
|
|
794
|
+
// 记录 Token 用量到 UsageTracker
|
|
795
|
+
if (this.config.usageTracker && state.totalUsage) {
|
|
796
|
+
const modelInfo = this.config.llmProvider.getModel();
|
|
797
|
+
this.config.usageTracker.record({
|
|
798
|
+
sessionId: state.sessionId,
|
|
799
|
+
provider: modelInfo.provider,
|
|
800
|
+
model: modelInfo.model,
|
|
801
|
+
usage: state.totalUsage,
|
|
802
|
+
iterations: state.iteration,
|
|
803
|
+
});
|
|
804
|
+
}
|
|
726
805
|
this.runHooks('on_complete', {
|
|
727
806
|
sessionId: state.sessionId,
|
|
728
807
|
iteration: state.iteration,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/agent/engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/agent/engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Message } from '../types.js';
|
|
2
|
-
import type { ToolResultStore } from './types.js';
|
|
2
|
+
import type { ToolResultStore, HistoryPersistence } from './types.js';
|
|
3
3
|
/** 历史管理配置 */
|
|
4
4
|
export interface HistoryManagerConfig {
|
|
5
5
|
/** 消息历史上限(滑动窗口),默认 50 */
|
|
@@ -18,6 +18,8 @@ export interface HistoryManagerConfig {
|
|
|
18
18
|
};
|
|
19
19
|
/** 工具结果存储(可选) */
|
|
20
20
|
toolResultStore?: ToolResultStore;
|
|
21
|
+
/** 会话历史持久化(可选,重启后恢复 Agent 上下文) */
|
|
22
|
+
persistence?: HistoryPersistence;
|
|
21
23
|
}
|
|
22
24
|
/**
|
|
23
25
|
* 会话历史管理器
|
|
@@ -42,10 +44,50 @@ export declare class HistoryManager {
|
|
|
42
44
|
getHistory(sessionId: string): Message[];
|
|
43
45
|
/** 追加消息到会话历史(含自动压缩) */
|
|
44
46
|
addHistory(sessionId: string, msg: Message): void;
|
|
47
|
+
/**
|
|
48
|
+
* 从持久化存储加载会话历史
|
|
49
|
+
* 加载后替换内存中的历史,并重建 token 计数
|
|
50
|
+
* 如果持久化未配置或文件不存在,返回 false
|
|
51
|
+
*/
|
|
52
|
+
loadHistory(sessionId: string): Promise<boolean>;
|
|
45
53
|
/** 清理指定会话的历史 */
|
|
46
54
|
clearHistory(sessionId: string): void;
|
|
47
55
|
/** 清理所有会话历史 */
|
|
48
56
|
clearAll(): void;
|
|
57
|
+
/**
|
|
58
|
+
* 截断会话历史到指定位置(保留 [0, toIndex) 的消息)
|
|
59
|
+
*
|
|
60
|
+
* 用于消息编辑场景:用户编辑第 N 条消息后,截断历史到 N,
|
|
61
|
+
* 然后重新追加编辑后的消息并重新生成。
|
|
62
|
+
*
|
|
63
|
+
* @param sessionId 会话 ID
|
|
64
|
+
* @param toIndex 保留的消息数量(0 = 清空历史)
|
|
65
|
+
* @returns 被截断掉的消息数量
|
|
66
|
+
*/
|
|
67
|
+
truncateHistory(sessionId: string, toIndex: number): number;
|
|
68
|
+
/**
|
|
69
|
+
* 从现有会话历史分叉创建新会话
|
|
70
|
+
*
|
|
71
|
+
* 复制源会话 [0, fromIndex) 的消息到新会话,
|
|
72
|
+
* 新会话可以独立追加消息而不影响源会话。
|
|
73
|
+
*
|
|
74
|
+
* 用于对话分支场景:用户从第 N 条消息分叉,创建新对话线。
|
|
75
|
+
*
|
|
76
|
+
* @param sourceSessionId 源会话 ID
|
|
77
|
+
* @param targetSessionId 目标会话 ID
|
|
78
|
+
* @param fromIndex 从源会话复制到哪个位置(不包含),默认全部
|
|
79
|
+
* @returns 新会话中的消息数量
|
|
80
|
+
*/
|
|
81
|
+
forkHistory(sourceSessionId: string, targetSessionId: string, fromIndex?: number): number;
|
|
82
|
+
/**
|
|
83
|
+
* 获取会话历史的消息数量
|
|
84
|
+
*/
|
|
85
|
+
getHistoryLength(sessionId: string): number;
|
|
86
|
+
/**
|
|
87
|
+
* 重写持久化文件(截断/分叉后历史已改变,需要全量重写)
|
|
88
|
+
* 先删除旧文件,再逐条追加
|
|
89
|
+
*/
|
|
90
|
+
private rewritePersistence;
|
|
49
91
|
/** 不应被 offload 的读取类工具(避免 offload → read → offload 无限链) */
|
|
50
92
|
private static READ_THROUGH_TOOLS;
|
|
51
93
|
/**
|
|
@@ -80,5 +122,28 @@ export declare class HistoryManager {
|
|
|
80
122
|
static findToolNameForCallId(callId: string, history: Message[]): string;
|
|
81
123
|
/** DJB2 哈希(用于生成短 nodeId) */
|
|
82
124
|
static simpleHash(str: string): number;
|
|
125
|
+
/**
|
|
126
|
+
* 获取非破坏性投影后的历史消息列表
|
|
127
|
+
*
|
|
128
|
+
* 与 `compactHistorySmart()` 不同,此方法 **不修改原始历史**,
|
|
129
|
+
* 而是返回一个投影副本:
|
|
130
|
+
* - 保留最近的 N 条消息完整不变
|
|
131
|
+
* - 较早的消息对(assistant + tool)折叠为摘要标签
|
|
132
|
+
* - 原始历史可通过 `getHistory()` 完整获取
|
|
133
|
+
*
|
|
134
|
+
* @param sessionId 会话 ID
|
|
135
|
+
* @param tokenBudget token 预算(默认使用配置的 maxContextTokens)
|
|
136
|
+
* @returns 投影后的消息列表(新数组,不影响原始历史)
|
|
137
|
+
*/
|
|
138
|
+
getProjectedHistory(sessionId: string, tokenBudget?: number): Message[];
|
|
139
|
+
/**
|
|
140
|
+
* 为折叠的消息生成摘要标签
|
|
141
|
+
*
|
|
142
|
+
* 将多条消息合并为一个 system 消息,包含:
|
|
143
|
+
* - 消息数量统计
|
|
144
|
+
* - 关键工具调用列表
|
|
145
|
+
* - 用户消息摘要
|
|
146
|
+
*/
|
|
147
|
+
private generateCollapseSummary;
|
|
83
148
|
}
|
|
84
149
|
//# sourceMappingURL=history-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history-manager.d.ts","sourceRoot":"","sources":["../../../src/agent/history-manager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"history-manager.d.ts","sourceRoot":"","sources":["../../../src/agent/history-manager.ts"],"names":[],"mappings":"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"}
|