areel.org 中文

Fishball

A search agent for Android that names where every answer came from, quotes the source in its own words, and tells you plainly when it found nothing worth trusting.

Most assistants sound
equally sure of everything.
This one doesn't.

Ask a chatbot a question about a medicine and you get a confident paragraph. Ask it again and you may get a different confident paragraph. Nothing in either one tells you which parts came from a health ministry, which came from a forum post, and which the model simply produced because the sentence needed finishing.

FishBall is built to relay facts. It reports what it finds and names where each statement comes from. Every rule in it follows from that purpose: an answer it cannot trace to a source is an answer it does not give.

01 / How it answers

Four rules it will not break

Not tone-of-voice guidelines. Each one is enforced in code, and each one can make the app refuse to answer.

01

Every source is graded

Before a word is written, each result is placed on a four-step ladder — from a national health authority down to an anonymous post. The grade is decided by who published it, not by how convincing it sounds.

The grade changes the answer's wording. A claim resting on one forum thread is never phrased with the confidence of one resting on a regulator.

02

The source is named in the sentence

Not a footnote, not a superscript number — the name sits in the line you are reading: "the drug regulator's own leaflet says…". Attribution you have to go looking for is attribution nobody checks.

03

Quotes are cut, not written

When the app shows you a source's exact words, the model does not type them out. It points at a span, and that span is sliced out of the retrieved page and verified character by character before you see it.

A quotation that does not match the page is rejected and the model is told to try again. There is no path through the code that lets an invented quote reach the screen.

04

It argues with itself first

On anything that matters, the app runs a second search designed to disprove what the first one found. If the two disagree, it says so and shows both — rather than quietly keeping whichever it happened to read first.

02 / The ladder

What counts as a source

Every result lands on one of four rungs. The rung is visible under the answer, so you never have to take the app's word for how sure it should be.

Authoritative Regulators, health ministries, standards bodies, primary research. The publisher is accountable for being wrong.
Institutional Established news desks, hospitals, universities, encyclopaedias. Edited by somebody, corrected when wrong.
Personal A named individual writing under their own name — a doctor's column, a specialist's blog. One person's judgement, and it says so.
Low Forums, aggregators, content farms, anything unsigned. Usable as a lead, never as the reason for an answer.
When there is nothing good enough, it says so. If the search service is unreachable, or nothing above the bottom rung turns up, FishBall does not fall back on what the model happens to remember. It tells you it could not find out — because an unsourced answer looks exactly like a good one minus a citation nobody was going to read.
03 / On the phone

What lands on screen

The app speaks Chinese; the shape of an answer is the point here. Source cards sit under every factual reply, each one tappable through to the page it came from.

Fishball · thread 14:32
吃布洛芬会伤胃吗?
会,最常见的副作用就在胃肠道:国家药品监督管理局的说明书把恶心、胃烧灼感、消化不良列在第一位,严重时可能发展成溃疡甚至出血。
国家药品监督管理局nmpa.gov.cn · the drug regulator Authoritative
维基百科wikipedia.org · encyclopaedia Institutional
Memory

It remembers, on the phone

What it looks up, and what you tell it about yourself, are kept on the device — never on a server. Facts carry an expiry: a phone's battery capacity keeps, this week's exchange rate does not.

Tell it something has changed and it finds the old note and retires it rather than holding two answers to one question.

Private

Your own search index

Searches run through a private SearXNG instance rather than a commercial API, and the model is reached through Hydrogen, a proxy on the same infrastructure. No advertising profile is built, because there is nobody in the chain whose business that is.

04 / Install

Getting it on a phone

Not on Google Play. It is an APK you install yourself, and it needs an activation code that is handed over in person.

Four steps
and a code

The download is a signed APK, around 2 MB. Android will ask twice — once for permission to install from this source, once to confirm the install itself. Both are normal for an app that does not come from a store.

  1. Download the installer and open it. Android will ask whether to allow installs from your browser or file manager — allow it, then come back.
  2. Confirm the install. The app appears as FishBall.
  3. Open it and enter your activation code. There is nothing else to set up — no account, no email, no password.
  4. Ask it something. The first answer takes twenty to forty seconds, because it is reading sources rather than reciting.
Updates come to you. FishBall checks this page's release manifest when it starts. When a newer build is published it says so on screen, downloads it on one tap, and hands it to Android to install — so nobody has to remember to come back here.
Alpha, honestly. It works end to end and it is used daily, but it has had one pair of hands on it. Expect rough edges, and expect the answer to be slower than you are used to — that is the sourcing, and it is the entire point.