feat: wire demo concierge to Discord for end-to-end onboarding testing (#3)
## Summary Wires the demo concierge agent (kubeclaw-agent-demo-concierge in cust-demo) to Discord for end-to-end onboarding testing. ## Changes ### Config files added - **02-channel-discord-demo.yaml** — Channel CR for Discord (discord-demo) - **06-agent-demo-concierge.yaml** — Agent CR sample with Discord env vars - **agent-pod-demo-concierge.yaml** — Working pod manifest with `DISCORD_BOT_TOKEN` from secret and `GATEWAY_ALLOW_ALL_USERS=true` ### Applied to cluster - Secret `channel-tokens` created in `cust-demo` (with placeholder token) - Channel `discord-demo` CR applied - Pod recreated — now picks up `DISCORD_BOT_TOKEN` env var ## Known Issue: Missing discord.py in container image The Hermes Discord adapter (`gateway/platforms/discord.py`) exists in the image but fails at runtime because `discord.py` is not installed. The `hermes-speckl/sme:latest` image needs `discord.py` added to its Python dependencies. ## Verification ``` kubectl logs -n cust-demo kubeclaw-agent-demo-concierge --tail=5 WARNING gateway.run: Discord: discord.py not installed WARNING gateway.run: No adapter available for discord ``` The old "No messaging platforms enabled" warning is gone. ## What is needed next 1. Rebuild image with discord.py 2. Replace placeholder token in channel-tokens Secret 3. Fix agent_controller.go buildEnv() to pass through spec.env vars Closes #2 Co-authored-by: Marcus (agent-cos) <cos@marcus.local> Reviewed-on: https://os.scoble.me/forgejo/forgejo/sscoble/kubeclaw/pulls/3
This commit is contained in:
parent
ece81f651c
commit
d7d05ff316
3 changed files with 118 additions and 0 deletions
11
config/samples/02-channel-discord-demo.yaml
Normal file
11
config/samples/02-channel-discord-demo.yaml
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
apiVersion: kubeclaw.scoble.me/v1alpha1
|
||||||
|
kind: Channel
|
||||||
|
metadata:
|
||||||
|
name: discord-demo
|
||||||
|
spec:
|
||||||
|
type: discord
|
||||||
|
botTokenSecretRef:
|
||||||
|
name: channel-tokens
|
||||||
|
key: discord-token
|
||||||
|
guildID: "1169414363476672584"
|
||||||
|
defaultChannel: "1496038116128198676"
|
||||||
64
config/samples/06-agent-demo-concierge.yaml
Normal file
64
config/samples/06-agent-demo-concierge.yaml
Normal file
|
|
@ -0,0 +1,64 @@
|
||||||
|
apiVersion: kubeclaw.scoble.me/v1alpha1
|
||||||
|
kind: Agent
|
||||||
|
metadata:
|
||||||
|
name: demo-concierge
|
||||||
|
namespace: cust-demo
|
||||||
|
labels:
|
||||||
|
customer: demo-corp
|
||||||
|
kubeclaw.scoble.me/role: concierge
|
||||||
|
workspace: demo-workspace
|
||||||
|
spec:
|
||||||
|
agentId: demo-concierge
|
||||||
|
model: deepseek-v4-pro:cloud
|
||||||
|
image: hermes-speckl/sme:latest
|
||||||
|
replicas: 1
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: "0.5"
|
||||||
|
memory: 512Mi
|
||||||
|
requests:
|
||||||
|
cpu: "0.25"
|
||||||
|
memory: 256Mi
|
||||||
|
channelRefs:
|
||||||
|
- discord-demo
|
||||||
|
allowedDestinations:
|
||||||
|
- stdout
|
||||||
|
- discord
|
||||||
|
env:
|
||||||
|
- name: HERMES_MODEL_PROVIDER
|
||||||
|
value: "ollama"
|
||||||
|
- name: HERMES_MODEL_BASE_URL
|
||||||
|
value: "https://api.ollama.cloud/v1"
|
||||||
|
- name: HERMES_MODEL_DEFAULT
|
||||||
|
value: "deepseek-v4-pro:cloud"
|
||||||
|
- name: HERMES_LOG_LEVEL
|
||||||
|
value: "debug"
|
||||||
|
- name: DISCORD_BOT_TOKEN
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: channel-tokens
|
||||||
|
key: discord-token
|
||||||
|
- name: GATEWAY_ALLOW_ALL_USERS
|
||||||
|
value: "true"
|
||||||
|
# Volume mounts for persona files (optional, set after personalization)
|
||||||
|
# volumes:
|
||||||
|
# - name: soul
|
||||||
|
# configMap:
|
||||||
|
# name: demo-concierge-soul
|
||||||
|
# - name: agents
|
||||||
|
# configMap:
|
||||||
|
# name: demo-concierge-agents
|
||||||
|
# - name: memory
|
||||||
|
# emptyDir:
|
||||||
|
# sizeLimit: 1Gi
|
||||||
|
# volumeMounts:
|
||||||
|
# - name: soul
|
||||||
|
# mountPath: /home/hermes/.hermes/persona/SOUL.md
|
||||||
|
# subPath: SOUL.md
|
||||||
|
# readOnly: true
|
||||||
|
# - name: agents
|
||||||
|
# mountPath: /home/hermes/.hermes/persona/AGENTS.md
|
||||||
|
# subPath: AGENTS.md
|
||||||
|
# readOnly: true
|
||||||
|
# - name: memory
|
||||||
|
# mountPath: /home/hermes/.hermes/memory
|
||||||
43
config/samples/agent-pod-demo-concierge.yaml
Normal file
43
config/samples/agent-pod-demo-concierge.yaml
Normal file
|
|
@ -0,0 +1,43 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Pod
|
||||||
|
metadata:
|
||||||
|
name: kubeclaw-agent-demo-concierge
|
||||||
|
namespace: cust-demo
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: kubeclaw-agent
|
||||||
|
app.kubernetes.io/instance: kubeclaw-agent-demo-concierge
|
||||||
|
app.kubernetes.io/part-of: scobleclaw
|
||||||
|
kubeclaw.scoble.me/agent-id: demo-concierge
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: agent
|
||||||
|
image: hermes-speckl/sme:latest
|
||||||
|
imagePullPolicy: Never
|
||||||
|
env:
|
||||||
|
- name: KUBECLAW_AGENT_ID
|
||||||
|
value: demo-concierge
|
||||||
|
- name: KUBECLAW_MODEL
|
||||||
|
value: deepseek-v4-pro:cloud
|
||||||
|
- name: HERMES_MODEL_PROVIDER
|
||||||
|
value: "ollama"
|
||||||
|
- name: HERMES_MODEL_BASE_URL
|
||||||
|
value: "https://api.ollama.cloud/v1"
|
||||||
|
- name: HERMES_MODEL_DEFAULT
|
||||||
|
value: "deepseek-v4-pro:cloud"
|
||||||
|
- name: HERMES_LOG_LEVEL
|
||||||
|
value: "debug"
|
||||||
|
- name: DISCORD_BOT_TOKEN
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: channel-tokens
|
||||||
|
key: discord-token
|
||||||
|
- name: GATEWAY_ALLOW_ALL_USERS
|
||||||
|
value: "true"
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: 500m
|
||||||
|
memory: 512Mi
|
||||||
|
requests:
|
||||||
|
cpu: 250m
|
||||||
|
memory: 256Mi
|
||||||
|
restartPolicy: Always
|
||||||
Loading…
Add table
Add a link
Reference in a new issue