Cuộc cải cách AI của Bridgewater: Cách quỹ phòng hộ lớn nhất thế giới xây dựng Agent Pat

iconMetaEra
Chia sẻ
AI summary iconTóm tắt
Trung tâm cải cách AI của Bridgewater tập trung vào độ tin cậy, chứ không phải trí thông minh, với công cụ mới Pat đã được hàng trăm nhà đầu tư sử dụng hàng ngày. Hệ thống tự động xử lý việc truy xuất dữ liệu, tạo mã và lập báo cáo, giảm thời gian thực hiện nhiệm vụ từ nhiều ngày xuống còn vài phút. Hai tác nhân—một tác nhân trò chuyện và một tác nhân mã hóa—hoạt động song song với một cơ chế xác định để đảm bảo kết quả nhất quán. Được xây dựng trên 50 năm dữ liệu thị trường và logic giao dịch, Pat giúp các nhà giao dịch phân tích các mức hỗ trợ và kháng cự, đồng thời cải thiện tỷ lệ rủi ro-lợi nhuận trong các quyết định của họ.
Bridgewater Associates lần đầu tiên công bố toàn bộ ý tưởng thiết kế trợ lý nghiên cứu AI của họ, Pat. Pat đã được hàng trăm nhà đầu tư sử dụng hàng ngày, có khả năng tự động thực hiện truy vấn dữ liệu, viết mã phân tích và tạo báo cáo tương tác, rút gọn công việc mà trước đây các nhà phân tích cần vài ngày乃至 vài tuần để hoàn thành xuống còn vài phút. Chiến lược cốt lõi của Bridgewater là làm cho AI đáng tin cậy hơn là thông minh hơn, thông qua hai tác nhân thông minh phân công rõ ràng (tác nhân trò chuyện xử lý hội thoại, tác nhân mã hóa chịu trách nhiệm tạo mã) và cơ chế xác định kiểu trình biên dịch, đảm bảo rằng trong 95% trường hợp, cùng một câu hỏi được đặt hai lần sẽ tạo ra mã hoàn toàn giống nhau. Thành tựu này không thể đạt được nếu không có dữ liệu thị trường, logic giao dịch và tài sản phương pháp luận mà Bridgewater đã tích lũy trong 50 năm qua.

Tác giả bài viết, nguồn: AI Native Lab

Quỹ phòng hộ lớn nhất thế giới, Bridgewater, gần đây đã công khai lần đầu tiên toàn bộ thiết kế của trợ lý nghiên cứu AI nội bộ có tên Pat.

Pat đã được hàng trăm nhà đầu tư sử dụng hàng ngày. Đưa cho nó một câu hỏi nghiên cứu thực tế—ví dụ: “Xung đột ở Trung Đông hiện tại có sẽ tái hiện cú sốc nguồn cung dầu mỏ trong quá khứ không?”—nó sẽ tự tìm dữ liệu, viết mã phân tích và tạo báo cáo nghiên cứu tương tác. Những công việc trước đây mất vài ngày thậm chí vài tuần để nhà nghiên cứu hoàn thành, giờ đây chỉ mất vài phút là đã có kết quả.

Nhưng điều đáng học hỏi nhất từ Bridgewater lần này không phải là AI có thể thực hiện nghiên cứu, mà là một điều khác: họ không cố làm AI thông minh hơn, mà làm AI đáng tin cậy hơn.

Để cho AI có thể tham gia vào các quyết định nghiên cứu với nguồn vốn hàng chục tỷ đô la, Bridgewater không dựa vào các mô hình lớn mạnh hơn, mà đã xây dựng toàn bộ cơ chế "xác định" xung quanh AI: lập kế hoạch nhiệm vụ trước khi thực hiện, kiểm tra mã bắt buộc, kết quả có thể xác minh lặp lại, và kinh nghiệm của bất kỳ nhà đầu tư nào đều có thể tự động tích lũy thành năng lực mới của toàn bộ tổ chức.

Trong khi đó, con đường dẫn đến AI phía sau Pat đã được Bridgewater chuẩn bị sẵn từ trước khi AI xuất hiện.

Brendan McManus, trưởng nhóm AI của Bridgewater, Michael Rand, trưởng bộ phận đầu tư, và Santi Wait, trưởng bộ phận công nghệ, đã lần đầu tiên công bố toàn bộ ý tưởng thiết kế của Pat trong một bài diễn thuyết kỹ thuật công khai gần đây.

Thu thập dữ liệu—điều này đã được Bridgewater thực hiện trong gần 50 năm. Bài phát biểu của Burren bắt đầu với một mảnh giấy ghi chú pháp lý màu vàng năm 1980.

Đó là hệ thống giao dịch trái phiếu đầu tiên của Bridgewater. Người sáng lập Ray Dalio đặt ra một quy tắc: mỗi khi thực hiện một giao dịch, hãy ghi rõ từng nguyên nhân và logic đằng sau quyết định đó. Khi viết ra, người khác mới có thể xem, chỉ ra điểm sai sót và giúp bạn cải thiện. Mỗi khi học được điều mới, hãy gạch bỏ một quy tắc cũ và viết ra một quy tắc mới.

Việc này Bridgewater đã thực hiện trong gần 50 năm. Mỗi logic đằng sau quyết định giao dịch, mỗi phương pháp luận để đưa ra phán đoán thị trường, mỗi bài học rút ra từ những thất bại — đều đã được mã hóa thành một hệ thống chuyên gia vừa con người có thể đọc được, vừa máy tính có thể đọc được. Burren nói nguyên văn: "Chúng tôi không cần phải quay lại bổ sung cơ sở tri thức một cách vội vàng chỉ để áp dụng AI. Những dữ liệu này đã ở đó từ lâu rồi."

Sự khác biệt này có thể là ranh giới quan trọng nhất khi tất cả các doanh nghiệp áp dụng AI. Không phải ai có mô hình tốt hơn, mà là ai đã sắp xếp dữ liệu của mình sẵn sàng trước khi AI ra đời.

Chiến lược AI của Bridgewater chia thành hai hướng.

Đường thứ nhất là để nhà đầu tư hiểu về AI bản thân — nghiên cứu cấu trúc cung cầu của AI, chu kỳ xây dựng, tác động đến vĩ mô và thị trường, giống như cách họ từng nghiên cứu đại dịch và cú sốc cung dầu mỏ. Đường thứ hai là để người thực hành sử dụng AI để cải tiến quy trình nghiên cứu của chính họ — mục tiêu cuối cùng là xây dựng một “nhà đầu tư nhân tạo” sao chép toàn bộ những gì nhà đầu tư con người làm mỗi ngày. Pat phụ trách một trong những khâu đó: điều tra và phân tích.

Burren đã kể trước một khía cạnh thường bị bỏ qua: tổ chức, trước khi nói đến công nghệ.

Họ không giao dự án này cho bộ phận CNTT. Họ thành lập một “đội ngũ khởi nghiệp nội bộ” – các nhà đầu tư, kỹ sư và nhà khoa học cùng làm việc chung, thực hiện lặp lại linh hoạt theo nhóm nhỏ, đồng thời tận dụng nguồn lực của tổ chức lớn Bridgewater.

Vai trò của nhà đầu tư là xác định mục tiêu – nghiên cứu điều gì mới có giá trị. Vai trò của kỹ sư là thiết kế triển khai – hệ thống nên được xây dựng như thế nào để đảm bảo ổn định. Vai trò của nhà khoa học là đánh giá nghiêm ngặt – làm thế nào để xác định chất lượng phân tích của Pat thực sự đang cải thiện, chứ không chỉ đơn thuần là “trông có vẻ tốt”.

Hàng trăm nhà đầu tư sử dụng hàng ngày, liên tục cung cấp tín hiệu phản hồi thực tế. Một khi bánh xe này bắt đầu quay, hướng phát triển sản phẩm không còn dựa vào sự phỏng đoán của sản phẩm quản lý, mà được thúc đẩy bởi hành vi của hàng trăm người dùng chuyên gia.

Hai tác nhân, mỗi cái phụ trách một việc. Kiến trúc hệ thống không phải là một mô hình lớn toàn năng đang vận hành, mà là hai tác nhân độc lập đã phân công công việc.

Một chat agent được gọi là Chat Agent. Nó chỉ trò chuyện với nhà đầu tư và chỉ nói về nội dung đầu tư — “Dữ liệu này đã đủ chưa?”, “Có nên xem thêm một góc độ khác không?”, “Ở phiên bản hiện tại, những yếu tố nào là chủ đạo?”. Nhà đầu tư không phải là lập trình viên, nên không nên bị buộc phải quan tâm đến mã nguồn. Vì vậy, chat agent này hoàn toàn không tiết lộ bất kỳ chi tiết kỹ thuật nào — người dùng không thể nhận ra rằng có mã nguồn đang chạy phía sau trong cuộc hội thoại.

Một cái khác gọi là Coding Agent. Nó không nói chuyện với người dùng. Công việc duy nhất của nó là “biên dịch” kế hoạch do Chat Agent tạo ra thành mã Python và Pandas.

Santi cho biết, sau khi tách ra đã tạo ra ba lợi ích bất ngờ.

Thứ nhất, trải nghiệm của nhà đầu tư trở nên tự nhiên hơn — sử dụng như một trợ lý nghiên cứu am hiểu, chứ không phải công cụ lập trình. Thứ hai, hai tác nhân thông minh mỗi cái chuyên về một lĩnh vực, ngữ cảnh không lẫn lộn — người nói về đầu tư không cần quan tâm đến mã, người viết mã không cần hiểu ngữ nghĩa đầu tư. Thứ ba, có thể sản phẩm hóa quy trình hội thoại thành một luồng làm việc cố định đáng tin cậy, thay vì những kiến thức rời rạc.

Xác định kiểu biên dịch: Hỏi cùng một câu hỏi hai lần, 95% trường hợp mã sẽ giống hệt nhau — đây là phần cứng nhất trong toàn bộ kiến trúc của Pat.

Santi cho biết, trong bối cảnh yêu cầu cực kỳ cao về tính chính xác—với vị thế hàng chục tỷ đô la—không thể dựa vào “vibe coding”. Vấn đề của vibe coding là kết quả bạn nhận được mỗi lần chạy đều khác nhau, lần này đúng không có nghĩa là lần sau cũng đúng. Đối với một quỹ phòng hộ, sự không chắc chắn này là không thể chấp nhận được.

Vì vậy, anh ấy giải quyết vấn đề agentic coding như một vấn đề về trình biên dịch.

Bước đầu tiên, kế hoạch không phải là danh sách việc cần làm, mà là "phiên bản ngôn ngữ tự nhiên của dự án Python". Trong kế hoạch, hãy viết sẵn tất cả các bảng dữ liệu (dataframe) cần tạo ra trong phân tích này, các trường và cấu trúc của từng bảng, cũng như mối quan hệ phụ thuộc giữa các bảng. Mỗi nhiệm vụ con giống như một hàm Python — có đầu vào phụ thuộc rõ ràng và quy định đầu ra chuẩn. Mục tiêu là đảm bảo rằng khi kế hoạch giống nhau được thực thi bởi các phiên bản mô hình lớn khác nhau, mã được tạo ra sẽ có ngữ nghĩa hoàn toàn tương đương và đầu ra hoàn toàn nhất quán.

Bước thứ hai, mã được tạo song song. Nhờ có sơ đồ phụ thuộc rõ ràng, hệ thống thực hiện phân tích tĩnh trước để tạo ra một DAG (đồ thị có hướng không chu trình), sau đó tạo mã song song theo từng cấp độ. Một phân tích với 3 bảng dữ liệu và 30 bảng dữ liệu có thời gian tạo mã gần như giống nhau.

Bước thứ ba, xác minh rằng việc kiểm tra không phải do chính tác nhân tự quyết định có thực hiện hay không. Santi đặc biệt nhấn mạnh rằng hệ thống kiểm tra của họ là mã Python thông thường—việc kiểm tra là bắt buộc và được tích hợp vào kiến trúc. "Một tác nhân có thể 'quên' thực hiện kiểm tra, nhưng một đường ống mã cố định thì không." Dưới ràng buộc này, kết quả họ đạt được trên bộ kiểm thử là: mã được tạo ra từ cùng một kế hoạch hai lần, trong 95% trường hợp là hoàn toàn giống nhau.

Bước thứ tư, khi thực thi, không để mô hình lớn chạy mã. Thay vào đó, nó sử dụng đường ống phân tích tĩnh truyền thống, tự động chèn ghi chú bộ nhớ đệm—những dữ liệu nào đã được tải rồi, những phép tính nào đã được thực hiện rồi, lần thứ hai không cần làm lại. Kết quả là, nếu người dùng chỉ thay đổi tiêu đề của một biểu đồ, các công cụ truyền thống có thể phải chạy lại toàn bộ quy trình phân tích, trong khi Pat gần như ngay lập tức đưa ra kết quả. Càng sửa càng nhanh.

Việc truy xuất dữ liệu thêm một bước—trước khi phân tích chính thức, Pat cần tìm kiếm dữ liệu như một con người.

Bridgewater có hai cơ sở dữ liệu. Một là không có cấu trúc—hàng triệu báo cáo phân tích từ các công ty chứng khoán, biên bản cuộc gọi báo cáo tài chính, email nội bộ và ghi chú, được cập nhật gần như thời gian thực, mỗi ngày thêm hàng nghìn tài liệu mới. Một là có cấu trúc—hàng tỷ dữ liệu chuỗi thời gian, bao gồm cả dữ liệu bên ngoài (giá dầu, chỉ số chứng khoán) và các khái niệm mô hình hóa nội bộ (ví dụ: “chúng tôi dự đoán lạm phát 12 tháng tới”).

Việc tìm kiếm ban đầu sử dụng các phương pháp thông thường như RAG và sắp xếp lại. Nhưng nhóm của Santi phát hiện rằng, sau khi thêm bước “xem xét theo cách con người”, tỷ lệ chính xác khi tìm thấy kết quả đã tăng từ khoảng 50% lên gần 90%.

Ý nghĩa của "kiểm tra theo cách con người" là, sau khi tìm thấy một chuỗi dữ liệu, không chỉ dựa vào việc khớp tên—mà phải kiểm tra như một nhà nghiên cứu con người: tần suất của nó có đúng không? Đồng tiền có đúng không? Giá trị có nhất quán với phán đoán hiện tại của bạn không? Bước này biến việc tìm kiếm từ khóa mơ hồ thành việc xác minh dữ liệu có phán đoán.

Cơ chế tự tiến hóa của Pat có hai bộ cơ chế tự tiến hóa.

Ngầm định: Các tác nhân nền sẽ tự động quét các cuộc hội thoại đã hoàn thành, tìm ra các mô hình thất bại, tạo ra cơ sở xác minh, xác nhận vấn đề có thể tái hiện, sau đó tự động lặp lại kho tri thức và hướng dẫn hệ thống của Pat cho đến khi cơ sở này được vượt qua.

Trực tiếp và rõ ràng hơn. Trong quá trình phân tích, nếu người dùng cảm thấy Pat nên làm tốt hơn—ví dụ: nên tạo thêm một biểu đồ, nên nghĩ đến một góc nhìn sớm hơn—có thể nhấn nút “Dạy nó”.

Hệ thống sẽ tự động truy ngược toàn bộ cuộc hội thoại để xác định liệu đó là lỗi hành vi, thiếu ngữ cảnh, hay hành vi của người dùng vốn có thể được dự đoán trước. Sau đó, hệ thống tự động tạo một trường hợp kiểm tra "nên thất bại", xác nhận vấn đề có thể tái hiện, tự động sửa đổi cơ sở tri thức cho đến khi trường hợp kiểm tra này vượt qua, rồi chạy lại tất cả các trường hợp kiểm tra hiện có để đảm bảo không gây ra vấn đề mới. Cuối cùng, một Pull Request sẽ được gửi đến Slack, sau khi được con người xem xét thì sẽ được hợp nhất.

Lần tới, bất kỳ ai hỏi câu hỏi tương tự, mặc định sẽ nhận được phiên bản đã được cải tiến.

Dưới đây là bản diễn văn, được dịch với sự hỗ trợ của AI:

Brendan McManus, trưởng nhóm AI của Quỹ Bridgewater
Xin chào mọi người, tôi là Brendan McManus, trưởng nhóm ứng dụng AI tại Bridgewater Associates. Bridgewater là một quỹ phòng hộ vĩ mô hệ thống. Tôi đã làm việc tại Bridgewater gần mười năm, bắt đầu với vai trò kỹ sư phần mềm, sau đó trở thành nhà đầu tư và nghiên cứu viên hệ thống. Trong vài năm qua, tôi chủ yếu tập trung vào việc thu hẹp khoảng cách giữa đầu tư và công nghệ.
Hôm nay, tôi cùng các đồng nghiệp Michael Rand và Santi Wait đã đến đây. Hai người này lần lượt là người phụ trách đầu tư và phụ trách kỹ thuật của dự án. Chúng tôi sẽ giới thiệu đến các bạn một công cụ tuyệt vời do chính chúng tôi phát triển, có tên Pat – “Pocket Analyst”.
Khi kết thúc bài thuyết trình này, bạn sẽ thấy cách chúng tôi xây dựng một nhà phân tích AI có thể hoàn thành công việc nghiên cứu mà các chuyên gia thường mất hàng giờ chỉ trong vài phút.
Công cụ này hiện đã được triển khai nội bộ tại công ty, phục vụ hàng trăm nhà đầu tư; đồng thời, nó có khả năng học hỏi liên tục từ mỗi tương tác. Ngoài ra, chúng tôi sẽ giới thiệu đến quý vị cách chúng tôi thiết kế và xây dựng hệ thống này.
Trước khi giới thiệu chính thức sản phẩm chúng tôi đã xây dựng, tôi muốn tóm tắt ngắn gọn cách Bridgewater nhìn nhận về AI.
Bridgewater đã dành hàng thập kỷ—chính xác là 50 năm—để suy ngẫm về cách mã hóa các quy luật thị trường và kinh tế thành những hệ thống có thể tăng trưởng liên tục theo cấp số nhân. Và tất cả những điều này thực sự bắt đầu từ những gì bạn đang thấy trên màn hình: hệ thống trái phiếu mà chúng tôi ghi vào mảnh giấy ghi chú màu vàng năm 1980.
Ý tưởng cốt lõi rất đơn giản: mỗi khi bạn muốn thực hiện một giao dịch, hãy ghi rõ ràng các quy tắc mà bạn cho là giao dịch đó sẽ thành công; ghi lại chính xác logic nhân quả đằng sau nó. Bởi vì một khi bạn làm như vậy, các nhà đầu tư khác có thể xem nội dung bạn ghi lại, giúp bạn phát hiện ra nơi đã sai và hỗ trợ bạn cải thiện toàn bộ quy trình.
Mỗi khi bạn học được điều mới, hãy gạch bỏ một quy tắc cũ và viết ra một quy tắc mới. Điều này tạo thành một quá trình học tập cực kỳ mạnh mẽ, và cũng chính là nền tảng cho mọi hoạt động của Bridgewater trong 50 năm qua.
Trong nhiều thập kỷ, chúng tôi đã tích lũy và củng cố mạnh mẽ quá trình này. Chúng tôi đã mã hóa mọi kinh nghiệm, mọi phương pháp luận, mọi quy tắc về các giao dịch đã thực hiện, cách thức thực hiện và lý do thực hiện chúng vào một hệ thống chuyên gia có thể được máy tính đọc và con người hiểu được.
Hiện tại, chúng tôi sở hữu một kho tài sản dữ liệu cực kỳ phong phú. Chính những dữ liệu này giúp chúng tôi sẵn sàng đón nhận thời đại AI. Chúng tôi không cần quay lại ghi lại tất cả nội dung một cách đặc biệt cho các tác nhân thông minh – những nội dung này vốn đã tồn tại và sẵn sàng để chúng tôi truy cập.
Trước khi giới thiệu chi tiết công cụ này, tôi muốn nói về cách Bridgewater áp dụng và hiểu AI ở mức độ rộng hơn. Chúng tôi tiến hành việc này từ hai góc độ.
Góc độ đầu tiên là: Với tư cách là nhà đầu tư, chúng ta phải hiểu sâu sắc từng xu hướng và động lực quan trọng đang định hình thị trường và nền kinh tế toàn cầu.
Giống như chúng ta phải hiểu về đại dịch COVID-19 hoặc cú sốc nguồn cung dầu mỏ gần đây, chúng ta cũng phải hiểu về AI. Sự mất cân bằng cung cầu trong lĩnh vực AI có hình thái như thế nào? Những yếu tố nào thúc đẩy việc xây dựng và mở rộng cơ sở hạ tầng? Những yếu tố này cuối cùng sẽ ảnh hưởng đến thị trường ra sao?
Đối với những nhà đầu tư như chúng ta, việc hiểu những vấn đề này chỉ là mức cơ bản.
Góc độ thứ hai là sử dụng AI với tư cách là người thực hành, đây cũng là nội dung chính chúng ta sẽ thảo luận hôm nay.
Là những người thực hành, chúng tôi đang ứng dụng AI vào mọi khâu trong quy trình nghiên cứu, với mục tiêu cuối cùng là xây dựng một "nhà đầu tư nhân tạo" – có thể thực hiện toàn bộ các hoạt động mà các nhà đầu tư con người thực hiện mỗi ngày.
Vậy thì các nhà đầu tư con người thực sự đang làm gì?
Chúng ta xem đây là một “vòng lặp nghiên cứu”. Các nhà đầu tư liên tục nhận thức những gì đang xảy ra trong thế giới bên ngoài, đặt ra các câu hỏi về những gì là thật và những gì họ có thể đã bỏ lỡ; sau đó tiến hành phân tích và điều tra để cố gắng trả lời những câu hỏi này; tiếp theo, tích hợp các phát hiện nghiên cứu; cuối cùng, đưa tất cả những gì học được trở lại vào hệ thống kiến thức và hệ thống chuyên gia mà chúng ta liên tục tích lũy.
Bước cuối cùng ở đây đặc biệt quan trọng.
Tất cả kiến thức thu được qua quy trình này sẽ được lưu vào một hệ thống trí nhớ chung để con người tiếp tục truy cập.
Do đó, bạn có thể hình dung: nếu muốn xây dựng một nhà đầu tư nhân tạo, nó phải có khả năng thực hiện từng bước khác nhau trong quy trình nghiên cứu. Bạn có thể tưởng tượng việc tạo ra một chuỗi các tiểu trí tuệ tách biệt, mỗi cái tập trung vào một giai đoạn cụ thể trong chu kỳ nghiên cứu.
Đây chính là cách chúng tôi sử dụng AI. Chúng tôi xây dựng các tiểu trí tuệ chuyên biệt cho từng nhiệm vụ mà nhà đầu tư con người phải thực hiện, và cho phép chúng truy cập vào cùng một bộ kiến thức và sự hiểu biết mà chúng tôi đã tích lũy trong 50 năm qua.
Tuy nhiên, hôm nay chúng ta chỉ sẽ thảo luận về một tác nhân duy nhất: nó tập trung vào giai đoạn "điều tra" trong quy trình nghiên cứu, tức là những công việc phân tích sâu đòi hỏi các nhà phân tích con người mất vài ngày đến vài tuần để hoàn thành.
Chúng tôi đặt tên cho công cụ này là Pat, viết tắt của "Pocket Analyst Tool".
Trước tiên, cần làm rõ kỳ vọng ở đây: Pat không trực tiếp liên quan đến cách chúng ta giao dịch. Mục đích thực sự của nó là thực hiện các nghiên cứu sâu rộng, giúp các nhà đầu tư khám phá những vấn đề trước đây không thể nghiên cứu do hạn chế về thời gian và công sức.
Vậy, chúng ta đã xây dựng cụ thể những gì?
Chúng tôi đã phát triển công cụ phân tích bỏ túi mang tên Pat. Ngay từ ngày đầu tiên, thông số kỹ thuật sản phẩm của nó rất đơn giản: Pat phải có khả năng thực hiện mọi việc mà các nhà đầu tư con người thực hiện trong quá trình điều tra và phân tích.
Và điều này trước hết có nghĩa là năng lực dữ liệu.
Pat phải có khả năng tìm kiếm và đọc tất cả các loại dữ liệu nội bộ của chúng tôi, bao gồm:
Dữ liệu chuỗi thời gian có cấu trúc, chẳng hạn như giá cổ phiếu trong nhiều thập kỷ;
Dữ liệu không có cấu trúc, chẳng hạn như báo cáo nghiên cứu từ các nhà môi giới/đại lý mà chúng tôi đăng ký;
Tài liệu ghi nhớ nghiên cứu do nội bộ chúng tôi soạn thảo.
Pat phải có khả năng tìm kiếm và đọc tất cả những nội dung này.
Pat cũng phải có thể sử dụng các công cụ đa dạng mà các chuyên gia phân tích con người có thể sử dụng, bao gồm các công cụ trực quan hóa, công cụ chẩn đoán do chúng tôi tự phát triển, cũng như các công cụ đánh giá chất lượng ý tưởng chỉ số.
Ngoài ra, tôi cho rằng điểm này đặc biệt thú vị đối với khán giả kỹ thuật: nhiều phân tích mà Pat thực hiện mất hàng giờ của nhà phân tích con người để hoàn thành chỉ trong một lần.
Điều này có nghĩa là phân tích bản thân khá phức tạp. Do đó, phân tích của Pat phải hoàn toàn có thể chẩn đoán—không chỉ giúp con người chẩn đoán, mà còn giúp các tác nhân chạy nền có thể đọc quỹ đạo thực thi, hiểu quy trình và xác nhận rằng mỗi phép tính đều chính xác.
Ngoài ra, tôi cho rằng những kiến thức được ghi lại và tích lũy liên tục trong 50 năm qua đang bắt đầu phát huy giá trị thực sự ở đây: Pat biết toàn bộ bối cảnh của chúng tôi.
Nó có thể truy cập vào quy trình và khung đầu tư của chúng tôi; nó biết chính xác các nhà phân tích của chúng tôi nên làm việc như thế nào, vì trong 50 năm qua chúng tôi đã ghi lại tất cả những điều này.
Cuối cùng, Pat phải có khả năng học hỏi.
Nó không chỉ phải tích lũy kết quả học tập cho một nhà đầu tư cụ thể, mà còn phải có khả năng tích lũy và tái đầu tư những kết quả học tập này cho mọi nhà đầu tư trong công ty.
Pat hôm nay không phải là một sản phẩm nguyên mẫu. Nó thực sự đã được triển khai nội bộ cách đây vài tháng và hiện đã có hàng trăm nhà đầu tư sử dụng nó mỗi ngày.
Điều này tạo ra một vòng lặp cải tiến mạnh mẽ: khi các nhà đầu tư sử dụng Pat để thực hiện nghiên cứu thực tế, các tác nhân nền sẽ liên tục chạy, quét các tương tác này, xác định những lỗi mà Pat mắc phải và xây dựng các bộ kiểm tra chuẩn đã được kiểm duyệt bởi con người; sau đó, những phát hiện này sẽ thúc đẩy chúng tôi điều chỉnh nội dung ngữ cảnh và khung hoạt động được xây dựng cho Pat.
Do đó, những cải tiến của Pat không chỉ phục vụ một người, mà còn phục vụ tất cả mọi người.
Cuối cùng, trước khi giới thiệu sản phẩm, tôi muốn trả lời một câu hỏi thường được đặt ra: Một quỹ phòng hộ đã có 50 năm tuổi, làm thế nào để tạo ra sản phẩm mà bạn sắp thấy?
Tất cả đều bắt đầu từ: bạn phải có khả năng và sẵn sàng tái tạo chính mình.
Xây dựng đội ngũ Pat, về bản chất là một đội ngũ khởi nghiệp AI được ươm tạo trong nội bộ công ty. Chúng tôi vừa có thể hành động linh hoạt và nhanh chóng, vừa có thể huy động toàn bộ nguồn lực của công ty.
Ngoài ra, chúng tôi đã thành lập một đội ngũ với nhiều vai trò cùng hợp tác: các nhà đầu tư, kỹ thuật viên và nhà khoa học cùng làm việc bên nhau để xây dựng sản phẩm.
I believe this is crucial if you're building such a product for expert users.
Investors bring business context and domain expertise;
Các kỹ thuật viên mang đến năng lực kiến trúc hệ thống;
Các nhà khoa học mang đến tính nghiêm ngặt.
Để xây dựng hệ thống AI dành cho người dùng chuyên gia, đội ngũ đa vai trò này là không thể thiếu.
Đối với người dùng chuyên gia, bên trong chúng tôi có hàng trăm người đang sử dụng nhiều công cụ AI khác nhau, không chỉ là Pat mà bạn sắp thấy. Họ mỗi ngày đều cung cấp tín hiệu để giúp chúng tôi xác định cách các công cụ này nên tiếp tục phát triển và cải tiến.
Cuối cùng, chúng tôi còn có một hệ sinh thái tuyệt vời có thể tích hợp, tích lũy trong 50 năm qua: dữ liệu, công cụ và phương pháp luận. Những nguồn lực này không chỉ dành cho các nhà phân tích con người, mà còn dành cho các tác nhân thông minh, phục vụ hành trình dài hạn của chúng tôi trong việc xây dựng “nhà đầu tư hoàn toàn nhân tạo” – để cuối cùng nó có thể thực hiện mọi công việc mà con người ngày nay có thể làm.
Tiếp theo, tôi xin trao thời gian cho Giám đốc Đầu tư của chúng tôi, Michael Rand. Anh ấy sẽ trình diễn sản phẩm chúng tôi đã xây dựng và giới thiệu kiến trúc sản phẩm.
Michael Rand, Trưởng nhóm đầu tư của Dự án Phân tích ví Bridge Water
Được rồi, cảm ơn Brendan.
Tôi là Michael Ryan, người phụ trách đầu tư của chương trình Pocket Analyst. Xin giới thiệu sơ lược về bản thân: Tôi đã làm việc tại Bridgewater được năm năm, ban đầu gia nhập với tư cách là kỹ thuật viên, nhưng phần lớn thời gian sau đó tôi đều đảm nhiệm các vị trí liên quan đến đầu tư.
Hiện tại, vấn đề tôi quan tâm nhất là: làm thế nào để tích hợp AI vào quy trình đầu tư của chúng tôi.
Tiếp theo, tôi sẽ trực tiếp trình diễn Pocket Analyst để hiển thị khả năng của nó và cách các nhân viên của Bridgewater sử dụng nó.
Bạn có thể thấy trang chủ của Pat trên màn hình phía sau, nơi chứa các prompt chúng ta sẽ sử dụng trong buổi trình diễn hôm nay.
Ý nghĩa của lời nhắc này là: Chúng tôi yêu cầu Pat nghiên cứu phản ứng của thị trường đối với xung đột Trung Đông gần đây và so sánh các sự kiện hiện tại với các sự kiện lịch sử tương tự. Cuối cùng, chúng tôi yêu cầu Pat tạo ra một loạt biểu đồ trực quan để làm nổi bật những điểm tương đồng và khác biệt giữa tình hình hiện tại và các cú sốc nguồn cung dầu mỏ trong quá khứ.
Đây là những vấn đề thực tế mà Bridgewater đã nghiên cứu trong vài tháng qua, và Pat đã luôn được các nhà đầu tư sử dụng để tăng tốc quá trình nghiên cứu của chúng tôi.
Tuy nhiên, trước khi gửi yêu cầu này, tôi muốn dành một chút thời gian để nói về một vấn đề bảo mật thú vị mà chúng tôi gặp phải khi thiết kế khung hoạt động của Pat.
Xuất phát điểm của chúng tôi là: nếu Pat muốn thực sự phát huy tác dụng, nó phải có thể truy cập vào toàn bộ thông tin mà các nhà đầu tư được quyền truy cập khi tiến hành nghiên cứu.
Nhưng vấn đề là tại Bridgewater, các nhà đầu tư khác nhau có thể truy cập vào các thông tin khác nhau.
Ví dụ, một nhà đầu tư có thể có quyền xem các vị thế hiện tại của chúng tôi trên tất cả các thị trường. Đối với người này, Pat mà họ sử dụng cũng phải có khả năng truy cập vào thông tin này.
Tuy nhiên, đồng thời cũng có một số nhà phân tích không tiếp cận những thông tin này. Do đó, điều cực kỳ quan trọng là: chúng ta tuyệt đối không được vô tình tiết lộ các quyền sở hữu trí tuệ được bảo vệ hoặc thông tin nhạy cảm này cho các nhà phân tích này.
Vì vậy, khác với các hệ thống chạy như Claude Code, nơi mọi người đều sử dụng cùng một lời nhắc hệ thống và các công cụ giống nhau, mỗi người tại Bridgewater đều có một phiên bản Pat riêng biệt, được tùy chỉnh dựa trên thông tin mà người dùng đó có thể và không thể nhìn thấy.
Từ góc độ thực tiễn, sự khác biệt này về cơ bản phụ thuộc vào ngữ cảnh và công cụ mà mỗi người sở hữu trong Pat.
Bây giờ, chúng ta gửi prompt này. Sau khi phân tích bắt đầu, điều đầu tiên Pat làm là tìm kiếm trên mạng và kho dữ liệu phi cấu trúc nội bộ để hiểu rõ hơn những gì đang xảy ra trong thế giới ngày nay và đặt chúng vào bối cảnh lịch sử.
Đối với các ứng dụng trò chuyện hiện đại, tìm kiếm trên mạng chỉ là khả năng cơ bản.
Tuy nhiên, lợi thế khác biệt thực sự ở đây là phạm vi nội dung phi cấu trúc mà Pat có thể tìm kiếm rất rộng lớn, đến từ các nguồn thông tin mà chúng tôi đăng ký.
Chúng tôi có một cơ sở dữ liệu chứa hàng triệu tài liệu, bao gồm thông tin từ khắp nơi trên thế giới, bao gồm:
Báo cáo nghiên cứu của môi giới;
Bản ghi cuộc gọi báo cáo tài chính;
Email nội bộ;
Và nhiều nội dung khác.
Cơ sở dữ liệu này được cập nhật gần như theo thời gian thực, mỗi ngày thêm hàng ngàn nội dung mới.
Điều này cũng phản ánh quan điểm tôi vừa nêu: nếu Pat muốn thực sự cung cấp đòn bẩy, nó phải có thể truy cập vào mọi thông tin mà người dùng của nó có thể truy cập, nhằm mô phỏng càng sát càng tốt cách làm việc thực tế của người dùng.
Sau khi thu thập xong những ngữ cảnh này, Pat sẽ tiếp tục tìm kiếm trong cơ sở dữ liệu chuỗi thời gian của chúng tôi để tìm dữ liệu cần thiết cho phân tích.
Cơ sở dữ liệu này chứa hàng chục triệu chuỗi thời gian, là kết quả của quá trình mô hình hóa và tích lũy liên tục trong nội bộ trong 50 năm qua.
Cả dữ liệu từ bên ngoài thế giới, chẳng hạn như giá dầu, lẫn các khái niệm do chúng tôi suy luận bên trong, như dự đoán mức lạm phát trong 12 tháng tới, đều được bao gồm.
Các tác nhân tìm kiếm sẽ sử dụng một số kỹ thuật tìm kiếm truyền thống, chẳng hạn như RAG (Tạo có tăng cường truy vấn) và sắp xếp lại.
Tuy nhiên, chúng tôi phát hiện ra rằng yếu tố thực sự mang lại sự cải tiến lớn là việc thêm vào các bước "kiểm tra" tương tự như các nhà nghiên cứu con người.
Ý tôi là, khi các nhà nghiên cứu con người tìm kiếm dữ liệu, họ không chỉ nhìn vào tên của chuỗi thời gian. Họ còn xem xét nhiều thứ khác, ví dụ:
Tần suất của chuỗi này;
Loại tiền được sử dụng trong chuỗi này;
Quan trọng nhất là các giá trị trong chuỗi này có nhất quán với phán đoán và nhận thức tiên nghiệm trước đó của họ hay không.
Việc tích hợp cơ chế suy luận này vào tác nhân tìm kiếm của chúng tôi đã giúp tăng độ chính xác từ khoảng 50% lên 90%.
Sau khi Pat nhận được ngữ cảnh và dữ liệu cần thiết, nó sẽ đặt câu hỏi làm rõ cho người dùng và có thể đề xuất những góc nhìn khác đáng được khám phá sâu hơn trong quá trình phân tích.
Trong quá trình phát triển Pat, chúng tôi dần hình thành một quan điểm: kế hoạch chính là sự phân tích.
Nếu chúng ta có thể xây dựng một kế hoạch chất lượng cao và chi tiết đầy đủ, chúng ta tự tin có thể thực thi kế hoạch này một cách liên tục và thông minh để đạt được kết quả mong muốn.
Santi sẽ giới thiệu chi tiết hơn về điểm này sau.
Hiện nay, việc các tác nhân đưa ra câu hỏi đã trở nên phổ biến trong các chatbot. Nhưng điều chúng ta thực sự quan tâm là nội dung thực chất của những câu hỏi này.
Chúng tôi đã đầu tư rất nhiều thời gian và công sức để phát triển ngữ cảnh và bài kiểm tra hiệu năng nhằm định hình khả năng này. Chúng tôi đã dạy Pat thế nào là câu hỏi nghiên cứu tốt và thế nào là câu hỏi nghiên cứu không tốt.
Sự tương tác qua lại này giúp người dùng con người, những người thường đầu tư không đủ vào giai đoạn lập kế hoạch, dần hình thành các kế hoạch nghiên cứu chất lượng cao mà chúng tôi mong muốn.
Sau khi tất cả các điểm mơ hồ được giải quyết, Pat bước vào giai đoạn lập kế hoạch.
Trong giai đoạn lập kế hoạch, nó chủ yếu thực hiện ba việc:
Xác định rõ các DataFrame sẽ được tạo ra trong quá trình phân tích;
Xác định sơ đồ (schema) của từng khung dữ liệu;
Quan trọng nhất là xác định rõ cách các khung dữ liệu này kết nối với nhau.
Từ góc độ thời gian, giai đoạn lập kế hoạch này có chi phí tương đối cao trong toàn bộ quá trình phân tích.
Nhưng đây là chi phí chúng tôi chủ động gánh chịu, vì nó giúp chúng tôi đạt được khả năng hiệu quả hơn trong giai đoạn thực thi.
Bây giờ, kế hoạch đã được xác định. Bước đầu tiên trong thực hiện kế hoạch là tạo mã.
Vì kế hoạch của chúng tôi cực kỳ chi tiết, nên chúng tôi có thể sử dụng các tiểu tác nhân để song song tạo mã cho từng khung dữ liệu trong phân tích.
Lý do có thể làm như vậy là vì mỗi tiểu tác nhân đều biết:
Nó phụ thuộc vào những khung dữ liệu nào;
Các mô hình của những khung dữ liệu đó là gì;
DataFrame mà nó cần tạo ra nên có mẫu như thế nào.
Do đó, dù một phân tích chỉ bao gồm 3 khung dữ liệu hay một phân tích phức tạp hơn bao gồm khoảng 30 khung dữ liệu, thời gian cần để tạo mã gần như giống nhau.
Sau khi hoàn thành việc tạo mã, chúng tôi sẽ thực thi các hàm Python này, đồng thời có một tác nhân giám sát quá trình thực thi.
Nó sẽ can thiệp để xử lý khi phát hiện các lỗi thời gian chạy, các giá trị vô nghĩa, v.v.
Trước khi tiếp tục nói về quy trình thực thi, tôi muốn nhấn mạnh đặc biệt: các đầu ra chuỗi thời gian được tạo ra từ các phân tích này sẽ được lưu vào cùng cơ sở dữ liệu với dữ liệu đầu vào.
Tôi cho rằng điều này rất quan trọng vì hai lý do.
Đầu tiên, nó cho thấy bất kỳ đầu ra nào từ phân tích của Pat đều không khác biệt so với bất kỳ chuỗi thời gian nào do con người tải lên và tạo ra trong hệ thống trong nhiều năm qua.
Thứ hai, và quan trọng hơn, bất kỳ đầu ra nào từ phân tích của Pat đều có thể được sử dụng làm đầu vào cho lần phân tích tiếp theo.
Như vậy, một môi trường đã được hình thành, nơi con người và các tác nhân có thể dễ dàng tái sử dụng thành quả của nhau và liên tục tích lũy trên nền tảng đó.
Sau khi hoàn thành, chúng tôi cũng mong Pat làm tương tự, như cách bạn mong các phân tích viên cấp thấp kiểm tra lại công việc của họ trước khi báo cáo cho bạn.
Vì vậy, ở giai đoạn phân tích này, Pat sẽ kiểm tra các dữ liệu mà nó tính toán và các biểu đồ trực quan được tạo ra, xác minh xem các con số có hợp lý không và biểu đồ có rõ ràng, sạch sẽ không.
Nếu phát hiện có điều gì đó không ổn, Pat sẽ lùi lại một bước, chẩn đoán vấn đề và cải tiến quy trình phân tích; chỉ sau khi đảm bảo hài lòng với kết quả, Pat mới gửi kết quả cho người dùng.
Deliverable cuối cùng là một báo cáo tương tác.
Trong báo cáo này, giao diện biểu đồ hoàn toàn giống với những biểu đồ mà Bridgewater Investors thường tạo ra. Pat sử dụng cùng thư viện biểu đồ nội bộ và cũng áp dụng cùng hệ thống văn bản và biểu đồ mà chúng tôi đã không ngừng phát triển trong nhiều thập kỷ qua.
You can see that users can zoom in or out on these charts; they can also send the data from this interactive report to our internal charting tool for immediate further adjustments.
Trước khi giao thời gian cho Santi, tôi muốn nói thêm về cách Pat ngày càng trở nên tốt hơn khi sử dụng.
Có hai cách chính.
Cách đầu tiên là tự học mà Brendan đã đề cập trước đó: chúng tôi cho tác nhân xem xét các cuộc hội thoại đã hoàn thành để tìm cách giúp Pat trở nên thông minh hơn.
Cách thứ hai, cũng là cách chúng ta sẽ trình bày ở đây, là cách rõ ràng hơn: nếu người dùng cho rằng có nội dung đáng học hỏi trong tương tác của họ với Pat, họ có thể trực tiếp khởi động quy trình học tập trong bối cảnh phân tích.
Ở đây, người dùng chỉ yêu cầu tạo một bộ biểu đồ trực quan khác nhau.
Lưu ý rằng người dùng không nói rằng nội dung trước đó có sai sót. Họ chỉ mong muốn xem xét vấn đề từ một góc độ khác và cho rằng góc độ này rất quan trọng để trả lời câu hỏi hiện tại.
Nếu người dùng cho rằng Pat nên tạo hoặc đề xuất bộ biểu đồ này ngay từ đầu, họ có thể nhấp vào nút "Teach".
Điều này sẽ khởi động một tác nhân để xem xét toàn bộ cuộc trò chuyện, tìm kiếm các vấn đề như sau:
Sai sót trong hành vi;
Khoảng cách ngữ cảnh;
Các hướng dẫn hoặc sở thích của người dùng có thể đã được dự đoán và đáp ứng trước đó.
Sau đó, người dùng có thể chỉnh sửa các nội dung này hoặc gửi giữ nguyên bản gốc.
Sau khi gửi, trước tiên, một tác nhân nền sẽ tạo một bài kiểm tra cơ sở dự kiến sẽ thất bại. Điều này chứng minh rằng chúng tôi có thể tái hiện hành vi kém trước đó.
Sau đó, nó sẽ liên tục lặp lại cơ sở tri thức ngữ cảnh hoặc chính khung chạy của chúng tôi cho đến khi bài kiểm tra tiêu chuẩn này được vượt qua.
Sau đó, chúng tôi sẽ xác nhận: việc làm cho bài kiểm tra này vượt qua không gây ra bất kỳ bài kiểm tra nào khác trong bộ kiểm tra bị thất bại.
Sau khi hoàn thành, chúng tôi sẽ nhận được một tin nhắn Slack kèm theo một pull request chứa các thay đổi mà tác nhân muốn thực hiện đối với Pat.
Hiệu quả của việc này là: lần tới khi ai đó đến sử dụng Pat với câu hỏi tương tự, họ sẽ nhận được phiên bản đã được cải tiến ngay từ đầu.
Bây giờ, tôi sẽ trao thời gian cho Santi để anh ấy giới thiệu kiến trúc kỹ thuật.
Santi Wait, Trưởng nhóm kỹ thuật của Dự án Pocket Analyst:
Xin chào mọi người, cảm ơn Michael. Tôi là Santi, trưởng nhóm phân tích Pocket.
I believe many of you here are building similar programming agent products, just like we are.
Và việc xây dựng các sản phẩm này thực sự rất khó khăn.
Các tác nhân lập trình rất thất thường và khó dự đoán; chúng thường xuyên mắc lỗi; và khi bạn gặp xui xẻo, chúng thậm chí có thể hoàn toàn mất kiểm soát, cố gắng phá hủy dữ liệu của bạn và những vấn đề tương tự.
Vì vậy, việc xây dựng một sản phẩm tốt mà mọi người thích sử dụng đã khó; còn việc xây dựng một sản phẩm mà người dùng sẵn sàng tích hợp vào quy trình làm việc hàng ngày thì càng khó hơn.
Tại một quỹ phòng hộ, chúng tôi cố gắng giao dịch số vốn lên tới hàng tỷ đô la Mỹ. Do đó, chúng tôi không thể để việc “viết mã theo cảm tính” trở thành nền tảng cho những phân tích này.
Nền tảng của tôi là lý thuyết trình biên dịch và thiết kế ngôn ngữ lập trình.
Và trình biên dịch cũng có một bộ yêu cầu tương tự rất giống nhau: phải hoàn toàn xác định, hoàn toàn chính xác và đáng tin cậy.
Ví dụ, khi lái máy bay, bạn không thể mắc lỗi "lệch một" (off-by-one error).
Cấu trúc ở đây cũng rất tương tự: trình biên dịch nhận mã người dùng và biên dịch nó thành mã đích như JavaScript; trong khi tác nhân lập trình nhận lời nhắc hoặc kế hoạch của người dùng và "biên dịch" nó thành Python.
Chúng tôi rất thích ý tưởng này.
Hôm nay thời gian không nhiều, vì vậy chúng ta sẽ tập trung vào điểm này, hy vọng nó sẽ trở thành một bài học để mọi người mang về áp dụng trong công việc của mình.
However, let's still start with the chat session.
Mục tiêu của trình thông minh trò chuyện là tạo ra sự hiểu biết chung với người dùng: người dùng muốn hoàn thành nhiệm vụ gì.
Agent trò chuyện được triển khai bằng LangGraph.
Chúng tôi chủ yếu sử dụng nó để hỗ trợ tính năng persistency. Nó hỗ trợ native các chức năng hủy và nối lại; trước đây chúng tôi tự quản lý các vấn đề này và hiệu quả kém hơn nhiều.
Các thực thể trò chuyện có thể gọi công cụ. Michael vừa đề cập một số công cụ, ví dụ:
Tìm kiếm dữ liệu chuỗi thời gian;
Tìm kiếm dữ liệu phi cấu trúc.
Các công cụ này sẽ thực hiện công việc tương ứng của chúng.
Sau đó, một khi chat agent đã thu thập đầy đủ dữ liệu cần thiết để thực hiện phân tích, nó sẽ xây dựng một kế hoạch và gọi một sub-agent—đó là programming agent của chúng tôi.
Agent lập trình này sẽ tạo ra một bản phân tích dựa trên Python Pandas.
Tại sao phải tách riêng hai tác nhân thông minh?
Ngay từ đầu, chúng tôi đã quyết định: các nhà đầu tư của chúng tôi không phải là lập trình viên chuyên nghiệp, họ quan tâm đến việc đầu tư.
Vì vậy, chúng tôi quyết định để nội dung trò chuyện tập trung thuần túy vào chủ đề đầu tư.
Kết quả là, chúng tôi đã tạo ra một sản phẩm: lập trình chỉ là chi tiết thực hiện thuần túy.
Trong giao diện trò chuyện, bạn thậm chí không cảm nhận được mã nền đang chạy.
Còn có một số lợi ích bất ngờ:
Bối cảnh sẽ không bị ô nhiễm bởi chi tiết mã nguồn;
Mỗi tác nhân đều có thể tập trung vào nhiệm vụ của mình và liên tục cải tiến một cách tự nhiên;
Chúng tôi có thể tùy chỉnh trải nghiệm trò chuyện một cách linh hoạt.
Tiếp theo, chúng tôi muốn nói đến: chất lượng bối cảnh đầu tư của chúng tôi rất cao.
Chúng tôi dạy các tác nhân trò chuyện cách nói chuyện như một nhà đầu tư của Bridgewater.
Có rất nhiều thuật ngữ chuyên môn cần được dạy cho nó. Do đó, cách giao tiếp giữa người dùng và tác nhân giống như cách các đồng nghiệp trong Bridgewater trao đổi với nhau.
Tại Bridgewater, chúng tôi cũng cho phép các nhà đầu tư đóng góp. Những gì Michael vừa trình bày là cách họ đóng góp nội dung cho hệ thống, giống như các nhà phát triển đóng góp vào kho mã nguồn.
Đây thực sự là một quan điểm rất tốt: Trong hầu hết các trường hợp, người dùng của bạn giỏi hơn bạn trong việc viết bối cảnh kinh doanh.
Vì vậy, đừng quá tự ý thức, hãy cho phép họ tham gia trực tiếp vào đóng góp, đó là một cách tốt để thành công.
Về chatbot, điểm cuối cùng là: chúng ta không chỉ dạy nó ngữ cảnh.
Nếu chỉ cung cấp cho nó ngữ cảnh, kết quả cuối cùng thường là một thứ mơ hồ, chứa nhiều thông tin nhưng không giống như một quy trình làm việc.
Do đó, chúng tôi sẽ cung cấp cho tác nhân hướng dẫn từng bước về cách xử lý các loại phân tích cụ thể.
As a result, it becomes more like a real product—a reliable, dependable workflow.
Tiếp theo, tôi sẽ nói về phần yêu thích nhất của cá nhân tôi: lập trình tác nhân.
Đây là sơ đồ kiến trúc cấp cao của một tác nhân lập trình.
Tất cả những gì bạn thấy ở đây thực chất chỉ là mã Python. Nó được triển khai bằng LangGraph, nhưng không tồn tại khái niệm "điều phối theo kiểu tác nhân" (agentic orchestration).
Many people are taking photos, great.
Chúng ta bắt đầu từ phía bên trái, tức là kế hoạch phân tích được tạo ra bởi tác nhân trò chuyện.
Kế hoạch phân tích sẽ được chia thành các nhiệm vụ riêng biệt.
Mỗi nhiệm vụ tương ứng大致 với một hàm Python, hàm này sẽ tính toán và tạo một khung dữ liệu.
Đây là một ví dụ về mô hình.
Mỗi nhiệm vụ sẽ bao gồm:
Một tên;
Mô tả các nội dung cần tính toán;
Về thông tin cấu trúc và ngữ nghĩa của khung dữ liệu đầu ra.
Chúng tôi mong muốn mỗi nhiệm vụ đều có thể được biên dịch thành một đoạn mã bằng mô hình ngôn ngữ lớn một cách xác định.
Nói cách khác, mã được tạo bởi hai mô hình ngôn ngữ lớn cho cùng một nhiệm vụ, sau khi chạy, phải có ngữ nghĩa tương đương và giá trị đầu ra phải hoàn toàn giống nhau.
Do đó, kế hoạch phân tích của chúng tôi không chỉ đơn thuần là danh sách công việc cần làm có thể xuất hiện trong Claude Code.
Chúng tôi coi đây là một dự án Python được viết bằng ngôn ngữ tự nhiên.
Vì nó chứa rất nhiều chi tiết phong phú, bây giờ chúng ta có thể bước vào giai đoạn tạo mã và áp dụng một số kỹ thuật nâng cao hơn.
Đầu tiên, chúng tôi sẽ chia kế hoạch thành các nhiệm vụ, sau đó đồng thời thực hiện tạo mã mô hình ngôn ngữ lớn.
Vì kế hoạch đủ chi tiết, nhiệm vụ trực quan hóa ở cuối kế hoạch thực tế đã biết rõ toàn bộ nội dung cần tiêu thụ và sử dụng—ngay cả khi mã tạo dữ liệu để tải vẫn chưa hoàn thành.
Khi so sánh phương pháp này với Claude Code trong bộ bài kiểm tra tiêu chuẩn của chúng tôi, có thể thấy: trong cùng ngữ cảnh và cùng kế hoạch, chúng tôi trung bình tạo mã nhanh hơn khoảng 4 lần.
Ngoài ra, chúng tôi còn có khả năng "siêu mở rộng": một kế hoạch gồm 20 nhiệm vụ và một kế hoạch chỉ gồm 3 nhiệm vụ sẽ mất thời gian gần như tương đương.
Được rồi, bây giờ chúng ta đã có mã, tiếp theo hãy thực thi nó.
Bạn có thể nghĩ rằng chỉ cần thực thi mã một cách trực tiếp và đơn giản là được.
Tuy nhiên, đáng tiếc là các mô hình ngôn ngữ lớn ngày nay vẫn chưa hoàn hảo trong nhiệm vụ của chúng tôi. Chúng thường không thể tạo ra kết quả hoàn toàn chính xác trong một lần duy nhất.
Vì vậy, cách tiếp cận của chúng tôi là:
Chúng tôi nhận được nhiệm vụ theo kế hoạch và mã được tạo ra từ nhiệm vụ đó; sau đó chạy đoạn mã này và so sánh kết quả thực thi với yêu cầu của nhiệm vụ để kiểm tra xem nó có chính xác hay không.
Nếu không chính xác, chúng tôi sẽ chỉnh sửa mã và tiếp tục lặp lại cho đến khi hoàn thành.
Điều đầu tiên chúng tôi làm với mã là phân tích tĩnh, sau đó xây dựng DAG (đồ thị có hướng không chu trình) và áp dụng song song các tác nhân xác thực.
Ở đây, hai nhiệm vụ sẽ được xác minh đồng thời.
Do đó, một kế hoạch gồm 5 nhiệm vụ sẽ được chia thành 3 lớp xác minh; trong khi một kế hoạch gồm khoảng 20 nhiệm vụ có thể tạo thành 4 hoặc 5 lớp xác minh.
Tôi mong mọi người ghi nhớ điểm cốt lõi từ phần slide này là:
We enforce correctness at the architectural level.
Xin nhấn mạnh lại, không có sự sắp xếp dạng tác nhân. Đây chỉ là mã Python thông thường.
Do đó, toàn bộ khung thực thi rất nhanh và các tác nhân không thể "quên" thực hiện xác minh—chúng bị yêu cầu bắt buộc phải xác minh.
Kết quả là, khi chúng tôi chạy bộ kiểm thử, trong 95% trường hợp, mã được tạo bởi hai tác nhân khác nhau cho bất kỳ kế hoạch nào trong bộ kiểm thử đều hoàn toàn giống nhau.
Vì vậy, ý tưởng của chúng tôi là xây dựng một tác nhân lập trình văn bản có các đặc điểm xác định.
Vì tác nhân này có tính tái tạo cao, nên khi chúng ta muốn mở rộng, tối ưu từng bước và đánh giá, nền tảng mà chúng ta có đáng tin cậy hơn nhiều so với các phương pháp đánh giá dựa vào cảm tính hoặc dựa vào "mô hình lớn làm trọng tài" (LLM-as-a-judge).
Được rồi, còn một chủ đề nữa tôi muốn đề cập, đó là lớp thực thi của chúng tôi.
Thông thường, các tác nhân lập trình sẽ tự gọi và thực thi mã mà chúng tạo ra.
Nói cách khác, chúng tạo mã trước, sau đó tự gọi và chạy thông qua terminal.
Cách này có một số sự đánh đổi.
Một mặt, việc gọi công cụ sẽ gây ra độ trễ cao; mặt khác, tôi tin rằng mọi người đều đã từng trải qua việc tác nhân đôi khi bị lạc hướng trong quá trình thực hiện.
Vì vậy, chúng tôi chọn thực thi mã cho mô hình ngôn ngữ lớn.
Chúng tôi sử dụng đường ống phân tích tĩnh truyền thống: chèn các chú thích bộ nhớ đệm vào mã Python để tránh thực hiện lặp lại; sau đó chạy nó thông qua một khung tùy chỉnh.
Đây là một ví dụ kiểm tra hiệu năng, so sánh việc Claude tự gọi thực thi mã với cách thực thi của Pocket Analyst.
Bạn có thể thấy, chúng tôi lại nhanh hơn một lần nữa vì chúng tôi không tải lại dữ liệu và không thực hiện lại các quy trình trung gian.
Nhưng lợi thế thực sự không nằm ở lần chạy mã đầu tiên, mà ở lần chạy thứ hai.
Đây là một bài kiểm tra hiệu năng: chúng ta lấy biểu đồ cuối cùng trong kế hoạch và chỉ thay đổi tên của nó.
Claude Code sẽ chạy lại toàn bộ mã, do đó tổng thời gian tiêu tốn về cơ bản vẫn tương đương, mặc dù bước chỉnh sửa mã thực sự sẽ nhanh hơn một chút.
But the Pocket Analyst can almost achieve instant code execution in the second round.
Điều này có nghĩa là khi nhà đầu tư sử dụng sản phẩm này, họ có thể thực hiện một số điều chỉnh tinh vi đối với phân tích đầu tư mà không phải gánh thêm chi phí phát sinh từ việc tải lại và thực thi lặp đi lặp lại trong quy trình lặp thông thường.
Alright, our time is up.
Chúng tôi có rất nhiều kinh nghiệm và thành quả, nhưng tiếc là hôm nay chỉ có thể chia sẻ đến đây.
Kết luận cốt lõi đầu tiên là: chúng tôi rất tin tưởng vào việc chuyên môn hóa các tác nhân.
Chúng tôi không quá tin tưởng vào các tác nhân phổ biến và mạnh mẽ.
They can indeed create very cool demos, and I believe many people have shown such demos; but turning them into a workflow you can rely on daily is truly very difficult.
Ngược lại, chúng tôi thường bắt đầu từ một quy trình làm việc rất hẹp, thực hiện nhiều bài kiểm tra hiệu năng; sau đó liên tục tối ưu hóa các bài kiểm tra này theo từng bước nâng cao.
Sau đó, bạn có thể kết hợp khả năng của nhiều tác nhân; nhưng ngược lại, việc quay lại từ một tác nhân tổng quát sang các quy trình làm việc đáng tin cậy và hẹp thường rất khó khăn.
Điểm cuối cùng giống như một thí nghiệm tư duy, hy vọng sẽ mang lại cảm hứng cho mọi người:
Nên xem việc lập trình tác nhân như một vấn đề biên dịch, chứ không phải một vấn đề về tác nhân.
Các trình biên dịch đã tạo mã trong nhiều thập kỷ và tích lũy được rất nhiều kỹ thuật cho chúng ta biết cách tạo mã một cách đáng tin cậy, chính xác và xác định hơn.
Vì vậy, chúng tôi rất sẵn lòng tiếp tục trao đổi với mọi người về những vấn đề này.
Cuối cùng, tôi muốn cảm ơn các thành viên trong đội ngũ trực tiếp của chúng tôi. Tất nhiên, còn có nhiều người khác đã tham gia, nhưng đây là đội ngũ cốt lõi.
Cảm ơn mọi người.
Chúng tôi sẽ tham gia buổi AMA (hỏi đáp) ngoài trời, rất mong được trò chuyện và trao đổi với các bạn, xem liệu các bạn có cũng cảm thấy hào hứng với những vấn đề này không.
Cũng mong gặp mọi người vào tối nay tại các sự kiện khác.
Cảm ơn rất nhiều.
Tuyên bố miễn trừ trách nhiệm: Thông tin trên trang này có thể được lấy từ bên thứ ba và không nhất thiết phản ánh quan điểm hoặc ý kiến của KuCoin. Nội dung này chỉ được cung cấp cho mục đích thông tin chung, không có bất kỳ đại diện hay bảo đảm nào dưới bất kỳ hình thức nào và cũng không được hiểu là lời khuyên tài chính hay đầu tư. KuCoin sẽ không chịu trách nhiệm về bất kỳ sai sót hoặc thiếu sót nào hoặc về bất kỳ kết quả nào phát sinh từ việc sử dụng thông tin này. Việc đầu tư vào tài sản kỹ thuật số có thể tiềm ẩn nhiều rủi ro. Vui lòng đánh giá cẩn thận rủi ro của sản phẩm và khả năng chấp nhận rủi ro của bạn dựa trên hoàn cảnh tài chính của chính bạn. Để biết thêm thông tin, vui lòng tham khảo Điều khoản sử dụngTiết lộ rủi ro của chúng tôi.