让 Agent 在 Obsidian 里整理笔记,把零散信息变成可以开始的下一步。
43.1/100
综合分
20
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/11/4 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/lee259/oh-my-claudian.git状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 0 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装engines.node 要求 >=24 <25,不满足 Node 22.19.0
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包claudian(未发布到 npm,仅可源码安装)
✗Node 引擎要求 >=24 <25 · 基线 Node 22.19 不满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/31 16:32:58
🔴 安全扫描发现高危能力自动 · 静态分析源码
v2.7.0🔴 扫描:高危尚无人工评估
静态扫描发现安装期即执行代码,或命令参数由运行时变量拼接(参数来源无法静态判定,从严处理)。
安装时即执行脚本可执行外部命令读写/删除本地文件
查看扫描证据(共 93 处,展示前 88 条)
- 读取本地文件scripts/postinstall.mjs:21
if (existsSync(example) && !existsSync(target)) { - 写入本地文件scripts/postinstall.mjs:22
copyFileSync(example, target); - 读取本地文件esbuild.config.mjs:28
if (existsSync('.env.local')) { - 读取本地文件esbuild.config.mjs:29
const envContent = readFileSync('.env.local', 'utf-8'); - 读取本地文件esbuild.config.mjs:66
if (!existsSync(outputPath)) continue; - 读取本地文件esbuild.config.mjs:94
const PLUGIN_MANIFEST = JSON.parse(readFileSync('manifest.json', 'utf-8')); - 读取本地文件esbuild.config.mjs:95
const OBSIDIAN_PLUGIN_PATH = OBSIDIAN_VAULT && existsSync(OBSIDIAN_VAULT) - 读取本地文件esbuild.config.mjs:99
const DISTRIBUTED_LICENSE_BANNER = `/*!\n${readFileSync(new URL('./LICENSE', import.meta.url), 'utf-8').trim()}\n*/`; - 写入本地文件esbuild.config.mjs:102
mkdirSync(path.join(process.cwd(), '.context'), { recursive: true }); - 执行外部命令来自配置/变量esbuild.config.mjs:140
execFileSync(process.execPath, ['scripts/build-css.mjs'], { - 删除本地文件递归esbuild.config.mjs:145
rmSync(path.join(process.cwd(), '.codex-vendor'), { recursive: true, force: true }); - 写入本地文件esbuild.config.mjs:150
mkdirSync(OBSIDIAN_PLUGIN_PATH, { recursive: true }); - 写入本地文件esbuild.config.mjs:156
copyFileSync(file, path.join(OBSIDIAN_PLUGIN_PATH, file)); - 删除本地文件递归esbuild.config.mjs:162
rmSync(pluginVendorRoot, { recursive: true, force: true }); - 读取本地文件scripts/build-css.mjs:213
if (!existsSync(INDEX_FILE)) { - 读取本地文件scripts/build-css.mjs:218
const content = readFileSync(INDEX_FILE, 'utf-8'); - 读取本地文件scripts/build-css.mjs:230
const entries = readdirSync(dir, { withFileTypes: true }); - 读取本地文件scripts/build-css.mjs:269
if (!existsSync(resolvedPath)) { - 读取本地文件scripts/build-css.mjs:274
const sourceContent = readFileSync(resolvedPath, 'utf-8'); - 写入本地文件scripts/build-css.mjs:311
writeFileSync(OUTPUT, output); - 执行外部命令来自配置/变量scripts/build.mjs:15
execFileSync(process.execPath, [join(ROOT, 'scripts/build-css.mjs')], { - 执行外部命令来自配置/变量scripts/build.mjs:21
execFileSync(process.execPath, [join(ROOT, 'esbuild.config.mjs'), ...process.argv.slice(2)], { - 读取本地文件scripts/check-architecture-boundaries.test.mjs:9
for (const entry of fs.readdirSync(root, { withFileTypes: true })) { - 读取本地文件scripts/check-architecture-boundaries.test.mjs:25
if (pattern.test(fs.readFileSync(file, 'utf8'))) { - 读取本地文件scripts/check-architecture-boundaries.test.mjs:34
const sourceText = fs.readFileSync(file, 'utf8'); - 读取本地文件scripts/check-architecture-boundaries.test.mjs:126
return fs.readdirSync(providersRoot, { withFileTypes: true }) - 读取本地文件scripts/check-architecture-boundaries.test.mjs:129
&& fs.existsSync(path.join(providersRoot, entry.name, 'registration.ts')) - 执行外部命令来自配置/变量scripts/check-eslint-config.test.mjs:61
const result = spawnSync(process.execPath, [ - 写入本地文件scripts/check-release-version.test.mjs:41
mkdirSync(path.join(root, 'scripts')); - 写入本地文件scripts/check-release-version.test.mjs:43
copyFileSync(new URL('./check-release-version.mjs', import.meta.url), script); - 写入本地文件scripts/check-release-version.test.mjs:45
writeFileSync(path.join(root, file), JSON.stringify({ version: tag })); - 执行外部命令来自配置/变量scripts/check-release-version.test.mjs:47
const result = spawnSync(process.execPath, [script, tag], { cwd: root, encoding: 'utf8' }); - 删除本地文件递归scripts/check-release-version.test.mjs:54
rmSync(root, { recursive: true, force: true }); - 读取本地文件scripts/check-startup-performance.mjs:17
if (!existsSync(artifactPath)) { - 执行外部命令来自配置/变量scripts/check-startup-performance.mjs:21
const syntaxCheck = spawnSync(process.execPath, ['--check', artifactPath], { - 读取本地文件scripts/check-startup-performance.mjs:31
const mainContents = readFileSync(mainPath, 'utf8'); - 读取本地文件scripts/check-startup-performance.mjs:43
const mainBytes = statSync(mainPath).size; - 执行外部命令来自配置/变量scripts/check-startup-performance.mjs:88
const result = spawnSync(process.execPath, ['-e', childScript, mainPath], { - 删除本地文件递归scripts/check-startup-performance.test.mjs:10
t.after(() => rm(directory, { recursive: true, force: true })); - 写入本地文件scripts/check-startup-performance.test.mjs:12
await mkdir(scriptDirectory); - 写入本地文件scripts/check-startup-performance.test.mjs:13
await copyFile(new URL('./check-startup-performance.mjs', import.meta.url), - 写入本地文件scripts/check-startup-performance.test.mjs:15
await writeFile(path.join(directory, 'main.js'), mainSource); - 写入本地文件scripts/check-startup-performance.test.mjs:16
await writeFile(path.join(directory, 'manifest.json'), '{}'); - 写入本地文件scripts/check-startup-performance.test.mjs:17
await writeFile(path.join(directory, 'styles.css'), ''); - 写入本地文件scripts/check-startup-performance.test.mjs:21
await mkdir(markdown, { recursive: true }); - 执行外部命令来自配置/变量scripts/check-startup-performance.test.mjs:32
return spawnSync(process.execPath, [path.join(directory, 'scripts', 'check-startup-performance.mjs')], { - 读取本地文件scripts/compressedStaticAssets.js:54
const english = JSON.parse(readFileSync(path.join(localeDirectory, 'en.json'), 'utf8')); - 读取本地文件scripts/compressedStaticAssets.js:58
readdirSync(localeDirectory) - 读取本地文件scripts/compressedStaticAssets.js:64
Buffer.from(JSON.stringify(packValues(shape, JSON.parse(readFileSync(path.join(localeDirectory, fileName), 'utf8')), fileName))), - 读取本地文件scripts/compressedStaticAssets.js:92
const dictionary = JSON.parse(readFileSync(args.path, 'utf8')); - 读取本地文件scripts/compressedStaticAssets.test.mjs:15
const files = readdirSync(localeDirectory).filter(name => name.endsWith('.json')).sort(); - 读取本地文件scripts/compressedStaticAssets.test.mjs:32
assert.deepEqual(compiled.exports, files.map(name => JSON.parse(readFileSync(path.join(localeDirectory, name), 'utf8')))); - 读取本地文件scripts/compressedStaticAssets.test.mjs:65
assert.deepEqual(compiled.exports.loadChinese(), JSON.parse(readFileSync(path.join(localeDirectory, 'zh-CN.json'), 'utf8'))); - 读取本地文件scripts/devWatchFiles.mjs:6
for (const entry of readdirSync(dir, { withFileTypes: true })) { - 读取本地文件scripts/devWatchFiles.mjs:19
const cssFiles = existsSync(styleRoot) ? listCssFiles(styleRoot) : []; - 写入本地文件scripts/devWatchFiles.test.mjs:12
mkdirSync(join(styleRoot, 'nested'), { recursive: true }); - 写入本地文件scripts/devWatchFiles.test.mjs:13
writeFileSync(join(root, 'manifest.json'), '{}'); - 写入本地文件scripts/devWatchFiles.test.mjs:14
writeFileSync(join(styleRoot, 'index.css'), '@import "base.css";'); - 写入本地文件scripts/devWatchFiles.test.mjs:15
writeFileSync(join(styleRoot, 'base.css'), '.base {}'); - 写入本地文件scripts/devWatchFiles.test.mjs:16
writeFileSync(join(styleRoot, 'nested', 'feature.css'), '.feature {}'); - 执行外部命令来自配置/变量scripts/run-jest.js:8
const result = spawnSync( - 执行外部命令来自配置/变量scripts/run-tests.js:7
const result = spawnSync(process.execPath, args, { - 读取本地文件scripts/sync-version.js:9
const packageJson = JSON.parse(fs.readFileSync(packagePath, 'utf8')); - 读取本地文件scripts/sync-version.js:10
const manifestJson = JSON.parse(fs.readFileSync(manifestPath, 'utf8')); - 写入本地文件scripts/sync-version.js:14
fs.writeFileSync(manifestPath, JSON.stringify(manifestJson, null, 2) + '\n'); - 读取本地文件scripts/workspaceToolBundle.test.mjs:50
contents: sdkImportMeta.patchSdkImportMetaUrl(readFileSync(args.path, 'utf8')), - 读取本地文件src/utils/cliBinaryLocator.ts:14
return fs.statSync(filePath).isFile(); - 读取本地文件src/utils/cliBinaryLocator.ts:24
fs.accessSync(filePath, fs.constants.X_OK); - 读取本地文件src/utils/env.ts:207
if (!fs.existsSync(nodePath) || !fs.statSync(nodePath).isFile()) return false; - 读取本地文件src/utils/env.ts:208
if (!isWindows) fs.accessSync(nodePath, fs.constants.X_OK); - 读取本地文件src/utils/externalContext.ts:115
const stats = fs.statSync(p); - 读取本地文件src/utils/externalContext.ts:134
const stats = fs.statSync(p); - 读取本地文件src/utils/externalContextScanner.ts:83
if (!fs.existsSync(dir)) return []; - 读取本地文件src/utils/externalContextScanner.ts:85
const stat = fs.statSync(dir); - 读取本地文件src/utils/externalContextScanner.ts:88
const entries = fs.readdirSync(dir, { withFileTypes: true }); - 读取本地文件src/utils/externalContextScanner.ts:103
const fileStat = fs.statSync(fullPath); - 写入本地文件src/utils/fileReplace.ts:11
await rename(temporary, target); - 读取本地文件src/utils/jsonlFile.ts:45
const raw = createReadStream(filePath, { highWaterMark: options.chunkBytes ?? JSONL_READ_CHUNK_BYTES, signal: options.signal }); - 读取本地文件src/utils/obsidianCompat.ts:137
const realPath = await fs.realpath(candidatePath); - 读取本地文件src/utils/obsidianCompat.ts:138
if ((await fs.stat(realPath)).isFile()) return await openVaultFile(app, realPath); - 读取本地文件src/utils/obsidianCompat.ts:154
const realVaultPath = await fs.realpath(vaultPath); - 读取本地文件src/utils/obsidianCompat.ts:156
const realFilePath = await fs.realpath(candidatePath); - 读取本地文件src/utils/obsidianCompat.ts:162
|| !(await fs.stat(realFilePath)).isFile() - 读取本地文件src/utils/path.ts:157
const target = fs.readFileSync(aliasFile, 'utf8').trim(); - 读取本地文件src/utils/path.ts:171
const alias = fs.readFileSync(path.join(nvmDir, 'alias', 'default'), 'utf8').trim(); - 读取本地文件src/utils/path.ts:178
const entries = fs.readdirSync(versionsDir) - 读取本地文件src/utils/path.ts:186
if (fs.existsSync(binDir)) return binDir; - 读取本地文件src/utils/path.ts:209
if (fs.existsSync(current)) {
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
展开完整介绍(106 字)↓
Obsidian 里的智能体:Claude Code、Codex、Cursor、Grok、OpenCode、Oh My Pi、Pi 和 DeepSeek Harness,用来在笔记里对话、行内编辑和审查文件差异。
README
由 DeepSeek 最新模型翻译生成Oh My Claudian
让 Agent 在 Obsidian 里整理笔记,把零散信息变成可以开始的下一步。
接入你已有的 Claude Code、Codex 或其他受支持的 Agent:对照来源笔记、起草带链接的总结、查看文件修改差异,并把结果保留为 Markdown。
安装插件 · 快速开始 · 试一个完整工作流 · English · 版本更新 · 反馈问题
Obsidian 中的 Oh My Claudian:来源笔记、聊天和展开的文件修改差异
真实 Obsidian 界面,使用示例对话内容;外观随主题和提供商变化。
从一个结果开始
- 整理零散笔记。 附上项目简介和研究笔记,让 Agent 比较来源,生成带笔记链接的总结。
- 直接改进草稿。 选中文本,提出修改要求,查看逐词差异后应用内联编辑结果。
- 阅读长任务。 完成的工具过程折叠成可展开摘要,方便看最新回答,也方便回看过程。
- 沿用已有 Agent。 在侧栏中使用提供商自己的认证、模型、权限,以及它支持的命令和技能。
快速开始
需要 Obsidian 桌面版 1.7.2 或更高版本,以及至少一个受支持的 Agent。插件采用 MIT 协议,免费使用;模型服务的订阅、API 费用和使用额度由所选提供商决定。安装插件不包含模型订阅。
展开完整文档(README 剩余 1 节)
Oh My Claudian 让 Agent 在 Obsidian 里整理笔记,把零散信息变成可以开始的下一步。 接入你已有的 Claude Code、Codex 或其他受支持的 Agent:对照来源笔记、起草带链接的总结、查看文件修改差异,并把结果保留为 Markdown。 安装插件 · 快速开始 · 试一个完整工作流 · English · 版本更新 · 反馈问题 Obsidian 中的 Oh My Claudian:来源笔记、聊天和展开的文件修改差异 真实 Obsidian 界面,使用示例对话内容;外观随主题和提供商变化。 从一个结果开始 - 整理零散笔记。 附上项目简介和研究笔记,让 Agent 比较来源,生成带笔记链接的总结。 - 直接改进草稿。 选中文本,提出修改要求,查看逐词差异后应用内联编辑结果。 - 阅读长任务。 完成的工具过程折叠成可展开摘要,方便看最新回答,也方便回看过程。 - 沿用已有 Agent。 在侧栏中使用提供商自己的认证、模型、权限,以及它支持的命令和技能。 快速开始 需要 Obsidian 桌面版 1.7.2 或更高版本,以及至少一个受支持的 Agent。插件采用 MIT 协议,免费使用;模型服务的订阅、API 费用和使用额度由所选提供商决定。安装插件不包含模型订阅。 1. 安装插件 在 Obsidian 打开 设置 → 第三方插件 → 浏览,搜索 Oh My Claudian,安装并启用。也可以打开插件目录页。 2. 先接好一个 Agent 选你已经在用的 CLI,在终端确认它能启动和完成认证,再配置插件中的同一提供商。 | | Claude Code | Codex | | 安装与认证 | 按 Claude Code 官方快速开始安装;在终端运行 claude,按提示登录。 | 按 Codex 官方指南安装;在终端运行 codex,按提示登录。 | | 已有账号 | 沿用 Claude Code 支持的账号或 API 配置。 | 沿用 Codex 支持的账号或 API 配置。 | | 插件设置 | 打开 设置 → Oh My Claudian → 提供商 → Claude Code,启用提供商。 | 打开 设置 → Oh My Claudian → 提供商 → Codex,启用提供商。 | | 就绪检查 | 检查 就绪状态,必要时设置 CLI 路径,并启用一个聊天模型。 | 检查 就绪状态,加载模型目录,并启用一个聊天模型。 | 就绪状态会检查提供商是否启用、CLI 是否可用、模型目录是否可用,以及是否选择了聊天模型。受支持的 CLI 可以提供安装或更新操作,执行前展示命令供确认,执行后检查结果。认证由提供商自己的 CLI 完成。 CLI 在终端可用、插件却找不到时,在对应提供商设置中填写 CLI 可执行文件的绝对路径。从桌面启动的 Obsidian 与终端的 PATH 可能不同。 3. 得到第一条回答 从命令面板打开 Oh My Claudian: Open chat view,或点击功能区图标。选择已启用的模型,输入 @ 选择一篇笔记,发送: 请用三个要点概括这篇笔记,附上来源笔记链接,并建议一个下一步。先不要修改任何文件。 发送前,确认输入框中已出现笔记附件标签;发送后,检查聊天中的回答。先确认这一步能完成,再尝试下面的写入工作流。没有可选模型或收不到回答时,先看常见问题。 试一个完整工作流 将 docs/demo-vault 中三篇示例笔记复制到 测试仓库,在该仓库安装并配置插件,使用 @ 附上三篇笔记。 1. 让 Agent 比较来源,提出三个可执行的下一步,暂不改文件。 2. 看过计划后,请它向 Project Brief.md 添加 Next steps 小节,每条行动链接到来源笔记。 3. 提供商返回受支持的编辑数据时,展开文件编辑卡片查看 diff,再打开笔记确认结果。聊天工具的写入可能已按提供商权限执行;内联编辑另有预览后应用的流程。 示例操作指南 提供可复制的提示词、检查结果的方法和演示录制方案。不同模型的输出和速度会有差异。 如果它帮助你处理了笔记,欢迎给仓库点一个 Star,帮助其他人发现项目。具体的使用反馈和问题报告也很有价值。 与 Claudian 的关系 Oh My Claudian 基于 Yishen Tu 的 Claudian 分叉而来,保留原项目的 MIT 协议和基础工作流,包括聊天、@ 引用、slash commands 和内联编辑。目前独立维护,并非 Claudian 官方版本。 | 你的需要 | 可以在这个版本中尝试 | | 在仓库中使用 Cursor Agent 或 Oh My Pi | 与 Claude Code、Codex、Grok Build、OpenCode 和 Pi 一起提供内置集成。 | | 配置本地 Agent 时需要指引 | 提供商专属的就绪状态,以及受支持的 CLI 安装/更新入口。 | | 长对话中方便查看过程和修改 | 展开已完成工作摘要、文件 diff,并保留阅读位置。 | | 操作 Obsidian 的笔记结构 | Claude、Codex、DeepSeek Harness、OpenCode 和 Pi 可以检查反向链接、管理属性,以及通过 Obsidian 移动文件并更新链接。 | 这些是本项目的维护重点。上游独立演进,对比时请查看 Claudian 当前 README。已有配置满足需要时,可以继续使用原来的版本。 把回答保存为笔记 在聊天消息中选中内容,点击浮层里与「引用」并列的「保存到笔记」,可编辑、预览选中内容,再新建笔记或追加到已有笔记。选区中的标题、强调、链接、列表、表格和代码块会从渲染内容还原为 Markdown;路径中的文件夹须已存在。保存成功后可打开笔记,或在弹窗内撤销本次正文。撤销会保留后来追加的内容,遇到冲突则停止;新建的笔记文件会保留。 支持的提供商 内置 Claude Code、Codex、Cursor Agent、Grok Build、Oh My Pi(OMP)、OpenCode、Pi 和 DeepSeek Harness。具体认证、权限、规划、历史、模型目录、命令、技能及 MCP 能力由各提供商决定;界面仅展示所选提供商支持的功能。官方文档入口 DeepSeek Harness 需先配置好 dsh web,或打开一次 DeepSeek Harness Desktop 完成设置,再在 提供商 → DeepSeek Harness 中启用、发现模型并手动选择聊天模型。自动发现优先使用 dsh;要使用 Desktop,请填写 .app 路径或 Windows 安装目录。集成复用原生配置、凭证和 MCP,支持历史恢复、图片、权限、停止、可选代码模式及附加预设插件;聊天预设通过会话隔离的本地桥接提供 Obsidian 原生笔记工具,辅助预设保持原有策略;目前不提供规划模式。 常见问题 | 问题 | 先检查什么 | | 找不到 CLI | 对应提供商的就绪状态、可执行文件绝对路径,以及 Obsidian 的 PATH。 | | 没有可选模型 | 先确认 CLI 登录成功,重新检查/加载模型目录,再启用聊天模型。 | | Claude 订阅能用,插件却认证失败 | 检查是否继承了冲突的 ANTHROPIC_API_KEY 或 ANTHROPIC_AUTH_TOKEN。见凭证冲突指引。 | | 某个按钮或命令没有出现 | 核对所选提供商是否支持该能力。 | | 工具成功,但文件卡片没有 diff | 提供商需要返回受支持的编辑数据;成功状态本身不包含修改行。 | 报告问题时,请提供插件版本、Obsidian 版本、系统、提供商、CLI 版本和复现步骤。日志和截图中请移除密钥和私人笔记内容。 数据与权限 插件采用本地优先设计,不发送插件遥测。提示词、附件和工具结果会发送到你所选的提供商及其配置的模型服务;CLI 版本检查和配置的 MCP 服务也可能访问网络。 仓库是 Agent 的工作目录,不是操作系统级隔离环境。CLI、shell、MCP 或子进程可能访问当前系统账号允许访问的文件和服务。使用前检查提供商权限,尤其是自动批准、浏览器、MCP 和外部路径相关设置。 显式附上外部文件并不意味着授予写入权限;受支持的提供商会对仓库外直接编辑采用审批流程。完整说明 开发与协议 开发及构建 · 贡献指南 · MIT 协议 收起侧栏后继续聊天 桌面端收起 Oh My Claudian 所在侧栏后,原聊天视图会移动到笔记上方的悬浮面板。点击活动预览可展开或收起对话;重新展开侧栏即可恢复。草稿、运行中的回答和待审批请求仍由同一个会话管理。 拖动面板底部的手柄可调整位置;聚焦手柄后也可用方向键移动,按住 Shift 加大步长。Home 键或双击手柄会归位到底部中央,位置会保存。可在插件通用设置中关闭「启用禅模式」。主区域标签页和弹出窗口不进入悬浮模式。 空对话仅显示输入框。可在快捷键设置中为「显示或隐藏禅模式面板」和「展开或收起禅模式对话」绑定按键。临时隐藏后恢复会聚焦原输入框;重新打开所属侧栏会重置临时隐藏状态。模型和权限菜单会朝工作区空间更充足的方向展开。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
lee259/oh-my-claudian
让 Agent 在 Obsidian 里整理笔记,把零散信息变成可以开始的下一步。
相关插件 · 对话 / 记忆
上下文中枢oceanbase/powercontext
上下文跟着工作走 —— 跨会话、跨智能体、跨人。
★ 1,489已汉化DSH
73.1
智能体记忆库plastic-labs/honcho
Honcho 是记忆基础设施,用来构建有状态的智能体。这些智能体能理解不断变化的人、智能体、群组、项目和想法。
★ 7,918已汉化DSH
71.7
长程智能体控制面loopx-project/loopx
给 Agent 一个目标,让工作持续向前。
★ 6,358已汉化DSH
71.3
智能体上下文数据库volcengine/OpenViking
给 AI 智能体用的上下文数据库
★ 41,453已汉化DSH
71.3
长效机器人团队Fei2411/DS-Bot
Download DS Bot for Windows 10/11 64-bit / 下载 Windows…
★ 5,293已汉化DSH
71.2
可携带记忆层EverMind-AI/EverOS
为什么选择 EverOS
★ 13,797已汉化DSH
71.1
这是你的仓库?认领条目