Hi, I'm Zijun. I build AI applications that help people find useful information and make informed decisions. My recent work focuses on agents with memory and tool use, retrieval, and practical ways to evaluate how these systems behave.
My background is in geographic information science and remote sensing. I spent four years working across data analysis and product delivery in China, then studied at the University at Buffalo, where I used NLP and agent-based modeling to explore how sustainability narratives spread through social networks.
I enjoy working with people to understand the decisions they need to make and the constraints they work within. Those conversations help me turn an open-ended question into a workflow we can test together. I want people to be able to see where an answer came from and decide how to use it, especially when the same question comes up again next week.
I'm exploring applied AI and data science opportunities and would welcome conversations with teams working on these problems. I'm open to relocation and on-site work. I work in Mandarin and English, and speak conversational Cantonese.
I built this to explore how a personal assistant could help people pick up a conversation thoughtfully: remembering past discussions, following through on commitments, and taking someone's communication preferences into account. It uses Google ADK, FastAPI, PostgreSQL, and pgvector.
The design uses one coordinating agent, with separately testable components for retrieval decisions, search, and write confirmation. Session state keeps track of the current conversation; longer-term memory supplies context across sessions. The agent proposes memory updates and reminders, and the user decides whether to confirm them.
Retrieval combines BM25 and vector search with RRF and a reranker. In the local full configuration, Recall@5 improved from 0.682 for either search method alone to 0.889 on 20 synthetic queries. The retrieve-or-not component reached F1 0.963 on 28 labeled synthetic cases. The repository also reports 354 passing unit and integration tests.
The Vercel demo currently uses synthetic contacts and memories; evaluation with real users is a future step. Its lighter deployment configuration scores 0.757 Recall@5 on the same query set. I document the setup and results in the project README so others can reproduce the comparisons and understand the trade-offs.
- Chinese intent classifier: I fine-tuned a Chinese encoder on 9,972 training utterances across 50 intents, reaching 87% test accuracy on known intents, and held out 10 additional intents to evaluate unfamiliar requests. At a selected confidence threshold, the model accepted 94% of known requests with at least 90% accuracy. It detected 42% of unseen-intent requests at that threshold, which helps define where additional checks would be needed before deployment. The project evaluates this routing trade-off; an additional detection or fallback layer is a next step.
- Stock Analyzer (live): An equity analysis tool covering the US, Hong Kong, and China A-share markets. It brings together market data, company analysis, and an S&P 500 screener, with automatic model fallback when a provider is unavailable.
- Inner Order OS (product): A reflection product built with Next.js and PostgreSQL. It is deployed and preparing for alpha testing, with external access not yet open. Retrieval brings relevant past entries into the conversation, while output checks help keep responses within the product's intended role. I share the reasoning in these notes on retrieval design.
- Bridge the Gap (live): A bilingual knowledge product for cross-cultural food questions. An LLM helps classify and deduplicate entries, while people familiar with the relevant culture review their accuracy. Ranking combines weighted endorsements, Wilson score confidence, and freshness decay; community consensus can update the AI's initial label.
- Agent Spec Template: The specification format I use when working with coding agents. Its 14 patterns turn lessons from problems I encountered into clearer requirements and handoff instructions.
- Opinion Dynamics ESG: Code from my master's thesis. LDA topics and BERT sentiment from 78,116 reviews initialize an agent-based model that compares intervention scenarios across random seeds.
- AirportTwin AI: A GIS-to-3D prototype for roads around Hong Kong International Airport. It cleans OpenStreetMap data and converts it into scene-ready geometry for future mobility simulation.
As a product manager and data analyst, I worked with business stakeholders and engineering, data, and design colleagues on more than six government digitalization projects. Together, we clarified requirements and agreed on metrics. I wrote the supporting SQL and Python, worked through differences in the numbers by checking source data, and coordinated delivery across teams.
Earlier, I used satellite imagery and machine learning for public-sector planning and environmental assessment. At the University at Buffalo, I also contributed to an NSF-funded research project on how communities share information and help one another during extreme winter storms.
Since early 2026, I've been studying how economic value moves through the AI industry, including chips, cloud infrastructure, models, and applications in the US and China. For my own study, scheduled agents collect weekly industry material and consensus data ahead of earnings releases; I read the sources and develop the interpretation myself. This ongoing personal research helps me connect technical choices with the business questions behind them.
You can find more projects and background at zijunvv.github.io. If you're working on related problems, I'd enjoy comparing notes.


