Xây dựng Harness với Jev

@sydneyrunkle
TIẾNG ANH18 thg 9, 2026
420K
2.1K
210
49
3.9K

TL;DR

Bài viết này giải thích cách tích hợp Jev, một mô hình System One nhanh chóng từ TypeSafe AI, vào các tác nhân LangChain. Nó cung cấp chi tiết về khả năng của Jev trong việc ra quyết định có cấu trúc, định tuyến mô hình và các hàng rào an toàn nhằm tối ưu hóa hiệu suất và chi phí cho tác nhân.

Agents hoạt động theo một vòng lặp: một LLM quyết định cần làm gì, một công cụ thực thi, mô hình đánh giá kết quả, và sau đó tiếp tục vòng lặp cho đến khi hoàn thành tác vụ.

Ban đầu, việc tích hợp Agents và LLMs vào các ứng dụng phần mềm khá khó khăn, vì chúng phụ thuộc vào dữ liệu có cấu trúc và giao diện dự đoán được. Hai nguyên lý cơ bản đã xuất hiện giúp quá trình này trở nên dễ dàng hơn nhiều:

  • Tool calling cho phép các mô hình đưa ra yêu cầu có cấu trúc và nhận lại kết quả có cấu trúc.
  • Structured outputs cho phép các mô hình trả về kết quả có cấu trúc.

Nhưng ngay cả khi đã có những yếu tố trên, vòng lặp của agent vẫn chậmtốn kém: mỗi quyết định đều đòi hỏi một lần gọi mô hình mới.

Xin giới thiệu Jev. Jev là một mô hình mới được TypeSafe AI phát hành. Công ty báo cáo tốc độ suy luận nhanh hơn tới 200 lần và chi phí thấp hơn 400 lần so với các LLM tương đương trong các tác vụ phân loại.

https://x.com/CompleteSkeptic/status/2099925682726002904

Bài viết này sẽ giải thích cách Jev hoạt động, vị trí của nó trong vòng lặp agent, và cách sử dụng nó cùng với LangChain.

Tìm hiểu tất cả về Jev

Jev thực chất không phải là một LLM truyền thống, nó không tạo ra văn bản. Đây là điều mà đội ngũ TypeSafe AI gọi là mô hình System One:

📖 Mô hình System One là một lớp các mô hình AI được xây dựng để đưa ra các quyết định nhanh chóng, có cấu trúc mà phần mềm có thể sử dụng trực tiếp. Một mô hình System One đánh giá

state và trả về câu trả lời có kiểu dữ liệu xác định cùng với xác suất.

Nó được huấn luyện bằng phương pháp học tăng cường cho các quyết định được hiệu chuẩn (RLCD). Mã của bạn sử dụng các kết quả đó để hướng dẫn hành động tiếp theo của agent, mà không cần gọi đầy đủ một LLM chat cho mỗi quyết định.

Để gọi mô hình Jev, bạn gửi cho nó một state (ngữ cảnh) và các questions (câu hỏi) liên quan đến state đó. Dưới đây là phiên bản chỉ có một câu hỏi từ ví dụ về ticket hỗ trợ khách hàng trong tài liệu của họ:

json
1{
2 "model": "jev-latest",
3 "state": "Hi, I've been trying to connect my Stripe account for 3 days and it keeps failing. I'm losing sales. Please help ASAP.",
4 "questions": {
5 "is_urgent": {
6 "type": "noul",
7 "instructions": "The message conveys urgency or time-sensitivity"
8 }
9 }
10}

Ví dụ trong tài liệu cung cấp câu trả lời về tính khẩn cấp này, được hiển thị ở đây mà không kèm theo phần còn lại của phản hồi:

json
1{
2 "is_urgent": {
3 "type": "noul",
4 "noul": 0.999
5 }
6}

Điều này có nghĩa là xác suất 99,9% rằng tin nhắn mang tính khẩn cấp, thông tin mà ứng dụng của bạn có thể dùng để ưu tiên xử lý ticket.

Có ba loại câu hỏi được hỗ trợ:

Sydney Runkle - inline image
  • Choice: Chọn từ một tập hợp các lựa chọn. Trả về xác suất cho từng lựa chọn và điểm tin cậy tổng thể.
  • Score: Đánh giá một đầu vào dựa trên các mức độ có thứ tự, chẳng hạn như thấp, trung bình và cao. Trả về điểm số liên tục, phân phối cơ bản và giá trị tin cậy.
  • Noul: Trả lời một câu hỏi dạng Có hoặc Không. Trả về xác suất rằng một phát biểu là đúng.

Một tính năng chính ở đây là bạn có thể đặt nhiều câu hỏi về cùng một state trong một yêu cầu duy nhất.

💡 Các mô hình System One đánh giá mọi câu hỏi trong một yêu cầu song song. Việc thêm câu hỏi hầu như không thay đổi thời gian phản hồi và chỉ tốn token cho các câu hỏi bổ sung, vốn rất rẻ.

Để xem ví dụ về việc đặt nhiều câu hỏi cho một ticket hỗ trợ, hãy tham khảo TypeSafe Quickstart.

Tóm lại, khác với các LLM truyền thống, Jev không bị ràng buộc bởi việc tạo sinh văn bản hay ra quyết định tuần tự!

Cách sử dụng Jev với LangChain

Mô hình độc lập với nhà cung cấp của LangChain rất phù hợp để hỗ trợ Jev bên cạnh hàng nghìn tích hợp và nhà cung cấp mô hình khác.

Tích hợp LangChain cung cấp quyền truy cập vào Jev thông qua TypeSafeClassifier. Bạn truyền state và các câu hỏi vào .invoke(), và nhận về kết quả phân loại thay vì phản hồi chat.

Cài đặt langchain-typesafe và thiết lập TYPESAFE_API_KEY của bạn, sau đó thực hiện một lệnh gọi:

python
1from langchain_typesafe import Noul, TypeSafeClassifier
2
3classifier = TypeSafeClassifier()
4
5response = classifier.invoke(
6 state=(
7 "The deploy failed twice and customers are seeing 500s. "
8 "Can someone look now?"
9 ),
10 questions={
11 "urgent": Noul(
12 instructions="Does this need attention right now?"
13 ),
14 },
15)
16
17urgency = response.nouls["urgent"].noul

State có thể là văn bản, dữ liệu có cấu trúc hoặc các tin nhắn LangChain. Điều này giúp việc gọi Jev từ một node hoặc hook middleware trở nên đơn giản bằng cách sử dụng ngữ cảnh mà agent của bạn đã có.

Bạn có thể tích hợp điều này vào custom middleware hoặc tools!

Các trường hợp sử dụng

Jev không phải là sự thay thế trực tiếp cho một LLM. Nó không tạo ra văn bản, nhưng nó có thể xử lý các tác vụ phân loại mà chúng ta thường sử dụng LLM cho ngày nay, mà không gặp phải vấn đề về độ trễ và chi phí tương tự. Điều này khiến nó trở thành một phần bổ sung hứa hẹn cho mô hình đang điều khiển agent của bạn: sử dụng LLM cho suy luận và tạo sinh mở, và Jev cho các quyết định nhanh chóng, có cấu trúc dọc theo quy trình.

Model routing

Một tra cứu đơn giản không cần cùng một mô hình như một tác vụ gỡ lỗi phức tạp. Middleware model-routing cho phép Jev đánh giá yêu cầu và chọn một mô hình dựa trên các tiêu chí bạn định nghĩa, do đó nhanh và tiết kiệm cho các tác vụ đơn giản, mạnh mẽ hơn cho các tác vụ phức tạp.

python
1from langchain.agents import create_agent
2from langchain_typesafe.experimental.middleware import (
3 ModelChoice,
4 ModelRouterMiddleware,
5)
6
7router = ModelRouterMiddleware(
8 choices={
9 "fast": ModelChoice(
10 model="openai:luna",
11 criteria="Direct lookups, extraction, and localized changes.",
12 ),
13 "powerful": ModelChoice(
14 model="openai:sol",
15 criteria="Architecture and high-stakes decisions.",
16 ),
17 },
18 instructions="Choose the least costly model that can complete the task.",
19)
20
21agent = create_agent("openai:gpt-5.6-luna", middleware=[router])

Bộ định tuyến chọn một mô hình từ tin nhắn người dùng mới nhất và sử dụng nó trong suốt quá trình chạy. Các xác suất và mức độ tin cậy cũng vẫn khả dụng trong trạng thái của agent.

Auto Mode

Agents vẫn vốn dĩ không đáng tin cậy. Một agent có thể nhận các chỉ dẫn sai lệch (hoặc tự nhiên hoặc từ một kẻ tấn công đủ động lực), điều này có thể thuyết phục nó thực hiện các hành động mà chúng ta không muốn.

Các môi trường lập trình như claude, codex, cursor đã triển khai một số cách để phân loại các hành động nguy hiểm trước khi chúng được thực hiện, điều này dần dần giúp xây dựng niềm tin vào agents. Cho đến nay, bước phân loại này vẫn bị khóa trong các phần mã nguồn đóng của môi trường.

Bây giờ khi đã có một mô hình phân loại rẻ và hiệu suất cao, chúng ta có thể áp dụng cùng mẫu hình này cho tất cả các agents!

python
1from langchain.agents import create_agent
2from langchain_typesafe.experimental.middleware import (
3 AutoModeMiddleware,
4)
5
6guardrail = AutoModeMiddleware(tools=["bash"])
7
8agent = create_agent("openai:gpt-5.6-luna", middleware=[guardrail])

AutoModeMiddleware sử dụng Jev để kiểm tra các lệnh gọi tool nhằm tìm kiếm các quyết định rủi ro mà nó có thể đưa ra, và chặn các lệnh gọi trước khi tool thực thi.

Bắt đầu!

Chúng tôi rất hào hứng về Jev và những khả năng đi kèm với nó. Một vài dự án thú vị mà chúng tôi đã thấy: Kyle Jeong từ Browserbase đang cung cấp năng lượng cho các agent sử dụng trình duyệt với chi phí chỉ vài cent, Jarrod Watts đã xây dựng một agent giao dịch trực tiếp, và Ryan Vogel đang thực hiện phân loại email ở quy mô lớn.

Hiện tại, các mô hình mới ra mắt hàng tuần, nhưng mô hình này đã nhận được phản hồi đặc biệt lớn. Chúng tôi rất mong chờ xem bạn sẽ xây dựng gì với LangChain và Jev.

Hãy cho chúng tôi biết ý kiến của bạn trên diễn đàn, gắn thẻ chúng tôi trên X và chia sẻ những gì bạn đang xây dựng, hoặc tham gia thảo luận về các vấn đề của LangChain!

Lời cảm ơn

Cảm ơn @huntlovell, @hwchase, @ccurme, @veryboldbagel, và Nathan Drenzer vì những đánh giá kỹ lưỡng và đóng góp của họ.

Lưu một chạm

Đọc sâu bài viết viral bằng AI trong YouMind

Lưu nguồn, đặt câu hỏi tập trung, tóm tắt lập luận và biến một bài viết viral thành các ghi chú có thể tái sử dụng trong một không gian làm việc AI duy nhất.

Khám phá YouMind
Dành cho nhà sáng tạo

Biến Markdown của bạn thành bài viết 𝕏 gọn gàng

Khi bạn đăng bài viết dài của riêng mình, việc định dạng hình ảnh, bảng và khối mã cho 𝕏 rất mệt mỏi. YouMind biến cả bản nháp Markdown thành một bài viết 𝕏 gọn gàng, sẵn sàng để đăng.

Thử Markdown sang 𝕏

Thêm pattern để giải mã

Bài viết viral gần đây

Khám phá thêm bài viết viral