feat(memory): add gated agent recall and lifecycle controls

This commit is contained in:
john
2026-07-16 21:05:27 +08:00
parent c1012da120
commit 6e460336f7
13 changed files with 655 additions and 3 deletions
+15 -1
View File
@@ -1001,8 +1001,21 @@ test('agent run uses chat intent router to enrich agent orchestration messages',
source: 'llm',
};
},
applyAgentOrchestration(userMessage, classification, { grantedSkills = [] }) {
async resolveAgentMemoryContext() {
return {
enabled: true,
mode: 'shadow',
injectionEnabled: false,
skipped: false,
memories: [{ label: 'preference', text: '用户喜欢完整方案' }],
source: 'legacy-conversation-memory',
latencyMs: 1,
};
},
applyAgentOrchestration(userMessage, classification, { grantedSkills = [], memoryContext = null }) {
const displayText = userMessage?.metadata?.displayText ?? userMessage?.content?.[0]?.text ?? '';
assert.equal(memoryContext?.mode, 'shadow');
assert.equal(memoryContext?.injectionEnabled, false);
return {
...userMessage,
content: [{
@@ -1033,6 +1046,7 @@ test('agent run uses chat intent router to enrich agent orchestration messages',
assert.match(submitted[0].userMessage.content[0].text, /Memind 任务编排/);
assert.match(submitted[0].userMessage.content[0].text, /帮我做一个页面/);
assert.ok(pool.events.some((event) => event.eventType === 'intent_routed'));
assert.ok(pool.events.some((event) => event.eventType === 'agent_memory_resolved'));
});
test('agent run escalates direct sessions to a new backend session when forced', async () => {