AI 应用大模型AI Agent交互助手RAG【免费下载链接】obsidian-copilotRun agents in Obsidian - OpenCode, Codex, Claude Code etc.项目地址https://gitcode.com/gh_mirrors/ob/obsidian-copilot点击查看免费下载本文基于 docs/context-and-mentions.md 展开系统讲解 Obsidian Copilot 中「上下文Context」与「提及Mentions」的完整机制如何为 Agent Chat、Quick Chat 附加笔记、文件夹、网页标签、图片与选中文本如何通过提及其他已安装 Agent 触发多 Agent 扇出问答以及如何借助 Project 复用跨会话的已保存上下文。读完后你将掌握上下文各类型的生命周期差异、多 Agent 只读扇出的底层设计约束以及如何在实际工作中正确选择上下文粒度、避免权限误判。在 Obsidian Copilot 中「上下文」就是你在发送请求时交给 AI 的材料。理解它的第一件事不是「怎么加」而是「每种上下文能活多久」——因为 Copilot 的设计哲学是选择恰好匹配任务的最短生命周期避免旧上下文污染后续对话。官方文档给出了如下生命周期对照表上下文类型持续时间Agent Chat 附件或提及attachment / mention下一条消息被提及的 Agent当前这一轮多 Agent 问题Project 上下文在该 Project 中开启的每一个新聊天Vault 或 Project 的AGENTS.md在该 vault 或 Project 中开启的每一个 Agent ChatQuick Chat 附件下一条 Quick Chat 消息可以看到越是「高频、通用」的材料越应该放进长生命周期Project、AGENTS.md越是「一次性、针对单轮」的材料越应该用短生命周期单轮附件。下面逐类展开。为 Agent Chat 添加上下文使用按钮打开「Add context」在 Agent Chat 输入框composer旁有一个按钮点击后弹出Add context面板。根据当前打开的内容你可以添加Active Note当前活动笔记其他Notes笔记Folders文件夹Active Web Tab当前网页标签其他Web Tabs网页标签Images图片其中网页标签来自 Copilot 桌面端的Web Viewer网页查看器。从源码实现看这个按钮是一个无边框的图标按钮点击后弹出 400px 宽的 Popover内部渲染的是与输入框菜单共用的 AtMentionTypeahead 组件——也就是说「点 选类别」和「输入 浏览类别」走的是同一套候选逻辑只是入口不同。从笔记头部图标快捷附加在笔记的标题栏header中有一个 Copilot 图标点击它可以直接让 Agent Chat 以「该笔记已附加到当前草稿」的状态打开。关键细节是切换笔记不会丢失该附件——附件始终跟随当前草稿draft直到你发送消息为止。这非常适合「先确定要讨论的笔记再慢慢组织问题」的工作流。输入过程中的四种快捷语法你不必总是点按钮在输入时也可以直接加上下文输入[[并选择笔记插入[[Note title]]输入浏览可用的上下文类别这也是后面「提及 Agent」的入口选择一个文件夹插入其路径形式的{Folder/path}将图片粘贴或拖拽进输入框要求当前选中的模型支持图片输入即具备视觉能力。上下文徽章发送前的可见清单输入框上方的**上下文徽章Context badges**展示「下一条消息将携带什么」。每个徽章右上角有x点击即可移除该附件消息发送后单轮附件自动清空。徽章体系在源码中由 src/components/chat-components/ContextBadges.tsx 实现包含如下类型每种都有独立的图标与展示逻辑ContextActiveNoteBadge当前活动笔记显示文件名与Current标记PDF/Canvas 文件会额外标注扩展名ContextNoteBadge普通笔记附件悬停显示完整 vault 路径ContextFolderBadge文件夹附件悬停显示文件夹路径ContextActiveWebTabBadge/ContextWebTabBadge网页标签附件优先显示站点 favicon加载失败回退为 Globe 图标未加载的标签会显示(not loaded)并提示「切换到该标签以加载内容」ContextSelectedTextBadge选中文本附件显示摘录开头与行号范围如L12-20悬停可查看完整摘录与来源ContextTagBadge/ContextUrlBadge标签与 URL 附件URL 徽章只显示域名。提及 ≠ 粘贴理解路径语义一个容易误解的点是「提及一个笔记/文件夹后AI 是否看到了全文」。官方文档明确说明笔记提及给 Agent 的是笔记的vault 路径Agent 在需要时自行读取当前文件内容文件夹提及指向一个待检查的文件夹并不会把该文件夹下所有文件都粘进提示词。也就是说提及是「给出可寻址的位置」由 Agent 按需读取这避免了大量无关文件被一次性塞进上下文窗口也是 Copilot 控制 token 开销的关键设计。活动笔记与选中文本Active Note Selected Text活动笔记徽章与偏好设置新 Agent Chat 可以在启用对应偏好时自动以Active Note徽章开始。当当前笔记与问题无关时记得移除该徽章在后续任意轮次你都可以重新添加。选中文本是独立附件Active Note 与选中文本在 Agent Chat 和 Quick Chat 中是两个相互独立的附件你可以只包含其一也可以两者都包含——即使摘录来自活动笔记本身。移除其中一个徽章不会影响另一个。选中文本徽章只显示摘录的开头部分悬停徽章可查看完整摘录及其来源笔记路径 行号。手动附加选中文本的步骤选中笔记中的文本在命令面板command palette运行Add selection to chat context发送前检查徽章必要时移除。该命令在源码中是注册的正式命令见 src/commands/index.ts 与命令 ID 常量 ADD_SELECTION_TO_CHAT_CONTEXT因此你可以为它分配快捷键assigned hotkey形成「选中即附加」的高频操作。编辑器内的 Copilot 菜单还包含 Quick Ask、快速命令与自定义命令等入口。网页选中与自动附加在 Web Viewer 中选中文本后运行Add web selection to chat contextCopilot 会只发送选中的摘录而不是把整个活动网页标签一并附加在笔记的阅读视图Reading view或编辑视图Edit view中选中文本时选中的文本会自动加入聊天上下文并保持到切到聊天界面阅读视图的选中徽章显示笔记路径不带行号桌面上该自动附加对 Web Viewer 的选中同样生效。发送前务必检查或移除选中徽章避免把不想要的摘录带进下一轮。提及其他 Agent多 Agent 扇出Multi-agent Fanout如何提及拥有有效的Plus 访问权限时输入打开Agents选择一个或多个已安装的 Agent如 opencode、Claude、Codex。被提及的每个 Agent 都会收到同一个问题该轮的附件可见对话的一个有界切片bounded slice即被截断控制的对话历史。一个 vs 多个回复与汇总的差异只提及一个其他 Agent只有它作答答案直接展示提及两个及以上当前 Agent汇总它们的答案而不会单独再回答一遍。只读设计不是安全沙箱多 Agent 回答被设计用于只读研究、第二意见与评审。源码中每个扇出子会话都会被前置一段只读提示词 FANOUT_READONLY_PREAMBLE「这是一个只读问题不要修改任何文件、不要运行改变状态的命令或写/Shell 工具只作答可以自由阅读、搜索、grep 与 fetch。」但文档特别强调它们不是安全沙箱not a security sandbox。原因在于检索类 Skills 仍可能以 Agent 的权限运行受信任脚本。更细致的实现可见 fanoutTypes.ts扇出子会话硬性拒绝会改动 vault 的工具类型edit、delete、move但execute执行命令刻意不在拒绝清单内——因为 Copilot 的网页搜索/抓取、PDF、YouTube 等中继能力是以脚本形式让后端通过 shell 运行的一刀切禁止execute会静默杀死 opencode 这类没有原生等价的后端的网页搜索。因此想要修改文件时请使用普通的单 Agent 回合只提及当前 Agent 本身main agent时行为等同于普通回合——源码中 isFanout 会把这个退化情况折叠回单 Agent 路径。扇出的底层实现细节多 Agent 扇出的路由与编排在 src/agentMode/session/fanout/ 目录几个值得了解的实现事实resolveAnswerers从提及中解析出「真正作答」的 Agent 集合——只取去重且已安装的提及主 Agent 不会自动包含它只在自身被提及时才作答否则专职汇总每 Agent 超时单个 Agent 的作答有 5 分钟超时FANOUT_AGENT_TIMEOUT_MS 5 * 60 * 1000超时只标记该槽位为error不影响其他 Agent 继续作答历史有界切片每个扇出 Agent 运行在全新的临时子会话无记忆因此完整历史被渲染进单个conversation_history块默认上限 48,000 字符FANOUT_HISTORY_MAX_CHARS超出时从最旧的轮次开始丢弃——这正是「有界切片」的量化含义汇总指令主 Agent 的汇总遵循 FANOUT_SUMMARY_INSTRUCTION被要求以第三人称客观转述各 Agent 观点区分「答案模式」与「交付物模式」并明确「不要修改文件、不要运行写/Shell 工具」持久化与连续性扇出回合以 HTML 注释标记如!--copilot:multi-agent v1--序列化进消息体serializeFanoutComposite重载后由 parseFanoutComposite 还原后续单 Agent 回合会把这些多 Agent 轮次作为prior_turns块回放保证对话连续性。注意Agent 提及提及 opencode/Claude/Codex与笔记、文件夹、网页上下文提及是完全不同的概念——前者触发扇出路由后者只是附加材料。关于权限与模型行为详见 Multi-agent answers 一节。用 Project 复用上下文什么时候该用 Project当某份材料需要为不止一个聊天准备时就应创建一个 Project把上下文保存进去而不是每轮手动附加。添加已保存上下文的三种方式在Context区块或页签中拖入 vault 文件或文件夹添加网页或 YouTube URL选择Manage Context添加链接、标签tags、属性properties、文件夹、文件与忽略文件ignored files。准备时机与排队行为Project 上下文会为该 Project 内的每一个新聊天准备好。如果你在上下文仍在准备materializing时发送消息Copilot 会排队消息并在上下文就绪后自动启动。源码实现上输入框组件接受一个contextLoadBlocking属性见 AgentChatInput.tsx发送按钮保持可点击但发送动作进入「排队-保持」状态待 Project 上下文加载完成agentProjectContextLoadAtom的 blocking 标记清除后自动冲刷发送——绝不是把按钮硬禁用。权限边界与 Ignore Files再次强调边界已保存的上下文是「焦点辅助」不是「权限边界」——Agent 仍可通过其工具检查其他可用文件Ignore Files只是把被忽略文件排除出准备好的 Project 上下文并不能阻止 Agent 主动读取它们。如果你的诉求是「绝不能读到某些文件」Project 上下文不是正确工具。与单轮附件的关系单轮附件在 Project 内仍然是单轮附件不会因进入 Project 而变成长久上下文修改了已保存上下文或 Project 指令后新开一个 Project 聊天才能应用最新版本——旧会话不会自动刷新。Quick Chat 中的上下文Quick Chat快速聊天拥有独立的输入框与独立的上下文状态可以附加活动笔记桌面上还可以附加当前 Web Viewer 标签使用Add context可添加笔记、文件夹、网页标签或图片也可以直接输入[[Note title]]引用笔记编辑一条已发送的 Quick Chat 消息会保留其原始附件——切换活动笔记或修改输入框附件都不会并入这条正在编辑的消息。Quick Chat 的附件只作用于下一条 Quick Chat 消息它们不会变成 Agent Chat 上下文、Project 上下文或AGENTS.md指令——各聊天入口的上下文互不渗透这是有意的隔离设计。如果你需要 vault 级别的语义搜索、以及归你自己所有的 AI 历史记录可使用 Miyo——它提供 Copilot V4 的本地优先local-first搜索路径。相关文档Agent Chat 与 Agent 模式Projects项目级上下文复用Agent Chat 与 Quick Chat 的指令Instructions / 系统提示词Quick Chat 界面与用法Vault 搜索与索引Miyo总结一句话上下文管理的心法是按材料复用频率选生命周期——一次性材料走单轮附件、[[、拖拽图片、选中文本跨会话材料走 Project 或AGENTS.md需要多视角评审时再考虑多 Agent 扇出并始终记住扇出会话只读、不构成安全边界。赞分享AI 应用大模型AI Agent交互助手RAG【免费下载链接】obsidian-copilotRun agents in Obsidian - OpenCode, Codex, Claude Code etc.项目地址https://gitcode.com/gh_mirrors/ob/obsidian-copilot点击查看免费下载相关推荐obsidian-copilot 多智能体扇出架构一次 提及并行调度多个 Agent 的完整实现解析obsidian copilot 多智能体扇出架构一次 提及并行调度多个 Agent 的完整实现解析 本篇技术指南以 designdocs/MULTI_AAI 应用大模型AI Agent交互助手RAGCleanlab Datalab 标签问题检测Label Issue深度解析LabelIssueManager 原理、参数与实战Cleanlab Datalab 标签问题检测Label Issue深度解析LabelIssueManager 原理、参数与实战 导读 本文深入剖析 clAI 应用大模型AI Agent交互助手RAGobsidian-copilot 版本演进全览从 AI 聊天插件到原生多 Agent 平台obsidian copilot 版本演进全览从 AI 聊天插件到原生多 Agent 平台 本篇技术指南以 obsidian copilot 官方 RELEAAI 应用大模型AI Agent交互助手RAG上一篇Azure-Sentinel云资源监控保护Azure环境免受配置错误下一篇React Native Keyboard Aware Scroll View终极指南HOC模式深度解析与实战应用创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考