Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/ipythoning/b2b-sdr-agent-template/chroma-memorynpx skills add iPythoning/b2b-sdr-agent-template --skill chroma-memorygit clone --depth 1 https://github.com/iPythoning/b2b-sdr-agent-templateWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00000 | $0.00514 |
| Opus 5 | $0.00000 | $0.00257 |
| Sonnet 5 | $0.00000 | $0.00103 |
| Haiku 4.5 | $0.00000 | $0.00051 |
Grade A, and why
chroma-memory scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 61 lines — stays where its author put it; the contents beside it link to each section on GitHub.
chroma-memory — Per-Turn Conversation Memory with ChromaDB
Long-term vector memory for customer conversations. Stores every turn with customer isolation, auto-tags quotes and commitments, enables semantic retrieval across sessions.
Commands
| Command | Description |
|---|---|
chroma:store |
Store a conversation turn (auto-called after each turn) |
chroma:search <query> |
Semantic search across conversation history |
chroma:recall <customer_id> |
Recall recent history for a returning customer |
chroma:snapshot |
Store daily CRM snapshot as fallback (L4) |
chroma:stats |
Show storage statistics |
Usage
# Store a turn (normally auto-triggered by hook)
chroma:store --customer "+971501234567" --turn 5 --user "What's the price for 500 units?" --agent "Let me prepare a detailed quote..." --stage qualifying --topic pricing
# Search history
chroma:search "Dubai customer pricing discussion" --customer "+971501234567" --limit 5
# Recall for returning customer (auto-triggered when gap > 7 days)
chroma:recall "+971501234567" --limit 10
# Daily CRM snapshot (triggered by HEARTBEAT #12)
chroma:snapshot
# Stats
chroma:stats
Architecture
This skill implements Layer 3 (L3) and Layer 4 (L4) of the 4-layer Anti-Amnesia system:
- L3: Every conversation turn → ChromaDB with customer_id isolation + auto-tagging
- L4: Daily CRM snapshot → ChromaDB as disaster recovery fallback
Auto-Tagging
Turns are automatically tagged based on content analysis:
| Tag | Trigger |
|---|---|
has_quote |
Price/cost/quote discussed |
has_commitment |
Promise made by either party |
has_objection |
Customer objection detected |
has_order |
Order/purchase confirmed |
has_sample |
Sample request discussed |
Customer Isolation
All data is partitioned by customer_id (phone number). Queries always include where={"customer_id": ...} to ensure strict tenant isolation.
Dependencies
chromadbskill (vector database, install via ClawHub)- OpenClaw Gateway with session-memory hook enabled
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 61 lines · 0 tokens per session scan A 3979a27f1959
chroma-memory is a skill published in the GitHub repository iPythoning/b2b-sdr-agent-template (170 stars, last pushed 12d ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 514 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
forward-deployed-selling
Operating doctrine for AI-era enterprise sales. Use when an agent works on accounts, deals, outreach, coaching, or pipeline — any revenue-affecting decision.
event-outbound
Create validated, buyer-first email and LinkedIn outreach sequences for B2B conferences and trade shows, from pre-event through post-event. Use when asked to build attendee outreach, cold emails, LinkedIn cadences, side-event or dinner invitations, booth follow-up, or an event-plus-ICP campaign intended to book…
cold-email-onboarding
First-run interactive setup for the cold-email skill pack. Walks the operator through brand-config.json (ICP, PSP, EVP, tone, infrastructure) and SOUL.md (voice fingerprints, banned phrases, stories you lean on) in 10 minutes. Refuses to let the operator skip — generic output is worse than no output. Loaded…
cold-email-kickoff
Adaptive router for the cold-email skill pack. Detects the operator's current state (brand-config present? SOUL.md present? infrastructure ready? PSP defined? EVP locked? first campaign run?) and picks the next-best step. Loaded by the main cold-email skill on bare invocation ("/cold-email") or when the operator asks…
cold-email-list-quality
Score a cold-email prospect list 0-100 across dedup, role-fit (vs brand-config.icp), signal freshness, email-validity heuristics, exclusion-criteria match, and company-stage match. Returns the score, list of rows to remove, and a fix recommendation. Loaded by cold-email-weekly-rhythm on Monday's list refresh. Operates…
cold-email-reply-scoring
Classify replies to cold email into 4 categories — buy-signal, positive, neutral, not-interested — using deterministic features (intent keywords, time-to-reply, length, question count, calendar/asset asks). Routes each reply per brand-config.operations.replyrouting. Backed by a Python script that uses regex + features…