OpenAI recently announced their new and improved GPT Live voice assistants, one of their demo’s was designed to show it’s improved intelligence. In this demo the user wants to have breakfast in Tokyo, lunch in Dubai, then spend the evening, maybe dinner, in Hawaii. Is that even possible?
It is a good question because it sounds plausible for just long enough to make you do the timezone maths in your head. Tokyo is nine hours ahead of UTC, Dubai four hours ahead, and Hawaii ten hours behind it. The dateline is doing some serious work here. At the end of the demo GPT Live says it can be done, while also answering questions about different meal options at each location while it is thinking in the background.
I had been toying with a “deep think” background mode for a little while and thought this same query would be a good test of this mode in Fulloch.
So I gave the same ridiculous request to Fulloch’s new deep-think mode, running entirely on an RTX 3060 with 12GB of VRAM. The Qwen3.5 9B LLM model does the heavy lifting, with SerpApi’s Google Flights engine providing real flight data for fact checking. Here is the video of the interaction with two sections sped up (timer is shown when in fast-forward mode) while waiting for the model to finish the heavier background task. I even threw in a bonus question to see if it could find some restaurants for me while it was doing the background task.
The Local Stack#
The whole thing fits on an RTX 3060, which still feels a bit mad considering the job being asked of it. Fulloch is listening, reasoning, searching for flights and talking back on a consumer card that is now several years old.
| Component | Model / runtime |
|---|---|
| Speech recognition | Qwen3 1.7B ASR PyTorch |
| Brain | Qwen3.5-9B-UD-Q4_K_XL GGUF |
| Voice | Pocket TTS PyTorch |
| GPU | RTX 3060, 12GB VRAM |
The LLM averaged 25-32 tokens per second on the shorter conversational turns during the run. When those conversational turns were happening, the background task had to be paused on this GPU as we are using only one LLM slot. So at some point there is no way around simply waiting for it to complete the background task (hence the fast-forwarding in the video). Larger GPU’s could split the load over two slots, so background tasks will continue to be worked on even while the LLM is answering the shorter conversational stuff.
The Challenge#
The prompt was deliberately simple and copied directly from the GPT Live demo:
I want to do this crazy thing where I have breakfast in Tokyo, and then I have lunch in Dubai, then maybe I spend the evening in Hawaii. Maybe I have dinner there. Is this even possible?
This is not just a flight-search question. A useful answer needs to understand what the person is trying to achieve, find actual routes, reconcile local departure and arrival times, and then decide whether the resulting itinerary is chronologically possible. A chatbot can easily respond with some hand-wavy timezone arithmetic and sound convincing. An agent has to show its work.
Fulloch’s deep-think mode does that by leaving behind a report and a structured evidence file as it works. The artefacts from this run can be downloaded here: report PDF and evidence JSON. So you can break-down and fact check what the LLM was doing.
How It Did#
The first leg, Tokyo to Dubai, produced several credible options. One representative result leaves Haneda at 11:50 and arrives in Dubai at 23:00 local time, after a connection in Delhi. The flight data is real enough to be useful: airlines, airports, local times, UTC times, stops and prices are all captured in the evidence.
Then comes the bit that breaks the dream. The Dubai-to-Hawaii options it retrieved depart before the Tokyo-to-Dubai flight has arrived. One route leaves Dubai at 05:50 local time; the representative inbound Tokyo flight does not land until 23:00. Timezones help, but they do not help that much.
The itinerary assessor reached the correct, bounded conclusion:
No chronologically compatible itinerary exists among the retrieved offer combinations.
That is a much better failure mode than confidently declaring the impossible possible. GPT Live found a workable itinerary in its demo, but Fulloch could not verify one from the real flight data available to it during this run. The important part is that it did not quietly make up the missing connection or pretend that the tool result supported a conclusion it did not.
There is a limitation in the report worth being precise about: it only assessed the flight combinations it had retrieved. It did not exhaustively search every possible route or check the requested breakfast, lunch and dinner windows. So this is not proof that the itinerary cannot be done. It is proof that the options Fulloch found did not make it work.
That is a useful answer from a small local model. It understood the difference between “I did not find it” and “it is impossible”, which is exactly the difference that tends to disappear when an assistant is trying too hard to be helpful.
All the conversational replies were good, only the added on bonus restaurant search needed a prod to actually search the web and it only reviewed the first few search hits, so we only got restaurants for one location and not all three. Still not bad at all, further questioning could have pulled up more specific restaurant information if we wanted it.
Deep Think Is Slow, but It Is Doing Something#
The video has been sped up during the parts where the background agent is thinking. A timer on screen shows when that has happened. In real time, this is a patient process: search, read results, compare dates, assess the connections, then decide what to do next.
That will always be a harder sell than a larger cloud model running multiple agents across far more potential flight itineraries. But this is not the normal “what is the weather?” path. Deep think is for the things that are worth waiting for: research, planning, or the strange question that is going to involve more than one tool call and a bit of judgement.
The quantised 9B Qwen3.5 is still a gun for its size. On a 12GB card it is capable of driving the agent loop, reading grounded data and declining to overclaim when the evidence does not support the desired answer. That is a much more interesting benchmark than whether it can produce a polished paragraph about a hypothetical flight schedule.
The total conversation took six and a half minutes, which is pretty good considering everything it answered for us. The travel tool currently selects one representative date, then retrieves up to five flight options for each adjacent leg in the route. This run found three options for each of the two legs, giving the itinerary assessor nine combinations to check. I could look at expanding the number of dates and routes it scans, but at some point are all those extra API calls really worth it? I would say the current restrictions on routes analysed would make sense for 99% of queries anyone would realistically make.
The Interesting Part Is the Evidence#
I have spent a lot of time testing whether smaller models can call tools reliably. The answer was generally that they could look busy while getting the important part wrong: picking the wrong tool, ignoring a result, losing the thread, or filling the gaps with something that sounded right.
This run is a more encouraging version of that test and further confirms the Qwen3.5 9B model has earned it’s place as the default LLM for Fulloch. The model found partial evidence, passed it into an itinerary assessor, and accepted the negative result. It even surfaced the next actions it needed, rather than converting incomplete information into a confident answer.
The current implementation still needs better flight search coverage. The report records that later searches could not resolve at least one endpoint, and the activity windows themselves were never checked. That is tool and orchestration work, not something I would try to prompt away. A better search layer should give the same model more routes to assess and a clearer way to ask for the missing details. I can already see how much better the 9B LLM responds when given the right tools and guidance compared to tests I was doing a few months back.
But the core behaviour is there: a 9B model on an RTX 3060 can work through a messy, multi-step real-world question, preserve the evidence, and say “not from what I found” rather than bluff and it does it all pretty quickly. For a fully local voice assistant, that is a very good place to be.
All code is at GitHub, fulloch. The video, report and evidence file above were generated locally on an RTX 3060 with 12GB VRAM.