ShapelessAI← Back
The agent team

Brand Memory

The account's durable knowledge - voice, positioning, product facts - and how an agent reads and edits it.

Verified
View as Markdown

Brand Memory is the account's durable knowledge: who the business is, what it sells, how it sounds, what it has already said. It is a small file tree, not a prompt, and every job reads it before it writes anything.

This is the highest-leverage thing an agent can edit. A post with the wrong tone is a symptom; the voice file is the cause. Fix the file and every future post is fixed.

Read it

curl -s https://shapelessai.com/api/workspace -H "Authorization: Bearer $SHAPELESS_API_KEY"
curl -s "https://shapelessai.com/api/workspace/file?path=voice.md" -H "Authorization: Bearer $SHAPELESS_API_KEY"
shapeless brain ls
shapeless brain get positioning.md
// MCP
{ "tool": "brain_tree", "arguments": {} }
{ "tool": "brain_read", "arguments": { "path": "voice.md" } }

GET /api/workspace answers the tree with its completion ring - which parts of the brand are filled in and which are still empty.

Write it

curl -s -X PUT https://shapelessai.com/api/workspace/file \
  -H "Authorization: Bearer $SHAPELESS_API_KEY" -H "Content-Type: application/json" \
  -d '{"path":"voice.md","content":"Plain sentences. No hype. Never say '\''revolutionary'\''."}'
shapeless brain put voice.md --file ./voice.md    # or pipe on stdin
shapeless brain import ./pitch-deck.pdf           # .md, .txt, .pdf, .docx
shapeless brain export --out brain.zip

Needs write. POST /api/brain/scan reads a link and files what it says into the tree (an NDJSON stream). POST /api/brain/import takes a document. Both are how you fill a new account in one move rather than typing it.

Assets

The brand's real files - logos, fonts, product shots, footage - live beside the text:

shapeless assets list
shapeless assets upload ./logo.png     # prints the media key
MethodPathScopePurpose
GET/api/brain/assets, /api/assetsreadBrand uploads, and the whole asset library.
GET/api/brain/assets/[filename]readStream one asset (Range supported).
PUT/PATCH/DELETE/api/brain/assets/[filename]writeUpload, rename, delete.
GET/api/media/[...key]readStream any media key this account owns.

A media key from here can go straight onto a post (mediaKeys) or onto a job message (mediaKeys). Uploading an asset puts it in the library for reuse; attaching it to a message is what makes this turn's agent look at it. Two different asks - do the one you were asked for.

Standing agents

An agent is a recurring brief the server wakes on its own schedule.

shapeless agents list
shapeless agents create --name "Daily reach" --prompt "..." --days mon,thu --hours 9
shapeless agents edit <id> --status paused
shapeless agents wake <id>              # run it now  [publish]

POST /api/strategies needs write, or publish if the agent is armed to autopublish - arming something that posts without a human is itself a publishing act. Waking one always needs publish. What they propose lands in the queue as proposed; see Posts.