我构建了一个可视化 LLM 画布,每个分支都有自己的模型、提示词和上下文设置
发布: (2026年5月2日 GMT+8 19:31)
3 分钟阅读
原文: Dev.to
Source: Dev.to
Introduction
每次我在 ChatGPT 上深入探讨一个话题时,总会有一个分支引出新的询问方向。标准的变通办法是什么?打开一个新聊天并手动粘贴上下文。我想要 分支——真实的分支。不是标签页,也不是需要来回切换的独立线程。
于是我构建了 ContextTree。
What is ContextTree?
ContextTree 是一个基于节点的 LLM 对话可视化画布。
Core Invariant
- 子节点只继承 直接父节点 的提示词和上下文。
- 分支之间的状态不会相互污染。
Honest rule in the codebase:
子节点永远不会读取父节点的实时状态——没有共享的 LangGraph。
Key Features
- 每个节点的 LLM 模型(例如,一个分支使用 GPT‑4o,另一个分支使用 Gemini Flash)。
- 每个节点的自定义系统提示词,仅在该节点及其子节点范围内生效。
- 每个节点的高级设置:
- 温度
- 最大输出 token 数
- 对话历史模式
- 最近 K 条消息
- Token 预算的上下文限制
- 外部上下文块计数
这意味着在同一个画布上,你可以拥有一个通用助理节点,然后将其分叉为使用不同模型、提示词和设置的专用助理节点,彼此之间互不干扰。
Knowledge vs. State
基于祖先范围的向量搜索让子节点能够检索 知识,但不会获取其祖先的实时状态。这一点至关重要:“知识而非状态”。
SIMILAR_CONTEXT_LIMIT=0 # per node
Open Questions
- 提示堆栈顺序 – 用户是否应该能够重新排列层级?
- 每个节点的系统提示词 – 这是否足够,还是用户希望对每个节点的 RAG 来源进行不同的固定?
- 多 LLM 分支的用户体验 – 当前的交互是否足够直观?
Demo
Call for Feedback
单人独立构建,仍处于早期阶段。欢迎严厉的反馈——尤其是来自构建过多代理或提示工程工具的朋友们。