Skip to content

Latest commit

 

History

History
117 lines (88 loc) · 3.36 KB

File metadata and controls

117 lines (88 loc) · 3.36 KB

TableStore plugin installed

Next steps:

Minimum supported Hermes version: v0.10.0 (2026-04-16) or newer.

  1. Run Hermes memory setup and select tablestore-mem:
hermes memory setup

This is the recommended activation path. It sets memory.provider and lets Hermes install missing pip_dependencies declared by this plugin, including tablestore==6.4.5, alibabacloud-tablestore20201209, and alibabacloud-credentials.

  1. If setup reports that dependency installation failed, install the SDK into the same interpreter used by hermes:
uv pip install --python "$(head -n 1 "$(which hermes)" | sed 's/^#!//')" \
  tablestore==6.4.5 \
  alibabacloud-tablestore20201209 \
  alibabacloud-credentials
  1. Add credentials to ~/.hermes/.env:
TABLESTORE_MEMORY_AK=your_access_key_id
TABLESTORE_MEMORY_SK=your_access_key_secret
  1. Create ~/.hermes/tablestore_memory.json for all non-secret config:
{
  "memory_store_name": "hermes_mem",
  "description": "",
  "app_id": "hermes",
  "tenant_id": "",
  "enable_rerank": true,
  "auto_create_store": true,
  "timeout": 30.0
}

tenant_id is configuration-first. If it is set in tablestore_memory.json, the plugin uses that value as the active tenantId. Hermes session user_id is only used as a fallback when tenant_id is empty. If both are empty, the provider falls back to __default__.

If instance_name is missing, the plugin automatically creates a VCU instance on first initialization, enables INTERNET/VPC/CLASSIC network access on that new instance, sets NetworkSourceACL=TRUST_PROXY, derives the endpoint as https://{instance_name}.cn-beijing.ots.aliyuncs.com, and persists both fields for reuse.

Automatic instance bootstrap reuses TABLESTORE_MEMORY_AK and TABLESTORE_MEMORY_SK directly for both control-plane and data-plane access.

A newly created instance may still need a propagation window before the public endpoint becomes reachable. During first initialization, Hermes waits for the new endpoint DNS to resolve and retries transient data-plane endpoint errors. As a result, the first doctor on a brand-new Hermes home may take noticeably longer than normal.

If memory_store_name is omitted, the plugin uses hermes_mem and creates it automatically when missing.

  1. Verify:
hermes memory status

Expected:

Plugin:    installed ✓
Status:    available ✓

If the plugin is available, Hermes will use it for:

  • memory prefetch before turns
  • turn sync after completed turns
  • explicit tools:
    • tablestore_profile
    • tablestore_search
    • tablestore_remember
    • tablestore_forget

Scope behavior:

  • writes use the current session scope exactly
  • searches use the current tenantId with agentId=* and runId=*

CLI commands are also available when tablestore-mem is the active provider:

hermes tablestore-mem add "Remember this fact"
hermes tablestore-mem search "this fact"
hermes tablestore-mem doctor

doctor performs read-only diagnostics for provider initialization, DescribeMemoryStore, and ListMemories.

Search behavior:

  • writes use semantic extraction, not literal key-value storage
  • default add writes are asynchronous unless --sync is provided
  • search results are ranked semantically, so exact new phrases may not appear immediately at the top of results even when the write has already succeeded