💻 源码
from _004_langgraph_more_nodes.agent_state import AgentState
from common.neo4j_manager import neo4j_client


def check_cypher_node(state:AgentState):
    print("cypher检查节点执行开始了")
    cypher_query_list = state.get("cypher_query") or []

    # 空列表判 False。"空集合全部合法"逻辑上成立,但这个标志位是给路由用的:
    # 没有语句可执行时必须走兜底,判 True 会让下游拿着空列表白查一趟。
    if not cypher_query_list:
        state['is_all_validate_cypher'] = False
        print("完成检查cypher语句:False(没有语句)")
        return state

    state['is_all_validate_cypher'] = True
    for cypher_query in cypher_query_list:
        if not neo4j_client.validate_cypher(cypher_query):
            state['is_all_validate_cypher'] = False
            break
    print(f"完成检查cypher语句:{state['is_all_validate_cypher']}")
    return state


if __name__ == '__main__':
    print(check_cypher_node({"cypher_query":["MATC1H (e:Employee) RETURN e.id, e.name, e.salary, e.deptno"]}))