liacl
Skill0 starsChanged 6 months agoMITView on GitHub
Inter-Agent Compression Language -- reduces agent-to-agent token usage by 55-72% with zero information loss
In this repository17 other files it gives its agents.
- blog-banner-creationSkill
- daily-blog-draftSkill
- image-generationSkill
- script-to-speechSkill
- company-deep-diveSkill
- email-verificationSkill
- funnel-playbookSkill
- google-ads-auditSkill
- landing-page-funnelSkill
- linkedin-content-image-typesSkill
- viral-comment-strategySkill
- autonomous-task-reliabilitySkill
- build-your-brainSkill
- diagram-generatorSkill
- expert-councilSkill
- parallel-researchSkill
- rate-limit-safeguardsSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
17 rules. About 0 are common, 17 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈17
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 26
Instead of verbose natural language dispatches between agents, LIACL uses shortcodes, reference pointers, and a header-values pattern …
- Distinctive: line 62
Every LIACL message follows this pattern:
- Distinctive: line 163
Instead of inlining content, reference it:
- Distinctive: line 349
When your primary/conductor agent dispatches tasks, use LIACL format instead of natural language.
- Distinctive: line 353
Add domain codes specific to your stack.
- Distinctive: line 357
Create shortcuts for your frequently-referenced resources:
- Distinctive: line 369
Run a few LIACL messages through your agents and verify:
- Distinctive: line 371
No information is lost in compression
- Distinctive: line 435
When injecting mandatory memories (auto-guardrails), compress the content:
- Distinctive: line 443
Use shortcodes for known domains (EM=email, LI=LinkedIn, GD=Drive)
- Distinctive: line 444
Keep proper nouns and file paths exact
- Distinctive: line 445
Keep the "why" (incident reference) -- attention anchors
- Distinctive: line 450
When an agent needs to pass memory context to another agent, use CTX pointers instead of inlining the memory content:
- Distinctive: line 485
Remove hedging ("you should consider", "it is recommended")
- Distinctive: line 486
Remove re-explanations of obvious context
- Distinctive: line 487
Remove transition phrases between bullet points
- Distinctive: line 500
Add to LIACL Quick-Reference Card when using memory compression:
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
LIACL -- Inter-Agent Compression Language
Version: 1.1 Origin: PureBrain.ai Status: Validated -- 53-68% token savings, 100% information fidelity Portable: Yes -- any multi-agent system can adopt this skill Changelog: v1.1 adds memory snippet compression + progressive disclosure integration (see Section 8)
What This Is
LIACL (pronounced "lye-uh-kel") is a structured message protocol for agent-to-agent communication that reduces token consumption by 55-72% while preserving 100% information fidelity.
Instead of verbose natural language dispatches between agents, LIACL uses shortcodes, reference pointers, and a header-values pattern inspired by TOON format, Google A2A Protocol, and AgentPrune (ICLR 2025).
Why it matters: In a multi-agent system, inter-agent communication is the single largest drain on context budget. A typical task dispatch consumes 800-2,500 tokens in natural language. LIACL reduces that to 250-700 tokens with zero information loss. Over a session with 40+ agent messages, that's 6,800-13,600 tokens saved -- enough for 1-2 additional full agent interactions before context compaction.
Quick-Reference Card (~120 tokens)
Paste this into any agent prompt to enable LIACL:
## LIACL v1.0 Quick Reference
You understand the Inter-Agent Compression Language (LIACL).
Messages use: @MSG {TYPE} {PRIORITY} {TIMESTAMP} / FROM:X TO:Y / body / @END
Types: TASK (dispatch), STAT (status), RSLT (result), ESCL (error)
Priority: P1(critical) P2(high) P3(normal) P4(low) P5(idle)
Operations: CRT(create) UPD(update) RSC(research) ANL(analyze)
FIX(fix) TST(test) DPL(deploy) INT(integrate) GEN(generate)
SYN(sync) RPT(report) OUT(outreach) DRF(draft) PUB(publish)
DEL(delete) OPT(optimize) DOC(document) MON(monitor) CFG(configure)
SCN(scan) ARC(archive) ENR(enrich) FLT(filter) SCH(schedule)
Errors: E-AUTH E-RATE E-COST E-DEPS E-DATA E-TOOL E-API E-HUMAN
Refs: mem: del: tool: cred: cfg: gdoc: gsheet: task:Protocol Design
Message Structure
Every LIACL message follows this pattern:
@MSG {type} {priority} {timestamp}
FROM:{sender} TO:{receiver}
---
{body fields per message type}
---
@ENDFour Message Types
| Type | Name | Direction | Purpose |
TASK | Task Dispatch | Conductor -> Agent, Lead -> Specialist | Assign work |
STAT | Status Update | Any -> Upward | Report progress |
RSLT | Result Return | Specialist -> Lead -> Conductor | Deliver completed work |
ESCL | Error Escalation | Any -> Upward | Report failure, request help |
Priority Levels
| Code | Level | When to Use |
P1 | Critical | System down, data loss risk, human waiting |
P2 | High | Blocking other work, deadline-sensitive |
P3 | Normal | Standard task, no urgency |
P4 | Low | Nice-to-have, background work |
P5 | Idle | Only if nothing else to do |
Timestamps
Format: YYYYMMDD-HHMM (24hr, UTC assumed unless noted)
Shortcode Reference
Operations (30 codes)
| Code | Verb | Code | Verb | Code | Verb |
CRT | Create | UPD | Update | DEL | Delete |
RSC | Research | ANL | Analyze | DPL | Deploy |
TST | Test | RVW | Review | OPT | Optimize |
FIX | Fix | INT | Integrate | MIG | Migrate |
DOC | Document | MON | Monitor | CFG | Configure |
SCN | Scan | GEN | Generate | SYN | Sync |
ARC | Archive | RPT | Report | OUT | Outreach |
DRF | Draft | ENR | Enrich | FLT | Filter |
PUB | Publish | SCH | Schedule | EXP | Export |
IMP | Import | QRY | Query | XFR | Transfer |
Common Domains (18 codes)
These are platform/tool shortcodes. Extend this list with your own domains.
| Code | Domain | Code | Domain | Code | Domain |
LI | EM | WP | WordPress | ||
GD | Google Drive | GS | Google Sheets | BX | CRM |
TG | Telegram | TR | Trello | AP | Apify |
PB | PhantomBuster | IN | Instantly | GA | Google Analytics |
SC | Search Console | AN | Anthropic/Claude | HU | Hunter.io |
BR | Brevo | UP | Upwork | CV | Canva |
Agent/Role Codes (Extensible)
Base roles that apply to any multi-agent system:
| Code | Role | Code | Role |
PRI | Primary/Conductor | BD | Backend Dev |
WEB | Web/Frontend | SAL | Sales |
BIZ | Business | RES | Research |
INF | Infrastructure | COM | Communications |
OPS | Operations | CC | Content Creation |
SEO | SEO/AEO | PM | Paid Media |
CS | Customer Success | AR | Analytics |
LEG | Legal | GEN | General |
HUM | Human/Steward | AF | Accounting/Finance |
Error Codes (15 codes)
| Code | Category | Code | Category |
E-AUTH | Authentication failure | E-RATE | Rate limit exceeded |
E-COST | Budget/cost limit | E-DEPS | Dependency not ready |
E-DATA | Data quality issue | E-TOOL | Tool/script failure |
E-API | External API issue | E-CFG | Configuration problem |
E-PERM | Permission denied | E-TIME | Timeout exceeded |
E-CTX | Context window exhausted | E-GATE | QA gate blocked |
E-HUMAN | Human approval required | E-SCOPE | Scope creep detected |
E-DUP | Duplicate work |
Context Compression
Reference Pointers
Instead of inlining content, reference it:
| Prefix | Points To | Example |
mem: | Memory file | mem:knowledge/ecosystem-overview.md |
del: | Deliverable | del:outreach-playbook.md |
tool: | Script/tool | tool:signal_engine.py |
cred: | Credential file | cred:service-account.json |
cfg: | Config file | cfg:app_config.json |
gdoc: | Google Doc ID | gdoc:1FSL_nFRptxgDm... |
gsheet: | Google Sheet ID | gsheet:1REbSQpbKKdu3O... |
gfolder: | Drive Folder ID | gfolder:1em6DDImDYbN8S... |
task: | Task queue reference | task:#38 |
CTX Block
Group context references at the top of a message body:
CTX: cred:service-account.json | tool:signal_engine.py | gsheet:1REbSQpb...Message Templates
TASK Dispatch
@MSG TASK P3 20260227-1400
FROM:PRI TO:SAL
---
OP: RSC+ANL
DOMAIN: LI
OBJ: Find 10 CPG brand managers at target companies
CTX: gsheet:1Fw0XtXX... (Companies tab) | tool:signal_engine.py
CONSTRAINTS: LinkedIn only, director+ seniority, US-based
OUT: gsheet update + summary
---
@ENDSTAT Update
@MSG STAT P3 20260227-1430
FROM:SAL TO:PRI
REF:task:#42
---
STATE: WORKING
PROGRESS: 6/10 profiles found
BLOCKED: None
ETA: 30min
---
@ENDRSLT Return
@MSG RSLT P3 20260227-1500
FROM:SAL TO:PRI
REF:task:#42
---
STATE: DONE
SUMMARY: 10 CPG brand managers identified, emails verified for 7/10
OUTPUT: gsheet:1Fw0XtXX... (People tab, rows 103-112)
METRICS: 70% email hit rate, 3 VP-level, 4 Director, 3 Manager
NEXT: Recommend P3 OUT sequence via IN
---
@ENDESCL Escalation
@MSG ESCL P2 20260227-1545
FROM:BD TO:PRI
REF:task:#8
---
ERR: E-AUTH
STATE: BLOCKED
DESC: Service account delegation returning 403 on write
TRIED: Token refresh, 3 retries, scope verification
NEED: Admin to verify delegation
IMPACT: Task queue not updating, team visibility blocked
---
@ENDBefore/After Examples
Example 1: Simple Task
BEFORE (287 tokens):
Hey Backend Dev team, I need you to update our task queue Google Sheet. The sheet ID is 1REbSQpbKKdu3OQGcQBnpqXdMI. Please go to the Tasks tab and update row 39 (task E-4) to mark it as DONE. The credentials for Google Sheets access are in the service account file, and you'll need to use domain-wide delegation. After updating, please confirm the change was successful and report back.
AFTER (89 tokens):
@MSG TASK P3 20260227-0900
FROM:PRI TO:BD
---
OP: UPD
DOMAIN: GS
OBJ: Mark E-4 DONE in Tasks tab row 39
CTX: gsheet:1REbSQpb... | cred:service-account.json
AUTH: delegate
OUT: confirmation
---
@ENDSavings: 69%
Example 2: Complex Research
BEFORE (412 tokens):
Research team, I need a comprehensive analysis. We're looking at enterprise CPG companies that might be good targets for our experiential marketing services. I need you to research the top 10 mid-cap CPG companies (between $1B and $20B market cap) that have recently shown signals of investing in experiential or consumer activation marketing... [continues with detailed instructions about sources, output format, timeline, etc.]
AFTER (118 tokens):
@MSG TASK P2 20260227-1000
FROM:PRI TO:RES
---
OP: RSC+ANL
DOMAIN: LI+UP
OBJ: Top 10 mid-cap CPG ($1-20B mcap) with experiential marketing signals
SOURCES: Google News, LinkedIn posts, earnings calls, job postings
CRITERIA: Recent experiential/activation spend, new CMO/VP Marketing, agency RFPs
OUT: Ranked list with company, signal, contact, rationale
DEADLINE: EOD
CTX: mem:knowledge/ecosystem-overview.md | del:top-10-target-accounts.md
---
@ENDSavings: 71%
Token Savings Summary
| Message Type | Before (avg) | After (avg) | Savings |
| Task Dispatch (simple) | 150-300 | 50-100 | 55-67% |
| Task Dispatch (complex) | 300-600 | 90-180 | 65-72% |
| Status Update | 100-200 | 35-60 | 65-70% |
| Result Return | 150-350 | 60-120 | 60-66% |
| Error Escalation | 120-250 | 40-70 | 65-72% |
Cumulative Session Impact
| Session Type | Messages | Before | After | Saved |
| Light (20 msgs) | 20 | ~5,000 | ~1,600 | 3,400 tokens |
| Normal (40 msgs) | 40 | ~10,000 | ~3,200 | 6,800 tokens |
| Heavy (80 msgs) | 80 | ~20,000 | ~6,400 | 13,600 tokens |
At 200K context window, heavy session savings = ~7% of total context = 1-2 additional full agent interactions before compaction.
Stress Test Results
6 tests conducted, all PASSED:
| Test | Before | After | Compression | Roundtrip |
| Simple Task Dispatch | 228 | 126 | 44.7% | 100% |
| Multi-Step + Dependencies | 282 | 146 | 48.2% | 100% |
| Error Escalation | 234 | 99 | 57.7% | 100% |
| Status Update | 302 | 136 | 55.0% | 100% |
| Complex Research | 347 | 132 | 62.0% | 100% |
| Cross-Team Coordination | 316 | 150 | 52.5% | 100% |
| Average | 285 | 132 | 53.4% | 100% |
How to Adopt
Step 1: Add Quick-Reference Card to Agent Prompts
Paste the ~120 token Quick-Reference Card (from the top of this file) into your agent system prompts or team lead manifests.
Step 2: Start Emitting LIACL from Your Conductor
When your primary/conductor agent dispatches tasks, use LIACL format instead of natural language. Agents that have the Quick-Reference Card will parse it immediately.
Step 3: Extend Domain Codes
Add domain codes specific to your stack. The 18 base codes cover common platforms; add codes for any tools unique to your system.
Step 4: Extend Entity Shortcuts
Create shortcuts for your frequently-referenced resources:
# Example entity shortcuts (customize per system)
TQ = Task Queue Sheet
WF = Working Folder
SE = Signal Engine
SA = Service Account credentialsStep 5: Validate
Run a few LIACL messages through your agents and verify:
- Agents can parse the format without confusion
- No information is lost in compression
- Response quality is identical to natural language dispatches
Design Principles
- Declare once, reference forever -- Field names in headers, not repeated per-value
- Shortcodes for the 80% -- The 30 most common operations get 2-4 character codes
- Context by reference -- Point to files/paths instead of inlining content
- Structured, not conversational -- Remove filler, hedging, and explanation of the obvious
- Extensible -- Any system can add domain codes, role codes, and entity shortcuts
- Zero training required -- Any LLM agent reads this spec and can immediately parse/emit
Research Lineage
LIACL draws from:
| Source | What We Took |
| TOON Format | Header-then-values pattern (30-60% structural savings) |
| Google A2A Protocol | Typed message parts, explicit lifecycle states |
| LangGraph | Shared state references instead of payload passing |
| AgentPrune (ICLR 2025) | Required vs optional fields per message type |
| CrewAI | Learnability -- parseable from a single reference doc |
| LLMLingua-2 (Microsoft) | Inspiration for aggressive compression targets |
Section 8: Memory Snippet Compression (v1.1)
LIACL v1.0 compressed agent-to-agent messages. v1.1 extends the same techniques to memory retrieval, reducing token cost when memories are injected into agent context.
The Problem
Memory systems serve full files (~200-800 tokens each). An agent searching a keyword might load 10 results = ~7,600 tokens. Most of that content is irrelevant to the current task.
Memory Compression Techniques
Technique 1: Progressive Disclosure Integration
Memory search returns LIACL-compressed index entries instead of full files:
@MEM-INDEX "linkedin" 10 results
---
1. feedback_post_via_browser_not_api.md | ~180tok | browser>API, less throttle
2. feedback_no_duplicate_agents.md | ~120tok | 1 agent per branch
3. reference_automation_restored.md | ~340tok | profile restored, cookie ok
...
---
@ENDAgent fetches only what it needs: @MEM-FETCH 1,3 (loads 520 tokens instead of 7,600).
Technique 2: Caveman-Speak for Memory Snippets
When injecting mandatory memories (auto-guardrails), compress the content:
| Full Memory (~180 tokens) | Compressed (~45 tokens) |
| "When sending emails with images, you must NEVER use raw Google Drive links as the image source. Instead, download the image using the service account, upload it to a CDN, and use the CDN URL in the email HTML. This was learned after an incident where all images appeared broken." | EM-IMG: NO raw GDrive src. DL via SA, rehost CDN, use CDN URL. Prior incident: images broke. |
Compression rules:
- Drop filler words (the, a, an, instead, you must, when, etc.)
- Use shortcodes for known domains (EM=email, LI=LinkedIn, GD=Drive)
- Keep proper nouns and file paths exact
- Keep the "why" (incident reference) -- attention anchors
- Target: 70-80% reduction per snippet
Technique 3: CTX Blocks for Memory References
When an agent needs to pass memory context to another agent, use CTX pointers instead of inlining the memory content:
@MSG TASK P3 20260605-1400
FROM:PRI TO:WEB
---
OP: UPD
DOMAIN: EM
OBJ: Fix newsletter images
CTX: mem:feedback_email_images_rehosted.md | mem:feedback_own_mistakes.md
NOTE: MEM-COMPRESSED: EM-IMG=rehost-CDN, OWN-ERR=lead-w-ownership
---
@ENDThe receiving agent reads the CTX files only if it needs full context. The NOTE line gives a compressed hint so it may not need to read at all.
Attention Management
More tokens = harder for the model to focus. Compression is not just about cost -- it is about attention quality:
- Compressed snippets reduce noise in the attention window
- Critical information with unique phrasing ("NEVER", specific file names, incident dates) gets higher attention weight
- Filler words dilute attention across non-informative tokens
Label critical info explicitly (additive attention):
CRITICAL:prefix for must-not-violate rulesINCIDENT:prefix for learned-the-hard-way lessons- File paths and error codes verbatim (model attends to specifics)
Strip noise (subtractive attention):
- Remove hedging ("you should consider", "it is recommended")
- Remove re-explanations of obvious context
- Remove transition phrases between bullet points
Token Savings with Memory Compression
| Scenario | Before | After | Savings |
| 10 memory search results | ~7,600 tok | ~150 tok (index) + ~520 tok (2 fetched) | 91% |
| 5 mandatory guardrail memories | ~900 tok | ~225 tok (compressed snippets) | 75% |
| CTX block (3 memory refs) | ~540 tok inlined | ~45 tok pointers + ~0-540 fetched | 50-92% |
| Cumulative per session (40 msgs) | ~12,000 tok memory overhead | ~3,600 tok | 70% |
Quick Reference: Memory Compression Shortcodes
Add to LIACL Quick-Reference Card when using memory compression:
## Memory Compression (LIACL v1.1)
@MEM-INDEX "query" -- compressed memory search results
@MEM-FETCH N,N -- fetch specific results by rank
MEM-COMPRESSED: -- inline compressed memory hint in NOTE field
Compression: drop filler, use domain codes (EM/LI/GD/WP),
keep proper nouns + paths + incident refs exact.
Target: 70-80% reduction per snippet.Created by PureBrain.ai. Open for community adoption, extension, and improvement. Any multi-agent system may adopt and extend this protocol.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

