fix: 去掉ping骚扰+注入datetime防日期幻觉

1. cron_health_monitor/verify_reassess_pipeline: bridge检测从发ping改为TCP端口检测
2. xmpp_agent_core: call_hermes注入当前时间防止LLM日期幻觉
   [当前时间: 2026-07-07 15:32 Tuesday]
3. 修复import datetime缺失
This commit is contained in:
知微
2026-07-07 15:33:14 +08:00
parent ad74ede2b8
commit bdd0611275
3 changed files with 409 additions and 15 deletions
+10 -8
View File
@@ -155,19 +155,21 @@ def main():
alerts.append(f"{j['name']}({j['id'][:8]}) {reason}")
state[key] = {"last_alerted": datetime.now().timestamp()}
# ── 检查3XMPP bridge是否在线
# ── 检查3XMPP bridge是否在线TCP端口检测,不发消息到Dad
bridge_key = "bridge_down"
try:
req = Request(XMPP_BRIDGE, data=b'{"to":"hmo@yoin.fun","body":"ping","type":"chat"}',
headers={"Content-Type":"application/json"})
resp = urlopen(req, timeout=3)
ok = json.loads(resp.read()).get("ok") == True
if not ok and is_new_alert(bridge_key, state):
alerts.append("🔴 XMPP bridge异常")
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(3)
result = sock.connect_ex(("127.0.0.1", 5805))
sock.close()
bridge_ok = (result == 0)
if not bridge_ok and is_new_alert(bridge_key, state):
alerts.append("🔴 XMPP bridge(5805)端口无响应")
state[bridge_key] = {"last_alerted": datetime.now().timestamp()}
except Exception as e:
if is_new_alert(bridge_key, state):
alerts.append(f"🔴 XMPP bridge不可达: {e}")
alerts.append(f"🔴 XMPP bridge检测失败: {e}")
state[bridge_key] = {"last_alerted": datetime.now().timestamp()}
# ── 检查4price_monitor数据新鲜度(直接查DB,不依赖job记录)─
+9 -7
View File
@@ -132,16 +132,18 @@ def run():
checks.append({"check":"strategies","status":"fail","detail":str(e)})
ok = False
# 3. XMPP bridge 是否在线
# 3. XMPP bridge 是否在线TCP端口检测,不发消息到Dad
try:
req = Request(XMPP_BRIDGE, data=b'{"to":"hmo@yoin.fun","body":"ping","type":"chat"}',
headers={"Content-Type":"application/json"})
resp = urlopen(req, timeout=3)
bridge_ok = json.loads(resp.read()).get("ok") == True
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(3)
result = sock.connect_ex(("127.0.0.1", 5805))
sock.close()
bridge_ok = (result == 0)
if not bridge_ok:
ok = False
alerts.append("XMPP bridge异常")
checks.append({"check":"xmpp_bridge","status":"ok" if bridge_ok else "fail","detail":"在线" if bridge_ok else "异常"})
alerts.append("XMPP bridge(5805)端口无响应")
checks.append({"check":"xmpp_bridge","status":"ok" if bridge_ok else "fail","detail":"在线" if bridge_ok else "端口无响应"})
except Exception as e:
checks.append({"check":"xmpp_bridge","status":"fail","detail":str(e)})
ok = False