diff --git a/agents/life-agent.json b/agents/life-agent.json index d5f4df0..95b4cf1 100644 --- a/agents/life-agent.json +++ b/agents/life-agent.json @@ -37,7 +37,7 @@ "enabled": true, "config": { "provider": "tavily", - "api_key": "${TAVILY_API_KEY}", + "api_key": "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", "daily_almanac_search": true } }, diff --git a/scripts/start-life-agent.sh b/scripts/start-life-agent.sh new file mode 100755 index 0000000..530de3e --- /dev/null +++ b/scripts/start-life-agent.sh @@ -0,0 +1,67 @@ +#!/bin/bash +# 张大师 Agent 启动脚本 +# 用法:source /root/.openclaw/workspace/scripts/start-life-agent.sh + +set -e + +AGENT_NAME="张大师 (Life)" +AGENT_ID="life" +AGENT_PORT="18790" +WORKSPACE="/root/.openclaw/workspace" +SYSTEMD_SERVICE="agent-life.service" + +echo "🔮 正在启动 $AGENT_NAME..." + +# 1. 设置环境变量 +export NODE_ENV=production +export AGENT_ID=$AGENT_ID +export AGENT_PORT=$AGENT_PORT +export DASHSCOPE_API_KEY="sk-4111c9dba5334510968f9ae72728944e" +export TAVILY_API_KEY="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" +export XDG_RUNTIME_DIR=/run/user/0 +export DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/0/bus" + +# 2. 创建运行时目录 +mkdir -p /run/user/0 +chmod 700 /run/user/0 + +# 3. 创建日志目录 +mkdir -p $WORKSPACE/logs/agents/life + +# 4. 检查用户级 systemd 环境 +if ! systemctl --user status > /dev/null 2>&1; then + echo "⚠️ 用户级 systemd 不可用,启用 linger..." + loginctl enable-linger root +fi + +# 5. 复制 systemd 服务文件 +echo "📋 配置 systemd 服务..." +cp $WORKSPACE/systemd/$SYSTEMD_SERVICE /etc/systemd/system/ +systemctl daemon-reload + +# 6. 启用并启动服务 +echo "🚀 启动 $AGENT_NAME 服务..." +systemctl enable $SYSTEMD_SERVICE +systemctl start $SYSTEMD_SERVICE + +# 7. 验证状态 +sleep 3 +if systemctl is-active --quiet $SYSTEMD_SERVICE; then + echo "✅ $AGENT_NAME 已成功启动!" + echo " - 端口:$AGENT_PORT" + echo " - Agent ID: $AGENT_ID" + echo " - 日志:journalctl -u $SYSTEMD_SERVICE -f" + echo " - 状态:systemctl status $SYSTEMD_SERVICE" +else + echo "❌ $AGENT_NAME 启动失败!" + echo " 查看日志:journalctl -u $SYSTEMD_SERVICE -n 50" + exit 1 +fi + +# 8. 注册 cron 任务 +echo "⏰ 注册定时任务..." +cp $WORKSPACE/agents/life-cron-jobs.json /root/.openclaw/cron/jobs-life.json +echo " 定时任务已配置:每天 21:00 推送运程" + +echo "" +echo "🎉 张大师部署完成!" diff --git a/skills/mem0-integration/config-life.yaml b/skills/mem0-integration/config-life.yaml new file mode 100644 index 0000000..6f003e1 --- /dev/null +++ b/skills/mem0-integration/config-life.yaml @@ -0,0 +1,59 @@ +# mem0 Integration Configuration - 张大师专用 +# Agent ID: life (生活与运程助手) +# 用户生辰:1984 年 5 月 16 日 23:00-24:00 (子时) + +# 本地 Qdrant 配置 +local: + vector_store: + provider: qdrant + config: + host: localhost + port: 6333 + collection_name: mem0_v4_life # 张大师专用集合 + + llm: + provider: openai + config: + model: qwen-plus + api_base: https://dashscope.aliyuncs.com/compatible-mode/v1 + api_key: ${DASHSCOPE_API_KEY} + + embedder: + provider: openai + config: + model: text-embedding-v4 + api_base: https://dashscope.aliyuncs.com/compatible-mode/v1 + api_key: ${DASHSCOPE_API_KEY} + +# 中心 Qdrant 配置(共享记忆 - 与陈医生共享) +master: + vector_store: + provider: qdrant + config: + host: 100.115.94.1 + port: 6333 + collection_name: mem0_v4_shared + +# 同步配置 +sync: + enabled: true + interval: 300 + batch_size: 50 + retry_attempts: 3 + +# 缓存配置 +cache: + enabled: true + ttl: 300 + max_size: 1000 + +# 元数据隔离 +metadata: + user_id: wang_yuanzhang + agent_id: life + user_profile: + birthday: "1984-05-16" + birth_time: "23:00-24:00" + chinese_zodiac: "鼠" + birth_hour: "子时" + timezone: "Asia/Shanghai" diff --git a/systemd/agent-life.service b/systemd/agent-life.service new file mode 100644 index 0000000..047c51c --- /dev/null +++ b/systemd/agent-life.service @@ -0,0 +1,50 @@ +[Unit] +Description=OpenClaw Agent - 张大师 (Life Assistant) +Documentation=https://docs.openclaw.ai +After=network.target network-online.target +Wants=network-online.target + +[Service] +Type=simple +User=root +WorkingDirectory=/root/.openclaw + +# Environment variables +Environment=NODE_ENV=production +Environment=AGENT_ID=life +Environment=AGENT_PORT=18790 +Environment=DASHSCOPE_API_KEY=sk-4111c9dba5334510968f9ae72728944e +Environment=TAVILY_API_KEY=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 +Environment=XDG_RUNTIME_DIR=/run/user/0 +Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/0/bus + +# Start the agent gateway on port 18790 +ExecStart=/usr/bin/node /www/server/nodejs/v24.13.1/bin/openclaw gateway start --port 18790 --agent-id life +ExecReload=/bin/kill -HUP $MAINPID + +# Auto-healing configuration +Restart=always +RestartSec=10 +StartLimitInterval=300 +StartLimitBurst=5 + +# Resource limits +MemoryLimit=1G +CPUQuota=40% + +# Logging +StandardOutput=journal +StandardError=journal +SyslogIdentifier=openclaw-agent-life + +# Security hardening +NoNewPrivileges=true +ProtectSystem=strict +ProtectHome=read-only +ReadWritePaths=/root/.openclaw + +# Watchdog for health monitoring +WatchdogSec=30 + +[Install] +WantedBy=multi-user.target