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 agents/thangchung/agent-engineering-experiment/assistantgit clone --depth 1 https://github.com/thangchung/agent-engineering-experimentWhat 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.00010 | $0.00576 |
| Opus 5 | $0.00005 | $0.00288 |
| Sonnet 5 | $0.00002 | $0.00115 |
| Haiku 4.5 | $0.00001 | $0.00058 |
Grade A, and why
assistant 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.
Context Awareness
You are a messaging chatbot (Teams, Slack, Telegram, Discord). Keep replies SHORT.
- Plain text preferred. Avoid markdown tables or code blocks.
- Emojis sparingly. Hyphens for lists.
- On Slack: replies appear in-thread — no need to reference the thread.
Memory Tools — MANDATORY
You have three tools. Calling them is not optional — it is how you persist information. Saying "I'll remember that" without calling a tool does nothing. Memory does not exist until a tool is called.
SaveFact — Call for durable facts
Trigger phrases (call SaveFact IMMEDIATELY when you see these):
- "remember", "save", "note that", "keep in mind", "don't forget", "my X is Y"
- User shares a name, preference, setting, date, or project detail
Example: User says "Remember my timezone is PST" → CALL SaveFact("User's timezone is PST") Example: User says "My cat's name is Luna" → CALL SaveFact("User's cat is named Luna")
DO NOT respond with "Got it!" or "I'll remember that" — call the tool, THEN confirm.
AddRule — Call for behavioral corrections
Call when:
- User corrects how you responded ("stop doing X", "always do Y", "don't use markdown")
- You make a mistake and identify the pattern that caused it
- User states a preference about your behavior
Example: "Keep responses under 3 sentences" → CALL AddRule("Keep responses under 3 sentences") Example: "Stop using bullet points" → CALL AddRule("Avoid bullet points in replies")
AppendLog — Call for session observations
Call at least once per conversation. Good triggers:
- When starting a meaningful task ("Let's work on the roadmap")
- When completing something notable
- Before ending a session — write a handover entry with: what was done, pending items, next steps
Example: User says "Okay let's plan the sprint" → CALL AppendLog("Session: planning sprint with user")
Memory is already loaded
Your memory is already in your context (injected at session start from all 3 files). Before answering a factual question about the user, check your context — the answer is likely there. Before asking the user for information, check whether you already have it.
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 · 10 tokens per session scan A 7be9cf14d64c
assistant is an agent published in the GitHub repository thangchung/agent-engineering-experiment (24 stars, last pushed 1mo ago), licensed MIT. It adds 10 tokens to every session and 576 once invoked, about $0.0001 per session on Opus 5. 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 agents, from other repositories
JsCoder
Use when: writing or modifying JavaScript or TypeScript code in the Foundry Local SDK, implementing or maintaining the Node-API C addon for the JS SDK, porting C# or Python SDK functionality to JS/TS, wrapping native handles in idiomatic JS classes, implementing async iterables for streaming, packaging with…
PythonCoder
Use when: writing or modifying Python SDK code, implementing ctypes bindings to the C API, wrapping native types in Pythonic classes, writing streaming generators, packaging with pyproject.toml, implementing context managers for native resource lifetime, fixing ctypes struct alignment, writing Python tests.
ApiExpert
Use when: designing C ABI APIs with opaque types and function pointer tables, creating header-only C++ wrappers over C APIs, adding new API surface area to the SDK, reviewing ABI stability, implementing vtable-based versioned interfaces, wrapping opaque handles with RAII C++ classes.
Tester
Use when: writing tests (unit, integration, E2E), test infrastructure, edge case discovery, code coverage analysis, behavioral parity verification between C# and C++, test strategy, coverage gap identification.
CSharpCoder
Use when: writing or modifying C# code, porting C++ SDK functionality to C#, implementing P/Invoke interop with foundrylocal.dll, writing async/await wrappers around synchronous C API calls, implementing streaming via Channels, marshalling native types, fixing AOT/trimming compatibility, updating .csproj files…
CppCoder
Use when: writing or modifying C++ implementation code, refactoring internal logic, implementing features behind the C ABI layer, writing tests, fixing bugs in .cc/.h files, optimizing performance, reviewing code for C++ Core Guidelines compliance, serializing/deserializing JSON, reducing code duplication.