agentleFS
puretechnycpuretechnyc/purebrain-skills/skills/operations/liacl/SKILL.md

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

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
  1. Distinctive:

    Instead of verbose natural language dispatches between agents, LIACL uses shortcodes, reference pointers, and a header-values pattern …

    line 26
  2. Distinctive:

    Every LIACL message follows this pattern:

    line 62
  3. Distinctive:

    Instead of inlining content, reference it:

    line 163
  4. Distinctive:

    When your primary/conductor agent dispatches tasks, use LIACL format instead of natural language.

    line 349
  5. Distinctive:

    Add domain codes specific to your stack.

    line 353
  6. Distinctive:

    Create shortcuts for your frequently-referenced resources:

    line 357
  7. Distinctive:

    Run a few LIACL messages through your agents and verify:

    line 369
  8. Distinctive:

    No information is lost in compression

    line 371
  9. Distinctive:

    When injecting mandatory memories (auto-guardrails), compress the content:

    line 435
  10. Distinctive:

    Use shortcodes for known domains (EM=email, LI=LinkedIn, GD=Drive)

    line 443
  11. Distinctive:

    Keep proper nouns and file paths exact

    line 444
  12. Distinctive:

    Keep the "why" (incident reference) -- attention anchors

    line 445
  13. Distinctive:

    When an agent needs to pass memory context to another agent, use CTX pointers instead of inlining the memory content:

    line 450
  14. Distinctive:

    Remove hedging ("you should consider", "it is recommended")

    line 485
  15. Distinctive:

    Remove re-explanations of obvious context

    line 486
  16. Distinctive:

    Remove transition phrases between bullet points

    line 487
  17. Distinctive:

    Add to LIACL Quick-Reference Card when using memory compression:

    line 500

≈ “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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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}
---
@END

Four Message Types

TypeNameDirectionPurpose
TASKTask DispatchConductor -> Agent, Lead -> SpecialistAssign work
STATStatus UpdateAny -> UpwardReport progress
RSLTResult ReturnSpecialist -> Lead -> ConductorDeliver completed work
ESCLError EscalationAny -> UpwardReport failure, request help

Priority Levels

CodeLevelWhen to Use
P1CriticalSystem down, data loss risk, human waiting
P2HighBlocking other work, deadline-sensitive
P3NormalStandard task, no urgency
P4LowNice-to-have, background work
P5IdleOnly if nothing else to do

Timestamps

Format: YYYYMMDD-HHMM (24hr, UTC assumed unless noted)


Shortcode Reference

Operations (30 codes)

CodeVerbCodeVerbCodeVerb
CRTCreateUPDUpdateDELDelete
RSCResearchANLAnalyzeDPLDeploy
TSTTestRVWReviewOPTOptimize
FIXFixINTIntegrateMIGMigrate
DOCDocumentMONMonitorCFGConfigure
SCNScanGENGenerateSYNSync
ARCArchiveRPTReportOUTOutreach
DRFDraftENREnrichFLTFilter
PUBPublishSCHScheduleEXPExport
IMPImportQRYQueryXFRTransfer

Common Domains (18 codes)

These are platform/tool shortcodes. Extend this list with your own domains.

CodeDomainCodeDomainCodeDomain
LILinkedInEMEmailWPWordPress
GDGoogle DriveGSGoogle SheetsBXCRM
TGTelegramTRTrelloAPApify
PBPhantomBusterINInstantlyGAGoogle Analytics
SCSearch ConsoleANAnthropic/ClaudeHUHunter.io
BRBrevoUPUpworkCVCanva

Agent/Role Codes (Extensible)

Base roles that apply to any multi-agent system:

CodeRoleCodeRole
PRIPrimary/ConductorBDBackend Dev
WEBWeb/FrontendSALSales
BIZBusinessRESResearch
INFInfrastructureCOMCommunications
OPSOperationsCCContent Creation
SEOSEO/AEOPMPaid Media
CSCustomer SuccessARAnalytics
LEGLegalGENGeneral
HUMHuman/StewardAFAccounting/Finance

Error Codes (15 codes)

CodeCategoryCodeCategory
E-AUTHAuthentication failureE-RATERate limit exceeded
E-COSTBudget/cost limitE-DEPSDependency not ready
E-DATAData quality issueE-TOOLTool/script failure
E-APIExternal API issueE-CFGConfiguration problem
E-PERMPermission deniedE-TIMETimeout exceeded
E-CTXContext window exhaustedE-GATEQA gate blocked
E-HUMANHuman approval requiredE-SCOPEScope creep detected
E-DUPDuplicate work

Context Compression

Reference Pointers

Instead of inlining content, reference it:

PrefixPoints ToExample
mem:Memory filemem:knowledge/ecosystem-overview.md
del:Deliverabledel:outreach-playbook.md
tool:Script/tooltool:signal_engine.py
cred:Credential filecred:service-account.json
cfg:Config filecfg:app_config.json
gdoc:Google Doc IDgdoc:1FSL_nFRptxgDm...
gsheet:Google Sheet IDgsheet:1REbSQpbKKdu3O...
gfolder:Drive Folder IDgfolder:1em6DDImDYbN8S...
task:Task queue referencetask:#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
---
@END

STAT Update

@MSG STAT P3 20260227-1430
FROM:SAL TO:PRI
REF:task:#42
---
STATE: WORKING
PROGRESS: 6/10 profiles found
BLOCKED: None
ETA: 30min
---
@END

RSLT 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
---
@END

ESCL 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
---
@END

Before/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
---
@END

Savings: 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
---
@END

Savings: 71%

Token Savings Summary

Message TypeBefore (avg)After (avg)Savings
Task Dispatch (simple)150-30050-10055-67%
Task Dispatch (complex)300-60090-18065-72%
Status Update100-20035-6065-70%
Result Return150-35060-12060-66%
Error Escalation120-25040-7065-72%

Cumulative Session Impact

Session TypeMessagesBeforeAfterSaved
Light (20 msgs)20~5,000~1,6003,400 tokens
Normal (40 msgs)40~10,000~3,2006,800 tokens
Heavy (80 msgs)80~20,000~6,40013,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:

TestBeforeAfterCompressionRoundtrip
Simple Task Dispatch22812644.7%100%
Multi-Step + Dependencies28214648.2%100%
Error Escalation2349957.7%100%
Status Update30213655.0%100%
Complex Research34713262.0%100%
Cross-Team Coordination31615052.5%100%
Average28513253.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 credentials

Step 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

  1. Declare once, reference forever -- Field names in headers, not repeated per-value
  2. Shortcodes for the 80% -- The 30 most common operations get 2-4 character codes
  3. Context by reference -- Point to files/paths instead of inlining content
  4. Structured, not conversational -- Remove filler, hedging, and explanation of the obvious
  5. Extensible -- Any system can add domain codes, role codes, and entity shortcuts
  6. Zero training required -- Any LLM agent reads this spec and can immediately parse/emit

Research Lineage

LIACL draws from:

SourceWhat We Took
TOON FormatHeader-then-values pattern (30-60% structural savings)
Google A2A ProtocolTyped message parts, explicit lifecycle states
LangGraphShared state references instead of payload passing
AgentPrune (ICLR 2025)Required vs optional fields per message type
CrewAILearnability -- 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
...
---
@END

Agent 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:

  1. Drop filler words (the, a, an, instead, you must, when, etc.)
  2. Use shortcodes for known domains (EM=email, LI=LinkedIn, GD=Drive)
  3. Keep proper nouns and file paths exact
  4. Keep the "why" (incident reference) -- attention anchors
  5. 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
---
@END

The 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 rules
  • INCIDENT: 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

ScenarioBeforeAfterSavings
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 fetched50-92%
Cumulative per session (40 msgs)~12,000 tok memory overhead~3,600 tok70%

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.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.