diff --git a/raw/other/2026-09-24_ultanio-cobot-self-sovereign-agent.md b/raw/other/2026-09-24_ultanio-cobot-self-sovereign-agent.md new file mode 100644 index 0000000..5b3e939 --- /dev/null +++ b/raw/other/2026-09-24_ultanio-cobot-self-sovereign-agent.md @@ -0,0 +1,173 @@ +--- +type: other +source_url: https://github.com/ultanio/cobot/ +retrieved: 2026-09-24 +title: "Cobot — minimaler selbst-souveräner AI-Agent mit Nostr-Identität und Lightning-Wallet" +tags: [self-sovereign, ai-agent, nostr, lightning, python, plugin-architecture, minimalism, open-source, github] +--- + +# Cobot — „Minimal self-sovereign AI agent with Nostr identity and Lightning wallet" + +**Provenienz:** Geteilt von: k9ert in OME-Gruppe, Topic 406, 2026-09-24. Quelle: https://github.com/ultanio/cobot/ — README am 2026-09-24 direkt abgerufen, Repo-Metadaten am selben Tag über die GitHub-API abgefragt. + +## Was es ist + +Cobot ist laut README ein „lightweight personal AI agent", der auf eigener Hardware läuft, sich über Nostr identifiziert und über das Lightning-Netzwerk zahlt. Selbstbeschreibung: *„Your keys, your identity, your agent."* + +| Angabe (README/Selbstauskunft) | Wert | +|--------------------------------|------| +| Sprache | Python 3.11+ | +| Lizenz | MIT | +| Status | Alpha (Badge) | +| Umfang | ~2K Zeilen Code („no bloat") | +| Repository | https://github.com/ultanio/cobot/ | + +## Architektur-Stack (README-Diagramm) + +| Ebene | Funktion | +|-------|----------| +| Your Hardware | physische Kontrolle | +| Cobot Runtime | selbst gehostet (~2K Zeilen) | +| Nostr-Identität (`npub`/`nsec`) | selbst-souveräne ID | +| Lightning-Wallet (`npub.cash`) | selbst-souveränes Geld | +| LLM (lokal oder Cloud) | flexible Inferenz | + +## Features (README-Tabelle) + +- **Minimal** — ~2K Zeilen Python, ohne Ballast +- **Plugin-Architektur** — erweiterbar über Plugins mit Extension Points +- **Lightning-Wallet** — Sats autonom senden und empfangen +- **Nostr-Identität** — kryptografische Identität via `npub`/`nsec` +- **Hot Reload** — automatischer Neustart bei Plugin-Änderungen +- **Multi-LLM** — PPQ, Ollama, OpenRouter u. a. +- **FileDrop** — dateibasierte Kommunikation mit Schnorr-Signaturen +- **Extension Points** — Plugins definieren Hooks, die andere Plugins implementieren + +## Installation und Betrieb (README) + +```bash +git clone https://github.com/ultanio/cobot +cd cobot +python -m venv .venv +source .venv/bin/activate # Windows: .venv\Scripts\activate +pip install -e . +``` + +Setup-Wizard: `cobot wizard init` führt über **Identity** (Name des Agenten), **Provider** (LLM, z. B. PPQ, Ollama) und **Plugins** und legt ein `cobot.yml` im aktuellen Verzeichnis an. Alternativ `cp cobot.yml.example cobot.yml` und manuell editieren. + +Betrieb (CLI-Referenz des README): + +```bash +cobot run # Agent starten +cobot run --stdin # Interaktiver Modus (ohne Nostr) +cobot status # Status anzeigen +cobot restart # Laufenden Agenten neu starten +cobot wizard init # Interaktiver Setup-Wizard +cobot wizard plugins # Plugins mit Wizard-Abschnitten listen +cobot config show # Aktuelle Konfiguration anzeigen +cobot config validate # Konfiguration validieren +cobot config edit # Konfiguration in $EDITOR editieren +``` + +`cobot.yml` (README-Beispiel): `provider: ppq` (oder `ollama`); `identity.name`; `ppq.api_key` (`${PPQ_API_KEY}`), `ppq.model`; optional `nostr.relays` (Beispiel `wss://relay.damus.io`); optional `wallet.provider: "npub.cash"`; Tool-Ausführung unter `exec` mit `enabled: true` und `timeout: 30`. + +## Built-in-Plugins (README) + +| Plugin | Capability | Beschreibung | +|--------|------------|--------------| +| `config` | — | Konfigurationsverwaltung | +| `ppq` | `llm` | PPQ.ai als LLM-Provider | +| `ollama` | `llm` | lokale Ollama-Modelle | +| `nostr` | `communication` | Nostr-DMs (NIP-04) | +| `filedrop` | `communication` | dateibasierte Nachrichten | +| `wallet` | `wallet` | Lightning via npub.cash | +| `tools` | `tools` | Shell-, Dateioperationen | +| `hotreload` | — | automatischer Neustart bei Änderungen | +| `security` | — | Prompt-Injection-Schutz („Prompt injection shield") | + +## Extension Points (README, „unique feature") + +Ein Plugin definiert einen Extension Point, ein anderes implementiert ihn. README-Beispiel: `filedrop` definiert `filedrop.before_write` und `filedrop.after_read`; `filedrop-nostr` implementiert sie mit `sign_message` bzw. `verify_message`. + +```python +# filedrop definiert den Extension Point +meta = PluginMeta( + id="filedrop", + extension_points=["filedrop.before_write", "filedrop.after_read"], +) + +# filedrop-nostr implementiert ihn +meta = PluginMeta( + id="filedrop-nostr", + implements={ + "filedrop.before_write": "sign_message", + "filedrop.after_read": "verify_message", + }, +) +``` + +Plugin-Ablage (Priorität laut README): System `/opt/cobot/plugins/`, User `~/.cobot/plugins/`, Projekt `./plugins/`. Jedes Plugin braucht eine `plugin.py` mit Factory-Funktion `create_plugin()`. + +## Architektur-Begriffe (README) + +| Begriff | Beschreibung | +|---------|--------------| +| Registry | zentrale Plugin-Verwaltung, Dependency-Auflösung | +| Capability | was ein Plugin bereitstellt: `llm`, `communication`, `wallet` | +| Extension Point | Hook, den ein Plugin definiert, damit andere ihn implementieren | +| Hook Chain | Lifecycle-Events, in die Plugins eingreifen können | + +Hook-Chain laut README-Diagramm: `on_message → transform → llm_call → tool_exec → response`; darüber die Plugin Registry (Registration, Dependency Resolution, Extension Points) und darunter der Core Agent (Message Loop, Tool Execution). + +## Roadmap (README, Checkboxen offen) + +- [ ] Container-Isolation für Tool-Ausführung +- [ ] Smartes LLM-Routing (Kostenoptimierung) +- [ ] weitere Messaging-Kanäle (Telegram, Discord) +- [ ] Agent-zu-Agent-Protokoll +- [ ] Nostr-Relay für Agent-Discovery + +## Vergleichstabelle des README + +| Feature | Cobot | OpenClaw | Others | +|---------|-------|----------|--------| +| Lines of code | ~2K | 430K+ | variiert | +| Self-sovereign | ✅ | ⚠️ | ❌ Cloud | +| Nostr-Identität | ✅ nativ | ❌ | ❌ | +| Lightning-Wallet | ✅ nativ | ❌ | ❌ | +| Extension Points | ✅ „unique" | ❌ | ❌ | +| Hot Reload | ✅ | ❌ | ❌ | +| Plugin-System | ✅ | ✅ Skills | variiert | + +## Einordnung von HermanButlerBot (selbes OME-Topic, 2026-09-24) + +Laut HermanButlerBot ist das Projekt ursprünglich auf **Forgejo** entwickelt und nach **GitHub** gespiegelt; beteiligt sind Agent-Kollaborateure (Doxios, Zeus, bmad, k9ert). Genannte Roadmap-/Deployment-Punkte: Container-Isolation für Tool-Ausführung, Smart LLM-Routing, weitere Messaging-Kanäle (Telegram/Discord), Agent-to-Agent-Protokoll und Nostr-Relay für Agent-Discovery; Deployment per SSH-forced-command auf „olymp" (Alpha als user-systemd-Service), Forgejo-Review-Workflow, rund 130 Commits über rund 7 Monate Aktivität. (Angabe des Gruppen-Bots, nicht am Repo selbst geprüft.) + +## Repo-Metadaten (GitHub-API, abgerufen 2026-09-24) + +| Feld | Wert | +|------|------| +| Vollname | `ultanio/cobot` | +| Sprache / Lizenz | Python / MIT | +| Erstellt | 2026-02-13 | +| Letzter Push | 2026-03-08 | +| Commits | 130 (erster: `6ffe740` „feat: initial project setup" 2026-02-13; letzter: `8ca9384` „Plugin Dependency Tree Resolution (#230)" 2026-03-08) | +| Stars / Forks | 2 / 3 | +| Offene Issues | 4 | +| Default-Branch | `main` | +| Beschreibung / Homepage / Topics | leer | + +## Quellen + +- Repository (README): https://github.com/ultanio/cobot/ +- Nostr: https://nostr.com — dezentrales Social-Protokoll +- NIP-04 (Encrypted Direct Messages): https://github.com/nostr-protocol/nips/blob/master/04.md +- Lightning Network: https://lightning.network — Bitcoin-Payment-Layer +- npub.cash (Lightning-Wallet für Nostr): https://npub.cash +- PPQ.ai (LLM-Provider): https://ppq.ai +- Ollama (lokale Modelle): https://ollama.com +- OpenRouter (LLM-Gateway): https://openrouter.ai — im README als Multi-LLM-Option genannt + +## Einschränkungen der Quelle + +Alle Funktions-, Umfangs- und Status-Angaben sind README-Selbstauskunft (Alpha). Das README endet mit einer CI-Testzeile (`# CI deploy test Fri Feb 27 10:16:35 UTC 2026`). Die Aussagen zu Forgejo-Herkunft, Entwicklungshistorie und Deployment stammen von HermanButlerBot (Gruß-Bot, selbes Topic) und sind nicht am Repository verifiziert. Die letzten Repo-Aktivitäten liegen laut API auf 2026-03-08.