简介

August 27, 2026 · View on GitHub

English | 中文

简介

Tars 是一个 Obsidian 插件,基于标签建议进行文本生成,支持 Claude、OpenAI、Gemini、🔥DeepSeek、🔥SiliconFlow、🔥OpenRouter、🔥MiniMax、🔥LongCat、Ollama、Kimi、豆包、阿里千问、智谱、百度千帆等。Tars 这个名字来源于电影《星际穿越》中的机器人 Tars(塔斯)。插件支持桌面端和移动端。

🌟 3.1 多模态

🎨 图像生成

  • GPT-Image-1: 支持图像生成和编辑功能

👁️ 视觉理解

  • 图像分析: Claude、OpenRouter、SiliconFlow 等看懂图片
  • 文档解读: Claude 和 OpenRouter 等支持 PDF 文件分析

⚠️ 注意: 仅支持嵌入文件(例如 ![[example.jpg]])。不支持外部URL链接。

Vision

2.x 版本重大更新

  • 🔥加入标签命令,所有标签都在命令列表里。标签命令基于选中/光标处的段落,插入相应的标签。
    快速回答:把光标移到该行(或者选择多个段落),从命令列表中选择助手标签(比如#DeepSeek :),进行回答。

deepseek

  • 🔥自定义提示词模板, 首次使用请执行”加载模板文件”命令
  • 🔥状态栏,实时显示生成的字符数量, 轮次,耗时。
  • 🔥标签建议,重新设计的触发逻辑更符合软件设计,性能优化显著。
    输入#,借用obsidian自身的标签补全后,再输入空格触发。
    移动端如果不方便输入#,输入完整的标签(不带#),来触发。
    助手标签在触发后,会进行AI助手回答。

tagSuggest

特性

  • 支持内部链接

内部链接支持

AI 服务提供商

如果上面列表没有你想要的 AI 服务提供商,可以在 issue 中提出具体方案。

助手特色

  • Azure:模型一栏填的是你在 Azure 门户给部署起的名字,不是模型 id
  • 🔥DeepSeek:推理模型的思维链以 callout 格式输出
  • Doubao: 支持应用(bot)API,支持 deepseek 联网插件和知识库插件
  • 🔥LongCat 龙猫:推理内容以 callout 格式输出
  • 🔥MiniMax 海螺:推理内容以 callout 格式输出
  • 🔥SiliconFlow:支持 DeepSeek V3/R1 等等众多模型
  • 🔥Zhipu 智谱:网络搜索选项,GLM-4.5 / 4.6 / Z1 的推理内容以 callout 格式输出

如何使用

  • 在设置页面添加 AI 助手,设置 API 密钥,设置模型。
  • 输入问题,比如“1+1=?”,然后在命令列表选择“#我 :”, 转为“#我 : 1+1=?”
  • 在命令列表选择助手,比如“#DeepSeek :”,触发 AI 助手回答问题。
  • 还可以直接输入#,输入标签后再输入空格,来触发 AI 助手。
  • 请遵循大模型的对话顺序规则,系统消息总是最先出现(也可以忽略),然后用户消息和助手消息像打乒乓球一样轮流发言。

一个简单的对话例子如下:

#我 : 1+1=?(用户消息)
(隔开一个空行)
#DeepSeek : (触发)

对话顺序规则如下:

graph LR
    A[系统消息] --> B[用户消息] --> C[助手消息] --> B

如果觉得 AI 助手回答不满意,想要重试。使用插件命令“选择光标处的消息”,选中 AI 助手的回答内容进行删除,修改下你的提问,再次触发 AI 助手。或者选中回答内容,使用命令比如“#DeepSeek :”,重新触发 AI 助手,会删除之前的回答内容,重新生成。

对话语法

一个段落不能包含多条消息。多条消息应该通过空行分隔开来。

Conversations syntax

  • 对话消息将发送到配置的 AI 服务提供商。
  • 标注部分 (callout) 将被忽略。你可以在标注里写内容,不将其发送到 AI 助手。callout 不是 markdown 语法,是 obsidian 的扩展语法。
  • 开始新对话,使用 新对话 标签。

标签命令都是基于选中/光标处的段落,一个 Markdown 段落可以是:

  • 没有空行隔开的多行普通文本
  • 代码块

在正确的语法情况下,在输入过程中,#标签后输入空格,会触发标签补全。例如:

#新对话

#系统 :

#我 :

#新对话 #系统 :

#新对话 #我 :

#助手 : (AI生成)

外观美化

建议使用 colored tags 插件.

Colored tags plugin

常见问题

如何触发?

有以下几种方式:

  • 从命令面板选择标签
  • 输入 # + 标签 + 空格
  • 直接输入完整标签(不带#)

设置页面没有想要的模型?

大部分服务商的模型列表是调用官方接口取回来的,不是插件里写死的——服务商不再公开的旧模型,列表里不会有。

可以在“覆盖输入参数”里填 JSON,例如 {"model":"你想要的model"},它的优先级高于选择器里选的模型。

如果列表根本拉不到——账号还没实名认证、中转站没实现这个接口——这一行会变成普通输入框,直接手动填模型名即可。

如何查看开发者控制台?

  • WindowsCTRL + SHIFT + i
  • MacOSCMD + OPTION + i
  • LinuxCTRL + SHIFT + i

获取控制台日志

在使用第三方服务商时如何输入地址?

修改设置中的 baseURL,从服务商的文档复制对应的地址粘贴过去,最后检查下网址是否完整。

第三方服务商选择哪个助手类型?

LLM的协议是有区别的,openAI,claude,gemini 差别很大,注意要选对。deepseek-r1 的思维链也和 openAI 不同。

错误提示中的 404,400,4xx数字是什么意思?

这些是 HTTP 状态码:

  • 401表示“未授权”(Unauthorized),可能是 API 密钥错误。
  • 402表示“需要付款”(Payment Required)。
  • 404表示“未找到”(Not Found),通常是 baseURL 配置错误,或者模型名称错误。
  • 400表示“错误请求”(Bad Request),可能是 API 密钥错误,缺失用户消息,标签解析失败导致消息缺失,模型错误等等。
  • 429表示“太多请求”(Too Many Requests),可能是请求频率过高,或者是服务商限制了请求频率。

生成文本很长,格式复杂,导致渲染性能问题或者程序假死

  • 尝试使用默认主题,有些第三方主题对渲染性能有负面影响,改用高效率的主题。
  • 尝试使用“源码模式”进行对话交互。当你觉得要输出长文本的时候,把编辑模式从“实时阅览”改为“源码模式”,这样obsidian不用去渲染,等输出完成后,再把编辑模式改回“实时阅览”。

相关的issue

开发

npm install
npm run dev     # 监听构建
npm run build   # 先类型检查,再打生产包
npm run lint

设置页由 Obsidian 依据 getSettingDefinitions() 渲染,构建和 lint 都无法验证它是否真的可用。 参见在运行中的 Obsidian 上手工测试:如何用 Obsidian CLI 驱动一个真实实例, 以及发布前应当跑一遍的检查清单。

服务商出问题的原因往往不在代码里:Obsidian 从 app://obsidian.md 跨域调用每一个 API, 而"被 CORS 拦下"和"主机根本连不上"报的是同一个错误,不刻意区分就分不开。 参见在真实网络下测试服务商,以及 npm run smoke—— 真正下判断的那套探针跑在 Obsidian 内部。

赞赏

如果你觉得这个插件对你有帮助,可以请作者喝杯咖啡☕️,支持一下后续的开发和维护工作。

赞赏