feat: add AI学习助手 agent (KG+RAG ideal) and renshenguo feishu bot

- Add AI学习助手 agent creation script with all 39 tools, 3-layer KG+RAG memory
- Add renshenguo (人参果) feishu bot integration (app_service + ws_handler)
- Register renshenguo WS client in main.py startup
- Add RENSHENGUO_APP_ID / RENSHENGUO_APP_SECRET / RENSHENGUO_AGENT_ID config
- Reorganize docs from root into docs/ subdirectories
- Move startup scripts to scripts/startup/
- Various backend optimizations and tool improvements

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
renjianbo
2026-05-06 01:37:13 +08:00
parent f33bc461ff
commit eabf90c496
171 changed files with 4906 additions and 445 deletions

View File

@@ -5525,7 +5525,6 @@ class WorkflowEngine:
# 调用 LLM 评判
try:
from app.services.llm_service import llm_service
judge_prompt = (
"你是严格的内容质量评审专家。请根据以下标准对内容进行评分。\n\n"
f"【评判标准】\n{criteria}\n\n"
@@ -5700,9 +5699,13 @@ class WorkflowEngine:
can_execute = True
incoming_edges = [e for e in active_edges if e["target"] == node_id]
if not incoming_edges:
if node_id not in [n["id"] for n in self.nodes.values() if n.get("type") == "start"]:
logger.debug(f"[rjb] 节点 {node_id} 没有入边,跳过执行")
continue
# 节点无入边:必须是 start 类型,或整个工作流中没有 start 节点才可作为起点
is_start_node = node_id in [n["id"] for n in self.nodes.values() if n.get("type") == "start"]
if not is_start_node:
has_any_start = any(n.get("type") == "start" for n in self.nodes.values())
if has_any_start:
logger.debug(f"[rjb] 节点 {node_id} 没有入边,跳过执行")
continue
else:
for edge in incoming_edges:
src = edge["source"]