Digital Twin Proxy 实战教程:用浏览记录为 AI Agent 注入上下文
AI Agent 的能力再强,如果不了解你的工作场景,它也只是个「聪明的陌生人」。你的浏览记录——打开了哪些技术文档、研究了什么竞品、阅读了哪篇博客——恰恰是理解你当下任务的最好线索。Digital Twin Proxy 正是为了解决这个问题而生:它把你的浏览流量转化成结构化的上下文,让 AI Agent 真正「懂你」。
背景:AI Agent 的上下文鸿沟
当下主流的 AI 编程助手(Claude Code、Codex、Cursor 等)知道你打开的代码文件,但它们不知道你几小时前在文档站上研究了什么 API,不知道你对比了多少个框架才选择了某一个。这种「上下文鸿沟」导致 Agent 经常给出看似合理实则脱节的建议。
解决思路很直接:把浏览行为变成数据,喂给 Agent。Digital Twin Proxy(下文简称 DTP)通过一个本地代理截获浏览流量,用 LLM 分析访问内容,生成对你的「数字孪生」理解,供其他 AI Agent 使用。
架构:Squid + Rust + LLM
DTP 是个用 Rust 编写的 CLI 工具,工作在 Squid 代理之上。流量路径很简单:
浏览器 → Squid 代理 (端口 8888) → 互联网
↓
访问日志
↓
DTP → LLM → 决定抓哪些页面 → 深度分析 → 结构化上下文
DTP 不依赖第三方服务,所有分析可以在本地 LLM 上完成(Ollama、LM Studio、vLLM 均可),隐私有保障。
安装与配置
前置依赖
- Rust 工具链(
cargo build) - Squid 代理(系统包管理器安装)
- 一个 OpenAI 兼容的 LLM 服务(推荐本地 Ollama)
安装 DTP
git clone https://github.com/kstonekuan/digital-twin-proxy.git cd digital-twin-proxy cargo build --release
编译后的二进制文件在 target/release/digital-twin-proxy 中。
配置浏览器代理
把你浏览器的 HTTP/HTTPS 代理设为 127.0.0.1:8888:
- Chrome:设置 → 系统 → 打开代理设置
- Firefox:设置 → 网络设置 → 手动代理配置
- 命令行(测试用):
export http_proxy=http://127.0.0.1:8888 https_proxy=http://127.0.0.1:8888
配置 LLM 端点
DTP 支持三种配置方式(优先级从高到低:命令行参数 > 环境变量 > .env 文件)。推荐用 .env 文件:
cp .env.example .env
编辑 .env:
API_BASE=http://localhost:11434/v1 MODEL=qwen2.5:14b AMBIENT_INTERVAL=60 MAX_ANALYSIS_ITEMS=1000
配置项说明:
| 配置项 | 环境变量 | 命令行参数 | 说明 |
|---|---|---|---|
| API 地址 | API_BASE | --api-base | OpenAI 兼容端点 |
| API 密钥 | API_KEY | --api-key | 远程服务时需要 |
| 模型 | MODEL | --model | LLM 模型名 |
| 分析间隔 | AMBIENT_INTERVAL | --interval | 后台模式分析间隔(秒) |
| 单次最大条目 | MAX_ANALYSIS_ITEMS | --max-items | 每批分析的上限 URL 数 |
三种使用模式
DTP 设计了三种操作模式,覆盖从简单到复杂的场景。
1. 纯日志模式
只记录流量,不做分析。适合想先确认代理正常工作:
./digital-twin-proxy log
此时 Squid 在 8888 端口运行,访问日志以 NDJSON 格式写入 ~/.local/share/ai-proxy/log.ndjson:
tail -f ~/.local/share/ai-proxy/log.ndjson
2. 一次性分析
浏览一段时间后,对最近记录的流量做一次深入分析:
./digital-twin-proxy analyze --since 2h --model qwen2.5:14b
LLM 会先扫描 URL 列表,选出有分析价值的页面,然后逐个抓取内容做语义理解。最终输出你近 2 小时的技术关注主题摘要。
3. 后台常驻模式
在工作时让 DTP 持续运行,定期刷新上下文:
./digital-twin-proxy ambient --interval 300 --model gpt-5 \ --api-base https://api.openai.com/v1 --api-key $OPENAI_API_KEY
每 5 分钟分析一次新流量。分析结果持续写入本地文件,你可以随时用这些数据构建 Agent 的上下文窗口。
实战:让 Claude Code 用你的浏览上下文工作
这是一个完整的闭环示例:浏览 → 分析 → 上下文注入。
先启动 DTP 并浏览几个技术页面:
./digital-twin-proxy ambient --interval 180 --model qwen2.5:14b
一小时后,DTP 已完成了分析。分析结果的结构化摘要存储在日志文件中,你可以通过以下方式查看:
cat ~/.local/share/ai-proxy/log.ndjson | tail -1 | jq '.'
输出类似:
{
"topics": ["async Rust", "Tokio ecosystem", "Axum web framework"],
"tools_explored": ["axum 0.8", "tokio 1.38", "tower"],
"intent": "Evaluating Axum for a new microservice project",
"depth": "medium"
}
把这个 JSON 注入到 Claude Code 的 prompt 开头:
我的技术上下文:用户在评估 Axum 0.8 + Tokio 1.38 来构建微服务,已浏览了 Tower 中间件文档。特别注意错误处理和路由设计。
Claude Code 就不再「凭空」回答,而是知道你在评估框架阶段,给出的建议更有针对性。
高级技巧
与 MCP 生态结合
虽然 DTP 的 MCP 功能还在开发中(参见 README「Planned Features」),但你完全可以手动将分析结果通过一个简单的 MCP Server 暴露给 Claude Code 或 Cursor。思路如下:
from mcp import Server, tool
import json
import os
server = Server("browsing-context")
@tool()
async def get_browsing_context(hours: int = 2) -> str:
"""返回最近 N 小时的浏览分析摘要"""
# 读取 DTP 的分析日志并过滤时间窗口
with open(os.path.expanduser("~/.local/share/ai-proxy/log.ndjson")) as f:
entries = [json.loads(l) for l in f if l.strip()]
# 返回最近的摘要
return json.dumps(entries[-1]["summary"])
server.run()
这样,你的 AI Agent 就自动获得了「你最近在关注什么」的元认知。
隐私:完全本地化
DTP 的最大优势是数据掌控。使用 Ollama 或 LM Studio 运行本地模型时,所有分析流量不离开你的机器:
export API_BASE=http://localhost:11434/v1 export MODEL=qwen2.5:14b ./digital-twin-proxy ambient
甚至不需要 API Key。这对于处理机密代码库和技术调研的开发者来说,是一个不可妥协的特性。
与同类工具对比
DTP 的定位不是又一个 AI Agent 框架,而是上下文供给侧的工具。它解决的是「Agent 的信息输入」问题,而不是「Agent 的动作执行」问题。同类工具的对比:
| 工具 | 定位 | 数据来源 | 输出 |
|---|---|---|---|
| Digital Twin Proxy | 浏览上下文工程 | Squid 代理日志 | 主题摘要 JSON |
| Reference MCP | 跨 Agent 会话记忆 | Agent 历史会话 | 记忆检索 API |
| Context Gateway | 上下文压缩 | LLM 调用历史 | 精简上下文 |
三个工具可以叠加使用:DTP 提供当前浏览上下文,Reference MCP 提供长期记忆,Context Gateway 压缩后送入 LLM。
总结
Digital Twin Proxy 用一种巧妙的方式架起了「浏览行为」和「Agent 上下文」之间的桥梁。它不复杂——本质就是 Squid + Rust CLI + LLM 的三层组合——但解决了一个真实且被忽视的痛点:Agent 不了解你的工作场景。
对于追求隐私又想提升 AI Agent 能力的开发者来说,DTP 是一个值得加入工具箱的开源利器。推荐从 ambient 模式开始,搭配本地 Ollama,先跑一天看看效果,你会发现 AI Agent 的输出质量有明显的「上下文跳跃」。
本文工具信息:Digital Twin Proxy 基于 MIT 许可开源,Rust 编写,当前版本支持 OpenAI 兼容 API。GitHub 仓库:https://github.com/kstonekuan/digital-twin-proxy
相关链接