2 điểm bởi GN⁺ 2025-04-08 | Chưa có bình luận nào. | Chia sẻ qua WhatsApp
  • Khi các hệ thống lớn và lượng mã do AI tạo ra quá nhanh khiến con người ngày càng khó liên tục đọc và hiểu, Glamorous Toolkit hướng tới một Moldable Development Environment giúp hiểu hệ thống thông qua công cụ ngữ cảnh mang tính quyết định
  • Cách tiếp cận là tạo các công cụ ngữ cảnh nén lại lát cắt hệ thống cần thiết cho từng câu hỏi, rồi gắn chúng vào các đối tượng hoặc tình huống liên quan để chỉ kích hoạt vào đúng thời điểm cần thiết
  • Agent harness tích hợp cho phép định nghĩa bằng script ngữ cảnh hội thoại, công cụ và đầu ra có cấu trúc, đồng thời có thể dùng với OpenAI, Anthropic, Ollama hoặc nhà cung cấp tự xây dựng
  • Phạm vi ứng dụng mở rộng vượt khỏi phân tích hệ thống legacy sang khám phá domain, khám phá API, dữ liệu và log, tài liệu hóa, mô hình hóa domain, viết lại mã, hội thoại với AI và kiểm tra runtime
  • Đây là mã nguồn mở miễn phí theo giấy phép MIT; trọng tâm là Smalltalk dựa trên Pharo nhưng có thể mở rộng sang Rust cùng nhiều ngôn ngữ và phân tích runtime khác

Môi trường phát triển có thể nhào nặn để hiểu hệ thống và AI

  • Mục tiêu của Glamorous Toolkit là tối ưu hóa cách thu nhận thông tin về hệ thống
  • Hệ thống quá lớn, còn AI tạo mã quá nhanh, nên cách hiểu chỉ bằng đọc mã trở thành nút thắt cổ chai
  • Thay vì cách tiếp cận lấy việc đọc làm trung tâm, nó sử dụng công cụ ngữ cảnh mang tính quyết định để nén hệ thống xung quanh vấn đề
  • Những công cụ này giúp cả con người lẫn AI khám phá hệ thống nhanh hơn, và có thể được tạo trực tiếp trong một môi trường hợp nhất hoặc cùng xây với AI
  • Các câu hỏi về hệ thống hiện có có thể được trả lời thông qua tường thuật được cấu thành từ các công cụ ngữ cảnh

Agent harness tích hợp

  • Agent có thể lập trình

    • Có thể dùng script để định nghĩa ngữ cảnh hội thoại, công cụ và đầu ra có cấu trúc
  • Bộ nhớ agent có thể mở rộng

    • Ngữ cảnh được định nghĩa bằng các diễn giải có thể thực thi, liên kết với mã và ví dụ
    • Có thể dùng context view để mở rộng bộ nhớ agent tới các đối tượng tùy ý
  • Hành vi agent có thể giải thích

    • Thay vì chấp nhận nguyên văn điều AI nói rằng nó đã làm, có thể hiểu một cách quyết định thông qua context view
  • Đối tượng thay vì văn bản

    • Có thể truyền đối tượng live vào hội thoại và nhận lại các đối tượng có cấu trúc
    • Mỗi đối tượng có context view để con người và AI cùng khám phá
    • Có thể dùng với OpenAI, Anthropic, Ollama và cũng có thể tự tạo nhà cung cấp riêng

Vì sao cần công cụ ngữ cảnh

  • Phần mềm không có hình dạng hữu hình, và không có gì bên trong một hệ thống phần mềm có thể được cảm nhận nếu không thông qua công cụ
  • Công cụ cung cấp hình dạng cho phần mềm, nên nếu kiểm soát công cụ thì cũng có thể kiểm soát nhận thức và mức độ hiểu biết
  • Phần mềm phụ thuộc rất mạnh vào ngữ cảnh, nên công cụ cũng phải mang ngữ cảnh mới hiệu quả
  • Không tồn tại một biểu diễn duy nhất cho một hệ thống phần mềm
    • Ngay cả hình thức văn bản của mã cũng chỉ là hình dạng ngẫu nhiên của phương tiện nhập liệu
    • Tùy theo vấn đề mà cần những biểu diễn khác nhau
  • Để chấp nhận số lượng lớn công cụ ngữ cảnh khó dự đoán, Glamorous Toolkit được thiết kế như một ngôn ngữ gồm các toán tử tương tác và trực quan
    • Có thể lập trình và kết hợp các micro-tool với chi phí thấp
    • Có thể tạo công cụ theo nhiều cách trong môi trường live

Công cụ, nén và sự đảo ngược quyền điều khiển

  • Công cụ là giao diện để tương tác với tính toán
    • Có thể là trình chỉnh sửa cấu hình, trình gỡ lỗi runtime, hoặc trình kiểm tra API
    • Có thể là công cụ phức tạp, hoặc công cụ đơn giản chỉ tập trung vào một câu hỏi
    • Có thể trực quan hoặc dựa trên văn bản thuần
    • Có thể là công cụ đa dụng hoặc công cụ ngữ cảnh chỉ liên quan tới đầu vào hẹp
  • Công cụ đa dụng áp dụng rộng, nhưng phải trả giá là khiến mọi thứ trông giống nhau
  • Giá trị của hệ thống phần mềm luôn là giá trị cụ thể, vì vậy công cụ ngữ cảnh có thể truyền tải giá trị đó hiệu quả và dễ chịu hơn
  • Việc hiểu hệ thống rốt cuộc là quá trình trả lời câu hỏi
    • Câu trả lời nằm trong các tạo phẩm của hệ thống, nhưng các tạo phẩm này quá lớn nên khó đọc
    • Công cụ mã hóa một cách mang tính quyết định phương thức để có được câu trả lời
    • Kết quả của công cụ hoạt động như một bản nén của hệ thống đối với câu hỏi đó
  • Để trả lời mọi câu hỏi bằng công cụ ngữ cảnh mang tính quyết định, mỗi hệ thống sẽ cần hàng nghìn công cụ
  • Glamorous Toolkit không yêu cầu người dùng gọi công cụ một cách tường minh, mà gắn chúng với ngữ cảnh liên quan để chỉ kích hoạt khi tương tác với ngữ cảnh đó
    • Ngữ cảnh này có thể là đơn vị cơ bản như từng đối tượng riêng lẻ

Luồng Moldable Development điển hình

  • Bắt đầu từ một câu hỏi cụ thể
  • Nếu chưa có công cụ liên quan thì tạo mới
  • Diễn giải câu trả lời và đưa ra quyết định
  • Lặp lại quá trình này

Object view và tường thuật

  • Các view gắn với đối tượng trở thành đơn vị của tài liệu hóa
  • Nếu đối tượng được tạo và kiểm thử bằng ví dụ tự động, có thể tạo ra các tường thuật được xác định rõ để truyền đạt những khái niệm bền vững, từ tutorial đến ràng buộc kiến trúc và quy trình nghiệp vụ
  • Các tường thuật này có thể được thiết kế cho cả con người lẫn AI
  • Vì cùng một tập thành phần được tích hợp vào toàn bộ trải nghiệm phát triển, có thể tự động kiểm thử và refactor cùng với mã
  • Các tường thuật được định nghĩa là những mảnh tái sử dụng được, nhưng do đặc tính ngữ cảnh của phần mềm, vẫn cần tường thuật động để trả lời theo yêu cầu cho các câu hỏi lớn hơn
    • Điều tra hiệu năng cluster
    • Khám phá cấu trúc hệ thống COBOL
  • Tường thuật có thể xử lý bất kỳ đối tượng nào đại diện cho các khía cạnh khác nhau của hệ thống, bao gồm cả domain
  • Chúng có thể hướng tới các bên liên quan có nền tảng và mối quan tâm khác nhau, nhờ đó môi trường trở thành trung gian cho cuộc đối thoại giữa các bên liên quan đến hệ thống

Chỉnh sửa theo ngữ cảnh

  • Việc ngữ cảnh hóa mở rộng tới mọi tương tác với hệ thống, bao gồm cả chỉnh sửa
  • Hệ thống được cấu thành từ nhiều khía cạnh
    • Công nghệ
    • Quy tắc domain
    • Quy ước
    • Thư viện
    • Giao diện
    • Kiểm thử
    • Tạo phẩm sinh ra
    • Hành vi runtime
  • Chỉnh sửa không đơn thuần là nhập văn bản, mà là hành động tác động đến một số khía cạnh trong đó
  • Mọi thay đổi đều diễn ra bên trong ngữ cảnh quyết định ý nghĩa của nó
  • Trình chỉnh sửa đa dụng làm phẳng ngữ cảnh này và buộc người dùng phải làm việc ở cấp độ của trình chỉnh sửa
  • Trình chỉnh sửa theo ngữ cảnh nâng tương tác lên mức phù hợp với mô hình tinh thần của người dùng

Phạm vi sử dụng và giới hạn

  • Glamorous Toolkit chủ yếu được dùng để tạo công cụ, view, diễn giải và workflow nhằm hiểu và thay đổi hệ thống
  • Nó không phải là nền tảng ứng dụng thay thế
  • Có thể dùng cho các hệ thống legacy lớn, nhưng cũng bao gồm nhiều kịch bản khác
    • Khám phá domain
    • Khám phá API
    • Khám phá dữ liệu
    • Hiểu log
    • Tài liệu hóa
    • Mô hình hóa domain
    • Viết lại mã
    • Hội thoại với AI
    • Kiểm tra runtime
  • Công cụ tiêu chuẩn hữu ích cho các vấn đề đa dụng
  • Với các câu hỏi cụ thể phát sinh trong một hệ thống cụ thể, cần đến công cụ ngữ cảnh

Tóm tắt bằng AI và công cụ mang tính quyết định

  • Phần lớn câu hỏi về hệ thống cần câu trả lời mang tính quyết định dựa trên thông tin của hệ thống
  • Tóm tắt bằng AI có thể tiện lợi, nhưng không thể biết nó có chính xác hoặc mang tính đại diện hay không, và cũng không thể giải thích được
  • Với các câu trả lời phục vụ mục đích kỹ thuật, độ chính xác, tính đại diện và khả năng giải thích là rất quan trọng
  • Công cụ ngữ cảnh mang tính quyết định cũng có thể có thiên lệch, nhưng có thể kiểm tra thiên lệch đó trước khi diễn giải đầu ra
  • Có thể xem thêm chi tiết trong Chương 6 của Rewilding Software Engineering

Triển khai và công nghệ hỗ trợ

  • Với Glamorous Toolkit, việc tạo công cụ ngữ cảnh không quá khó
  • Môi trường được xây như một ngôn ngữ gồm các toán tử trực quan và tương tác, giúp dễ lập trình công cụ và kết hợp chúng theo nhiều cách
  • Khi mở Glamorous Toolkit, có thể thấy hơn 6.000 công cụ ngữ cảnh đã được dùng trong quá trình phát triển
  • Để khai thác đầy đủ tiềm năng của công cụ, vẫn cần lập trình, và cách chính là Pharo trong hệ Smalltalk
  • Lý do chủ yếu để dùng Smalltalk là vì nó cung cấp một hệ thống phản chiếu cho phép thay đổi môi trường theo kiểu live ngay trong lúc sử dụng
  • Hiện nay, phần đáng kể của Glamorous Toolkit cũng được triển khai bằng Rust và hoạt động cùng nhiều công nghệ khác
  • Hỗ trợ cho Pharo rất hoàn thiện, nhưng hệ thống được thiết kế để mở rộng sang các công nghệ và ngôn ngữ khác
    • Ví dụ nguồn có thể phân tích: Rust, Java, C#, Ruby/Rails, Python, TypeScript, JavaScript, React, COBOL
    • Ví dụ runtime có thể làm việc cùng: GraphQL, Python, JavaScript, Gemstone
  • Những hỗ trợ này có sẵn theo mặc định, và cũng có thể được xem như ví dụ để người dùng tự xây cho từng ngôn ngữ và công nghệ

Giấy phép và tài liệu

Chưa có bình luận nào.

Chưa có bình luận nào.