mirror of
https://github.com/browser-use/browser-use.git
synced 2026-09-14 19:59:47 +08:00
10acad0712
Smoke on 6 tasks browser-use won: timeouts gone, 5/6 now finish with real answers, but 0/6 pass and one fix backfired. - the completeness gate refused at step 30 on j755nf; the agent spent its last steps collecting and ended with an EMPTY answer, worse than the partial it had. Both done gates now stand down when fewer than 6 steps remain. - it also read a prose answer listing three findings as 'about 1'. _count_items returns None for unstructured prose instead of guessing, so no refusal. - traces showed the agent scrolling and re-reading rather than using the new extract(query=). Promoted it in the system prompt and the action description as the default way to gather data.
Codebase Structure
The code structure inspired by https://github.com/Netflix/dispatch.
Very good structure on how to make a scalable codebase is also in this repo.
Just a brief document about how we should structure our backend codebase.
Code Structure
src/
/<service name>/
models.py
services.py
prompts.py
views.py
utils.py
routers.py
/_<subservice name>/
Service.py
Always a single file, except if it becomes too long - more than ~500 lines, split it into _subservices
Views.py
Always split the views into two parts
# All
...
# Requests
...
# Responses
...
If too long → split into multiple files
Prompts.py
Single file; if too long → split into multiple files (one prompt per file or so)
Routers.py
Never split into more than one file