4 điểm bởi GN⁺ 2024-10-25 | 1 bình luận | Chia sẻ qua WhatsApp
  • Skyvern tự động hóa các luồng thao tác thủ công dựa trên website bằng LLM và thị giác máy tính, đồng thời cung cấp SDK tương thích Playwright cùng trình dựng workflow không cần code
  • Khác với tự động hóa trình duyệt truyền thống vốn phụ thuộc vào phân tích DOM và XPath nên dễ bị ảnh hưởng khi layout thay đổi, Skyvern dùng Vision LLM để hiểu các phần tử trên màn hình, lập kế hoạch và thực thi hành động cần thiết
  • Skyvern cho biết công cụ có thể ánh xạ các yếu tố trực quan thành hành động ngay cả trên website lần đầu gặp, và áp dụng cùng một workflow cho nhiều website mà không cần XPath hay selector định nghĩa sẵn
  • SDK cung cấp các lệnh page.act, page.extract, page.validate, page.promptpage.agent, bổ sung khả năng tìm phần tử dựa trên prompt ngôn ngữ tự nhiên vào các action Playwright hiện có
  • Công cụ cũng hỗ trợ chạy cục bộ, Docker Compose, Skyvern Cloud, điều khiển Chrome hiện có, tunneling trình duyệt, độ chính xác 64,4% trên WebBench, giấy phép AGPL-3.0 và ngoại lệ cho tính năng chống bot của cloud được quản lý

Vấn đề Skyvern muốn giải quyết

  • Skyvern là dự án tự động hóa workflow dựa trên trình duyệt bằng LLM và thị giác máy tính
  • Cung cấp SDK tương thích Playwright có thêm năng lực AI trên nền Playwright
  • Cũng cung cấp trình dựng workflow không cần code để cả người dùng kỹ thuật lẫn phi kỹ thuật có thể tự động hóa workflow thủ công trên bất kỳ website nào
  • Tự động hóa trình duyệt truyền thống thường phụ thuộc vào script tùy chỉnh theo từng website, phân tích DOM và tương tác dựa trên XPath, nên có thể bị hỏng khi layout website thay đổi
  • Skyvern không chỉ dùng các tương tác XPath được định nghĩa bằng code, mà học và tương tác với website bằng Vision LLM

Cách hoạt động và thiết kế

  • Skyvern lấy cảm hứng từ thiết kế tác nhân tự trị hướng tác vụ do BabyAGIAutoGPT phổ biến hóa
  • Công cụ bổ sung khả năng tương tác với website bằng các thư viện tự động hóa trình duyệt như Playwright
  • Sử dụng một swarm gồm nhiều tác nhân để hiểu website, lập kế hoạch hành động và thực thi
  • Lợi ích của cách tiếp cận này được tóm tắt thành ba điểm
    • Có thể hoạt động trên website lần đầu gặp bằng cách ánh xạ các yếu tố trực quan thành hành động cần thiết mà không cần code tùy chỉnh
    • Vì không có XPath hay selector định nghĩa sẵn để tìm trong quá trình điều hướng, công cụ bền vững hơn trước thay đổi layout website
    • Có thể áp dụng một workflow cho nhiều website và suy luận các tương tác cần thiết trên từng site
  • Báo cáo kỹ thuật Skyvern 2.0 có tại Skyvern 2.0: State-of-the-art web navigation with 85.8 on WebVoyager eval

Cách chạy

  • Skyvern Cloud là phiên bản cloud được quản lý, cho phép chạy Skyvern mà không cần tự quản lý hạ tầng
  • Skyvern Cloud có thể chạy song song nhiều instance Skyvern, bao gồm cơ chế ứng phó phát hiện chống bot, mạng proxy và CAPTCHA solver
  • Chạy cục bộ có thể bắt đầu bằng pip install "skyvern[all]" rồi skyvern quickstart
  • skyvern quickstartskyvern run server mặc định dùng cơ sở dữ liệu SQLite tại ~/.skyvern/data.db
    • Để dùng container Postgres cục bộ, truyền --postgres
    • Để dùng cơ sở dữ liệu hiện có, truyền --database-string
    • Docker Compose dùng dịch vụ Postgres đi kèm
  • Chạy bằng Docker Compose sẽ container hóa Postgres, API và UI; sau khi đặt khóa API LLM trong .env, khởi động bằng docker compose up -d
  • UI mặc định truy cập tại http://localhost:8080

SDK và phần mở rộng Playwright dựa trên AI

  • Skyvern SDK là phần mở rộng bổ sung tự động hóa trình duyệt dựa trên AI cho Playwright
  • Cách cài đặt được chia theo hình thức sử dụng
    • Python SDK / cloud API: pip install skyvern
    • Server cục bộ và UI đóng gói: pip install "skyvern[all]" rồi skyvern quickstart
    • Server cục bộ và UI dùng Postgres: pip install "skyvern[all]" rồi skyvern quickstart --postgres
    • UI đóng gói kết nối tới API hiện có: pip install "skyvern[ui]" rồi skyvern run ui --api-url <api-url> --api-key <api-key>
    • TypeScript: npm install @skyvern/client
  • Đối tượng page được bổ sung bốn lệnh AI
    • page.act(prompt): thực hiện hành động bằng ngôn ngữ tự nhiên như “nhấp nút đăng nhập”
    • page.extract(prompt, schema): trích xuất dữ liệu có cấu trúc với JSON schema tùy chọn
    • page.validate(prompt): xác thực trạng thái trang và trả về bool
    • page.prompt(prompt, schema): gửi prompt tùy ý đến LLM kèm schema phản hồi tùy chọn
  • page.agent cung cấp các lệnh workflow cấp cao hơn
    • page.agent.run_task(prompt): chạy tác vụ nhiều bước phức tạp
    • page.agent.login(credential_type, credential_id): xác thực bằng thông tin đăng nhập lưu trong Skyvern, Bitwarden, 1Password
    • page.agent.download_files(prompt): điều hướng rồi tải file xuống
    • page.agent.run_workflow(workflow_id): chạy workflow đã tạo sẵn
  • Các action Playwright hiện có hỗ trợ tìm phần tử dựa trên AI thông qua tham số prompt tùy chọn
    • Thay vì page.click("#btn"), dùng page.click(prompt="Click login button")
    • Thay vì page.fill("#email", "a@b.com"), dùng page.fill(prompt="Email field", value="a@b.com")
    • Thay vì page.select_option("#country", "US"), dùng page.select_option(prompt="Country dropdown", value="US")
    • Thay vì page.upload_file("#file", "doc.pdf"), dùng page.upload_file(prompt="Upload area", files="doc.pdf")
  • Có ba chế độ tương tác
    • Playwright truyền thống: dùng selector CSS/XPath
    • Dựa trên AI: dùng ngôn ngữ tự nhiên
    • AI fallback: thử selector trước, nếu thất bại thì thay bằng AI

Điều khiển trình duyệt nâng cao

  • Skyvern có thể điều khiển trình duyệt Chrome hiện có của người dùng
  • Cách này dùng nguyên trình duyệt đã có cookie, phiên đăng nhập và extension
  • Có thể bật remote debugging của Chrome tại chrome://inspect/#remote-debugging
  • Lệnh skyvern init browser mở trang remote debugging, đợi người dùng bật rồi lưu cấu hình
  • Skyvern Cloud cũng có thể điều khiển Chrome đang chạy trên máy cục bộ
    • Lệnh skyvern browser serve --tunnel vừa khởi động Chrome vừa tạo tunnel tới Skyvern Cloud
    • Hữu ích khi tự động hóa các site đã đăng nhập sẵn hoặc nằm sau VPN
  • Khi đưa trình duyệt ra ngoài qua tunnel, luôn phải dùng --api-key
    • Nếu để lộ mà không có API key, bất kỳ ai có URL cũng có thể kiểm soát hoàn toàn trình duyệt
    • Nội dung liên quan nằm trong browser tunneling security docs

Hiệu năng và đánh giá

  • Skyvern cho biết đã đạt hiệu năng SOTA trên WebBench benchmark với độ chính xác 64,4%
  • Báo cáo kỹ thuật và đánh giá có tại Web Bench: A new way to compare AI browser agents
  • Công cụ cũng cho biết mình là tác nhân có hiệu năng cao nhất ở các tác vụ WRITE
    • Ví dụ tác vụ WRITE gồm điền form, đăng nhập, tải file xuống, v.v.
    • Nhóm này chủ yếu được dùng cho các tác vụ gần với RPA

Tasks và Workflows

  • Task là đơn vị cấu thành cơ bản bên trong Skyvern
  • Mỗi Task là một yêu cầu đơn lẻ để điều hướng website và đạt một mục tiêu cụ thể
  • Task cần có urlprompt
  • Tùy chọn có thể bao gồm data schemaerror codes
    • data schema dùng khi muốn đầu ra tuân theo một schema cụ thể
    • error codes dùng khi muốn Skyvern dừng thực thi trong một số tình huống nhất định
  • Workflow là cách nối nhiều Task thành một đơn vị công việc
  • Ví dụ workflow
    • Để tải xuống tất cả hóa đơn sau ngày 1/1, có thể cấu thành theo thứ tự: đi tới trang hóa đơn, lọc ngày, trích xuất danh sách hóa đơn mục tiêu, tải từng hóa đơn xuống
    • Tự động hóa mua hàng thương mại điện tử có thể cấu thành theo thứ tự: đi tới sản phẩm, thêm vào giỏ, xác thực trạng thái giỏ hàng, checkout
  • Các tính năng workflow được hỗ trợ gồm Browser Task, Browser Action, Data Extraction, Validation, For Loops, File parsing, Sending emails, Text Prompts, HTTP Request Block, Custom Code Block và tải file lên block storage
  • Conditionals được đánh dấu “Coming soon”

Tính năng chính

  • Livestreaming truyền thời gian thực viewport trình duyệt về máy cục bộ để có thể thấy Skyvern đang làm gì trên web
    • Hữu ích cho debug, hiểu tương tác và can thiệp khi cần
  • Form Filling có thể điền mặc định các form input trên website
    • Nếu truyền thông tin qua navigation_goal, Skyvern sẽ hiểu nội dung và điền form
  • Data Extraction trích xuất dữ liệu từ website
    • Nếu chỉ định data_extraction_schema ở định dạng jsonc trong prompt chính, đầu ra sẽ tuân theo cấu trúc schema đó
  • File Downloading tải file xuống từ website
    • File đã tải sẽ được tự động upload nếu đã cấu hình block storage, và có thể truy cập trong UI
  • Authentication hỗ trợ nhiều phương thức xác thực để giúp tự động hóa các tác vụ sau đăng nhập dễ hơn
  • Hỗ trợ 2FA theo nhiều cách
    • 2FA dựa trên QR, ví dụ: Google Authenticator, Authy
    • 2FA dựa trên email
    • 2FA dựa trên SMS
    • Tài liệu liên quan nằm tại 2FA support
  • Trạng thái tích hợp trình quản lý mật khẩu
    • Hỗ trợ: Bitwarden
    • Hỗ trợ: Custom Credential Service, HTTP API
    • Chưa hỗ trợ: 1Password
    • Chưa hỗ trợ: LastPass

Tích hợp và LLM được hỗ trợ

  • Skyvern hỗ trợ Model Context Protocol(MCP), cho phép dùng các LLM hỗ trợ MCP
  • Tài liệu MCP nằm tại MCP server documentation
  • Hỗ trợ tích hợp Zapier, Make.com, N8N
  • Các nhà cung cấp LLM được hỗ trợ như sau
    • OpenAI: GPT-5.5, GPT-5.4, GPT-5, GPT-4.1, o3, o4-mini
    • Anthropic: Claude 4.7 Opus, Claude 4.6 Sonnet/Opus, Claude 4.5 Haiku/Sonnet/Opus
    • Azure OpenAI: mọi mô hình GPT được triển khai trong thuê bao Azure
    • AWS Bedrock: Claude 4.7, Claude 4.6 Sonnet/Opus, Claude 4.5 Sonnet/Opus
    • Gemini: Gemini 3.1 Pro, Gemini 3 Flash, Gemini 2.5 Pro/Flash
    • Ollama: mô hình host cục bộ thông qua Ollama
    • OpenRouter: truy cập mô hình thông qua OpenRouter
    • OpenAI-compatible: endpoint API tùy chỉnh tuân theo định dạng OpenAI API thông qua liteLLM
  • Cấu hình LLM chi tiết nằm trong LLM Configuration docs

Ví dụ sử dụng thực tế

  • Tự động hóa tải hóa đơn xuống từ nhiều website
  • Tự động hóa quy trình ứng tuyển việc làm
  • Tự động hóa mua sắm vật tư của công ty sản xuất
  • Đăng ký tài khoản hoặc điền form trên website chính phủ
  • Điền ngẫu nhiên form contact us
  • Tìm báo giá bảo hiểm trên website công ty bảo hiểm bằng nhiều ngôn ngữ

Khắc phục sự cố và lệnh vận hành

  • Một lỗi đã biết của pip install skyvern==1.0.31 có thể gây ra (sqlite3.OperationalError) table organizations already exists
    • Xóa file SQLite còn lại ~/.skyvern/data.db, nâng cấp lên 1.0.32 trở lên bằng pip install --upgrade skyvern, rồi chạy skyvern quickstart
    • Nếu phải giữ 1.0.31, có thể dùng uv pip install skyvern
  • Nếu pip install skyvern thất bại với ResolutionImpossible, nguyên nhân có thể là xung đột giải quyết dependency litellm / fastmcp trong 1.0.31
    • Nâng cấp lên 1.0.32 trở lên hoặc dùng uv pip install skyvern
  • Các lệnh hữu ích cho debug
    • skyvern run server: chạy riêng server Skyvern
    • skyvern run ui: chạy Skyvern UI
    • skyvern status: kiểm tra trạng thái dịch vụ
    • skyvern stop all: dừng toàn bộ dịch vụ
    • skyvern stop ui: dừng UI
    • skyvern stop server: dừng server

Giấy phép và telemetry

  • Theo mặc định, Skyvern thu thập thống kê sử dụng để hiểu cách công cụ được dùng
  • Để tắt telemetry, đặt biến môi trường SKYVERN_TELEMETRY thành false
  • Kho mã nguồn mở Skyvern được hỗ trợ bằng cloud được quản lý
  • Logic cốt lõi được cung cấp trong kho mã nguồn mở này theo giấy phép AGPL-3.0
  • Các biện pháp chống bot có trong dịch vụ cloud được quản lý được nêu rõ là ngoại lệ của logic cốt lõi trong kho mã nguồn mở

1 bình luận

 
GN⁺ 2024-10-25
Ý kiến trên Hacker News
  • Tò mò mọi người nhìn nhận thế nào về tính năng computer use của Claude mà Anthropic vừa công bố gần đây
    Khi computer use của Claude còn khá mới, tôi muốn biết điểm khác biệt cốt lõi của Skyvern là gì

    • Tôi đang làm trong lĩnh vực này, và khả năng của Claude trong việc đếm pixel và tương tác với màn hình bằng tọa độ chính xác trông như một đổi mới khá hữu ích, có thể cải thiện các cách tiếp cận hiện có
      Cách làm hiện tại thường là vẽ các hộp bao quanh những phần tử có thể tương tác, yêu cầu LLM đưa ra lời gọi công cụ như click('A12'), rồi ánh xạ A12 sang phần tử HTML thực tế để thực hiện thao tác Selenium/JS. Việc vẽ các hộp bao này bằng heuristic cũng khá khó, và nếu click handler được gắn vào một phần tử DOM khác thì việc thực hiện đúng hành động cũng có thể trở nên khó khăn
      Trong các trường hợp tự động hóa, việc thực hiện trực tiếp các hành động cấp cao như click(x, y) hoặc type("foo") trên màn hình, thay vì ánh xạ lại phần tử trực quan sang phần tử HTML, nhiều khả năng sẽ hiệu quả hơn. Tuy vậy, hiện tại nếu cung cấp HTML làm ngữ cảnh cho LLM thì hiệu năng thường tốt hơn so với chỉ dùng suy luận thị giác thuần túy. Vì thế tôi lạc quan hơn với cách tiếp cận của Claude, đặc biệt rất đáng kỳ vọng nếu suy luận thị giác tiếp tục được cải thiện
    • Sản phẩm và lần ra mắt của Anthropic thật sự rất ấn tượng, và việc họ chỉ dùng sử dụng công cụ + micro-agent + ảnh chụp màn hình + tọa độ để tương tác với website và làm được nhiều việc là điều đáng chú ý
      Tuy nhiên, tôi nghi ngờ việc các đối thủ sẽ chỉ đứng yên mà không làm thứ tương tự. Các đội xAI, Gemini, OpenAI, Mistral, MetaAI chắc chắn sẽ không chỉ chờ đợi, và lĩnh vực này nhiều khả năng sẽ là một trụ cột lớn trong tương lai, nên có lẽ một công ty sẽ không thể ôm trọn tất cả
      Ngoài ra, điều quan trọng là giá trị thực sự trong các hệ thống như thế này đến từ đâu. Chỉ demo và một sản phẩm đẹp, dùng được có thể là chưa đủ; phần lớn mọi người muốn tự động hóa workflow thực tế. Với mục đích cá nhân thì như vậy có thể đủ, nhưng doanh nghiệp có khả năng sẽ muốn những thứ phức tạp hơn
      Cuối cùng, liệu thứ này có chỉ được tối ưu cho Claude hay không cũng là điểm then chốt. Nếu bạn muốn chạy bằng LLM mã nguồn mở của riêng mình, hoặc muốn liên tục đổi sang mô hình tốt nhất trên thị trường, có thể khó có được sự linh hoạt đó từ giải pháp do các ông lớn cung cấp. Vì Anthropic có động lực để khiến mọi người dùng Claude trong nội bộ
      Điểm cuối cùng này khá đáng hy vọng. Người dùng mã nguồn mở của Skyvern có thể chọn mô hình họ muốn và không bị trói vào Claude. Nó cũng có thể chạy trên Gemini, GPT-4O, và các mô hình mã nguồn mở như Llama 3.2
  • Đây có lẽ không phải wrapper AI đầu tiên trên Playwright xuất hiện trong tuần này, và chắc cũng không phải trường hợp đầu tiên trong tháng này
    Cách dùng từ góc nhìn tự động hóa quy trình công việc trông thuyết phục hơn tự động hóa kiểm thử. Tự động hóa kiểm thử coi trọng độ chính xác và khả năng lặp lại của quy trình hơn nhiều, còn tự động hóa công việc thì trong nhiều trường hợp, miễn kết quả đúng, việc đi đến đó bằng một lộ trình kỳ lạ cũng không quá quan trọng
    Tuy nhiên, trong video ví dụ, họ phải viết một prompt khá lớn để làm cho nó chạy được, và còn phải đưa vài KB dữ liệu payload ở dạng văn bản thuần thay vì CSV. Nếu kỳ vọng là nó thay thế những người thấy việc dùng trực tiếp trình tạo mã Playwright quá kỹ thuật và khó, tôi không chắc có nhiều người làm được một bên nhưng không làm được bên kia hay không
    Hơn nữa, có vẻ người dùng phải chuyển cả thông tin đăng nhập website và thông tin thẻ tín dụng dưới dạng văn bản thuần. Để tránh hậu quả nghiêm trọng nếu tài khoản Skyvern của người dùng bị xâm phạm, cách xử lý dữ liệu nhạy cảm phải cực kỳ vững chắc
    Tôi cũng cho rằng phía làm wrapper Playwright dựa trên LLM có xu hướng phóng đại tần suất website được thiết kế lại. Điều này đặc biệt đúng khi nhắm tới các trang cũ hoặc website chính phủ. Ví dụ, tôi đã vận hành một cụm tự động hóa trình duyệt Playwright dài để tương tác với website chính phủ trong nhiều năm, nhưng chỉ phải bảo trì một lần khi quy trình nghiệp vụ của cơ quan thay đổi. Ngay cả nếu dùng Skyvern, vì quy trình đã khác nên prompt và payload cũng vẫn phải thay đổi
    Điểm khác biệt với tự động hóa Playwright là có thể kiểm chứng thành công/thất bại ở từng bước và độ chính xác của bản ghi dữ liệu bằng assertion, nên ta biết khi nào cần cập nhật quy trình. Tôi không thấy lựa chọn như vậy trong Skyvern, nên lo rằng nó có thể bỏ lỡ thay đổi trong quy trình rồi bắt đầu nhập sai dữ liệu hoặc bỏ qua các bước

    • Đúng là cấu trúc prompt và payload hiện tại thuộc loại khá phức tạp, nhưng chúng tôi đã có thể dùng LLM để giúp tạo payload này cho người dùng
      Người dùng kỹ thuật muốn học thêm và tự tạo payload, còn người dùng không kỹ thuật thì bắt đầu bằng cách nhờ LLM hỗ trợ tạo prompt Skyvern cuối cùng. Điều này nằm ngoài dự đoán, nhưng lại là một luồng diễn ra tự nhiên đến đáng ngạc nhiên
      Bước 1 là tạo theo cách phức tạp, tức Playwright; bước 2 là giai đoạn hiện tại, tạo thứ tương đương Playwright bằng prompt phức tạp; bước 3 là tạo ra thứ có thể tạo thứ tương đương Playwright bằng prompt đơn giản hơn. Mỗi bước đều hạ thấp rào cản kỹ thuật cần có để tạo tự động hóa
      Tôi cho rằng tần suất website thay đổi là đề xuất giá trị nhỏ hơn của tự động hóa dựa trên LLM. Giá trị lớn nhất là khả năng xử lý những tình huống rất động. Chẳng hạn, khi tự động hóa một website thương mại điện tử mà popup khuyến mãi thay đổi hằng tuần, Skyvern gần như không bận tâm đến những thứ đó, trong khi script Playwright có thể bị hỏng
      Lý do tôi thích ví dụ Geico cũng là vì nó cho thấy rõ một điểm trước đây rất khó tự động hóa. Form thay đổi mỗi lần chạy, nhưng Skyvern vượt qua dễ dàng
      Về độ chính xác dữ liệu, chúng tôi đang ra mắt tính năng workflow cho phép nối chuỗi nhiều tác vụ. Điểm thú vị của tính năng này là có thể thêm bước để Skyvern tự xác minh kết quả trước khi tiếp tục. Ví dụ, sau khi thêm n sản phẩm vào giỏ hàng, có thể chuyển đến giỏ hàng và xác minh trạng thái giỏ hàng
      Như bạn có thể đoán, đây sẽ là nền tảng để các agent khác dùng những công cụ này và tự tạo workflow bằng prompt đơn giản hơn. Tóm lại, đây là bước đầu trong một hành trình dài nhằm làm cho việc tự động hóa quy trình công việc bằng LLM ngày càng dễ hơn
  • Ở thời điểm hiện tại, xây dựng startup trên LLM của bên thứ ba có vẻ là việc đòi hỏi rất nhiều liều lĩnh, hoặc cần một mô hình kinh doanh nhắm tới lợi nhuận ngắn hạn
    Nếu tầm nhìn thời gian là vài năm chứ không phải vài tháng thì rủi ro rất lớn. Anthropic vừa nhảy vào lĩnh vực này hôm qua, và OpenAI cùng Google nhiều khả năng cũng sẽ sớm theo sau

    • Nhiều công ty như Vercel, Supabase đã xây dựng doanh nghiệp lớn theo kiểu “bọc” AWS
      Nói đúng nghĩa thì họ vừa cạnh tranh với AWS vừa dùng AWS để cung cấp sản phẩm của mình. Thị trường này lớn và còn chỗ cho nhiều cách tiếp cận khác nhau
      Rõ ràng OpenAI, Anthropic, Google sẽ xây dựng những mảng kinh doanh lớn trong lĩnh vực này, nhưng có vẻ không có lý do gì để loại trừ khả năng ai đó khác đưa ra ý tưởng hay rồi dựa vào các nhà cung cấp hạ tầng lớn để hiện thực hóa nó
    • Không rõ “nhảy vào” nghĩa là gì. Tôi không biết rõ đã có chuyện gì xảy ra
  • Việc mở mã nguồn theo AGPL khá thú vị
    Có thể trong tài liệu đã có câu trả lời, nhưng tôi tìm nhanh trong mã nguồn thì có vẻ họ không dùng LangChain và đang lên kế hoạch tích hợp để sau này có thể đóng góp cho cộng đồng đó. Tôi tò mò Skyvern đã dùng gì khi xây dựng logic chuỗi suy nghĩ/hành động, và nếu bây giờ bắt đầu từ đầu thì họ có cân nhắc hướng LangChain/Graph không

    • Ban đầu chúng tôi dùng framework AutoGPT
      Dấu vết của nó vẫn còn khá nhiều ở những chỗ như tác vụ và bước, nhưng khi muốn mở rộng hơn và làm các việc phức tạp hơn, chúng tôi nhận ra framework này rất hạn chế
      Ví dụ hiện tại chúng tôi đang dùng kiến trúc đa tác tử, trong đó có các micro-agent chạy để phân tích SVG hoặc điền phần tự động hoàn thành động; cấu trúc kiểu này hẳn sẽ cực kỳ khó với các framework hiện có
      Những framework như LangChain rất tốt cho giai đoạn prototyping ban đầu, nhưng khi muốn đẩy tới giới hạn thì chúng quá gò bó
  • Nếu “tự động hóa trình duyệt” khiến bạn thấy khó hiểu, thì nó là việc khiến một chương trình thao tác với website mục tiêu, kiểu như Selenium
    Thường là đưa các sự kiện nhập phím và di chuyển/nhấp chuột vào một website mục tiêu do người khác sở hữu để khiến website đó thực hiện việc gì đó. Biết điều này rồi thì phần giải thích còn lại sẽ dễ hiểu hơn

  • Mỗi lần thấy các công cụ tự động hóa workflow bằng LLM như thế này, tôi lại có vài câu hỏi về từng trường hợp sử dụng và kết quả dài hạn
    Thứ nhất, tôi tự hỏi liệu nó có đang đi vòng qua ma sát do thiếu khả năng tương tác giữa các công cụ hay không. Ví dụ nếu chủ website cung cấp dịch vụ REST thì việc đó có hiệu quả hơn không? Khi các công cụ như thế này tồn tại, liệu các công ty có ngừng cung cấp endpoint dịch vụ ngay cả trong những trường hợp việc cung cấp là hợp lý không?
    Thứ hai, nếu có lý do chính đáng để không có endpoint dịch vụ, chẳng hạn vì bảo mật, thì workflow tự động hóa có thể được dùng để vượt qua các biện pháp bảo mật đó. Kẻ xấu có thể dùng công cụ này để vô hiệu hóa các dịch vụ lớn không? Bên làm công cụ có thể trở thành tác nhân như vậy không? Nó có thể được các reseller dùng để khiến người tiêu dùng thông thường không mua được các mặt hàng có nhu cầu cao không?
    Thứ ba, nếu nó được dùng để đi vòng qua khoản bảo trì bị trì hoãn của các công cụ và quy trình nội bộ, sự tồn tại của các công cụ này có thể trở thành cái cớ để ban lãnh đạo tiếp tục trì hoãn bảo trì. Cuối cùng nó cũng có thể trở thành phụ thuộc cốt lõi trong workflow của nhân viên hỗ trợ
    Thứ tư, nếu nó được dùng với thiện ý để đi vòng qua các anti-pattern trong thiết kế website, liệu chủ website có động lực để phá vỡ workflow đó không? Rốt cuộc đây có chỉ là một bước trong cuộc chạy đua vũ trang không?
    Tôi cứ nghĩ đến những điều này mỗi khi thấy người ta đặt phần mềm lên trên các quy trình phức tạp, rồi thay vì đơn giản hóa quy trình gốc thì lại phủ thêm một lớp phức tạp nữa. Rõ ràng dự án sẽ hữu ích, nhưng tôi tò mò về tác động dài hạn

    • Các website không có API thường rơi vào một trong hai lý do. Một là họ muốn bảo vệ dữ liệu, như LinkedIn; hai là họ không có nguồn lực hoặc ngại làm API, như các website nhỏ hoặc cổng thông tin chính phủ
      Skyvern giải quyết vấn đề này, nhưng nếu chi phí LLM giảm xuống thì nó cũng có thể khiến các website này không còn cần tạo API nữa
      Chúng tôi không muốn Skyvern được dùng trên các website cấm hành vi như vậy. LinkedIn là ví dụ điển hình. Đặc biệt, lý do chúng tôi không mở mã nguồn phần code liên quan đến anti-bot hay captcha cũng là vì chúng tôi nhận được những yêu cầu kiểu “thao túng đề xuất Reddit”. Chúng tôi không muốn hỗ trợ những tác nhân xấu như vậy
      Nhìn chung, tôi cho rằng tự động hóa trình duyệt bằng AI có tác động ròng tích cực. Nếu nhu cầu API giảm, sẽ bớt phải duy trì cả API lẫn UI, trải nghiệm đơn giản hơn, code ít hơn và hệ thống cũng đơn giản hơn
      Tôi không chắc 100% về phần cuối. Thường thì tôi giả định lý do các công ty không làm API là vì họ không có ngân sách. Tức là không phải lý do độc hại. Những công ty như LinkedIn sẽ cố chặn các nỗ lực tự động hóa, nhưng chúng tôi không muốn tham gia trò mèo vờn chuột đó
  • Tôi tò mò liệu Skyvern có thể thu thập dữ liệu từ nhiều website có cấu trúc khác nhau rồi hợp nhất dữ liệu có cấu trúc vào một file CSV hoặc JSON hay không
    Ví dụ có thể lấy lãi suất tài khoản tiền gửi từ nhiều website ngân hàng, trích xuất tên ngân hàng, logo ngân hàng, tên sản phẩm và lãi suất của từng tài khoản, rồi chạy truy vấn đã lưu theo lịch hằng ngày hoặc hằng tuần không?

    • Về lý thuyết là có thể. Cần thiết lập bằng tính năng workflow và nối chuỗi nhiều tác vụ để thu thập thông tin
  • Tôi tò mò liệu đã có kinh nghiệm chạy Skyvern trên website của các hãng hàng không chưa
    Ví dụ trích xuất tình trạng còn ghế thưởng cho vé máy bay đổi bằng dặm từ điểm A đến điểm B. Các hãng hàng không dường như luôn thay đổi giao diện và cũng có các biện pháp chống scraping rất mạnh

    • Chúng tôi chưa hỗ trợ đúng trường hợp sử dụng đó, nhưng đang tích hợp với một công ty để tự động hóa việc mua vé Alaska và Southwest thay cho người thật
      Đây sẽ là một cách để beta test giao dịch thẻ tín dụng và xác minh độ tin cậy
  • Tôi đang xây một thứ tương tự ở quy mô nhỏ hơn, và lĩnh vực này có vẻ khá hứa hẹn
    Khi giới hạn phạm vi vấn đề ở tương tác/scraping trên một trang duy nhất, nó đã rất ổn định và hữu ích trong công ty. Dù vậy, tự động hóa kiểu tác tử cũng trông thú vị

    • Nó đặc biệt hữu ích trong các tình huống rất động
      Ví dụ việc điền form liên hệ trên hàng trăm website là thứ mà code thông thường rất khó xử lý hết sự đa dạng đó, nhưng với AI agent thì không phải vấn đề lớn
  • Tôi tò mò liệu có số liệu trên WebArena(https://webarena.dev) hoặc VisualWebArena(https://jykoh.com/vwa) không

    • Chưa có. Bộ dữ liệu nội bộ quá thiên lệch nên chúng tôi chưa chia sẻ công khai, nhưng dự kiến sẽ có trong vài tuần tới