Memory API
API endpoints for managing the Agent's three-layer memory system.
Long-term Memory
Search Memory
GET /api/memories?query=xxx&limit=50&offset=0&category=&schema_type=&include_sensitive=false
Response: {
"mode": "search",
"query": "xxx",
"total": 1,
"items": [
{
"id": "uuid",
"title": "Memory Title",
"content": "...",
"category": "general",
"schema_type": "general",
"tags": "",
"memory_key": "general:xxx",
"source_file": "...",
"created_at": "timestamp",
"updated_at": "timestamp",
"score": 0.85
}
],
"filters": { "category": "", "schema_type": "" }
}Add Memory
POST /api/memories
Body: {
"title": "Memory Title",
"content": "Important knowledge",
"category": "general",
"tags": "",
"schema_type": "general",
"memory_key": "",
"metadata": {},
"merge_strategy": "merge"
}
Response: { "id": "uuid", "title": "Memory Title", "message": "记忆已保存" }Update Memory
PUT /api/memories/{memory_id}
Body: {
"title": "Updated Title",
"content": "Updated content"
}
Response: { "id": "uuid", "message": "记忆已更新" }Delete Memory
DELETE /api/memories/{memory_id}?mode=delete&reason=deleted
Response: { "success": true, "message": "记忆已删除" }Forget Memory
POST /api/memories/actions/forget
Body: { "ids": ["uuid1", "uuid2"] }
Response: { "success": true, "count": 2, "message": "已标记遗忘 2 条记忆" }Merge Memories
POST /api/memories/actions/merge
Body: { "source_ids": ["uuid1"], "target_id": "uuid2", "strategy": "merge" }
Response: { "success": true }Summary
GET /api/memories/summary
Response: {
"total": 100,
"categories": { "general": 50, "user_info": 20, "project": 30 },
"schema_types": { "general": 100 }
}Read Archive
GET /api/memories/archive/{entry_id}
Response: {
"entry_id": "uuid",
"session_id": "sess_xxx",
"time": "timestamp",
"answer": "...",
"extra": {
"prompt_diff_summary": "[PromptDiff] total_calls=2 | ..."
}
}Gene Management
List Genes
GET /api/genes?limit=50&offset=0
Response: {
"items": [
{
"id": "coding",
"task_type": "coding",
"title": "Coding Strategy",
"content": "[HARD CONSTRAINTS]\n...",
"version": 3,
"usage_count": 15,
"success_count": 12,
"failure_count": 3,
"success_rate": 0.8,
"avg_reward": 0.72,
"avg_duration_ms": 12500.0,
"consecutive_success": 2,
"consecutive_failure": 0,
"evolution_history": [...],
"recent_results": [...],
"created_at": "timestamp",
"updated_at": "timestamp"
}
],
"total": 1
}Gene Stats
GET /api/genes/stats
Response: {
"total_genes": 5,
"total_usage": 42,
"avg_success_rate": 0.78,
"evolved_genes": 3
}Create Gene
PUT /api/genes/{gene_id}
Body: {
"title": "Coding Strategy",
"content": "[HARD CONSTRAINTS]\n...\n[CONTROL ACTION]\n...\n[AVOID]\n..."
}
Response: { "id": "coding", "version": 1 }Evolve Gene
POST /api/genes/{gene_id}/evolve
Response: {
"success": true,
"new_version": 4,
"avoid_cues_added": 2,
"content_changed": true
}Delete Gene
DELETE /api/genes/{gene_id}
Response: { "success": true }