
Trường hợp sử dụng chính của opencode không nhất thiết là lập trình. Ngoài việc viết mã và làm việc với hệ điều hành, nó còn có thể giúp bạn thực hiện nhiều công việc hằng ngày.
Bạn có thể xem nó như một quy trình phối hợp giữa nhiều tác vụ thông minh: bạn nói việc cần làm, nó sẽ tìm kiếm, tra cứu, tải xuống, kiểm tra, rồi đưa kết quả đến trước mặt bạn.
Một số bạn còn nói: Mình cũng đã cài rồi, nhưng không biết dùng thế nào?
Hôm nay, hãy cùng xem một ví dụ thực tế: tìm một khóa học giao tiếp tiếng Anh trên Bilibili, rồi tải tập đầu tiên xuống màn hình nền.
Hãy nói rõ việc cần làm
Trước tiên, hãy xem tôi ra lệnh như thế nào:

>Đưa ra lệnh
"Hãy tìm trên Bilibili khóa học giao tiếp tiếng Anh dễ hiểu, ngắn gọn và được công nhận rộng rãi nhất từ trước đến nay, rồi tải tập đầu tiên xuống màn hình nền của thiết bị này."
Chỉ một câu như vậy thôi. Nhưng hãy chú ý, trong đó có vài thông tin quan trọng:
Tìm ở đâu: Bilibili. Không phải Douyin, không phải Kuaishou, mà là Bilibili. Bạn phải xác định rõ phạm vi lựa chọn, nếu không chất lượng nội dung nó tìm được có thể không như mong đợi.
Cần nội dung như thế nào: dễ hiểu, ngắn gọn và được công nhận rộng rãi. Hai tiêu chí này đã xác định chuẩn sàng lọc: không phải khóa học ngữ pháp kéo dài một trăm tập, cũng không phải nội dung phô trương để bán khóa học, mà là nội dung có danh tiếng tốt và dễ bắt đầu.
Cần tập thứ mấy: tập đầu tiên. Không phải toàn bộ, cũng không phải "tùy xử lý", vì tải tất cả có thể khiến ổ đĩa không đủ chỗ.
Tải xuống đâu: màn hình nền của thiết bị này. Không phải thư mục tải xuống, cũng không phải một thư mục dự án nào đó, mà là màn hình nền, nơi có thể nhìn thấy ngay. Tất nhiên đây không phải thói quen tốt; tốt nhất nên có một thư mục riêng tương ứng. Nhưng để minh họa cho người mới, tạm thời làm như vậy.
Thiếu bất kỳ một trong bốn điều này cũng sẽ gây rắc rối. Nếu bạn chỉ nói "hãy tải cho tôi một video tiếng Anh", nó có thể tải một bài hát thiếu nhi hoạt hình rất ngộ nghĩnh, hoặc một đề thi nghe tiếng Anh cấp 6. Bạn xem xong sẽ muốn mắng nó, nhưng thực ra vấn đề không nằm ở việc nó kém thông minh, mà ở chỗ bạn chưa nói rõ.
Hãy xem đây là một quá trình chuyển đổi ngôn ngữ: chuyển ngôn ngữ tự nhiên của con người thành thao tác tìm kiếm có thể thực thi và kết quả mà bạn muốn nhận được. Tính xác định và sự rõ ràng rất quan trọng. Điều cần thiết nhất là hiệu quả diễn đạt của bạn: phải nói rõ ràng thì công việc mới được hoàn thành.
Nếu không nói rõ thì phải làm sao? Hãy cố gắng nói càng nhiều càng tốt. Không cần cân nhắc cách dùng từ hay câu chữ, cũng không cần văn vẻ. Việc bạn cần làm là mô tả rõ công việc bằng lượng thông tin lớn nhất có thể. Khả năng hiểu của nó khá tốt; khi bạn cung cấp thêm vài manh mối, nó có thể tự ghép chúng lại. Điều đáng ngại là bạn cung cấp quá ít thông tin, khiến nó chỉ có thể đoán. Đoán sai rồi bạn lại chê nó không làm được.
Nó bắt đầu làm việc
Sau khi nhận được lệnh, nó bắt đầu tự tìm kiếm:

>Mô hình tìm kiếm
Nó gọi công cụ tìm kiếm trên mạng và thay đổi từ khóa qua nhiều vòng: "khóa học giao tiếp tiếng Anh dễ hiểu nhất", "khóa học giao tiếp tiếng Anh kinh điển nhất trên Bilibili", "hàng triệu lượt xem". Đây là quá trình liên tục hiệu chỉnh chiến lược tìm kiếm; một vòng chưa đủ thì đổi sang vòng khác. Nhìn vào danh sách kết quả, có thể thấy trên Bilibili thực sự có rất nhiều khóa học dạng này: "900 câu tiếng Anh kinh điển gồm 170 tập", "Kế hoạch thử thách nói tiếng Anh trong 100 ngày", cùng Daily Easy English Expression của Coach Shane.
Sau vài vòng tìm kiếm, nó chọn bộ của Coach Shane. Lý do do chính nó đưa ra: mỗi tập dài 3 đến 5 phút, chỉ tập trung vào một cách diễn đạt tự nhiên; phần giải thích không chỉ nói về ý nghĩa mà còn đề cập đến các chi tiết phát âm như nối âm và đọc yếu, người mới bắt đầu cũng có thể học được ngay. Kênh chính có hàng triệu người đăng ký, nhiều người đăng lại trên Bilibili, tổng lượt xem lên đến hàng chục triệu; một số tài khoản tiếp thị cũng từng giới thiệu, nên bộ này nhìn chung được công nhận khá cao trong cộng đồng học tiếng Anh.
Nếu tự thực hiện quá trình sàng lọc này, bạn có thể phải mất nửa ngày để đọc phần bình luận và so sánh nhiều video. Còn mô hình chỉ cần thực hiện vài vòng tìm kiếm là đã xác định được lựa chọn. Đây chính là giá trị của việc gọi công cụ: nó không đoán mò mà thực sự đi kiểm tra, sau đó còn giải thích vì sao chọn nội dung này.
Quá trình không hoàn toàn thuận lợi
Sau khi tìm thấy, nó bắt đầu tải xuống và thử dùng yt-dlp:

>Thử tải xuống
Đã xảy ra lỗi. HTTP Error 412: Precondition Failed. Cơ chế chống thu thập dữ liệu của Bilibili đã chặn yêu cầu.
Hãy nhìn cách nó phản ứng: nó không bị mắc kẹt và cũng không nói với bạn rằng "Xin lỗi, tôi không tải được, bạn tự làm đi". Trước tiên, nó thêm User-Agent và tiêu đề Referer rồi thử lại, nhưng vẫn nhận lỗi 412. Sau đó, nó nhận ra phiên bản yt-dlp có thể đã quá cũ và không xử lý được cơ chế chữ ký WBI, nên tự chạy pip install -U yt-dlp để nâng cấp lên phiên bản mới nhất rồi thử lại. Lần này đã thành công.
Khả năng "tự cài công cụ, tự khắc phục vấn đề" là điểm khác biệt lớn nhất giữa opencode và các hộp thoại web thông thường. Nếu bạn trực tiếp nói với Qianwen, Doubao hay các phiên bản web tương tự rằng "hãy tải giúp tôi một video", phần lớn chúng sẽ trả lời "Xin lỗi, tôi không thể truy cập mạng bên ngoài để tải tệp", rồi công việc dừng lại. opencode thì khác: nó có terminal, có thể cài gói, thay đổi tham số và thử đi thử lại. Khi không xử lý được, nó sẽ đổi cách làm và công cụ, thay vì quay đầu ngay khi gặp trở ngại.
Đó chính là điểm khác biệt giữa tác nhân thông minh và chatbot. Chatbot chỉ có thể nói chuyện với bạn, còn tác nhân thông minh có thể trực tiếp hành động.
Đã hoàn tất
Cuối cùng, video đã được tải xuống màn hình nền:

>Trả kết quả sau khi hoàn tất
/Users/fred/Desktop/Coach_Shane_001.mp4, 8.6MB, tập 1 "How are you doing?", dài 3 phút 21 giây.
Sau khi tải xong, nó còn kiểm tra để xác nhận tệp thực sự tồn tại và dung lượng bình thường, rồi cho bạn biết đã chọn bộ nào, vì sao chọn, và tập đầu tiên nói về điều gì. Nó không chỉ ném cho bạn một tệp rồi kết thúc, mà còn trình bày đầy đủ nguyên nhân và kết quả.

Trong toàn bộ quá trình, bạn đã làm gì? Bạn chỉ nói đúng một câu ban đầu. Phần còn lại gồm tìm kiếm, sàng lọc, tải xuống, cài công cụ, sửa lỗi và kiểm tra đều do nó tự thực hiện. Thời gian bạn tiết kiệm được đủ để xem thêm hai tập hướng dẫn.
Có thể tiếp tục trao đổi
Sau khi tải xong, tôi hỏi thêm: "Bộ này hay đấy, tổng cộng có bao nhiêu tập?"

>Tiếp tục tương tác
Nó không quên nội dung trước đó mà trực tiếp tra thông tin playlist của bộ sưu tập, cho biết một playlist có 50 tập, toàn bộ có 20 playlist, tính ra là 1000 tập. Mỗi ngày học 2 tập thì khoảng một năm sẽ hoàn thành.
Đó chính là tính liên tục của cuộc hội thoại: bạn không cần giải thích bối cảnh từ đầu mỗi lần, vì nó nhớ bạn vừa làm gì. Điểm này cũng mạnh hơn hộp thoại web; chỉ cần làm mới trang web là ngữ cảnh có thể bị mất, còn phiên làm việc của opencode vẫn tiếp tục. Bạn có thể hỏi tiếp một việc giống như đang trò chuyện với một người.
Tại sao không dùng mô hình web trực tiếp?
Một số bạn có thể hỏi: Vậy tôi mở trực tiếp phiên bản web của Qianwen, Doubao hoặc Kimi rồi hỏi không được sao? Tại sao nhất thiết phải mở terminal và dùng opencode?
Có thể hỏi, nhưng nhiều việc không thể thực hiện. Mô hình web chủ yếu chỉ đối thoại bằng văn bản, việc tải tệp lên cũng có giới hạn, và không có khả năng gọi nhiều công cụ: không thể chạy lệnh, không thể cài gói, không thể tải xuống rồi kiểm tra, cũng không thể thao tác với hệ thống tệp cục bộ của bạn. Bạn nói "hãy tải giúp tôi một video", nó chỉ có thể hướng dẫn cách tải chứ không thể tải thay bạn. Bạn nói "hãy phân loại 10 bức ảnh trên màn hình nền theo ngày", nó chỉ có thể dạy bạn viết script bằng Python, chứ không thể trực tiếp phân loại giúp bạn.
opencode thì khác: nó có terminal, hệ thống tệp, quyền truy cập mạng và khả năng cài gói trên máy của bạn. Bạn nói việc cần làm, nó trực tiếp thực hiện. Đây chính là khác biệt bản chất giữa Agent và trợ lý trò chuyện.
Hơn nữa, điểm quan trọng nhất là bộ công cụ này không tốn tiền. Mô hình miễn phí đi kèm opencode có thể xử lý phần lớn các tình huống hằng ngày. Tải video, tìm tài liệu, sắp xếp tệp hay tra cứu thông tin đều không cần bạn bỏ ra một đồng. Bạn có thể xem nó như một trợ lý miễn phí giúp mình, tiết kiệm rất nhiều thời gian thao tác thủ công. Không phải lần nào kết quả cũng hoàn hảo, nhưng vẫn tốt hơn nhiều so với tự mình làm tất cả.
Tại sao nên dùng terminal dòng lệnh?
Vẫn là câu nói đó: tôi khuyên mọi người dùng phiên bản opencode chạy trong terminal dòng lệnh để giảm tối đa sự xao nhãng từ những yếu tố khác.
Trong terminal chỉ có một ô nhập, một đoạn hội thoại và một kết quả. Bạn không cần quan tâm giao diện trông thế nào, nút bấm ở đâu hay quảng cáo có bật lên không. Bạn chỉ cần nói rõ việc cần làm, theo dõi quá trình thực hiện và kiểm tra kết quả, những việc khác không cần bận tâm.
Trải nghiệm này khác hộp thoại web ở điểm lớn nhất: phiên bản web là "đối thoại", còn opencode là "cộng tác". Đối thoại nghĩa là bạn hỏi, tôi trả lời; cộng tác nghĩa là tôi nói việc cần làm, bạn thực hiện. Cách sau gần với điều bạn thực sự muốn hơn: bạn không muốn trò chuyện với AI, bạn muốn AI giúp mình hoàn thành công việc.
Đôi lời gửi các bạn tân sinh viên
Tôi hy vọng sau khi bước vào đại học, các bạn sẽ rèn luyện tốt kỹ năng này trước tiên.
Rèn luyện gì? Rèn luyện khả năng nói rõ việc cần làm.
Đại học khác với trung học. Ở trung học, việc hỏi giáo viên hay bạn bè là hoàn toàn bình thường, nhưng ở đại học nhiều người lại ngại mở lời. Có bạn nghĩ rằng "mình không biết mà hỏi người khác thì mất mặt quá", có bạn sợ làm phiền người khác, cũng có bạn mắc chứng sợ giao tiếp. Lúc này, bạn có thể lặng lẽ hỏi mô hình, không ai biết và cũng chẳng có gì đáng xấu hổ.
Nhưng bản thân việc hỏi mô hình cũng có yêu cầu: bạn phải biết cách hỏi.
Nếu bạn nói "Doubao, hãy làm bài tập giúp tôi", nó có thể không làm được, bạn cũng không biết nó đã làm như thế nào, thậm chí nó có thể đối phó qua loa với bạn.
Nếu bạn nói "hãy tìm giúp tôi một khóa học giao tiếp tiếng Anh trên Bilibili", nội dung nó tìm được có thể là thứ bạn hoàn toàn không muốn xem. Vấn đề không nằm ở nó, mà có thể do mô tả của bạn quá mơ hồ.
Nói rõ việc cần làm không đòi hỏi bạn phải văn vẻ hay giỏi dùng từ. Điều cần thiết là cung cấp đủ thông tin: tìm ở đâu, tìm nội dung như thế nào, cần phần nào và đặt ở đâu. Nói rõ bốn điều này, về cơ bản nó có thể xử lý đúng việc. Nếu nói mơ hồ, nó cũng chỉ có thể trả về một kết quả mơ hồ.
Thực ra đây cũng là cách rèn luyện năng lực giao tiếp. Khi bạn quen giao tiếp với mô hình, khả năng giao tiếp với con người cũng sẽ không kém, vì bạn đã quen chia nhỏ yêu cầu, trình bày rõ bối cảnh và xác định cụ thể kỳ vọng. Dù sau này làm công việc gì, bạn cũng sẽ cần năng lực này.
Khi đã có thể thành thạo dùng opencode để tìm video, tải tài liệu, sắp xếp thông tin và tra cứu tài liệu, bạn sẽ không còn phải hỏi giáo viên những câu như "video đó tìm ở đâu vậy" hay "phần mềm đó tải từ đâu" nữa. Những câu hỏi như vậy mới thật sự ngờ nghệch. Việc cài đặt phần mềm cũng có thể giao cho nó; lần sau chúng ta sẽ nói tiếp.
Trong quá trình tìm hướng dẫn và tải xuống hôm nay, bạn có thể thấy nó đã gọi một số công cụ: tìm kiếm trên mạng, thu thập nội dung web, tải xuống bằng dòng lệnh và nâng cấp trình quản lý gói. Nếu không tìm thấy công cụ nào đó, nó sẽ tự cài đặt. Điều này rất tiện lợi, bạn không cần bận tâm đến những chi tiết đó.
Nhưng nếu muốn biết cụ thể cách thực hiện, bạn có thể hỏi trực tiếp: "Lúc nãy bạn dùng lệnh gì để tải video đó? Tại sao lần đầu lại thất bại?"
Nó sẽ lần lượt cho bạn biết các lệnh đã dùng, nguyên nhân thất bại và cách khắc phục. Bạn vừa làm việc vừa hiểu được cách vận hành phía sau, tiện hơn nhiều so với tự mình cặm cụi tra tài liệu.
Cuộc sống đại học sắp bắt đầu rồi, mọi người hãy nhanh chóng rèn luyện từ sớm.
