Przejdź do treści
Biblioteka skilli
AI i agenci · Integracja z narzędziem

substrate

/substrate

Odczytuje i zapisuje substrate użytkownika w Butterbase, czyli pamięć agenta z encjami, stanem biznesowym, wiedzą instytucjonalną i księgą akcji, dla asystentów założycieli i agentów z pamięcią między sesjami.

Licencja
MIT
Ostatnia zmiana repozytorium
25.10.2026

Ocena i bezpieczeństwo

90/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść25 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
1
Skrypty
0
Komentarze HTML
0
Adresy URL w SKILL.md
0
Przestarzałość

Brak sygnałów. Repozytorium zmienione 25.10.2026, bez odwołań do wycofanych modeli i API.

Licencja

MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.

Co robi i kiedy

Odczytuje i zapisuje substrate użytkownika w Butterbase, czyli pamięć agenta z encjami, stanem biznesowym, wiedzą instytucjonalną i księgą akcji, dla asystentów założycieli i agentów z pamięcią między sesjami.

Oryginalny opis (EN)

Use when the user wants to read/write their Butterbase substrate — the per-user agent-memory backend that holds entities, business state, institutional memory, and an append-only action ledger. Use for: founder copilots, AI agents that need memory across sessions, anything that proposes actions on the user's behalf.

Jak działa

  1. Four stores
  2. The propose → policy → execute → log loop
  3. Reads
  4. When to use
  5. Linking an app
  6. API keys
  7. Anti-patterns
Sekcje z nagłówków SKILL.md, w oryginale · 56 linii, 542 słów
Podgląd SKILL.md
---
name: substrate
description: Use when the user wants to read/write their Butterbase substrate — the per-user agent-memory backend that holds entities, business state, institutional memory, and an append-only action ledger. Use for: founder copilots, AI agents that need memory across sessions, anything that proposes actions on the user's behalf.
---

# Butterbase Substrate

Substrate is an **optional, per-user** add-on backend. One substrate per Butterbase account, lazily provisioned on first use, queryable from local Claude Code (via MCP), from any opted-in Butterbase app (via `ctx.substrate` inside functions), and from external systems (via HTTP).

## Four stores

| Store | What lives there | Tools |
|---|---|---|
| Entities | People, companies, projects you transact with | `get_entity`, `find_entities` |
| Business state | Numeric facts that change over time (MRR, headcount) | `find_entities` with type filter |
| Institutional memory | Decisions, commitments, learnings | `search_memory` |
| Action ledger | Append-only log of every proposed/executed action | `list_outbox`, `propose_action` history |

## The propose → policy → execute → log loop

Every write goes through this loop. Agents NEVER touch the substrate database directly.

1. **Propose** — `propose_action` with `capability` + `args`. Returns an action ID.
2. **Policy** — substrate-core evaluates per-capability rules. Verdicts: `auto_execute`, `require_approval`, `deny`.
3. **Approval (if needed)** — human calls `approve_action(action_id)` or `reject_action(action_id)`. If `yolo_mode=true` for this user, approvals are auto-granted for capabilities marked yolo-safe.
4. **Execute + log** — substrate-core runs the action in a transaction and appends to the ledger.

For external side effects (sending email, calling an API), substrate writes to the **outbox** instead of executing inline. The cron-scheduler drains it. Use `list_outbox`, `retry_outbox`, `cancel_outbox` to manage it.

## Reads

- `get_entity(id)` — fetch by ID.
- `find_entities(type, query, limit)` — typed search; `query` is full-text + structured.
- `search_memory(query, kind?)` — semantic + keyword search across decisions/commitments/learnings.

## When to use

- ✅ Founder copilot ("what did I decide about pricing last quarter?")
- ✅ AI agent that should remember a customer across conversations
- ✅ Any app where you want a single source of truth for entities the agent operates on
- ❌ Plain CRUD app (use regular Butterbase tables)
- ❌ Pure analytics / read-only dashboard (substrate is action-oriented)

## Linking an app

When `apps.substrate_user_id` is set to the app owner's `platform_user.id`, functions in that app get `ctx.substrate` injected at cold start, with reader and proposer methods. Use `/butterbase-skills:journey-substrate` to enable this for an app.

## API keys

For agent access from local Claude Code, generate a `scope='both'` API key via `manage_auth_config` `action: "generate_service_key"` with `substrate_access: true`. The same `bb_sk_` key works on both app and substrate endpoints.

## Anti-patterns

- ❌ Calling substrate MCP tools without first checking whether the user has substrate provisioned. `find_entities` returns 401 if there's no substrate — handle gracefully and suggest provisioning.
- ❌ Treating the action ledger as mutable. It's append-only; "undo" is a new compensating action, not a delete.
- ❌ Storing transient state in entities. Entities are durable nouns; use the app's runtime tables for ephemeral state.
- ❌ Calling `upsert_entity` without `canonical_keys` or `primary_email` and expecting dedup. Provide one or the other so substrate can match an existing row. Without them, every call mints a new entity.
- ❌ Calling `update_entity` for a partial update. It replaces `attrs` wholesale and will drop every key you didn't include. Use `patch_entity` (RFC 7396 merge-patch) instead.
- ❌ Storing entity IDs in app data and skipping alias resolution after `merge_entities`. The merged-away ID stops resolving to an entity; look up `substrate.entity_aliases` to find the survivor.

Wersje

RepozytoriumWynikLicencja
Ta strona · butterbase-ai/butterbase-skills90MIT
sparq-org/sparq100MIT

Migawka bazy z 28.10.2026 · wersja paczki bc3fc1d08141 (skrót SHA-256 całej paczki)

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 100sis-memory-orchestrator
    Koordynuje zespół siedmiu subagentów, które zarządzają pamięcią agenta: zapisem, wyszukiwaniem, prywatnością i wyborem bazy.
  • 100ledger-memory
    Zarządza trwałą pamięcią między sesjami: zapisuje fakty, poprawia lub wycofuje błędne wpisy, porządkuje pamięć na koniec sesji i decyduje, co warto zapamiętać.
  • 87memory-bank
    Prawdopodobnie zbiór wytycznych do pracy z pamięcią projektu, czyli plikami memory-bank, które utrzymują kontekst między sesjami.
  • 90memwal
    Dodaje przenośną pamięć agentów do aplikacji przez Walrus Memory SDK, z pamięcią między aplikacjami, sesjami i przepływami pracy.
  • 100agents
    Pomaga projektować, wdrażać i debugować agenty Butterbase (deklaratywny graf LLM i narzędzi), rejestrować serwer MCP oraz ustawiać kontrolę dostępu i limity zapytań.
  • 100agent-memory-systems
    Projektuje pamięć, wyszukiwanie i retencję z podziałem na tenantów dla agentów: RAG, historia rozmów, magazyny wektorowe i zapamiętywanie między sesjami.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.