Public case study

ZhiShen · WenNian

知身·问年

AI aging assessment and intervention decision system.

Year
2026
Status
status.active
Role
System design, architecture and engineering
Category
AI Health · Aging Intelligence · Decision Support
Stack
  • Python 3.10+
  • FastAPI
  • Gradio
  • pytest
  • YAML config
Public code
Public repository
Reality
Open-source MVP Code, tests, UI, API and deployment files are public.

Status Open-source MVP. Assessment output only — not a diagnostic device. License unresolved: the README states GPLv3, GitHub detects no LICENSE file.

OBSERVATIONS · ROUTINE MARKERS X ∈ ℝ⁹ E MULTI-DIMENSIONAL STATE z = E(X) RANK INTERVENTION PRIORITY DRIVER 01 DRIVER 02 DRIVER 03 DRIVER 04 a* · WITH INTERVAL CONCEPTUAL NOTATION · ΔAGE = AGE_bio − AGE_chron

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 WenNian repository — Python, FastAPI and Gradio, served on 127.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
States describe what a visitor can verify, not how finished something feels.
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

Repository index

Open source artifact
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.

Command / Output

Documented entry points

Open source artifact
# 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

Note

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.