Public case study
ZhiShen · WenNian
知身·问年
AI aging assessment and intervention decision system.
Status Open-source MVP. Assessment output only — not a diagnostic device. License unresolved: the README states GPLv3, GitHub detects no LICENSE file.
What it is
ZhiShen · WenNian is an AI product exploration for individual health and ageing research. It turns scattered health information into a readable assessment of a person’s ageing state, and points at the aspects most worth attention now.
It does not diagnose and does not give medical advice. What it produces is an assessment and its explanation, each carrying the limits that apply to it.
Why it matters
Most ageing conversations stop at one of two extremes: a single number that is hard to act on, or a fluent reading with nothing behind it.
The useful question is not “how old am I” but “what is worth changing first”. The project is organised around that question: a readable state first, then what deserves attention.
Current public status
Open-source MVP, in active development. It runs locally and can be started and inspected by anyone.
Explicitly out of scope: it is not a diagnostic device, it gives no medical advice and it prescribes nothing. The report itself states that it describes health trends only.
What is publicly available
- The
WenNianrepository — Python, FastAPI and Gradio, served on127.0.0.1. - The assessment path and its report output, with the disclaimer carried by the artefact itself.
- Licence status: the README states GPLv3, but GitHub detects no LICENSE file in the repository. Until that is resolved the licence should be read as unconfirmed rather than settled.
Notes
No clinical or accuracy figures are published here. Product development may be ahead of the latest publicly inspectable repository snapshot.
Implementation status
Code, tests, UI, API and deployment files are public.
What exists today, and how you would check it. Nothing below is a rendered mockup of something that does not exist.
- Public code
- Public repository
| Component | State | Note |
|---|---|---|
| Multi-clock assessment engine | Built | Four clocks implemented as separate modules — PhenoAge, KDM, DNN and LifeClock — over nine routine blood markers. |
| Organ clock layer | Built | Eight organ systems — heart, liver, kidney, brain, lung, vascular, immune, skeletal muscle — assessed for asynchrony. |
| Integrator — drivers and intervention priority | Built | Fuses clock outputs into dominant driver dimensions and an intervention priority ordering, with confidence intervals. |
| Multi-agent layer | Built | Director, Analyst, Auditor and HealthInterviewer agents with shared protocols; the Auditor performs mandatory red-line scanning on every output. |
| Structured health interview | Built | Natural-language complaints are resolved into assessment dimensions within at most three follow-up rounds, backed by a 100+ complaint-to-dimension mapping library. |
| Guards — validation, red lines, numeric sanity | Built | Typed input models, range checks and a compliance scan that blocks medical advice, prescriptions and dosage language. |
| White-label PDF reporting | Built | Organ radar chart, biological-age summary, intervention suggestions and a per-page disclaimer; batch CSV input is packaged as a ZIP. |
| Service layer — REST API and Gradio UI | Built | FastAPI endpoints alongside a Gradio interface served locally on port 7860. |
| Deployment artifacts | Built | Dockerfile, production compose file and an nginx configuration are present in the repository. |
| Automated test suite | Built | Eighteen test packages plus eight top-level test modules and a shared conftest — test/active-perception, api, causality, clocks, ui, validation and more. This site does not re-run them, so no pass rate is claimed. |
| Causal layer | Partial | The repository marks the causal graph as partially released — the module exists in the tree, but the full graph is not in the open MVP. |
| Intervention simulation | Partial | The MVP ranks intervention priorities. It does not simulate counterfactual trajectories over time. |
| Continuous sensing and longitudinal ingest | Planned | No such module in the public tree. |
| Digital twin | Planned | Referenced in the product thesis, outside MVP scope. The composable state model exists in code; a persistent individual twin does not. |
| Clinical validation | Planned | Nothing in the repository supports a clinical accuracy claim. Every report carries a non-diagnostic disclaimer. |
How to read these states 3
- Built Implemented in code. Says nothing about how good it is.
- Partial Present but incomplete, or opened only partially.
- Planned Identified for future work. Nothing to inspect yet.
Repository index
WenNian/
├── Dockerfile
├── docker-compose.prod.yml
├── nginx/
├── config/ # YAML-driven behaviour
├── requirements.txt # Python 3.10+
├── docs/
│ ├── api_reference.md
│ ├── deployment_guide.md
│ └── user_guide.md
├── src/
│ ├── core/ # configuration, logging, exceptions
│ ├── clocks/ # phenoage.py kdm.py dnn.py lifeclock.py
│ ├── dimensions/ # organ clocks
│ ├── integrator/ # fusion and dominant-driver identification
│ ├── causality/ # causal graph (partially open)
│ ├── agents/ # director analyst auditor health_interviewer
│ ├── knowledge/ # complaint → dimension mapping
│ ├── inputs/ # data models and validation
│ ├── outputs/ # report building and PDF generation
│ ├── validation/ # red-line scanning, numeric guards
│ ├── commercial/ # white-label reporting
│ ├── api/ # FastAPI
│ └── ui/ # Gradio
└── tests/
├── test_active_perception/ test_agents/ test_api/
├── test_causality/ test_clocks/ test_commercial/
├── test_core/ test_deployment/ test_dimensions/
├── test_industrial/ test_inputs/ test_integrator/
├── test_knowledge/ test_lab/ test_outputs/
├── test_production/ test_ui/ test_validation/
├── test_additional.py test_batch_final.py
├── test_comprehensive.py test_edge_cases.py
├── test_final_batch2.py test_final_verify.py
├── test_integration.py test_p1_coverage.py
└── conftest.py The module boundary follows the assessment pipeline: inputs → validation → clocks → organ clocks → integrator → outputs.
Source GitHub API — huangdi97/WenNian repository listing, read this week.
Documented entry points
# install
pip install -r requirements.txt
# run the test suite
pytest tests/ -v
# launch the interface
python src/ui/app.py
# → serving the Gradio UI on http://127.0.0.1:7860 Quoted verbatim from the repository README — commands are the contract, not a paraphrase.
Source WenNian README.md
License — read carefully
The README states GPLv3. GitHub reports no detected LICENSE file for this repository, so the license status is unresolved — treat it as unclear rather than settled.
Source WenNian README.md vs. GitHub license detection.