Cree agentes de IA con habilidades aumentadas con SkillNet para búsqueda, evaluación, análisis de gráficos y planificación de tareas
banner(“5) Evaluar habilidades en 5 dimensiones de calidad (puerta de calidad)”) DIMS = [“safety”, “completeness”, “executability”, “maintainability”, “cost_awareness”]
LEVEL_SCORE = {“Excelente”: 4, “Bueno”: 3, “Aceptable”: 2, “Deficiente”: 1, “Malo”: 0} def evaluar(destino): si USE_SDK y API_KEY: intente: devolver client.evaluate(destino=destino) excepto Excepción como e: print(f” la evaluación falló para {destino}: {e!r}”) devuelve Ninguno def simulacro_eval(nombre): importar hashlib h = int(hashlib.md5(nombre.encode()).hexdigest(), 16) niveles = [“Excellent”, “Good”, “Fair”, “Poor”]
return {d: {“nivel”: niveles[(h >> (i * 3)) % 4]”reason”: “puntuación simulada sin conexión”} para i, d en enumerate(DIMS)} def gate_score(report): tot = sum(LEVEL_SCORE.get(report.get(d, {}).get(“level”, “Fair”), 2) for d en DIMS) return tot / (len(DIMS) * 4) GATE_THRESHOLD = 0,55 objetivos = [s[“skill_url”] para s en (kw_hits + vec_hits) si s[“skill_url”]][:3] \ o [i[“name”] porque estoy inspeccionado]o [“pdf-extractor”, “chart-reader”, “web-scraper”]
aprobado, anotado = [], []
para t en objetivos: rep = evaluar
“Chart_Reader”, “Web_Scraper”]
mientras que len(nombres) < 4: nombres.append(f"Skill_{len(nombres)}") rels = [ {"source": names[0]"tipo": "compose_with", "destino": nombres[1]}, {"fuente": nombres[2]"tipo": "similar_a", "destino": nombres[0]}, {"fuente": nombres[3]"tipo": "depende_de", "destino": nombres[1]}, {"fuente": nombres[1]"tipo": "pertenece_a", "destino": nombres[2]}, ]print(" (usando relaciones simuladas sin conexión; establezca API_KEY para análisis real)") para r en rels: print(f" {r['source']} --[{r['type']}]--> {r[‘target’]}”) intente: importar networkx como nx importar matplotlib.pyplot como plt G = nx.DiGraph() COLORS = {“similar_to”: “#4C9BE8”, “belong_to”: “#E8A14C”, “compose_with”: “#6BBF59”, “depend_on”: “#D45D79”} para r en rels: G.add_edge(r[“source”]r.[“target”]tipo=r[“type”]) pos = nx.spring_layout(G, semilla=42, k=1.2) plt.figure(figsize=(9, 6)) nx.draw_networkx_nodes(G, pos, node_size=2200, node_color=”#EDEDED”, edgecolors=”#444″) nx.draw_networkx_labels(G, pos, font_size=9) para et, col en COLORS.items(): bordes = [(u, v) for u, v, d in G.edges(data=True) if d[“type”] == et]si bordes: nx.draw_networkx_edges(G, pos, edgelist=edges, edge_color=col, ancho=2, flechas=True, tamaño de flecha=18, estilo de conexión=”arc3,rad=0.08″) plt.legend(handles=[plt.Line2D([0], [0]color=c, lw=2, label=t) para t, c en COLORS.items()], loc=”best”, fontsize=8) plt.title(“SkillNet — Gráfico de relación de habilidades”) plt.axis(“off”); plt.tight_layout() plt.savefig(WORKDIR / “skill_graph.png”, dpi=130) plt.show() print(f” gráfico guardado -> {WORKDIR/’skill_graph.png’}”) excepto excepción como e: print(f” gráfico omitido: {e!r}”)