落地并存测服全端:智能体 Graph/路由、后台切 8180、主账与部署脚本齐备,便于线上重发与验收。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
linmianxun
2026-09-13 21:15:58 +08:00
co-authored by Cursor
parent 0eb1adecc8
commit 8103b3b651
143 changed files with 8968 additions and 277 deletions
@@ -0,0 +1,79 @@
"""
Redis 协调骨架自检(默认 Memory 后端)。
用法:
set REDIS_BACKEND=memory
python -m agent.redis_coord.selftest
"""
from __future__ import annotations
import logging
import os
import sys
logger = logging.getLogger(__name__)
def main() -> int:
logging.basicConfig(level=logging.INFO, format="%(levelname)s %(message)s")
os.environ["REDIS_BACKEND"] = "memory"
os.environ.setdefault("YTD_ENV", "test")
os.environ.setdefault("REDIS_KEY_PREFIX", "inquiry_robot:")
from agent.config import get_settings
from agent.redis_coord import (
get_redis_runtime,
get_wecom_token,
rate_limit_allow,
set_wecom_token,
shutdown_redis_runtime,
try_acquire_idempotency,
)
from agent.redis_coord.keys import join_key
get_settings.cache_clear()
# 证明:名字在前缀,不在「库名」
k = join_key("inquiry_robot:", "stream", "llm")
assert k.startswith("inquiry_robot:"), k
logger.info("OK: 键前缀示例 %s(db 号在 REDIS_URL 的 /1,不在键名里)", k)
rt = get_redis_runtime(get_settings())
try:
assert rt.client.ping()
logger.info("OK: ping backend=%s", rt.client.backend)
assert try_acquire_idempotency(
rt.client, scope="selftest", idempotency_key="once", ttl_seconds=60
)
assert not try_acquire_idempotency(
rt.client, scope="selftest", idempotency_key="once", ttl_seconds=60
)
logger.info("OK: 短幂等")
r1 = rate_limit_allow(rt.client, scope="selftest", limit=2, window_seconds=60)
r2 = rate_limit_allow(rt.client, scope="selftest", limit=2, window_seconds=60)
r3 = rate_limit_allow(rt.client, scope="selftest", limit=2, window_seconds=60)
assert r1.allowed and r2.allowed and not r3.allowed
logger.info("OK: 限流")
set_wecom_token(rt.client, agent_id="1000010", token="tok-selftest", ttl_seconds=30)
assert get_wecom_token(rt.client, agent_id="1000010") == "tok-selftest"
logger.info("OK: token 缓存")
eid = rt.llm_stream.enqueue(
payload={"mode": "ordered_actions", "text": "hi"},
idempotency_key="msg-1",
)
claimed = rt.llm_stream.claim(consumer="selftest-worker", count=1, block_ms=10)
assert claimed and claimed[0][0] == eid
rt.llm_stream.ack(eid)
logger.info("OK: Stream 入队/认领/ack id=%s", eid)
logger.info("Redis 骨架自检通过")
return 0
finally:
shutdown_redis_runtime()
if __name__ == "__main__":
sys.exit(main())