Nhiệm vụ: Xác thực liên kết nội bộ Concepts và tự động cập nhật content
Xác thực liên kết nội bộ Concepts và tự động cập nhật content
Thêm tính năng kiểm tra liên kết hỏng trong content của Concepts và một helper chung giúp tự động cập nhật liên kết khi create/update.
Bối cảnh
Nguồn chân lý kiến trúc: Hệ thống URI thân thiện với con người trong haih-agent duy trì tính ổn định địa chỉ và các tín hiệu SEO.
Hiện tại, các URI của bản thân các Concepts đã được chuẩn hóa và có thể thay đổi an toàn thông qua 301, nhưng tính toàn vẹn của các liên kết bên trong content thì không được đảm bảo. Kết quả là các liên kết nội bộ bị hỏng đã xuất hiện trong một số Concepts do AI tạo ra.
Cần làm gì
1. Resolver xác thực liên kết hỏng cho Concepts
Thêm một GraphQL resolver quản trị để phân tích content của Concepts và tìm các liên kết trỏ đến các URI nội bộ không tồn tại.
Một cách triển khai tương tự đã tồn tại ở dự án khác — trước tiên hãy tìm và tái sử dụng/thích ứng cách tiếp cận hiện có thay vì viết thuật toán từ đầu.
Resolver tối thiểu phải có khả năng:
- kiểm tra một Concept;
- kiểm tra một tập hợp/tất cả các Concepts;
- trích xuất các liên kết Markdown/HTML/custom-tag nội bộ dẫn đến các tuyến đường của trang web;
- phân biệt URI hiện có với URI bị hỏng;
- trả về Concept, href nguồn và lý do lỗi;
- nếu có thể, phân biệt giữa một tuyến đường bị thiếu hoàn toàn và một URI được biết sẵn redirect/canonical replacement.
2. Helper chung cho create/update Concept
Tách việc xử lý liên kết thành một reusable helper và tích hợp nó vào quá trình tạo và cập nhật Concept.
Trước khi lưu content, helper phải:
- phân tích các liên kết nội bộ;
- kiểm tra chúng dựa trên các tuyến đường/Concept URI hiện tại;
- nếu liên kết trỏ đến một URI cũ đã biết với canonical/redirect rõ ràng — tự động thay thế href bằng URI hiện tại;
- không sửa đổi các URL bên ngoài;
- không thực hiện các bản sửa lỗi mang tính mơ hồ một cách âm thầm;
- giữ nguyên cấu trúc Markdown và các custom tags được cho phép.
Mục tiêu là để AI và người dùng có thể tham chiếu đến một Concept theo địa chỉ quen thuộc, trong khi hệ thống tự động duy trì các liên kết nội bộ luôn được cập nhật.
Tại sao điều này quan trọng
Trong mô hình haih-agent/fi1osof.ru mới, đồ thị Concepts chính là cốt lõi thông tin. Một liên kết hỏng không chỉ là lỗi UX của trang, mà là sự đứt gãy của đồ thị ngữ nghĩa.
Xác thực tự động là cần thiết để:
- SEO và khả năng thu thập thông tin (crawlability);
- bảo tồn PageRank/tín hiệu liên kết nội bộ;
- điều hướng người dùng chính xác;
- hoạt động đáng tin cậy của AI khi chuyển đổi qua các liên kết Concept;
- thay đổi hàng loạt ЧПУ (human-readable URLs) một cách an toàn;
- ngăn chặn việc tích tụ nợ kỹ thuật khi quản lý nội dung bằng AI.
Tiêu chí nghiệm thu
- Có admin resolver để kiểm tra một và nhiều Concepts về các liên kết nội bộ bị hỏng.
- Đã nghiên cứu trước và nếu có thể, tái sử dụng cách triển khai từ dự án khác.
- Resolver trả về cụ thể Concept + href + loại sự cố.
- Quá trình Create/update Concept đi qua helper xử lý liên kết nội bộ chung.
- Các URI cũ đã biết được tự động thay thế bằng canonical URI hiện tại khi sự tương ứng là rõ ràng.
- Các liên kết bên ngoài không bị viết lại.
- Các liên kết mơ hồ/không xác định không bị sửa bằng cách đoán mò.
- Đã thêm các bài kiểm tra (tests) cho liên kết hợp lệ, 404, redirect/canonical replacement, nhiều liên kết, liên kết bên ngoài và nội dung custom-tag/Markdown.
- Các Concepts hiện có có thể được kiểm tra hàng loạt và nhận báo cáo để khắc phục sau đó.
Ворклоги
Tiến độ: Đã triển khai xác thực và chuẩn hóa phía máy chủ cho nội dung Concept
Phần chính của nhiệm vụ đã được triển khai trong commit: https://github.com/haih-net/agent/commit/5d2a3c1
Đã thêm:
- mutation
validateConceptsđể tìm kiếm các liên kết nội bộ bị hỏng; - tích hợp kiểm tra liên kết vào
createConceptvàupdateConcept; buildValidUrisSet()cho tập hợp các URI hợp lệ;validateInternalLinks()với phân tích AST Markdown/MDX và hỗ trợ tự động sửa lỗi (auto-fix);normalizeMarkdownContent()để chuẩn hóa MDX/Markdown trước khi lưu;- tài liệu kỹ năng (skill documentation) cho
validateConcepts; write: truechỉ khả dụng cho người dùng sudo, người dùng thông thường chỉ nhận được kết quả xác thực và tự sửa liên kết thủ công.
Do đó, máy chủ hiện bắt đầu đảm bảo tính toàn vẹn của nội dung Concept được quản lý bởi AI, thay vì chỉ dựa vào tính chính xác của văn bản do người dùng hoặc agent tạo ra.
Bối cảnh kiến trúc được ghi lại trong Concept: Sistema chelovekoponyatnyh URI v haih-agent sohranyaet stabilnost adresov i SEO-signaly.
Commit lân cận 8afc203 thực hiện tái cấu trúc ConceptItem: chế độ xem danh sách (list-view) bắt đầu dựa trên intro/description, và trường kỹ thuật type đã bị xóa khỏi phần hiển thị công khai chính của Concept. Đây không phải là phần chính của nhiệm vụ, nhưng phù hợp với định hướng tách biệt phân loại hệ thống khỏi nội dung công khai mang tính ngữ nghĩa.