ingest(other): ultanio cobot self-sovereign agent
This commit is contained in:
parent
492d8579f3
commit
b7ef28182c
1 changed files with 173 additions and 0 deletions
173
raw/other/2026-09-24_ultanio-cobot-self-sovereign-agent.md
Normal file
173
raw/other/2026-09-24_ultanio-cobot-self-sovereign-agent.md
Normal file
|
|
@ -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.
|
||||||
Loading…
Add table
Reference in a new issue