Document and harden project handoff
This commit is contained in:
@@ -0,0 +1,158 @@
|
||||
# Project Status
|
||||
|
||||
last_reviewed: 2026-07-12
|
||||
baseline_before_handoff: `ab758e7`
|
||||
branch: `main`
|
||||
remote: `https://git.k1412.top/wuyang/agent.git`
|
||||
|
||||
## Purpose
|
||||
|
||||
The repository began as a durable Agent knowledge base and now has two layers:
|
||||
|
||||
1. a collection layer for papers, Beijing jobs, and company Agent work;
|
||||
2. an experimental knowledge interface and research layer intended to turn the collection into evidence-backed understanding.
|
||||
|
||||
The long-term product is not “a place to browse papers.” It should help the user retain claims, connect them into a personal model, test that model, and use it to reason about unfamiliar Agent problems.
|
||||
|
||||
## Current Snapshot
|
||||
|
||||
The deterministic index currently contains 989 items:
|
||||
|
||||
| Collection | Count | State |
|
||||
| --- | ---: | --- |
|
||||
| papers | 974 | 959 queued, 15 skimmed |
|
||||
| jobs | 6 | 4 active, 2 unknown |
|
||||
| industry | 9 | 8 analyzed, 1 queued |
|
||||
|
||||
The expanded arXiv run saw 1,506 candidates, promoted 970 high-recall candidates, and retained 536 reserve candidates. These are collection counts, not quality or reading-completion counts.
|
||||
|
||||
The memory topic has two intentionally different counts:
|
||||
|
||||
- 296 indexed items have the broad `memory` topic, including non-paper streams;
|
||||
- 293 local paper items were resolved for the dedicated memory audit.
|
||||
|
||||
The memory research snapshot contains:
|
||||
|
||||
| Stage | Count |
|
||||
| --- | ---: |
|
||||
| paginated arXiv candidates | 516 |
|
||||
| lexical title-central upper bound | 379 |
|
||||
| recent-six-month title-central candidates | 292 |
|
||||
| PDFs downloaded and text-located during the audit | 32 |
|
||||
| papers promoted into the evidence ledger | 23 |
|
||||
|
||||
The strongest current conclusion is that recent progress is concentrated in better diagnosis/evaluation and task-specific execution-state memory, not a universal memory architecture. Read `research/memory/findings.md` before making memory design claims.
|
||||
|
||||
## Artifact Map
|
||||
|
||||
| Area | Source of truth | What it contains |
|
||||
| --- | --- | --- |
|
||||
| entry/navigation | `README.md` | human-facing repository map |
|
||||
| AI continuation | `AGENTS.md` | read order, contracts, commands |
|
||||
| stable concepts | `docs/00-05*.md`, `docs/99-glossary.md` | knowledge map, principles, architecture, practice, evaluation, collection |
|
||||
| current state | `docs/06-project-status.md` | counts, runtime, artifact inventory |
|
||||
| exploration history | `docs/07-exploration-history.md` | accepted and rejected routes |
|
||||
| continuation plan | `docs/08-next-work.md` | priorities and definition of done |
|
||||
| jobs | `jobs/` | Beijing-first rolling six-month JD stream |
|
||||
| papers | `papers/` | paper metadata, queue, notes, corpus summary |
|
||||
| industry | `industry/` | official reports, blogs, products, benchmarks |
|
||||
| collection runs | `collection-runs/` | queries, scope, counts, method notes |
|
||||
| collection tools | `tools/collection/` | item creation, arXiv collection, promotion, indexing, URL checks |
|
||||
| research | `research/memory/` | field findings and evidence ledger |
|
||||
| research data | `data/research/` | committed corpus, screening, landscape and CSV ledger |
|
||||
| research tools | `tools/research/` | paginated search, abstract fetch, screening, classification, landscape build |
|
||||
| experiments | `experiments/knowledge-compilation/` | failed pilot and completed field audit |
|
||||
| learning prototype | `learning/agent-memory/` | preserved failed 12-paper learning module |
|
||||
| web application | `web/` | Atlas, search agent, paper reader/chat, Ollama actions |
|
||||
| project integrity | `tools/check_project.py` | offline structural and data checks |
|
||||
|
||||
`projects/` and `references/` are still mostly scaffolding. They do not yet contain substantive project or general-reference catalogs.
|
||||
|
||||
## Data Lineage
|
||||
|
||||
```text
|
||||
official/web/arXiv sources
|
||||
-> jobs|papers|industry/items/*.md
|
||||
-> tools/collection/build_index.py
|
||||
-> data/index.json + data/summary.json
|
||||
-> web/app.py
|
||||
-> Atlas / search / paper reading UI
|
||||
```
|
||||
|
||||
The dedicated memory audit is separate:
|
||||
|
||||
```text
|
||||
paginated arXiv queries + local memory-tagged papers
|
||||
-> data/research/* corpus snapshots
|
||||
-> model-assisted triage + deterministic statistics
|
||||
-> selected full-text experiment checks
|
||||
-> research/memory/evidence-ledger.md
|
||||
-> research/memory/findings.md
|
||||
```
|
||||
|
||||
Do not merge these two lines silently. The first is a broad browsing corpus; the second is an evidence audit with explicit boundaries.
|
||||
|
||||
## Web Application
|
||||
|
||||
Capabilities currently implemented:
|
||||
|
||||
- topic Atlas with ECharts and SVG fallback;
|
||||
- routes, timeline, topic focus and paper filtering;
|
||||
- desktop/mobile responsive reader mode;
|
||||
- local keyword search plus an Agent search loop;
|
||||
- Chinese query interpretation and English keyword expansion;
|
||||
- asynchronous search activity, aggregate statistics and AI brief;
|
||||
- follow-up questions on a search result;
|
||||
- per-paper abstract fetch, summary, translation, deep analysis and chat;
|
||||
- single-concurrency Ollama access and local caches.
|
||||
|
||||
Run it with:
|
||||
|
||||
```bash
|
||||
web/manage.sh start
|
||||
web/manage.sh status
|
||||
```
|
||||
|
||||
Expected addresses:
|
||||
|
||||
```text
|
||||
local/Tailscale: http://100.114.68.27:18080
|
||||
public mapping: https://lab.k1412.top/
|
||||
health: /api/health
|
||||
```
|
||||
|
||||
At the beginning of the 2026-07-12 handoff audit, no process was listening on 18080 and the public domain returned 502. The handoff added and enabled a user-level systemd service through `web/manage.sh`; local and public health then returned 200 with 974 papers and `ollama_ready: true`. Runtime status is still external state and must always be checked live.
|
||||
|
||||
The live Ollama inventory checked on 2026-07-12 included `ChatGPT-5.6:Luna`, `Terra`, `Sol`, `auto`, `embed`, and `gpt-4o:latest`. The web defaults were updated from stale `light/fast/large` tags to configurable Luna/Terra/Sol tiers.
|
||||
|
||||
## Runtime Constraints
|
||||
|
||||
- Python standard library only; no package installation is required for the current web server and collection scripts.
|
||||
- Ollama endpoint defaults to `http://192.168.1.10:11434`.
|
||||
- One V100 32G serves all local models; AI calls are serialized.
|
||||
- Do not send `num_ctx` or `keep_alive` from clients. Server-side context and residency must remain authoritative.
|
||||
- `Sol` is the expensive tier and should require an explicit user action.
|
||||
- The user mentioned an unlimited company GPT-5.5 data-agent API as a possible stronger offline worker, but no endpoint/authentication contract is committed. It is not currently integrated.
|
||||
- The public site has no repository-managed authentication or TLS configuration; the domain mapping is external infrastructure.
|
||||
- The committed systemd unit assumes the checkout path `%h/Code/agent`; edit the unit if a future checkout uses a different path.
|
||||
- Full PDFs and extracted text used during the memory audit were temporary working files and are not committed. Their arXiv IDs and claim boundaries are preserved in `research/memory/evidence-ledger.md` so they can be fetched again.
|
||||
- `web/cache/` contents, including arXiv responses, AI outputs, service environment and logs, are intentionally not committed.
|
||||
|
||||
## Validation
|
||||
|
||||
Offline validation:
|
||||
|
||||
```bash
|
||||
python3 tools/check_project.py
|
||||
git diff --check
|
||||
```
|
||||
|
||||
Live validation:
|
||||
|
||||
```bash
|
||||
web/manage.sh status
|
||||
curl -fsS http://100.114.68.27:18080/api/health | jq
|
||||
curl -fsS https://lab.k1412.top/api/health | jq
|
||||
```
|
||||
|
||||
The health payload reports app/assets versions, paper count, available/default models, and missing default model tags.
|
||||
@@ -0,0 +1,159 @@
|
||||
# Exploration History
|
||||
|
||||
last_reviewed: 2026-07-12
|
||||
|
||||
This is the decision history, including failed routes. Preserve it so future work does not rediscover the same lessons.
|
||||
|
||||
## 1. Repository and Content Streams
|
||||
|
||||
On 2026-07-08 the workspace was initialized as a long-lived Agent knowledge base, not a one-off report.
|
||||
|
||||
The first structure included stable knowledge, projects, experiments, references, and templates. It was then expanded into three first-class collection streams:
|
||||
|
||||
- `jobs/`: Beijing-focused Agent/LLM roles over a rolling six-month window;
|
||||
- `papers/`: research evidence and reading queue;
|
||||
- `industry/`: large-company reports, blogs, products, repositories, and benchmarks.
|
||||
|
||||
Decision retained: papers, jobs, and industry must not be mixed because they answer different questions. Their common organization layer is metadata/index/search, not a deep directory taxonomy.
|
||||
|
||||
Relevant commits: `47cea9d`, `1b6cc1f`, `36c2499`.
|
||||
|
||||
## 2. First Collection and Expanded Corpus
|
||||
|
||||
The first sweep created 21 items and the source/schema workflow. The expanded arXiv sweep then recalled 1,506 candidates and promoted 970 high-relevance candidates, bringing the paper corpus to 974.
|
||||
|
||||
What worked:
|
||||
|
||||
- source registries and explicit source quality;
|
||||
- keeping candidate and promoted manifests;
|
||||
- generated frontmatter plus a deterministic index;
|
||||
- preserving `queued` as a truthful unread state.
|
||||
|
||||
What did not work:
|
||||
|
||||
- treating the resulting count as understanding;
|
||||
- assuming auto tags were a stable taxonomy;
|
||||
- using non-paginated/latest-only query results to infer historical trends.
|
||||
|
||||
Relevant artifacts: `collection-runs/`, `papers/corpus-summary-2026-07-08.md`, `data/arxiv-agent-*.json`.
|
||||
|
||||
Relevant commits: `1cbc98e`, `391b3a4`.
|
||||
|
||||
## 3. Paper Browser to Knowledge Atlas
|
||||
|
||||
The first frontend exposed search, filtering, paper preview, abstract fetch, translation, summary, and deep analysis. It evolved into a knowledge Atlas with topic nodes, co-occurrence, timelines, routes, desktop/mobile layouts, and an ECharts graph.
|
||||
|
||||
Further iterations fixed:
|
||||
|
||||
- cache busting and stale deployment confusion;
|
||||
- an oversized Atlas payload;
|
||||
- desktop scrolling and reader focus;
|
||||
- mobile map centering;
|
||||
- interactive graph visuals;
|
||||
- app version visibility.
|
||||
|
||||
This produced a usable corpus browser, but the user later rated its practical learning value at effectively 0/100. The reason was not mainly visual quality: exploration was stateless, and nothing helped the user retain, compress, challenge, or apply knowledge.
|
||||
|
||||
Decision retained: the Atlas may remain an orientation surface, but it must not be treated as the product or as evidence of learning.
|
||||
|
||||
Relevant commits: `e783a7d` through `15b5cec`.
|
||||
|
||||
## 4. Search Agent and Per-Paper AI
|
||||
|
||||
Search was upgraded from keyword matching to a compact Agent loop:
|
||||
|
||||
```text
|
||||
interpret query -> expand Chinese/English terms -> retrieve locally
|
||||
-> aggregate dates/topics/trends -> generate brief -> allow follow-up
|
||||
```
|
||||
|
||||
The UI initially exposed every fixed pipeline step. That looked mechanical, so it was simplified into one active status row with a changing task summary. Paper reading also gained multi-turn chat.
|
||||
|
||||
What worked:
|
||||
|
||||
- AI-assisted query interpretation and bilingual expansion;
|
||||
- progressive activity updates instead of a blocking spinner;
|
||||
- contextual follow-up over a bounded result set;
|
||||
- serialized model use and caching.
|
||||
|
||||
What remained insufficient:
|
||||
|
||||
- AI actions were still centered on individual papers or a single search;
|
||||
- the system did not maintain claims, contradictions, the user's evolving model, or review state;
|
||||
- a generated brief disappeared into another stateless browsing session.
|
||||
|
||||
Decision retained: future AI should operate at the claim/evidence/model level, not merely summarize or translate documents.
|
||||
|
||||
Relevant commits: `894c914`, `4892e7a`.
|
||||
|
||||
## 5. Ollama Integration Lessons
|
||||
|
||||
The application originally sent client-side context/residency parameters. The user identified that a `num_ctx` mismatch could restart a model and clear residency, and that `keep_alive` behavior could unload it.
|
||||
|
||||
The fix was to let the Ollama server own both settings. The application now only sends generation options such as temperature and output length, serializes calls, and caches results.
|
||||
|
||||
On 2026-07-12 the live model inventory no longer contained the old `light/fast/large` tags used by the web app. The defaults were changed to configurable tiers backed by the currently available Luna/Terra/Sol tags, and health now reports model mismatches.
|
||||
|
||||
Decision retained: always verify `/api/tags`; never infer deployed model aliases from old documentation.
|
||||
|
||||
Relevant commits: `47c301c`, `ac6e0e0`, and the 2026-07-12 handoff update.
|
||||
|
||||
## 6. Learning-System Reframing
|
||||
|
||||
The user clarified the real objective with three levels:
|
||||
|
||||
1. complete memory of important knowledge;
|
||||
2. compression into a coherent network/system;
|
||||
3. abstraction that can explain why approaches exist and generate recommendations for new goals.
|
||||
|
||||
The desired system is a scaffold from raw papers to internalized judgment. The user expects Codex or another strong AI to be an active research partner, not merely an orchestrator for small local models.
|
||||
|
||||
This reframing invalidated “paper site” as the primary product definition.
|
||||
|
||||
## 7. Failed 12-Paper Learning Pilot
|
||||
|
||||
The first response to the reframing compiled 12 Agent Memory papers into a map, chapter, evidence matrix, active recall, and machine-readable module.
|
||||
|
||||
The user rejected it because:
|
||||
|
||||
- 12 papers were too few for a field-level trend;
|
||||
- it felt like a lecture rather than joint research;
|
||||
- it did not answer what 200+ papers were doing;
|
||||
- it did not compare current failures with six months earlier;
|
||||
- it did not establish whether architecture gains were attributable.
|
||||
|
||||
The experiment is explicitly `failed` in `experiments/knowledge-compilation/2026-07-10-agent-memory-pilot.md`. Its artifacts remain under `learning/agent-memory/` only as historical material.
|
||||
|
||||
Decision retained: a polished educational package is not valuable until the underlying field audit and the user's own learning interaction are validated.
|
||||
|
||||
Relevant commit: `36c631e`.
|
||||
|
||||
## 8. Agent Memory Field Audit
|
||||
|
||||
The failed pilot was replaced with a broader research audit:
|
||||
|
||||
- five paginated arXiv queries;
|
||||
- 516 unique abstract-level candidates;
|
||||
- complete local screening as triage;
|
||||
- exact recent/prior six-month windows;
|
||||
- 32 downloaded/text-located papers;
|
||||
- 23 papers in an evidence ledger with explicit non-extrapolation boundaries.
|
||||
|
||||
The most useful findings were negative or diagnostic:
|
||||
|
||||
- retrieval quality often matters more than elaborate write structures for static QA;
|
||||
- model and embedding choices can reverse architecture conclusions;
|
||||
- update/forgetting and automatic writing remain unsolved;
|
||||
- execution-state memory is the clearest task-specific capability direction;
|
||||
- memory can interfere with other Agent components;
|
||||
- cost and no-memory baselines are mandatory.
|
||||
|
||||
This audit is the current research baseline. Read `research/memory/findings.md` and `research/memory/evidence-ledger.md` rather than the old learning module.
|
||||
|
||||
Relevant commit: `ab758e7`.
|
||||
|
||||
## 9. Current Position
|
||||
|
||||
The repository now has a strong collection substrate, a functioning exploration prototype, and one evidence-led field audit. It does not yet have the stateful personal learning/internalization layer that motivated the project.
|
||||
|
||||
The next meaningful experiment is not another graph redesign or another bulk paper sweep. It is one end-to-end learning path that records a user's claims, evidence judgments, contradictions, applications, and later recall, using the memory audit as its first evidence base.
|
||||
@@ -0,0 +1,167 @@
|
||||
# Next Work
|
||||
|
||||
last_reviewed: 2026-07-12
|
||||
|
||||
## P0: Build One Stateful Learning Path
|
||||
|
||||
Use Agent Memory as the first vertical slice, but do not reuse the failed 45-minute lecture format.
|
||||
|
||||
The unit of interaction should be a claim, not a paper. A minimal claim object needs:
|
||||
|
||||
```text
|
||||
question
|
||||
claim
|
||||
supporting evidence
|
||||
counterevidence
|
||||
confidence
|
||||
scope / failure boundary
|
||||
prerequisites
|
||||
related claims
|
||||
user judgment
|
||||
last reviewed / next review
|
||||
```
|
||||
|
||||
The first path should contain a small number of consequential claims from the existing audit, for example:
|
||||
|
||||
- strong retrieval can dominate write complexity on static QA;
|
||||
- current-value maintenance is distinct from retrieval;
|
||||
- execution-state memory is different from historical recall;
|
||||
- automatic experience promotion requires evidence and rollback;
|
||||
- memory can have negative marginal value inside an Agent scaffold.
|
||||
|
||||
The interaction should progressively reveal:
|
||||
|
||||
```text
|
||||
problem -> current hypothesis -> evidence -> conflicting evidence
|
||||
-> user judgment -> application to a new design -> delayed recall
|
||||
```
|
||||
|
||||
Persist the user's state. Merely rendering these sections is not enough.
|
||||
|
||||
### P0 Data Work
|
||||
|
||||
Define a versioned, inspectable local schema before adding a database. Suggested initial files:
|
||||
|
||||
```text
|
||||
data/learning/claims.json
|
||||
data/learning/user-model.json
|
||||
data/learning/reviews.jsonl
|
||||
```
|
||||
|
||||
Requirements:
|
||||
|
||||
- every claim links back to evidence-ledger entries;
|
||||
- user notes and AI synthesis remain distinguishable;
|
||||
- claim updates preserve history;
|
||||
- confidence changes record a reason;
|
||||
- review records are append-only;
|
||||
- no generated summary can silently replace source evidence.
|
||||
|
||||
### P0 AI Roles
|
||||
|
||||
Use AI above the per-paper level:
|
||||
|
||||
- evidence auditor: check whether a claim is actually supported;
|
||||
- contradiction finder: surface papers that challenge the current model;
|
||||
- synthesis maintainer: update the claim network when evidence changes;
|
||||
- research partner: help the user reason through an unfamiliar target;
|
||||
- review generator: create recall/application prompts from validated claims.
|
||||
|
||||
Use Luna for cheap classification, Terra for retrieval briefs and bounded dialogue, and Sol only for explicit synthesis/critique. The user also has a company GPT-5.5 data-agent API with effectively unlimited tokens, but integration must wait until its endpoint, auth, rate behavior, and data policy are documented.
|
||||
|
||||
### P0 Validation
|
||||
|
||||
Do not judge success by page completion or time spent. Validate whether the user can:
|
||||
|
||||
1. explain five claims without paper names;
|
||||
2. identify the evidence boundary of each claim;
|
||||
3. diagnose a new Agent memory design;
|
||||
4. predict when memory will hurt;
|
||||
5. recover the model after 1, 3, and 7 days;
|
||||
6. change a belief when presented with counterevidence.
|
||||
|
||||
## P1: Connect Research to the Frontend
|
||||
|
||||
The current Atlas/search/reader can remain, but it should feed the stateful path:
|
||||
|
||||
- selecting a topic opens its unresolved questions and claims, not only a paper list;
|
||||
- selecting a paper shows which claims it supports or challenges;
|
||||
- search results can be promoted into an evidence review queue;
|
||||
- paper chat can create a candidate claim, never an automatically accepted fact;
|
||||
- the primary desktop focus should shift to the active research/learning task;
|
||||
- mobile should preserve the same conceptual flow with fewer simultaneous panes.
|
||||
|
||||
Avoid another navigation-heavy redesign before the data and learning loop exist.
|
||||
|
||||
## P1: Continue Collection Selectively
|
||||
|
||||
Current gaps:
|
||||
|
||||
- only 6 JD items, last checked 2026-07-08;
|
||||
- only 9 industry items;
|
||||
- 959 of 974 paper items are still queued;
|
||||
- paper source approval and automated collection policy need an explicit user decision;
|
||||
- the corpus is heavily biased toward May-July 2026 and broad arXiv query terms.
|
||||
|
||||
Next collection work should be question-driven:
|
||||
|
||||
- refresh Beijing DeepSeek/Tencent/ByteDance/Alibaba/Baidu roles and record changes;
|
||||
- add official company material that explains memory, evaluation, coding agents, or computer use;
|
||||
- deepen only papers that challenge or extend current claims;
|
||||
- do not add another thousand papers without a processing and evidence plan.
|
||||
|
||||
After any item changes:
|
||||
|
||||
```bash
|
||||
python3 tools/collection/build_index.py
|
||||
python3 tools/check_project.py
|
||||
```
|
||||
|
||||
## P2: Research Refresh Protocol
|
||||
|
||||
When refreshing the memory audit or starting another topic:
|
||||
|
||||
1. define exact date windows and approved sources;
|
||||
2. save the broad candidate snapshot;
|
||||
3. separate deterministic filters from model triage;
|
||||
4. identify comparable benchmarks and controlled studies;
|
||||
5. read experiments, ablations, costs, and limitations in full text;
|
||||
6. update an evidence ledger before writing conclusions;
|
||||
7. preserve negative results and failed hypotheses;
|
||||
8. record the run under `experiments/` and update project status.
|
||||
|
||||
Do not compare raw scores across papers unless model, embedding, prompt, visible information, and budget are controlled.
|
||||
|
||||
## P2: Operations
|
||||
|
||||
Still missing:
|
||||
|
||||
- public-domain deployment documentation outside this repository;
|
||||
- authentication/authorization for a public or multi-user site;
|
||||
- automated backup for future personal learning state;
|
||||
- CI that runs `tools/check_project.py` on push;
|
||||
- tests for web API behavior and frontend flows.
|
||||
|
||||
The repository now has an enabled user-level systemd service managed through `web/manage.sh`. It restarts on failure and survives user sessions because linger is enabled on the current host, but it is not a complete production deployment: proxy/TLS/auth configuration remains external.
|
||||
|
||||
## Explicit Non-Goals
|
||||
|
||||
- Do not make the graph more decorative as the next milestone.
|
||||
- Do not present 974 queued papers as knowledge already learned.
|
||||
- Do not revive the 12-paper lecture as the primary path.
|
||||
- Do not use per-paper summary/translation as the main AI value proposition.
|
||||
- Do not let AI write durable memory solely because a statement repeats in traces.
|
||||
- Do not hide model, embedding, context, or cost changes inside an architecture comparison.
|
||||
|
||||
## First Continuation Task
|
||||
|
||||
The best next task for another AI is:
|
||||
|
||||
1. read the memory findings and evidence ledger;
|
||||
2. define the claim/user-state/review schemas;
|
||||
3. compile 5-8 audited claims into a stateful local dataset;
|
||||
4. implement one progressive learning/research view;
|
||||
5. run it with the user and record what changes in their understanding;
|
||||
6. keep or discard the interaction model based on that evidence.
|
||||
|
||||
That is the shortest path from the current corpus browser toward the actual goal.
|
||||
Reference in New Issue
Block a user