OpenHands: Alternative AI Devin Mở Nguồn

Minh Triết

Minh Triết

25 tháng 4 2025

OpenHands: Alternative AI Devin Mở Nguồn

Thế giới phát triển phần mềm đang trải qua một sự chuyển mình mạnh mẽ, được thúc đẩy bởi những tiến bộ nhanh chóng trong trí tuệ nhân tạo. Chúng tôi đã thấy các công cụ AI phát triển từ những trợ lý hoàn thành mã đơn giản đến các hệ thống tinh vi có khả năng hiểu các yêu cầu phức tạp và tạo ra các ứng dụng chức năng. Trong bối cảnh hấp dẫn này, một cái tên mới đã xuất hiện, thu hút trí tưởng tượng của các nhà phát triển trên toàn thế giới: OpenHands. Được định vị như một lựa chọn mạnh mẽ, mã nguồn mở thay thế cho các nhà phát triển AI sở hữu như Devin AI, OpenHands cung cấp một nền tảng nơi các tác nhân AI có thể thực hiện các nhiệm vụ mà trước đây chỉ có các nhà phát triển con người mới làm được.

Được phát triển bởi All-Hands-AI, OpenHands (trước đây được biết đến là OpenDevin) không chỉ là một trợ lý lập trình khác. Nó được thiết kế như một nền tảng đa năng cho các tác nhân AI nhằm giải quyết toàn bộ các nhiệm vụ phát triển phần mềm. Hãy tưởng tượng một AI không chỉ có thể viết mã mà còn sửa đổi các mã nguồn hiện có, thực hiện các lệnh đầu cuối, duyệt web để tìm kiếm thông tin (vâng, thậm chí cả việc tìm kiếm trên Stack Overflow để tìm giải pháp), tương tác với các API và quản lý các quy trình phát triển phức tạp. Đây là lời hứa của OpenHands – để "Code Less, Make More."

Điều thực sự làm cho OpenHands khác biệt chính là cam kết đối với mã nguồn mở. Được xây dựng dưới Giấy phép MIT cho phép, nó mời gọi sự hợp tác, tính minh bạch và đổi mới dựa trên cộng đồng. Điều này tương phản rõ rệt với các mô hình mã nguồn đóng, mang lại cho các nhà phát triển sự kiểm soát, tùy chỉnh và cái nhìn chưa từng có vào cách thức hoạt động bên trong của đối tác phát triển AI của họ. Đối với các đội và cá nhân lo ngại về việc bị ràng buộc vào nhà cung cấp hoặc muốn tùy chỉnh các khả năng AI theo nhu cầu cụ thể, OpenHands đưa ra một đề xuất hấp dẫn.

💡
Bạn muốn một công cụ kiểm tra API tuyệt vời tạo ra tài liệu API đẹp mắt?

Bạn muốn một nền tảng tích hợp, tất cả trong một để đội ngũ phát triển của bạn làm việc cùng nhau với năng suất tối đa?

Apidog đáp ứng mọi yêu cầu của bạn và thay thế Postman với mức giá hợp lý hơn rất nhiều!
button

OpenHands (trước đây là Open Devin) làm gì?

Hiểu các chức năng cốt lõi của OpenHands là chìa khóa để đánh giá tiềm năng của nó như một nền tảng phát triển AI. Nó trang bị cho các tác nhân AI một bộ khả năng toàn diện:

Sửa đổi mã thông minh

Các tác nhân OpenHands có khả năng đọc, hiểu và thay đổi mã trong bối cảnh một dự án hiện có. Tận dụng Mô hình Ngôn ngữ Lớn (LLM) đã chọn, tác nhân phân tích mã nguồn, hiểu mối quan hệ giữa các tệp và chức năng, và thực hiện các thay đổi mục tiêu dựa trên các gợi ý từ người dùng. Điều này bao gồm các nhiệm vụ như tái cấu trúc các chức năng để làm rõ, thêm các điểm cuối API mới, hoặc cập nhật các phụ thuộc dự án theo chỉ thị.

Thực thi lệnh an toàn

Một trong những nền tảng của OpenHands là khả năng thực thi các lệnh shell (như npm install, python manage.py runserver, git commit, ls, grep, và khác) trong một môi trường cách ly, được bảo vệ. Sandbox này, thường được thực hiện dưới dạng container Docker, tách biệt các hành động của tác nhân, ngăn cản bất kỳ tác động không mong muốn nào lên hệ thống chủ. Điều này cho phép tác nhân thực hiện các hoạt động phát triển cần thiết như thiết lập môi trường dự án, thực thi bộ kiểm tra, cài đặt các thư viện cần thiết, chạy các kịch bản xây dựng, và quản lý kiểm soát phiên bản.

Chức năng duyệt web tích hợp

Phát triển phần mềm hiệu quả thường cần thu thập thông tin từ bên ngoài, chẳng hạn như tham khảo tài liệu, tìm kiếm giải pháp trên các nền tảng như Stack Overflow, hoặc nghiên cứu các thư viện. Các tác nhân OpenHands được trang bị khả năng duyệt web một cách tự động, thu thập thông tin cần thiết để hoàn thành các nhiệm vụ được giao. Khả năng này cho phép họ cập nhật với các thực tiễn tốt nhất và nghĩ ra giải pháp cho các vấn đề mới mà không chỉ dựa vào thông tin đã được cung cấp sẵn.

Tương tác API

Cấu trúc phần mềm hiện đại thường liên quan đến việc tích hợp nhiều dịch vụ qua các API. Các tác nhân OpenHands có thể được chỉ định để tương tác với các API bên ngoài này. Việc này có thể bao gồm việc lấy dữ liệu từ một nguồn bên thứ ba, gửi cập nhật đến một hệ thống khác, hoặc tổ chức quy trình làm việc trải dài qua các công cụ khác nhau, từ đó tự động hóa các quy trình phát triển phức tạp hơn.

Quản lý hệ thống tệp

Các tác nhân cần khả năng tương tác với các tệp dự án. OpenHands cấp cho họ quyền tạo, đọc, ghi và xóa các tệp và thư mục trong không gian làm việc chỉ định của họ (thường là một volume được ánh xạ từ hệ thống địa phương vào sandbox của tác nhân). Điều này cho phép họ cấu trúc các dự án một cách hợp lý, thêm các mô-đun hoặc thành phần mới, quản lý các tệp cấu hình, và lưu trữ kết quả đầu ra.

Những khả năng đa dạng này, được phối hợp bởi một backend LLM do người dùng chọn, trao quyền cho các tác nhân OpenHands tự động xử lý các nhiệm vụ phát triển phức tạp, vượt xa việc tạo mã cơ bản để hỗ trợ kỹ thuật phần mềm do AI điều khiển thực sự.

Cách cài đặt OpenHands trên Mac, Linux, Windows

Sử dụng Docker là phương pháp được khuyến nghị và mạnh mẽ nhất để chạy OpenHands cục bộ. Nó đảm bảo tính đồng nhất của môi trường và cung cấp sự cách ly cần thiết cho các hoạt động của tác nhân. Dưới đây là hướng dẫn chi tiết để cài đặt OpenHands trên các hệ điều hành khác nhau.

Yêu cầu hệ thống

Đảm bảo hệ thống của bạn đáp ứng các yêu cầu sau:

Các bước cài đặt yêu cầu tiên quyết

Thực hiện theo các bước này một cách cẩn thận để thiết lập các yêu cầu tiên quyết cần thiết.

Bước 1: Cài đặt Docker Desktop

Tải xuống và cài đặt Docker Desktop phù hợp với hệ điều hành của bạn từ trang web chính thức của Docker (https://www.docker.com/products/docker-desktop/). Làm theo hướng dẫn cài đặt mà Docker cung cấp. Sau khi cài đặt, xác nhận rằng daemon Docker đang hoạt động; biểu tượng của nó nên hiển thị trong khay hệ thống hoặc thanh menu của bạn.

Bước 2: Cấu hình Docker tùy thuộc vào hệ điều hành

Cần có các cấu hình cụ thể tùy vào hệ điều hành của bạn.

Cấu hình macOS
  1. Mở Docker Desktop.
  2. Truy cập Settings (thường thông qua biểu tượng bánh răng).
  3. Đi tới phần Advanced.
  4. Xác nhận rằng tùy chọn Allow the default Docker socket to be used đã được kiểm tra (bật). Quyền này rất quan trọng để container OpenHands quản lý các container Docker khác (như sandbox).
Cấu hình Linux
  1. Cài đặt Docker Desktop cho Linux bằng cách làm theo tài liệu chính thức của Docker.
  2. Đảm bảo dịch vụ Docker đang chạy sau khi cài đặt.
    (Lưu ý: Trong khi đã được thử nghiệm trên Ubuntu 22.04, khả năng tương thích với các phân phối Linux khác được dự đoán nhưng không được đảm bảo.)
Cấu hình Windows
  1. Cài đặt WSL (Subsystem Windows cho Linux): Nếu WSL 2 chưa được cài đặt, mở PowerShell với quyền Quản trị viên và thực hiện wsl --install. Lệnh này cài đặt WSL và một phân phối Linux mặc định (thường là Ubuntu). Có thể cần khởi động lại hệ thống.
  2. Xác minh phiên bản WSL: Mở một cửa sổ PowerShell hoặc Command Prompt thông thường và gõ wsl --version. Xác nhận đầu ra cho biết phiên bản WSL là 2 hoặc cao hơn. Nếu phiên bản 1 được hiển thị, hãy cập nhật WSL hoặc đặt phiên bản 2 làm mặc định bằng wsl --set-default-version 2.
  3. Cài đặt Docker Desktop cho Windows: Tiến hành cài đặt Docker Desktop nếu chưa được thực hiện.
  4. Cấu hình tích hợp WSL cho Docker Desktop: Mở Docker Desktop, đi tới Settings. Dưới General, đảm bảo Use the WSL 2 based engine đã được bật. Dưới Resources > WSL Integration, xác nhận Enable integration with my default WSL distro đã được bật. Áp dụng các thay đổi và khởi động lại Docker nếu được yêu cầu.
  5. Lưu ý Quan trọng: Đối với người dùng Windows, tất cả các lệnh docker liên quan đến OpenHands phải được thực hiện từ trong môi trường terminal WSL (ví dụ: terminal Ubuntu), không phải trực tiếp từ PowerShell hoặc Command Prompt.

Bắt đầu ứng dụng OpenHands

Khi các yêu cầu tiên quyết đã được đáp ứng, bạn có thể bắt đầu ứng dụng OpenHands.

Bước 1: Mở terminal của bạn
Bước 2: Kéo hình ảnh chạy (Tùy chọn)

OpenHands sử dụng một hình ảnh Docker riêng cho môi trường thực thi được sandbox của tác nhân. Trước khi kéo hình ảnh này có thể tăng tốc độ khởi động ban đầu. Sử dụng thẻ được khuyến nghị trong tài liệu chính thức:

docker pull docker.all-hands.dev/all-hands-ai/runtime:0.34-nikolaik

(Luôn xác minh thẻ được khuyến nghị mới nhất từ kho lưu trữ GitHub của OpenHands hoặc tài liệu chính thức, vì các thẻ có thể thay đổi.)

Bước 3: Chạy container OpenHands

Thực hiện lệnh toàn diện sau đây trong terminal của bạn (sử dụng terminal WSL trên Windows):

docker run -it --rm --pull=always \
    -e SANDBOX_RUNTIME_CONTAINER_IMAGE=docker.all-hands.dev/all-hands-ai/runtime:0.34-nikolaik \
    -e LOG_ALL_EVENTS=true \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v ~/.openhands-state:/.openhands-state \
    -p 3000:3000 \
    --add-host host.docker.internal:host-gateway \
    --name openhands-app \
    docker.all-hands.dev/all-hands-ai/openhands:0.34
Bước 4: Truy cập giao diện người dùng web

Khi lệnh docker run được thực hiện, theo dõi đầu ra nhật ký trong terminal của bạn. Khi chuỗi khởi động ứng dụng hoàn tất, hãy mở trình duyệt web ưa thích của bạn và điều hướng đến http://localhost:3000.

Với các bước này được hoàn thành, OpenHands đã được cài đặt và chạy thành công tại địa phương. Bước tiếp theo ngay lập tức là cấu hình một Mô hình Ngôn ngữ Lớn để cung cấp năng lượng cho tác nhân.

Bắt đầu với Open Hands

Khi OpenHands hoạt động, giai đoạn quan trọng tiếp theo là kết nối nó với một LLM, điều này đóng vai trò như động cơ nhận thức của tác nhân. Sau khi thiết lập LLM, bạn có thể bắt đầu giao nhiệm vụ phát triển. Phần này chi tiết cấu hình ban đầu và cung cấp các ví dụ tương tác minh họa.

Cấu hình LLM ban đầu

Đây là bước đầu tiên bắt buộc khi khởi động giao diện người dùng.

(Hướng dẫn chi tiết về cách cấu hình các nhà cung cấp LLM cụ thể sẽ được cung cấp trong phần tiếp theo.)

Tương tác đầu tiên của bạn: Nhiệm vụ "Hello World"

Bắt đầu tương tác với một nhiệm vụ cơ bản để quan sát quy trình của tác nhân.

Bước 1: Gợi ý cho tác nhân

Nhập lệnh sau vào ô nhập chat và nhấn Enter:

Write a bash script hello.sh that prints "hello world!"
Bước 2: Quan sát giai đoạn lập kế hoạch

OpenHands chuyển tiếp yêu cầu đến LLM đã cấu hình, sau đó hình thành một kế hoạch chiến lược. Thông thường, tác nhân sẽ phác thảo các hành động dự định của nó trong giao diện người dùng, chẳng hạn như:

  1. Tạo một tệp mới có tên hello.sh.
  2. Chèn lệnh bash echo "hello world!" vào tệp này.
  3. Cấp quyền thực thi cho tập lệnh bằng chmod +x hello.sh.
  4. Thực thi tập lệnh thông qua ./hello.sh để xác nhận đầu ra phù hợp với mong đợi.
Bước 3: Quan sát giai đoạn thực thi

Tác nhân tiến hành thực thi các bước đã lên kế hoạch trong môi trường runtime Docker của nó. Nhật ký giao diện người dùng sẽ hiển thị các lệnh đang được thực hiện và phản ánh các sửa đổi trong hệ thống tệp khi chúng xảy ra.

Bước 4: Xác minh kết quả

Sau khi hoàn thành thành công, tác nhân nên báo cáo kết quả thực thi, bao gồm đầu ra mong đợi: "hello world!".

Bước 5: Tinh chỉnh lặp lại

Giờ đây, hãy thay đổi tập lệnh bằng một hướng dẫn theo sau:

Modify hello.sh so that it accepts a name as the first argument, but defaults to "world"
Bước 6: Quan sát quy trình sửa đổi

Tác nhân sẽ lại hình thành và thực hiện một kế hoạch:

  1. Đọc nội dung hiện có của hello.sh.
  2. Cập nhật mã của tập lệnh để bao gồm xử lý tham số, có thể sử dụng mở rộng tham số bash như echo "hello ${1:-world}!".
  3. Tùy chọn, chạy các bài kiểm tra với và không có tham số (ví dụ: ./hello.sh./hello.sh Developer) để xác nhận các thay đổi.
Bước 7: Nhiệm vụ chuyển đổi ngôn ngữ

Chứng minh sự linh hoạt của tác nhân bằng cách yêu cầu thay đổi ngôn ngữ:

Please convert hello.sh to a Ruby script, and run it
Bước 8: Quan sát sự thích nghi của môi trường

Nếu môi trường sandbox thiếu trình thông dịch Ruby cần thiết, tác nhân có thể lên kế hoạch và thực hiện các lệnh cài đặt đầu tiên (ví dụ: apt-get update && apt-get install -y ruby). Sau đó, nó sẽ chuyển đổi logic thành mã Ruby (ví dụ: puts "hello #{ARGV[0] || 'world'}!"), lưu lại vào hello.rb, làm cho nó có thể thực thi và chạy tập lệnh mới.

Ví dụ mở đầu này làm nổi bật quy trình làm việc cốt lõi của tác nhân: hiểu lệnh, lập kế hoạch các bước thực hiện, tương tác với hệ thống tệp và shell trong một sandbox và thích nghi dựa trên các gợi ý lặp lại.

Xây dựng từ đầu: Ví dụ ứng dụng TODO

Các tác nhân thường thể hiện hiệu suất mạnh mẽ trên các dự án "greenfield", nơi chúng có thể thiết lập cấu trúc mà không cần nhiều ngữ cảnh từ một mã nguồn phức tạp có sẵn.

Bước 1: Cung cấp gợi ý dự án ban đầu

Hãy chính xác về các tính năng mong muốn và công nghệ được sử dụng:

Build a frontend-only TODO app in React. All state should be stored in localStorage. Implement basic functionality to add new tasks and display the current list of tasks.
Bước 2: Theo dõi lập kế hoạch và xây dựng

Tác nhân có thể lập kế hoạch như sau:

  1. Sử dụng create-react-app (nếu có sẵn/được chỉ định) hoặc tự tay tạo nền tảng các tệp HTML, CSS và JavaScript/JSX cơ bản.
  2. Phát triển các thành phần React cho biểu mẫu nhập nhiệm vụ và hiển thị danh sách nhiệm vụ.
  3. Thực hiện quản lý trạng thái ứng dụng bằng cách sử dụng các hook của React như useStateuseEffect.
  4. Tích hợp localStorage.setItem()localStorage.getItem() để đảm bảo dữ liệu được lưu trữ giữa các phiên làm việc.
  5. Viết cấu trúc HTML cần thiết và áp dụng kiểu cơ bản với CSS.
Bước 3: Yêu cầu mở rộng tính năng

Khi ứng dụng cơ bản đã hoạt động, yêu cầu các tính năng bổ sung:

Allow adding an optional due date to each task. Display this due date alongside the task description in the list.
Bước 4: Quan sát phát triển lặp lại

Tác nhân sẽ chỉnh sửa các thành phần React hiện có để bao gồm một yếu tố đầu vào ngày, cập nhật cấu trúc trạng thái ứng dụng để xử lý thông tin về ngày đến hạn và điều chỉnh logic hiển thị để phản ánh các ngày đó trong danh sách nhiệm vụ một cách thích hợp.

Bước 5: Thực hiện kiểm soát phiên bản (Thực hành tốt nhất)

Thường xuyên lưu lại tiến độ của tác nhân bằng cách sử dụng kiểm soát phiên bản, giống như bạn làm trong phát triển thủ công. Bạn thậm chí có thể chỉ định cho tác nhân xử lý các commit:

Commit the current changes with the commit message "feat: Add due date functionality to tasks" and push the commit to a new branch named "feature/due-dates" on the origin remote repository.

(Lưu ý: Việc thực thi thành công các lệnh Git, đặc biệt là đẩy lên remotes, yêu cầu Git được cài đặt và có thể cần cấu hình với thông tin xác thực trong không gian làm việc/sandbox của tác nhân.)

Thêm mã mới vào các dự án hiện có

OpenHands có khả năng tích hợp mã và tính năng mới vào các mã nguồn đã được thiết lập.

Ví dụ 1: Thêm một hành động GitHub
Add a GitHub Action workflow to this repository that lints JavaScript code using ESLint whenever code is pushed to the main branch.
Ví dụ 2: Thêm một tuyến backend (Bối cảnh quan trọng)
Modify the Express.js application file located at './backend/api/routes.js'. Add a new GET endpoint at '/api/tasks' that retrieves and returns all tasks by calling the asynchronous function 'getAllTasks' found in './db/queries.js'.

Tái cấu trúc mã

Sử dụng OpenHands để thực hiện các nỗ lực tái cấu trúc mã có mục tiêu.

Ví dụ 1: Đổi tên các biến để làm rõ
Ví dụ 2: Chia nhỏ các hàm lớn
Ví dụ 3: Cải thiện cấu trúc tệp

Sửa lỗi

Mặc dù việc sửa lỗi có thể phức tạp, OpenHands có thể trợ giúp, đặc biệt khi vấn đề được xác định rõ ràng.

Ví dụ 1: Sửa logic cụ thể
Ví dụ 2: Thay đổi hành vi
Ví dụ 3: Sử dụng phương pháp tiếp cận dựa trên kiểm tra
  1. Gợi ý cho việc tạo kiểm tra: Hàm 'calculate_discount' trong 'pricing.js' gặp sự cố khi số lượng đầu vào là không. Viết một trường hợp kiểm tra mới bằng Jest trong tệp 'pricing.test.js' mà cụ thể tạo ra lỗi này.
  2. Quan sát việc chạy kiểm tra: Tác nhân sinh mã kiểm tra, thực hiện bộ kiểm tra (ví dụ: thông qua npm test) và báo cáo sự thất bại như mong đợi.
  3. Gợi ý sửa mã: Giờ đây, hãy điều chỉnh hàm 'calculate_discount' trong 'pricing.js' để xử lý chính xác trường hợp số lượng không, đảm bảo rằng bài kiểm tra đã viết trước đó được thông qua.
  4. Quan sát sửa lỗi và xác nhận: Tác nhân điều chỉnh logic hàm (có thể thêm một kiểm tra điều kiện cho số lượng không) và chạy lại bộ kiểm tra, báo cáo kết quả thành công.

Chiến lược sử dụng chính: Bắt đầu với các yêu cầu đơn giản, cụ thể. Cung cấp ngữ cảnh cần thiết như đường dẫn tệp và tên hàm. Chia nhỏ các mục tiêu lớn thành các bước nhỏ hơn, lặp đi lặp lại. Cam kết thay đổi thường xuyên bằng cách sử dụng kiểm soát phiên bản.

Cách cấu hình OpenHands với LLMs (OpenAI, OpenRouter, Google Gemini, Cục bộ)

Thiết lập kết nối giữa OpenHands và một LLM khả thi là cực kỳ quan trọng. Cấu hình này được quản lý thông qua giao diện người dùng web của OpenHands.

Truy cập cài đặt cấu hình LLM

Quy trình cấu hình LLM chung

  1. Chọn nhà cung cấp LLM: Chọn dịch vụ bạn muốn (ví dụ: "OpenAI", "Anthropic", "Google", "OpenRouter", "Ollama") từ menu thả xuống hiện có.
  2. Nhập API Key: Cẩn thận dán API Key liên quan đến nhà cung cấp bạn đã chọn vào trường nhập đã chỉ định. API Keys nên được bảo mật như mật khẩu.
  3. Xác định mô hình LLM: Chọn mô hình cụ thể mà bạn định sử dụng từ nhà cung cấp đã chọn (ví dụ: gpt-4o, claude-3-5-sonnet-20240620, gemini-1.5-pro-latest). Các mô hình có sẵn có thể tự động xuất hiện dựa trên nhà cung cấp đã chọn, hoặc bạn có thể cần nhập tên mô hình bằng tay.
  4. Khám phá các tùy chọn nâng cao (Tùy chọn): Chuyển đổi các cài đặt nâng cao để hiện thêm khả năng cấu hình:

5. Lưu cấu hình: Áp dụng và lưu các cài đặt đã chọn của bạn.

Các bước cấu hình cụ thể cho nhà cung cấp

Thực hiện theo các bước chi tiết cho các nhà cung cấp LLM phổ biến:

Cấu hình OpenAI
  1. Truy cập https://platform.openai.com/.
  2. Đăng nhập hoặc tạo một tài khoản mới.
  3. Đi đến phần API keys và tạo một khóa bí mật mới. Sao chép khóa này ngay lập tức vì nó có thể không được hiển thị lại.
  4. Đảm bảo rằng thông tin thanh toán đã được thiết lập đúng cách dưới cài đặt Billing để cho phép sử dụng API.
  5. Trong cài đặt giao diện người dùng OpenHands:
Cấu hình Anthropic (Claude)
  1. Truy cập https://console.anthropic.com/.
  2. Đăng nhập hoặc đăng ký tài khoản.
  3. Truy cập Account Settings > API Keys và tạo một API key mới. Sao chép khóa đã được tạo ra.
  4. Cấu hình thanh toán dưới Plans & Billing. Xem xét việc thiết lập giới hạn sử dụng để quản lý chi phí hiệu quả.
  5. Trong cài đặt giao diện người dùng OpenHands:
Cấu hình Google Gemini
  1. Nhận một API Key thông qua:

2. Nếu sử dụng Google Cloud, đảm bảo rằng các API Vertex AI cần thiết đã được kích hoạt và thanh toán được cấu hình cho dự án của bạn.

3. Trong cài đặt giao diện người dùng OpenHands:

Cấu hình OpenRouter
  1. Truy cập https://openrouter.ai/.
  2. Đăng nhập hoặc tạo tài khoản.
  3. Đi đến phần Keys và tạo một API key mới. Sao chép nó.
  4. Thêm tín dụng vào tài khoản của bạn qua phần Billing để cho phép sử dụng.
  5. Trong cài đặt giao diện người dùng OpenHands:
Cấu hình LLM cục bộ (ví dụ: qua Ollama)
  1. Cài đặt Ollama: Thực hiện theo hướng dẫn cài đặt tại https://ollama.com/.
  2. Tải mô hình: Sử dụng Ollama CLI để tải một mô hình mong muốn, ví dụ: ollama pull llama3 (hoặc các mô hình khác như codellama, mistral).
  3. Chạy máy chủ Ollama: Đảm bảo máy chủ nền Ollama đang chạy (nó thường bắt đầu tự động sau khi cài đặt).
  4. Trong cài đặt giao diện người dùng OpenHands:

Cách cấu hình môi trường chạy Docker của OpenHands

Mục đích của môi trường runtime

Cấu hình qua lệnh docker run

Phương pháp chính để cấu hình runtime là thông qua cờ -e (biến môi trường) trong lệnh docker run được sử dụng để khởi động ứng dụng OpenHands:

-e SANDBOX_RUNTIME_CONTAINER_IMAGE=docker.all-hands.dev/all-hands-ai/runtime:0.34-nikolaik

Biến môi trường này chỉ dẫn cho ứng dụng OpenHands biết thẻ hình ảnh Docker cụ thể mà nó nên sử dụng bất cứ khi nào nó cần cấp phát một container sandbox mới để xử lý việc thực thi nhiệm vụ của một tác nhân.

Thay đổi hoặc cập nhật runtime

Thực hành thiết kế API trong Apidog

Khám phá cách dễ dàng hơn để xây dựng và sử dụng API