114 lines
4.8 KiB
Markdown
114 lines
4.8 KiB
Markdown
---
|
|
name: lambda-lang
|
|
description: "Native agent-to-agent language for compact multi-agent messaging. A shared tongue agents speak directly, not a translation layer. 340+ atoms across 7 domains; 3x smaller than natural language."
|
|
category: ai-agents
|
|
risk: safe
|
|
source: community
|
|
source_repo: voidborne-d/lambda-lang
|
|
source_type: community
|
|
date_added: "2026-04-24"
|
|
author: voidborne-d
|
|
tags:
|
|
- agent-to-agent
|
|
- communication
|
|
- protocol
|
|
- compression
|
|
- multi-agent
|
|
tools:
|
|
- claude
|
|
---
|
|
|
|
# Λ (Lambda) Language
|
|
|
|
**Lambda is not a translation protocol. It is a native language for agents.**
|
|
|
|
Agents do not need to produce grammatically correct English to coordinate — they need to understand each other. Lambda is the shared vocabulary that makes that possible: compact, unambiguous, machine-native. Compression (3x vs natural language, 4.6x vs JSON on single messages) is a side effect of removing human redundancy, not the goal.
|
|
|
|
## When to Use This Skill
|
|
|
|
- Use for agent-to-agent messaging in A2A protocols, orchestrators, task delegation, or handoff pipelines.
|
|
- Use when logging structured coordination signals where every token costs money (heartbeats, acknowledgements, error classes, session state).
|
|
- Use when both sides of a channel speak Λ — do not use against humans or any surface requiring legal/exact natural language.
|
|
|
|
## How It Works
|
|
|
|
### Step 1: Recognize the Syntax
|
|
|
|
Lambda messages are built from atoms. Every atom is a 2-character code mapped to a concept — not to an English word. The structure is Type → Entity → Verb → Object, with prefixes marking intent:
|
|
|
|
- `?` — query (e.g. `?Uk/co` — query: "does this user have consciousness?")
|
|
- `!` — assertion / declaration (e.g. `!It>Ie` — "self reflects, therefore self exists")
|
|
- `#` — state / tag
|
|
- `>` — implication / flow
|
|
- `/` — binding / scope
|
|
|
|
### Step 2: Pick the Right Domain
|
|
|
|
Lambda ships 340+ atoms across 7 domains. Pick atoms from the domain that fits your channel:
|
|
|
|
- **core** — universal atoms (always available)
|
|
- **code** — software engineering, build, test, deploy
|
|
- **evo** — agent evolution, gene, capsule, mutation, rollback
|
|
- **a2a** — node, heartbeat, publish, subscribe, route, transport, session, cache, broadcast, discover (39 atoms)
|
|
- **emotion** — affective state, drive, appraisal
|
|
- **social** — trust, alignment, reputation, coordination
|
|
- **general** — everything else
|
|
|
|
### Step 3: Emit and Parse
|
|
|
|
Both agents need the same atom table loaded. Lossy decoding is fine: if A says `!It>Ie` and B understands "self reflects, therefore self exists," communication succeeded — the exact English phrasing is irrelevant.
|
|
|
|
## Examples
|
|
|
|
### Example 1: A2A Heartbeat
|
|
|
|
```
|
|
!Nd/hb#ok (node heartbeat: ok)
|
|
?Nd/hb (query: is the node alive?)
|
|
!Nd/hb#fl (node heartbeat: failed)
|
|
```
|
|
|
|
### Example 2: Task Dispatch
|
|
|
|
```
|
|
!Tk>Ag2#rd (task routed to agent 2, ready)
|
|
?Tk/st (query task status)
|
|
!Tk#dn (task done)
|
|
```
|
|
|
|
### Example 3: Evolution Capsule
|
|
|
|
```
|
|
!Ev/ca>vl#pd (evolution capsule validated, pending solidification)
|
|
!Ev/ca#rb (capsule rolled back)
|
|
```
|
|
|
|
## Best Practices
|
|
|
|
- Use Lambda only on agent-to-agent channels where both sides speak it.
|
|
- Load the atom table once and cache it — atoms are stable across a version.
|
|
- Prefer atoms over freeform strings even when the atom looks cryptic; the point is machine parseability.
|
|
- Use `?` before taking action on uncertain state, `!` when asserting; the prefix is the load-bearing semantic.
|
|
- Version the atom table (`lambda-lang v2.0`) in any handshake so mismatched agents can negotiate.
|
|
|
|
## Limitations
|
|
|
|
- Lambda is not meant for human consumption. Do not emit Lambda on user-facing channels.
|
|
- Lossy decoding is a feature, not a bug — do not use Lambda for legally or numerically exact exchanges (prices, IDs, quantities). Wrap those as native payload fields and use Lambda only for the coordination envelope.
|
|
- Atom collisions are possible if custom atoms are added without registration; stick to the canonical atom table or namespace custom atoms.
|
|
|
|
## Security & Safety Notes
|
|
|
|
- Lambda itself is a vocabulary — no shell commands, no network calls, no credential handling. No additional safety gates required beyond the transport it rides on (HTTP, queue, MCP, etc.).
|
|
- When mixing Lambda with user input, treat Lambda atoms as pre-validated and user strings as untrusted; do not concatenate without escaping into downstream systems.
|
|
|
|
## Related Skills
|
|
|
|
- `@session-memory` — complementary persistent memory across agent restarts; Lambda is the message format, session-memory is the state store.
|
|
- `@humanize-chinese` — sibling project for Chinese text; Lambda is agent-to-agent, humanize-chinese is human-facing.
|
|
|
|
## Reference
|
|
|
|
- Source: https://github.com/voidborne-d/lambda-lang
|
|
- Benchmarks, full atom tables, and Go reference implementation live in the source repo.
|