Skip to main content
Experimental Feature: The Store is experimental. The configuration and data format may change or be removed in future versions. Discuss feedback in GitHub Discussions.

What is the Store?

The store is a local file-based storage system that allows agents to track work items and remember information across multiple runs. It’s particularly useful for:
  • Multi-run workflows - Track progress when agents run on a schedule
  • Multi-agent coordination - Share state between agents working together
  • Task management - Track tasks through status workflows
  • Agent memory - Remember facts, preferences, and context across runs
Stores live at the AgentUse project root:
When you run agentuse serve -C path/to/agents, -C is the served scope for agent files. AgentUse still walks upward to find the project root, so agent folders inside the same repository can share the same store.
When you enable the store, your agent automatically gets tools for creating, reading, updating, deleting, and listing items. Tell the agent what to store and when in your agent file’s instructions.

Configuration

Isolated Store

Use store: true for a store that’s private to one agent:
The store is named after the agent (e.g., myagent from myagent.agentuse).

Shared Store

Use a string name to share a store across multiple agents:
All agents using the same store name can read and write to the same data, enabling coordination without explicit communication.

Capabilities

When store is configured, your agent can:

Listing and searching

store_list is built to be token-efficient: by default it returns lightweight summary rows (id, type, title, status, tags, parent, timestamps) without the data payload. The agent scans the summaries, then calls store_get for the full data of the one item it needs, instead of pulling every payload into context. It accepts these parameters: The response is { count, total, items }:
  • count is the number of rows returned and total is how many items match the filters before limit/offset, so the agent knows whether more remain.
  • Each summary row (when data is omitted) includes a dataKeys array listing the keys available in that item’s data, so the agent knows what it could request via fields or store_get without seeing the values.
To get counts by status or type, filter and read total (e.g. store_list({ status: "pending" })) rather than scanning rows.
Keep retrieval cheap. Narrow with filters or q first, scan the summary rows, then store_get the single item you want. Only set includeData: true (or list fields) when you genuinely need payloads for several items at once. For a known set of IDs, pass ids to fetch them in one store_list call.
The same projection applies to store_get: pass fields: ["url", "score"] to return only those keys from a large item instead of the whole payload.

Writing Instructions

Guide your agent’s store usage through clear SOP instructions. Here are common patterns:

State Machine

Parent-Child Relationships

Tagging for Priorities

Agent Memory

Storage Location

Stores are saved to:
Don’t edit items.json directly while an agent is running. The lock file prevents corruption from concurrent access.

Example: Content Pipeline

Debugging

View Store Contents

If you are running agentuse serve, open the store browser:
Each store has its own table:
Session and approval logs link store tool activity to the matching store table. When AgentUse knows the item ID, the link highlights the changed row:

Check Lock Status

Reset Store

Best Practices

Name your types clearly: “topic”, “article”, “review” instead of “item1”, “item2”.
Document valid status values and transitions in your SOP.
Put operation results in the data field for later reference.
Periodically delete completed items to keep the store manageable.

Next Steps

Manager Agents

Build orchestrating agents with store integration

Scheduling

Run agents on schedules with persistent state

Sub-Agents

Coordinate teams sharing a store