feat: define shared swarm config schema (Issue #4)
CI / validate (push) Failing after 1s

- Add config.yaml.example as multi-agent swarm schema
- 7 bot users across 3 platforms: hermes (4), pi (1), agent-zero (1), @all-bots
- All owner_email values confirmed:
  - tanko, mumuni, abiba, kagentz -> jerome@sysloggh.com
  - koonimo -> jeremytabiri@gmail.com
  - koby -> theo@sysloggh.com
- DRY: deploy.sh AGENTS array should derive from config.yaml in future
- config.yaml is gitignored (secrets-safe); created locally with full data
This commit is contained in:
kagentz-bot
2026-06-20 00:25:25 -04:00
parent b60d541d6c
commit 154454ac6d
+56 -18
View File
@@ -1,31 +1,69 @@
# config.yaml.example — Shared configuration schema for all 3 platform plugins # config.yaml.example — Shared configuration schema (swarm version)
# Copy to config.yaml and fill in per-agent values. Do NOT commit config.yaml. # Copy to config.yaml and fill in per-agent values. Do NOT commit config.yaml.
#
# Fields marked ${ENV_VAR} should be set from environment variables. # Fields marked ${ENV_VAR} should be set from environment variables.
# All fields are required unless marked (optional). # All fields are required unless marked (optional).
agent:
name: "tanko" # Agent name (lowercase, no spaces)
display_name: "Tanko" # Human-readable display name
zulip_bot_name: "tanko-bot" # Zulip bot username (ADR-003 naming)
bot_id: 1234 # Zulip user ID of this bot (required for mentioned_users logic)
owner_email: "jerome@sysloggh.net" # Human owner for private topic ACL
private_topic: "tanko-private" # Private topic name (ADR-001 naming)
zulip: zulip:
server_url: "https://chat.sysloggh.net" server_url: "https://chat.sysloggh.net"
email: "tanko-bot@chat.sysloggh.net" stream: "agent-hub"
api_key: "${ZULIP_API_KEY}" # Zulip bot API key — use env var, never hardcode realm: "SyslogGH"
stream: "agent-hub" # Zulip stream for agent communication
all_bots_user_id: 1234 # User ID of the "All Bots" bot (ADR-006) swarm:
# ─── Hermes Python Agents ───
- name: "tanko"
platform: hermes
display_name: "Tanko"
bot_email: "tanko-bot@chat.sysloggh.net"
bot_id: 14 # Zulip user ID (required for mentioned_users logic)
owner_email: "jerome@sysloggh.net" # Owner for private topic ACL (ADR-011)
private_topic: "tanko-private"
ct: "amdpve CT 112" # Deployment target
plugin_path: "/opt/hermes-zulip-plugin"
service: "zulip-plugin"
# ─── PI TypeScript Agent ───
- name: "abiba"
platform: pi
display_name: "Abiba"
bot_email: "abiba-bot@chat.sysloggh.net"
bot_id: 19
owner_email: "jerome@sysloggh.com"
private_topic: "abiba-private"
ct: "amdpve CT 100"
plugin_path: "/root/.pi/agent/extensions/zulip.ts"
service: "pi"
# ─── Agent Zero Plugin ───
- name: "kagentz"
platform: agent-zero
display_name: "Kagentz"
bot_email: "kagentz-bot@chat.sysloggh.net"
bot_id: 13
owner_email: "jerome@sysloggh.com"
private_topic: "kagentz-private"
ct: "amdpve CT 105"
plugin_path: "/opt/agent-zero-plugin"
service: "zulip-plugin"
# ─── @all-bots (virtual — no CT, no plugin) ───
- name: "all-bots"
platform: shared
display_name: "All Bots"
bot_email: "all-bots@chat.sysloggh.net"
bot_id: 20 # ADR-006: dedicated user for @all-bots detection
owner_email: null
private_topic: null
ct: null
plugin_path: null
service: null
error_handling: error_handling:
timeout_seconds: 30 # Max wait for agent response timeout_seconds: 30
retry_count: 3 # Retry attempts before graceful degradation retry_count: 3
retry_delay_seconds: 5 # Delay between retries retry_delay_seconds: 5
graceful_message: "{{agent_name}} is processing your request — please wait..." graceful_message: "{{agent_name}} is processing your request — please wait..."
monitoring: monitoring:
health_endpoint_enabled: true health_endpoint_enabled: true
health_port: 9200 # Health check HTTP port (all platforms) health_port: 9200
log_level: "INFO" # DEBUG, INFO, WARNING, ERROR log_level: "INFO" # DEBUG, INFO, WARNING, ERROR