OpenManus mặc định không áp dụng giới hạn token. Giới hạn riêng của nó là max_input_tokens, được app/config.py khai báo là Optional với giá trị mặc định None và mô tả “Maximum input tokens to use across all requests (None for unlimited)”, đồng thời không xuất hiện trong bất kỳ ví dụ cấu hình nào được đóng gói. Vì vậy, bản cài đặt mặc định không bao giờ tự tạo lỗi giới hạn token — bất kỳ giới hạn nào bạn gặp đều đến từ nhà cung cấp. Khi bạn đặt trường này, nó hoạt động theo hai cách mà mọi người thường không ngờ tới, và một lỗi có trong main hiện tại khiến nó thất bại chậm thay vì nhanh.
Lỗi còn lại mà trang này đề cập, Error: Unknown tool 'BrowserUseTool', thực ra hoàn toàn không phải lỗi đang xảy ra. Lớp mà nó đề cập đã bị xóa khỏi OpenManus vào ngày 15 tháng 8 năm 2026, và agent Manus mặc định trên main hiện tại không đăng ký công cụ trình duyệt cục bộ. Không triệu chứng nào trong hai triệu chứng này liên quan đến khóa API, endpoint hay nhà cung cấp, và việc trỏ lại base_url cũng không khắc phục được chúng.
Một lưu ý về phạm vi trước khi bắt đầu. Không có phiên bản OpenManus nào để trích dẫn: ba tag duy nhất, v0.1.0, v0.2.0 và v0.3.0, đều được phát hành trong vòng 34 giây kể từ nhau vào ngày 10 tháng 4 năm 2025, và từ đó không có tag nào mới, nên mọi người đều chạy main chưa gắn tag. Kho lưu trữ chính tắc là FoundationAgents/OpenManus — chưa lưu trữ, giấy phép MIT, 58.371 sao, lần push gần nhất ngày 22 tháng 8 năm 2026 (GitHub API, ngày 21 tháng 9 năm 2026). Đường dẫn mannaandpoem/OpenManus cũ hiện chỉ còn README sơ lược nói rằng dự án đã chuyển đi, vì vậy các đường dẫn tệp và số dòng được trích dẫn trong các hướng dẫn năm 2025 trỏ đến mã không còn tồn tại. Mọi nội dung dưới đây được đọc trực tiếp từ mã nguồn trên nhánh main vào ngày 21 tháng 9 năm 2026 và không có nội dung nào được thực thi.
Bạn thực sự đang gặp thông báo nào trong bốn thông báo
| Bạn thấy gì | Thành phần in ra thông báo | Điều đó có nghĩa là gì |
|---|---|---|
Maximum token limit reached, cannot continue execution: Request may exceed input token limit (Current: …, Needed: …, Max: …) | OpenManus, app/agent/toolcall.py | Đã đạt đến giới hạn max_input_tokens do bạn đặt cho lần chạy. Không có request nào được gửi |
| Lỗi độ dài ngữ cảnh hoặc token có đề cập đến model | Nhà cung cấp của bạn, được hiển thị thông qua OpenAIError | Request vượt quá cửa sổ ngữ cảnh của model hoặc giới hạn riêng của endpoint. Không liên quan đến giới hạn của OpenManus |
Error: Unknown tool 'X' | OpenManus, các dòng 179–181 trong app/agent/toolcall.py | Model đã gọi tên một công cụ không có trong available_tools.tool_map. Kết quả được trả về dưới dạng kết quả công cụ, nên vòng lặp tiếp tục và tiêu tốn một bước |
Failed to connect to Browser Use CLI 3.0: … | OpenManus, dòng 99 trong app/agent/manus.py | Máy chủ MCP trình duyệt mặc định không khởi động được. Lần chạy vẫn tiếp tục: agent Manus giữ bốn công cụ cục bộ của mình, cùng mọi máy chủ MCP khác mà bạn đã cấu hình |
Đoạn dispatch tạo ra hàng thứ ba chỉ gồm ba dòng và không bị thay đổi bởi bản viết lại trình duyệt năm 2026: name = command.function.name, sau đó là if name not in self.available_tools.tool_map: return f"Error: Unknown tool '{name}'". Không có phần nào trong đó dành riêng cho trình duyệt, nên cùng một chuỗi sẽ xuất hiện với bất kỳ công cụ nào do model tự tạo tên.
Giới hạn token là tùy chọn, cộng dồn và mang tính xấp xỉ
Ba con số khác nhau đều được gọi là "giới hạn token", nhưng thông báo lỗi chỉ liên quan đến một trong số đó.
| Cài đặt | Giới hạn điều gì | Mặc định | Trong ví dụ được cung cấp? |
|---|---|---|---|
max_tokens | Một response | 4096 trong mã nguồn | Có — được đặt thành 8192 |
max_input_tokens | Tổng input cộng dồn trong toàn bộ lần chạy | None, nghĩa là không giới hạn | Không. Bạn phải tự thêm nó bằng tay, nếu không thì nó không được áp dụng |
| Cửa sổ ngữ cảnh của model | Một request, tại nhà cung cấp | Giới hạn riêng của model | Hoàn toàn không phải cài đặt của OpenManus |
Hàng thứ hai là điều khiến nhiều người bất ngờ. LLM.check_token_limit() trong app/llm.py trả về (self.total_input_tokens + input_tokens) <= self.max_input_tokens — một tổng đang chạy cho cả phiên, không phải phép kiểm tra đối với một request đơn lẻ. Vì vậy, một lần chạy agent dài sẽ chạm giới hạn do cộng dồn, ngay cả khi từng request riêng lẻ đều nhỏ; văn bản lỗi cũng nêu rõ phép tính: hiện tại, cần thiết, tối đa. Agent Manus mặc định đặt max_steps = 20, và mỗi bước gửi lại toàn bộ cuộc hội thoại cho đến thời điểm đó, nên con số cộng dồn tăng nhanh hơn số bước.
Con số này cũng là ước tính riêng của OpenManus. LLM.__init__ gọi tiktoken.encoding_for_model(self.model) và dùng cl100k_base dự phòng khi gặp KeyError, vì vậy với mọi model ID mà tiktoken không có preset — chẳng hạn ID của Claude hoặc Gemini, hay ID có namespace của gateway — ngân sách được thực thi chỉ là giá trị xấp xỉ, không phải số đếm của nhà cung cấp.
# config/config.toml
[llm]
model = "claude-sonnet-4-6"
base_url = "https://api.kunavo.com/v1"
api_key = "sk-kn-..."
# The RESPONSE cap. Ships as 8192 in config.example.toml; the code default is 4096.
max_tokens = 8192
# The CUMULATIVE INPUT budget for the whole run. Absent from every shipped
# example, and None in code — so a stock install enforces no ceiling at all.
max_input_tokens = 400000Một giới hạn đáng giá bao nhiêu tiền
Vì max_input_tokens giới hạn input cộng dồn, nó trực tiếp chuyển thành mức trần chi phí cho phía input của một lần chạy. Các con số dưới đây là phép tính token minh họa dựa trên mức trần đã nêu, không phải chi phí tác vụ được đo và cũng không phải mức trần hóa đơn: chúng định giá số token input bị cài đặt giới hạn, theo mức giá catalog Kunavo hiện hành trên mỗi triệu token. Output hoàn toàn không được cài đặt đó bao phủ — cột cuối định giá một response ở mức max_tokens = 8192 mà cấu hình mẫu cung cấp, và một lần chạy 20 bước có thể tạo ra 20 response như vậy.
| Mô hình | Đầu vào / đầu ra trên mỗi 1M | Input ở mức trần 100.000 | Input ở mức trần 400.000 | Một response 8.192 token |
|---|---|---|---|---|
| Claude Haiku 4.5 | $0,70 / $3,50 | $0,070 | $0,280 | $0,029 |
| GPT-5.6 Terra | $0,70 / $4,20 | $0,070 | $0,280 | $0,034 |
| Claude Sonnet 4.6 | $2,10 / $10,50 | $0,210 | $0,840 | $0,086 |
| Claude Opus 5 | $3,50 / $17,50 | $0,350 | $1,400 | $0,143 |
Có hai cách hiểu. Giới hạn là điểm dừng, không phải ngân sách: nó cho biết phía input của một lần chạy có thể tốn tối đa bao nhiêu, nhưng không nói liệu tác vụ đã hoàn tất hay chưa. Ngoài ra, vì OpenManus đếm bằng tiktoken, giới hạn mà nó thực thi và số token nhà cung cấp tính phí là hai phép đo khác nhau — hãy đặt con số để giới hạn vòng lặp chạy mất kiểm soát, rồi đối chiếu với dữ liệu thực tế được ghi nhận trong tài khoản. Mức tiền trong catalog của Kunavo là mức sàn thanh toán thay vì mức trần: khi upstream báo chi phí, hóa đơn là giá catalog hoặc chi phí upstream nhân với mức markup áp dụng, lấy giá trị lớn hơn. Mức nạp tối thiểu của Kunavo là $10 tín dụng trả trước, là mức tối thiểu để nạp tiền chứ không phải phí tác vụ hay gói thuê bao — xem chi tiết thanh toán.
Vì sao lỗi token xuất hiện muộn
Đây là một lỗi có thể đọc thấy trong main hiện tại, và là lý do lỗi giới hạn token tạo cảm giác như bị treo. Cả ba decorator @retry trong app/llm.py — trên ask, ask_with_images và ask_tool — đều được viết giống hệt nhau:
| Decorator cho biết điều gì | Nó khớp với điều gì | Hệ quả |
|---|---|---|
Bình luận ở cuối: # Don't retry TokenLimitExceeded | retry_if_exception_type((OpenAIError, Exception, ValueError)) | TokenLimitExceeded là lớp con của OpenManusError, vốn là lớp con của Exception — vì vậy mục Exception không phân loại cụ thể vẫn khớp với nó |
Bình luận tại nơi phát sinh lỗi: # Raise a special exception that won't be retried | stop_after_attempt(6), wait_random_exponential(min=1, max=60) | Tối đa sáu lần thử với thời gian chờ tăng theo cấp số nhân trước khi lỗi xuất hiện; mỗi lần đều tính lại cùng một tổng gây lỗi |
Vòng lặp agent ở phía sau xác nhận cấu trúc này thay vì mâu thuẫn với nó. app/agent/toolcall.py bắt exception và kiểm tra isinstance(e.__cause__, TokenLimitExceeded) — việc tháo lớp bọc __cause__ đó là cách một RetryError của tenacity xuất hiện, và dòng log riêng của nó ghi "Token limit error (from RetryError)". Chỉ sau đó mã mới thêm thông báo hiển thị cho người dùng "Đã đạt đến giới hạn token tối đa, không thể tiếp tục thực thi" và đặt trạng thái agent thành finished. Nói cách khác, mã tiêu thụ đã mặc định rằng retry sẽ xảy ra, trái với điều mà bình luận của decorator nói.
Chưa có bản sửa nào được hợp nhất. PR #1348, có tiêu đề "fix: prevent needless retry of TokenLimitExceeded and fix search engine fallback", đã bị đóng mà chưa hợp nhất vào ngày 10 tháng 8 năm 2026; bản gửi lại của nó, #1407, vẫn đang mở và chưa được hợp nhất vào ngày 21 tháng 9 năm 2026. Một PR liên quan đến tràn ngữ cảnh, #1391, "add tool description token budget to prevent context overflow", đã bị đóng mà chưa hợp nhất vào ngày 18 tháng 8 năm 2026. Ở đây không đọc lý do maintainers đóng chúng, chỉ xác nhận rằng chúng chưa được hợp nhất. Báo cáo lịch sử, issue #779 "hitting token limit" từ ngày 17 tháng 3 năm 2025, đã bị bot do không hoạt động đóng vào ngày 17 tháng 9 năm 2026 với state_reason: not_planned — một lần hết thời gian, không phải cách giải quyết. Cho đến khi một trong các bản đó được hợp nhất, biện pháp thực tế là để max_input_tokens không được đặt và để nhà cung cấp từ chối request quá lớn, hoặc đặt nó và chấp nhận độ trễ.
Unknown tool 'BrowserUseTool' là lỗi từ một phiên bản không còn tồn tại
Issue #789, "Result: Error: Unknown tool 'BrowserUseTool'", được mở vào ngày 18 tháng 3 năm 2025 và vẫn mở vào ngày 21 tháng 9 năm 2026, với nhãn inactive. Nguyên nhân chưa bao giờ là endpoint hay khóa. Log của chính người báo cáo cho thấy model phát ra tên lớp Python, BrowserUseTool, trong khi tên công cụ đã đăng ký là browser_use — và ngay bước tiếp theo của cùng lần chạy đã dispatch thành công khi gọi browser_use. Log họ dán kết thúc ở "Activating tool: 'browser_use'", còn dòng kết luận của họ chính là toàn bộ chẩn đoán: "BrowserUseTool seems not work, but browser_use can". Lời khuyên duy nhất từ người bình luận là thử model mạnh hơn, đây là hướng trả lời phù hợp cho vấn đề độ chính xác khi gọi công cụ.
Chẩn đoán đó không áp dụng cho main hiện tại, vì không còn công cụ nào tên browser_use để gọi cho đúng. Vào ngày 15 tháng 8 năm 2026, các commit ab8dfe43 ("feat(browser): use Browser Use CLI 3.0") và 05c5bbb1 ("refactor(browser): use CLI 3.0 MCP server") đã xóa công cụ trình duyệt cục bộ. Danh sách thư mục của app/tool/ trên main không chứa browser_use_tool.py, và lần xuất hiện duy nhất còn lại của chuỗi BrowserUseTool trong cây thư mục là một dòng bị chú thích trong app/agent/sandbox_agent.py.
| Mã tháng 3 năm 2025 (issue #789) | main hiện tại, được đọc vào ngày 21 tháng 9 năm 2026 | |
|---|---|---|
| Công cụ trình duyệt | Lớp cục bộ trong app/tool/browser_use_tool.py | Đã bị xóa. Trên agent Manus mặc định, một máy chủ MCP ngoài tiến trình được khởi chạy bằng uvx browser-use --cli-mcp |
| Tên đã đăng ký | browser_use | browser_exec và browser_screenshot, theo README |
| Các công cụ được đăng ký cục bộ trên agent Manus | Có tích hợp công cụ trình duyệt | PythonExecute, StrReplaceEditor, AskHuman, Terminate — các công cụ trình duyệt được cung cấp qua MCP |
| Ghim dependency | Được ghim trong requirements.txt | Không có mục browser-use; được tải tại thời điểm chạy bởi uvx, nên stack trình duyệt hoạt động độc lập với bản checkout của bạn |
| Thông tin xác thực | Khóa model của bạn | Chế độ cục bộ không cần khóa. Chế độ cloud là một tài khoản Browser Use riêng với các biến môi trường riêng |
| Công tắc tắt | Xóa công cụ | OPENMANUS_DISABLE_BROWSER_USE=1 |
Vì vậy, cách sửa chính xác chuỗi này hiện nay là cập nhật bản checkout của bạn và ngừng suy luận dựa trên các hướng dẫn viết theo đường dẫn kho lưu trữ cũ. Có một điểm cần nêu rõ thay vì đoán: khi kết nối MCP thất bại, app/agent/manus.py ghi log Failed to connect to Browser Use CLI 3.0 rồi tiếp tục với bốn công cụ cục bộ, khiến model vẫn có thể gọi tên một công cụ trình duyệt chưa được đăng ký. Việc điều đó trên thực tế có tạo ra thông báo Unknown tool hay không, và dưới tên nào, chưa được quan sát ở đây — hãy xem đây là nơi cần kiểm tra, không phải triệu chứng đã được ghi nhận. Cũng lưu ý rằng requirements.txt ghim uv>=0.6.0; việc cài đặt thông thường có đưa uvx vào PATH của bạn hay không chưa được xác minh.
Một điều mà tìm kiếm vẫn sẽ trả về, và các đoạn trên cố ý không khẳng định: kho lưu trữ thực sự có mã trình duyệt mà đường dẫn mặc định không bao giờ tải. Entry point Daytona-sandbox riêng biệt sandbox_main.py tạo một agent SandboxManus đăng ký SandboxBrowserTool từ app/tool/sandbox/sb_browser_tool.py làm công cụ cục bộ — với tên sandbox_browser, không phải browser_use. Vì vậy, "không có công cụ trình duyệt cục bộ" là nhận định về agent Manus mặc định mà bạn nhận được từ main.py, không phải về toàn bộ cây mã nguồn.
Một tên cần phân biệt khi tìm kiếm: OpenManus/OpenManus-RL là một kho lưu trữ riêng trong một tổ chức riêng, là dự án nghiên cứu reinforcement learning chứ không phải phiên bản của runtime agent, và bố cục tệp của nó không cho biết gì về hai lỗi này.
Một endpoint API khác thay đổi và không thay đổi điều gì
Cả hai triệu chứng trên đều được tạo bên trong OpenManus, vì vậy câu trả lời trung thực cho câu hỏi "đổi nhà cung cấp có khắc phục được không" là không. Điều mà lựa chọn endpoint thực sự ảnh hưởng là một nhóm lỗi lân cận dễ bị nhầm với hai lỗi này.
| Lỗi | Có hình thái của endpoint không? | Điều cần kiểm tra trước tiên |
|---|---|---|
| Thông báo giới hạn token của chính OpenManus | Không — lỗi được phát sinh trước khi bất kỳ request nào được gửi | Giá trị max_input_tokens của bạn và việc bạn có định đặt giá trị đó hay không |
Unknown tool | Không — model đã gọi tên một thành phần chưa được đăng ký | Agent đó đăng ký những công cụ nào và model có đủ mạnh khi gọi công cụ hay không |
| Lỗi từ chối độ dài ngữ cảnh của nhà cung cấp | Có | Cửa sổ ngữ cảnh của model và max_tokens so với cửa sổ đó |
| Lỗi xác thực hoặc không tìm thấy model trong lần chạy đầu tiên | Có | Ví dụ được cung cấp vẫn gọi một ID Claude mà Anthropic đã ngừng hỗ trợ vào ngày 19 tháng 2 năm 2026 — nội dung này được đề cập trong Thiết lập API và giá OpenManus |
Lỗi 400 trên temperature | Có | OpenManus gửi temperature trong mọi request ngoài hai ID reasoning được hardcode, và cung cấp temperature = 0.0 |
| Ảnh chụp màn hình âm thầm không bao giờ đến được model | Một phần | Khả năng xử lý hình ảnh được kiểm soát bằng phép so khớp chuỗi chính xác với sáu model ID hardcode, trong đó mọi ID của Anthropic đều đã ngừng hỗ trợ. Cũng được đề cập trên trang thiết lập |
Ở hàng thứ năm đó có một chi tiết riêng của bên thứ nhất, chỉ áp dụng cho endpoint này chứ không phải lời khuyên chung. Dispatcher của Kunavo loại bỏ temperature, top_p và top_k trước khi chuyển tiếp đối với các model trong catalog khai báo rằng chúng không hỗ trợ các tham số đó — hiện tại là Claude Fable 5.1, Claude Fable 5, Claude Opus 5.5, Claude Opus 5, Claude Opus 4.8, Claude Opus 4.7, Claude Sonnet 5 — và thực hiện việc này tại bước chuyển giao thức, nên phần body đã bị loại cũng là phần mà mọi lần retry nhìn thấy. Với mọi model khác, trường này được chuyển tiếp đúng như OpenManus đã gửi. Điều đó loại bỏ một lỗi 400 cụ thể đối với các model này; đây không phải khẳng định rằng OpenManus đã được kiểm thử tại đây. Kunavo chưa kiểm thử OpenManus trong runtime, và không có nội dung nào trên trang này là kết quả tương thích.
Nếu bạn đang cân nhắc các hướng đi thay vì gỡ lỗi một vấn đề cụ thể, API tương thích OpenAI trình bày những gì đường dẫn chung có và không truyền tải, gateway LLM trình bày khi nào một khóa dùng cho nhiều dòng model là đáng giá, còn tối ưu chi phí AI trình bày sự khác biệt giữa mức giá được niêm yết rẻ nhất và cách rẻ nhất để hoàn thành một tác vụ — đây là khác biệt quyết định đối với vòng lặp agent. Để xem chẩn đoán cùng loại trên client khác, hãy xem Không tìm thấy nhà cung cấp OpenCode.
Bạn đang thiết lập OpenManus thay vì sửa lỗi? Phía endpoint gồm ba trường trong [llm]: model, base_url và api_key. Bắt đầu từ hướng dẫn bắt đầu nhanh, kiểm tra hình dạng request với chat completions, và tạo tài khoản Kunavo khi bạn sẵn sàng nạp tiền cho một khóa. Hãy duy trì một route đang hoạt động trong khi thử nghiệm và chạy một tác vụ có giới hạn trước khi thay đổi bất kỳ điều gì khác.
Câu hỏi thường gặp
Giới hạn token của OpenManus là bao nhiêu?
Theo mặc định là không có. Giới hạn riêng của OpenManus là trường max_input_tokens, được app/config.py khai báo là Optional với giá trị mặc định None được mô tả là “không giới hạn”, và không xuất hiện trong bất kỳ ví dụ cấu hình nào được đóng gói — vì vậy bản cài đặt mặc định không bao giờ tự tạo lỗi giới hạn token, còn bất kỳ giới hạn nào bạn gặp đều đến từ nhà cung cấp. Khi bạn đặt trường này, LLM.check_token_limit() so sánh self.total_input_tokens + input_tokens với nó, khiến đây trở thành ngân sách đầu vào tích lũy cho toàn bộ lần chạy thay vì kiểm tra ngữ cảnh theo từng yêu cầu. Nó không liên quan đến context window của mô hình, cũng không liên quan đến max_tokens, vốn giới hạn một phản hồi và được cung cấp với giá trị 8192 trong config/config.example.toml. Cả ba nội dung đều được đọc trên nhánh main vào ngày 21 tháng 9 năm 2026.
Tại sao OpenManus bị treo trước khi báo giới hạn token?
Vì lỗi giới hạn được retry, mặc dù có chú thích nói rằng không retry. Cả ba decorator @retry trong app/llm.py — trên ask, ask_with_images và ask_tool — đều được viết là retry_if_exception_type((OpenAIError, Exception, ValueError)) với chú thích cuối “# Don't retry TokenLimitExceeded”. TokenLimitExceeded kế thừa OpenManusError, còn OpenManusError kế thừa Exception, nên mục Exception trần khớp với nó và tenacity retry tối đa stop_after_attempt(6) với backoff wait_random_exponential(min=1, max=60). Trình xử lý riêng của agent xác nhận cấu trúc này: app/agent/toolcall.py kiểm tra isinstance(e.__cause__, TokenLimitExceeded), đó là cách một tenacity RetryError xuất hiện, rồi mới in “Maximum token limit reached, cannot continue execution”. Một bản sửa đã tồn tại nhưng chưa được hợp nhất: PR #1348 bị đóng mà không hợp nhất ngày 10 tháng 8 năm 2026 và bản gửi lại #1407 vẫn mở, chưa hợp nhất vào ngày 21 tháng 9 năm 2026. Nội dung này được đọc từ mã nguồn, không phải tái hiện bằng cách chạy nó.
Làm cách nào sửa lỗi Error: Unknown tool 'BrowserUseTool' trong OpenManus?
Hãy cập nhật checkout của bạn, vì trên nhánh main hiện tại của OpenManus lớp đó không tồn tại. Công cụ trình duyệt cục bộ đã bị xóa ngày 15 tháng 8 năm 2026 trong các commit ab8dfe43 và 05c5bbb1; app/tool/ không có browser_use_tool.py, và lần xuất hiện duy nhất của chuỗi BrowserUseTool trong toàn bộ cây mã là một dòng bị chú thích trong app/agent/sandbox_agent.py. Trên agent Manus mặc định mà main.py xây dựng, tác vụ trình duyệt hiện là một máy chủ MCP ngoài tiến trình được khởi chạy bằng uvx browser-use --cli-mcp, cung cấp các công cụ có tên browser_exec và browser_screenshot; điểm vào Daytona-sandbox riêng biệt sandbox_main.py vẫn đăng ký một công cụ trình duyệt cục bộ của riêng nó, có tên sandbox_browser. Trong mã tháng 3 năm 2025 mà người báo cáo issue #789 đang chạy, nguyên nhân là mô hình phát ra tên lớp Python thay vì tên công cụ đã đăng ký — log của chính họ cho thấy bước tiếp theo được điều phối thành công khi gọi browser_use, và dòng kết luận của họ là “BrowserUseTool seems not work, but browser_use can”. Bản thân chuỗi này mang tính tổng quát: app/agent/toolcall.py trả về f"Error: Unknown tool '{name}'" cho bất kỳ tên nào không có trong available_tools.tool_map, vì vậy ngày nay thông báo tương tự xuất hiện với bất kỳ công cụ nào do mô hình tự tạo.
Issue #789 đã được sửa chưa, và phiên bản OpenManus nào có bản sửa?
Chưa được sửa và không có phiên bản nào để trích dẫn. Issue #789, “Result: Error: Unknown tool 'BrowserUseTool'”, được mở ngày 18 tháng 3 năm 2025 và vẫn mở vào ngày 21 tháng 9 năm 2026, mang nhãn inactive, với ba bình luận — một bình luận đề xuất dùng mô hình mạnh hơn, người báo cáo đồng ý thử, và một bot về trạng thái không hoạt động. Báo cáo liên quan về giới hạn token, issue #779 “hitting token limit”, bị đóng ngày 17 tháng 9 năm 2026 bởi chính bot không hoạt động đó với state_reason not_planned, đây là hết thời gian chứ không phải bản sửa. OpenManus cũng không có bản phát hành hiện tại để nêu tên: ba tag duy nhất của nó, v0.1.0, v0.2.0 và v0.3.0, đều được phát hành trong vòng 34 giây vào ngày 10 tháng 4 năm 2025, và chưa có tag nào kể từ đó, nên mọi người đều chạy main chưa gắn tag. Hãy trích dẫn ngày commit, không phải số phiên bản.
Việc chuyển nhà cung cấp API có sửa được lỗi token hoặc công cụ của OpenManus không?
Không, và nên tách cả hai dạng lỗi này khỏi những lỗi thực sự phụ thuộc vào nhà cung cấp. Thông báo giới hạn token nêu trên do chính cơ chế tính toán của OpenManus tạo ra dựa trên giới hạn bạn đã cấu hình, trước khi bất kỳ yêu cầu nào được gửi đi, nên không endpoint nào có thể thay đổi nó. Thông báo Unknown tool do cơ chế điều phối công cụ của OpenManus tạo ra khi mô hình gọi tên một công cụ chưa được đăng ký; đây là đặc tính về độ chính xác khi gọi công cụ của mô hình, và lời khuyên duy nhất từng được đưa ra trong issue #789 là thử một mô hình khác vì đúng lý do đó. Những điều thay đổi khi dùng một endpoint khác: lỗi từ chối do độ dài ngữ cảnh ở phía nhà cung cấp xuất hiện dưới dạng OpenAIError thay vì TokenLimitExceeded; một bản sao mới của cấu hình mẫu được cung cấp sẵn gặp lỗi mô hình thay vì lỗi token, vì nó vẫn chỉ định một ID Claude mà Anthropic đã ngừng cung cấp vào ngày 19 tháng 2 năm 2026; và OpenManus luôn gửi tham số temperature trừ khi dùng một trong hai ID mô hình suy luận được mã hóa cứng, dẫn đến lỗi dạng 400 trên các mô hình mà nhà cung cấp đã ngừng hỗ trợ tham số đó.
OpenManus có đếm token giống nhà cung cấp của tôi không?
Không. OpenManus đếm cục bộ bằng tiktoken, và LLM.__init__ gọi tiktoken.encoding_for_model(self.model) trong một khối try, rồi fallback về cl100k_base khi gặp KeyError. Với ID Claude hoặc Gemini, hoặc bất kỳ ID nào có namespace gateway mà tiktoken không có preset, ngân sách OpenManus thực thi là ước tính cl100k_base thay vì số đếm của nhà cung cấp, và TokenCounter tự cộng các hằng số cố định — 4 token cho mỗi message, 2 token định dạng, 85 cho hình ảnh chi tiết thấp và 170 cho mỗi ô chi tiết cao. Hãy đối chiếu với mức sử dụng mà tài khoản nhà cung cấp ghi nhận, không phải tổng số được OpenManus ghi log. Đã kiểm tra trên nhánh main ngày 21 tháng 9 năm 2026, với tiktoken~=0.9.0 được ghim trong requirements.txt.
Đã kiểm tra ngày 21 tháng 9 năm 2026 và không kiểm tra rộng hơn: app/llm.py, app/config.py, app/agent/toolcall.py, app/agent/manus.py, app/agent/base.py, app/agent/sandbox_agent.py, app/tool/sandbox/sb_browser_tool.py, sandbox_main.py, app/exceptions.py, requirements.txt, config/config.example.toml và README trên nhánh main; danh sách thư mục của app/tool/; lịch sử commit của công cụ trình duyệt đã bị xóa; các bản ghi GitHub cho issue #779 và #789, bình luận của chúng, cùng các pull request #1348, #1391 và #1407; metadata của kho lưu trữ và bản phát hành; và trang ngừng hỗ trợ model của Anthropic. Không có nội dung nào được thực thi — không cài đặt, không chạy OpenManus, không tái hiện hai lỗi và không có request nào đi qua OpenManus tại bất kỳ endpoint nào — vì vậy mọi khẳng định về hành vi ở đây đều dựa trên việc đọc các nguồn chứ không phải lỗi được quan sát, và không có lần chạy tối thiểu thành công nào được báo cáo vì chưa có lần nào được thực hiện. Mức giá token của Kunavo lấy từ catalog hiện hành, và mọi con số dollar đều là phép tính token minh họa chứ không phải chi phí tác vụ được đo.