overmind-mcp
Version:
Orchestrateur universel agents IA multi-modeles via MCP. Inclut le protocole 'Custom-Nickname' pour identifier vos agents avec des surnoms originaux (The Chaos Prophet, Shadow Sniper, etc.), l'isolation mémoire (Private Memory Context) et le support pour
59 lines • 2.27 kB
JavaScript
import { z } from 'zod';
import { getMemoryProvider } from '../memory/MemoryFactory.js';
export const memorySearchSchema = z.object({
query: z.string().describe('Requête de recherche (sémantique + full-text)'),
limit: z.number().int().min(1).max(50).optional().default(10).describe('Nombre max de résultats'),
include_runs: z
.boolean()
.optional()
.default(false)
.describe("Inclure l'historique des runs d'agents dans la recherche"),
agent_name: z
.string()
.optional()
.describe("Filtrer par nom d'agent (détecté automatiquement si exécuté via OverMind)"),
});
export async function memorySearchTool(args) {
try {
const provider = getMemoryProvider();
// Priorité à l'agent détecté (Privacy)
const effectiveAgentName = process.env.OVERMIND_AGENT_NAME || args.agent_name;
const results = await provider.searchMemory({
query: args.query,
limit: args.limit,
includeRuns: args.include_runs,
agentName: effectiveAgentName,
});
if (results.length === 0) {
return {
content: [
{
type: 'text',
text: `🔍 Aucun souvenir trouvé pour : _"${args.query}"_\n\nUtilisez \`memory_store\` pour ajouter des connaissances.`,
},
],
};
}
const lines = results.map((r, i) => `**${i + 1}.** [${r.source}] (score: ${r.score.toFixed(3)}) — ${new Date(r.created_at).toISOString().slice(0, 10)}\n${r.text.slice(0, 500)}`);
return {
content: [
{
type: 'text',
text: `🧠 **${results.length} résultat(s) trouvé(s) pour "${args.query}"**\n\n${lines.join('\n\n---\n\n')}`,
},
],
};
}
catch (error) {
return {
content: [
{
type: 'text',
text: `❌ Erreur memory_search: ${error instanceof Error ? error.message : String(error)}`,
},
],
isError: true,
};
}
}
//# sourceMappingURL=memory_search.js.map