添加 Memory Gateway Agent skill及其 CLI 实现,支持用户资源管理和记忆操作
This commit is contained in:
64
skill/memory-gateway-agent/SKILL.md
Normal file
64
skill/memory-gateway-agent/SKILL.md
Normal file
@ -0,0 +1,64 @@
|
||||
---
|
||||
name: memory-gateway-agent
|
||||
description: Use when an AI agent needs to create or authenticate a Memory Gateway user, upload and manage user resources, add or flush chat memories, search scoped memory, or apply user-approved memory corrections and deletions through the Memory Gateway HTTP API.
|
||||
---
|
||||
|
||||
# Memory Gateway Agent
|
||||
|
||||
Use the bundled CLI instead of constructing HTTP requests manually. It produces JSON output and uses only the Python standard library.
|
||||
|
||||
## Configure
|
||||
|
||||
Set these variables before authenticated operations:
|
||||
|
||||
```bash
|
||||
export MEMORY_GATEWAY_BASE_URL="http://127.0.0.1:8010"
|
||||
export MEMORY_GATEWAY_USER_ID="u_123"
|
||||
export MEMORY_GATEWAY_USER_KEY="uk_xxx"
|
||||
SKILL_DIR="/path/to/memory-gateway-agent"
|
||||
CLI="python $SKILL_DIR/scripts/memory_gateway.py"
|
||||
```
|
||||
|
||||
Do not write a real `user_key` into source files, prompts, logs, or committed documentation. Command-line flags may override environment variables, but environment variables are preferred because process arguments may be observable.
|
||||
|
||||
## Workflow
|
||||
|
||||
1. Run `$CLI health` when connectivity or EverOS availability is uncertain.
|
||||
2. Use an existing `user_id` and `user_key`. Run `create-user` only when the user explicitly needs a new Gateway identity.
|
||||
3. Choose the operation:
|
||||
- Upload durable user files with `upload-resource`.
|
||||
- Add conversational or multimodal messages with `add-memory`, then call `flush-memory`.
|
||||
- Search with the narrowest useful scope.
|
||||
- List or inspect resources before deleting them.
|
||||
4. Treat JSON output as the source of truth. Preserve returned `resource_id`, memory `id`, and `session_id` exactly.
|
||||
5. For override or deletion, use the memory `id` and `session_id` returned by search. Never invent IDs or apply changes across users.
|
||||
|
||||
## Common Commands
|
||||
|
||||
```bash
|
||||
$CLI health
|
||||
$CLI list-resources
|
||||
$CLI upload-resource ./contract.pdf --title "Contract"
|
||||
$CLI search "What are the payment terms?" --scope resources --top-k 8
|
||||
$CLI search "What did we discuss?" --scope current_chat --conversation-id c_456
|
||||
$CLI override-memory mem_abc --session-id resource:u_123:r_xxx --text "Corrected text"
|
||||
$CLI delete-memory mem_abc --session-id resource:u_123:r_xxx --reason "User requested deletion"
|
||||
```
|
||||
|
||||
For chat ingestion, put the Gateway `messages` array in a JSON file:
|
||||
|
||||
```bash
|
||||
$CLI add-memory --session-id chat:c_456 --messages /tmp/messages.json
|
||||
$CLI flush-memory --session-id chat:c_456
|
||||
```
|
||||
|
||||
Read [references/api.md](references/api.md) when choosing scopes, constructing multimodal messages, interpreting errors, or using less common commands.
|
||||
|
||||
## Safety Rules
|
||||
|
||||
- Do not expose internal file paths. Return the Gateway's `resource://{user_id}/{resource_id}` URI to users.
|
||||
- Do not claim ingestion succeeded unless the upload status is `extracted` or flush reports success.
|
||||
- Treat `health.status = degraded` as Gateway available but EverOS unavailable.
|
||||
- Resource deletion is soft deletion in Gateway search scope and removes the Gateway upload copy; it does not delete EverOS internal indexes.
|
||||
- Memory override and deletion require an owned `resource:{user_id}:{resource_id}` or `memory_edit:{user_id}` session.
|
||||
- Ask for confirmation before destructive deletion unless the user's current request explicitly instructs deletion.
|
||||
Reference in New Issue
Block a user