- 判断页面是否值得保存。
- 把网页现场转成 Markdown + metadata。
- 把行为信号作为后续排序权重。
- 通过 Collector API 交给后端。
browser-extension -> /collect/browser/pageDoTodo Intelligence Engine / 技术方案
插件已经负责采集现场。后端要做的是把 source 变成 derived analysis、idea card、topic thread、memory candidate 和 verification report。
动画现在按真实顺序从上到下推进:先收集,再保留 source,再结构化、索引、沉淀想法,最后产出验证报告。
01 / 全链路步骤
点击左侧步骤,右侧动画会切换到对应阶段。第一版可以先做 1 到 5,图谱和长期记忆稍后接入。
browser-extension -> /collect/browser/pagedata/source/browser/YYYY-MM-DD/data/source/_manifests/browser.manifest.json02 / 每步产出样例
下面用同一个例子串起来:你读到一篇关于 AI Agent 创业机会的网页,后来又在聊天里提出“用聊天驱动个人知识引擎”。
插件把网页现场转成一条可上传的 source,不在这里做最终判断。
{
"source_type": "browser_page",
"capture_mode": "manual",
"active_lens_ids": ["ai_agent_startup"],
"url": "https://example.com/agent-startup",
"title": "AI Agent 创业机会:从工作流切入",
"domain": "example.com",
"captured_at": "2026-05-16T21:10:32+08:00",
"signals": {
"active_read_seconds": 186,
"scroll_depth": 0.82,
"selected_text_count": 2,
"copied_text": true,
"saved_manually": true
},
"content": {
"markdown": "# AI Agent 创业机会\\n...",
"word_count": 2830,
"quality": {
"page_type": "article_document",
"text_density": 0.71
}
}
}
Collector 写原文、元数据和 manifest,让后续 worker 有稳定入口。
{
"schema_version": "collector.browser.page_record.v1",
"page_id": "9f6c...a21",
"normalized_url": "https://example.com/agent-startup",
"title": "AI Agent 创业机会:从工作流切入",
"content_path": "data/source/browser/2026-05-16/content/9f6c.md",
"metadata_path": "data/source/browser/2026-05-16/pages/9f6c.json",
"summary_path": "data/derived/browser/2026-05-16/9f6c.summary.json",
"content_hash": "sha256:3a9b...f11",
"signals": {
"saved_manually": true,
"copied_text": true
},
"collector_result": {
"accepted": true,
"status": "stored"
}
}
把原文拆成摘要、主张、证据、问题和行动项,但还不生成最终结论。
{
"source_id": "browser:9f6c...a21",
"summary": "文章认为 AI Agent 产品应先切入明确工作流,而不是做泛助手。",
"key_points": [
"高频、可评估、可复用的工作流更适合早期商业化",
"泛助手难证明 ROI,容易变成演示型产品"
],
"entities": [
{"type": "concept", "name": "AI Agent"},
{"type": "concept", "name": "workflow automation"}
],
"claims": [
{
"claim": "AI Agent 创业应从明确工作流切入",
"evidence": "文章列举客服、销售跟进、代码审查等场景",
"strength": "medium"
}
],
"open_questions": [
"DoTodo 的第一条可验证工作流是什么?"
],
"actions": [
"把 Browser Sense MVP 的目标改成想法验证闭环"
]
}
同一份材料会进入全文索引、向量索引和时间/权重排序。
{
"chunk_id": "chunk_9f6c_004",
"source_id": "browser:9f6c...a21",
"path": "data/source/browser/2026-05-16/content/9f6c.md",
"text": "早期 AI Agent 产品不要从泛助手开始,应从可评估的工作流切入...",
"embedding_ref": "pgvector:chunks.embedding",
"fts_terms": [
"AI Agent",
"工作流",
"商业化",
"ROI",
"泛助手"
],
"ranking_signals": {
"manual_save": 1.0,
"copied_text": 0.7,
"read_seconds": 186,
"recency_days": 0
}
}
这是系统真正要沉淀的认知资产,必须挂来源和证据。
{
"idea_id": "idea_chat_driven_intelligence_engine",
"title": "用聊天驱动个人智能情报引擎",
"description": "人主要负责聊天和表达想法,AI 负责提炼、关联历史资料、验证可行性。",
"status": "exploring",
"source_ids": [
"browser:9f6c...a21",
"chat:2026-05-16:idea-talk"
],
"evidence_for": [
"已有 Browser Sense 采集端,source 可以持续进入系统",
"网页材料支持从明确工作流切入,而想法验证是高频工作流"
],
"evidence_against": [
"聊天内容噪音高,自动写 memory 有隐私和误记风险"
],
"open_questions": [
"7 天内能否稳定抽出高质量 idea cards?",
"验证报告是否比普通搜索更省时间?"
]
}
不是所有内容都写入长期记忆。先进入候选,再审核、过期、回滚。
{
"thread": {
"thread_id": "thread_browser_sense_mvp",
"title": "Browser Sense MVP:从采集到想法验证",
"source_ids": ["browser:9f6c...a21", "meeting:2026-05-16"],
"idea_ids": ["idea_chat_driven_intelligence_engine"],
"current_focus": "新想法输入后的历史验证报告"
},
"memory_candidate": {
"memory_type": "project_state",
"content": "DoTodo 第一版应优先验证:采集 -> idea card -> verification report。",
"source_id": "meeting:2026-05-16",
"confidence": 0.78,
"approval": "pending",
"expires_at": "2026-06-16"
}
}
最终输出不是搜索结果,而是基于历史材料的判断和下一步实验。
{
"question": "用聊天驱动个人知识和想法验证引擎是否值得做?",
"verdict": "值得做 MVP,但不应先做完整 GraphRAG。",
"similar_history": [
"Browser Sense 产品方案 v0.5",
"AI 知识管理分层调研",
"DoTodo 采集架构文档"
],
"supporting_evidence": [
{
"source": "browser:9f6c...a21",
"point": "文章支持从明确工作流切入,想法验证符合这个标准"
}
],
"counter_evidence": [
"聊天噪音高,需要 memory candidate 审核机制",
"只做问答 UI 会削弱产品差异"
],
"missing_evidence": [
"连续 7 天真实输入后的 idea 抽取准确率",
"验证报告是否能减少用户整理和搜索时间"
],
"next_experiment": "先做一个 CLI/Web 页面:输入新想法 -> 找历史相似 -> 输出验证报告。"
}
03 / 详细案例
每个案例都展示从采集、分析、关联到最终产物的流动方式。
标题:聊天驱动的个人智能情报引擎
{
"status": "exploring",
"evidence_for": [
"用户已经在浏览器插件中沉淀 source",
"资料价值来自后续复用,不是收藏本身"
],
"open_questions": [
"MVP 用户是否每天愿意保存 5 条以上 source",
"验证报告是否比普通搜索更省时间"
]
}
判断:方向成立,但 MVP 不应该先做完整 GraphRAG,应先做 idea cards。
{
"feasibility": "medium-high",
"similar_history_count": 6,
"next_experiment": "连续 7 天输入网页和聊天,检查 idea 抽取命中率",
"do_not_build_first": ["完整图谱", "复杂权限", "万能聊天 UI"]
}
候选记忆需要来源、有效期、置信度和人工确认状态。
{
"memory_type": "project_state",
"content": "Browser Sense MVP 下一步验证自动候选打扰率",
"source": "meeting_transcript_2026_05_16",
"expires_at": "2026-06-16",
"approval": "pending"
}
04 / 数据对象
Source 是地基;Idea 是资产;Verification Report 是把资产变成判断的交付物。
网页、聊天、会议、笔记的原始材料。必须有来源、时间、hash 和原文路径。
摘要、关键点、实体、claims、questions、evidence、actions。
面向检索的切片,连接 source、embedding、全文索引和位置引用。
从材料里抽出的想法卡片,包含支持证据、反对证据和开放问题。
长期主题线,把相关 source、idea、meeting、chat 组织成认知轨迹。
稳定偏好、项目状态、历史承诺。必须有版本、来源、有效期和撤销机制。
05 / MVP 路线
这条路线和现有 Browser Sense 最顺,不需要第一天上完整知识图谱。
06 / 工程拆分
插件保持轻;后端负责持久化、索引、工作流和审计。
backend/
app/
api/
workers/
models/
services/
prompts/
repositories/
migrations/
pyproject.toml
07 / 关键决策
这些约束能避免项目过早进入“架构很完整,但没有日常价值”的状态。