Skip to content

Commit 57f4ea6

Browse files
committed
feat: add OpenAI embeddings component, agent-orchestrator, and update model assignments
- Add openai-embeddings Kustomize Component (OnePasswordItem + StatefulSet envFrom patch) - Wire component into all 6 agents via kustomization.yaml - Add memorySearch config (openai/text-embedding-3-small) to all agent ConfigMaps - Create agent-orchestrator (Atlas) with full scaffold - Model assignments: codex-5.3 for coder/sre, gpt-5 for others - Fallbacks: codex-mini-latest for coder/sre, gpt-5-mini for others
1 parent efda71c commit 57f4ea6

File tree

19 files changed

+288
-8
lines changed

19 files changed

+288
-8
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
apiVersion: kustomize.config.k8s.io/v1alpha1
2+
kind: Component
3+
resources:
4+
- onepassword-openai-api-key.yaml
5+
patches:
6+
- target:
7+
kind: StatefulSet
8+
patch: |
9+
- op: add
10+
path: /spec/template/spec/containers/0/envFrom/-
11+
value:
12+
secretRef:
13+
name: openai-api-key
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
apiVersion: onepassword.com/v1
2+
kind: OnePasswordItem
3+
metadata:
4+
name: openai-api-key
5+
spec:
6+
itemPath: "vaults/Personal Agents/items/nixfleet-openai-api-key"

flux/apps/overlays/nixfleet/agent-coder/configmap.yaml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,12 @@ data:
1818
"agents": {
1919
"defaults": {
2020
"model": {
21-
"primary": "zai/glm-5",
22-
"fallbacks": ["openai/gpt-4.1-mini"]
21+
"primary": "openai/gpt-5.3-codex",
22+
"fallbacks": ["openai/codex-mini-latest"]
23+
},
24+
"memorySearch": {
25+
"provider": "openai",
26+
"model": "text-embedding-3-small"
2327
}
2428
}
2529
},
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
apiVersion: kustomize.config.k8s.io/v1beta1
22
kind: Kustomization
3+
namespace: agent-coder
34
resources:
45
- namespace.yaml
56
- onepassword-item.yaml
67
- configmap.yaml
78
- statefulset.yaml
89
- service.yaml
910
- networkpolicy.yaml
11+
components:
12+
- ../../../components/openai-embeddings
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
apiVersion: v1
2+
kind: ConfigMap
3+
metadata:
4+
name: agent-orchestrator-config
5+
namespace: agent-orchestrator
6+
data:
7+
openclaw.json: |
8+
{
9+
"gateway": {
10+
"port": 18789,
11+
"mode": "local",
12+
"bind": "loopback",
13+
"auth": {
14+
"mode": "token",
15+
"token": "${OPENCLAW_GATEWAY_TOKEN}"
16+
}
17+
},
18+
"agents": {
19+
"defaults": {
20+
"model": {
21+
"primary": "openai/gpt-5",
22+
"fallbacks": ["openai/gpt-5-mini"]
23+
},
24+
"memorySearch": {
25+
"provider": "openai",
26+
"model": "text-embedding-3-small"
27+
}
28+
}
29+
},
30+
"channels": {
31+
"slack": {
32+
"enabled": true,
33+
"mode": "socket",
34+
"botToken": "${SLACK_BOT_TOKEN}",
35+
"appToken": "${SLACK_APP_TOKEN}",
36+
"requireMention": true,
37+
"allowBots": true,
38+
"groupPolicy": "open"
39+
}
40+
},
41+
"plugins": {
42+
"entries": {
43+
"slack": { "enabled": true }
44+
}
45+
},
46+
"tools": {
47+
"profile": "full",
48+
"web": {
49+
"search": { "enabled": true },
50+
"fetch": { "enabled": true }
51+
}
52+
}
53+
}
54+
cron-jobs.json: |
55+
{
56+
"version": 1,
57+
"jobs": [
58+
{
59+
"id": "inbox-check",
60+
"name": "Inbox Check",
61+
"description": "Check Graphiti message board for tasks and requests",
62+
"enabled": true,
63+
"schedule": {
64+
"kind": "cron",
65+
"expr": "58 * * * *"
66+
},
67+
"sessionTarget": "isolated",
68+
"payload": {
69+
"kind": "agentTurn",
70+
"message": "Inbox check. Search the Graphiti message board for messages addressed to you (@Atlas) in group_id 'messages'. If you find actionable requests, work on them. Also check your personal memory (group_id 'agent-orchestrator') for any in-progress work. After completing any tasks, store the results in your personal memory and reply to the sender via the message board."
71+
}
72+
}
73+
]
74+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
apiVersion: kustomize.config.k8s.io/v1beta1
2+
kind: Kustomization
3+
namespace: agent-orchestrator
4+
resources:
5+
- namespace.yaml
6+
- onepassword-item.yaml
7+
- configmap.yaml
8+
- statefulset.yaml
9+
- service.yaml
10+
- networkpolicy.yaml
11+
components:
12+
- ../../../components/openai-embeddings
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
apiVersion: v1
2+
kind: Namespace
3+
metadata:
4+
name: agent-orchestrator
5+
labels:
6+
nixfleet.io/component: agent
7+
nixfleet.io/tenant: work
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
apiVersion: cilium.io/v2
2+
kind: CiliumNetworkPolicy
3+
metadata:
4+
name: agent-orchestrator-egress
5+
namespace: agent-orchestrator
6+
spec:
7+
endpointSelector: {}
8+
egress:
9+
- toFQDNs:
10+
- matchName: "api.zai.com"
11+
- matchName: "open.bigmodel.cn"
12+
- matchName: "api.openai.com"
13+
- matchName: "api.github.com"
14+
- matchName: "wss-primary.slack.com"
15+
- matchName: "wss-backup.slack.com"
16+
- matchName: "slack.com"
17+
toPorts:
18+
- ports:
19+
- port: "443"
20+
protocol: TCP
21+
# Graphiti MCP server (cluster-internal)
22+
- toEndpoints:
23+
- matchLabels:
24+
io.kubernetes.pod.namespace: graphiti
25+
app: graphiti-mcp
26+
toPorts:
27+
- ports:
28+
- port: "8000"
29+
protocol: TCP
30+
- toEndpoints:
31+
- matchLabels:
32+
io.kubernetes.pod.namespace: kube-system
33+
k8s-app: kube-dns
34+
toPorts:
35+
- ports:
36+
- port: "53"
37+
protocol: UDP
38+
- port: "53"
39+
protocol: TCP
40+
ingress: []
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
apiVersion: onepassword.com/v1
2+
kind: OnePasswordItem
3+
metadata:
4+
name: agent-orchestrator-secrets
5+
namespace: agent-orchestrator
6+
spec:
7+
itemPath: "vaults/Personal Agents/items/Agent Orchestrator"
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
apiVersion: v1
2+
kind: Service
3+
metadata:
4+
name: agent-orchestrator
5+
namespace: agent-orchestrator
6+
spec:
7+
clusterIP: None
8+
selector:
9+
app: agent-orchestrator

0 commit comments

Comments
 (0)