myc 本地代理记忆与任务层
为编码代理提供本地任务、持久记忆与代码索引。
- Star 数
- ★ 13
- 最近更新
- 4 天前
- License
- MIT
- 主语言
- TypeScript
- FA 评分
- 87/100 · 表现良好
30 秒速览
- 可在哪里用
- 通用 · 跨平台Codex · Claude Code
- 开始前需要
- 典型场景
- 频繁经历上下文压缩的 Claude Code 用户,可用预压缩钩子保存原始会话,并在下一段上下文中获得恢复信息。
- 主要局限
- 运行时锁定 Bun 和
bun:sqlite,不能在普通 Node.js 或 Deno 上启动;旧版 SQLite 还会导致拒绝运行或并发退化警告。 - 源码审查
- 87/100 · 表现良好
这个 Agent 能做什么,适合哪些场景?
myc 是面向编码代理的本地任务与记忆层,把任务队列、事实和决策日志、混合检索及代码索引保存在项目工作区中。它提供 CLI、MCP 服务和代理钩子,可接入 Claude Code、Codex、opencode 与 Kimi;其中 Claude Code 还支持压缩前记忆保存、状态栏和重命令排队钩子。数据由 SQLite 管理,跨机器同步时只需通过 Git 交换 oplog,而不是上传数据库和缓存。内置代码智能使用按需获取的 tree-sitter 语法,支持 TypeScript、TSX、JavaScript 和 Python 的符号、调用关系及语义搜索,其他文件仍可使用字面搜索。核心操作不要求 LLM 密钥,也不会自行访问网络;只有模型、语法下载及显式版本检查等操作联网。目前它定位为单用户、本地文件工具,尚无服务器、ACL、团队模式、网络同步或 PostgreSQL 后端。
在项目中运行 myc init 后,myc 创建 .myc/、SQLite 数据库和迁移;myc wire 再为所选编码代理写入或合并 MCP、钩子和技能配置。代理可通过 myc ready --claim 领取任务,用 myc show 查看任务上下文,以 myc close 完成任务,并用 myc remember 记录事实或决策。myc recall 对项目记忆执行词法检索,并在显式下载嵌入模型后加入向量检索;myc prime 生成当前会话的上下文包。myc code fetch 下载当前仓库所需且经过 SHA-256 校验的语法,myc code index 建立增量索引,随后 myc code symbol、myc callers、myc code search、myc code grep、myc code map 和 myc skeleton 输出定义、调用者、搜索结果、结构图或文件 API。压缩前钩子会把会话 episode 先写入磁盘,并把提取出的决定作为待审核候选保存;确认前,这些候选不会进入 recall、search、prime 或 MCP 检索结果。myc run -- <command> 使用用户级共享队列串行化完整测试、构建等重命令,myc export 和 myc import 则通过 Git 中的 oplog 在机器之间交换数据。
- 频繁经历上下文压缩的 Claude Code 用户,可用预压缩钩子保存原始会话,并在下一段上下文中获得恢复信息。
- 同时使用 Claude Code、Codex、opencode 或 Kimi 的开发者,可让多个客户端通过同一项目级 MCP、任务图和记忆库工作。
- 在多个进程或多个相邻仓库中运行完整测试和构建的个人开发者,可用
myc run避免重任务争抢本机资源。 - 维护 TypeScript、JavaScript 或 Python 代码库的代理,可通过符号、调用关系、代码地图和语义搜索定位实现,而不必读取全部文件。
- 从 beads 迁移任务图的用户,可先预演导入,再同步任务、依赖、评论、记忆及受支持的元数据。
- 需要在多台机器间延续代理工作但不希望部署服务的个人用户,可把 oplog 纳入 Git,并在克隆后导入。
如何安装或部署这个 Agent?
前置条件是 Bun 1.3.0 或更高版本、SQLite 3.44.0 或更高版本,以及 macOS 或 Linux;Windows 必须在 WSL 内安装和运行。安装命令:bun install -g @aistastudio/myc。用 myc --version 验证安装。安装包不会自动下载嵌入模型或代码语法,因此基础词法检索可立即使用;需要语义检索时运行 myc models fetch,需要代码索引时运行 myc code fetch。源码安装方式为:git clone https://github.com/aistastudio/myc && cd myc,然后运行 bun install、bun run build 和 ./dist/myc --version。
如何使用这个 Agent?
在目标 Git 仓库中运行 myc init,再运行 myc wire 为 Claude Code、Codex、opencode 和 Kimi 配置钩子与 MCP;若只需部分客户端,可用 myc wire --agents claude,codex。一个最小工作循环是:myc ready --claim 领取下一项任务,myc show <id> 查看上下文,完成后执行 myc close <id>;用 myc remember "why X, not Y" 保存决定,用 myc recall "how retrieval works" 检索,用 myc prime 生成会话上下文。若要启用代码智能,先执行一次 myc code fetch,再执行 myc code index;可用 myc doctor 检查 SQLite、模式、计数和钩子状态。建议首次接线前运行 myc wire --dry-run 查看变更;状态栏和重命令队列分别通过 --status-line 与 --queue-hook 显式启用。
这个 Agent 有哪些优点和局限?
- 核心完全本地运行且不强制要求 LLM 密钥;未安装嵌入模型时仍提供明确标记的 BM25 词法检索。
- 把任务、长期记忆、会话隔离、代码索引、MCP 和重命令队列整合在一个 CLI 中,减少编码代理所需的外围工具数量。
- 退化状态会显示
WARN,并可通过--strict以退出码 6 暴露,避免把词法回退或过时索引误认为健康结果。 - Git 同步只提交 oplog,并按字段合并并发修改;派生数据库、投影和缓存无需进入版本控制。
- 对嵌套仓库和 Git worktree 有明确处理,包括共享主工作区索引、局部路径回答及分支不一致警告。
- README 给出了可复现的延迟、排名和测试测量,并说明校准平台及未强制执行的环境边界。
- 运行时锁定 Bun 和
bun:sqlite,不能在普通 Node.js 或 Deno 上启动;旧版 SQLite 还会导致拒绝运行或并发退化警告。 - 原生只面向 macOS 和 Linux;Windows 用户必须使用 WSL,不能从 cmd 或 PowerShell 启动。
- 语义搜索需要额外下载约 129 MB 的嵌入模型,代码智能也必须联网按需获取语法。
- 符号和调用关系规则目前仅覆盖 TypeScript、TSX、JavaScript 与 Python,其他语言只能使用 grep、锚点和陈旧性信息。
- 当前没有服务器、ACL、团队模式、网络同步或 PostgreSQL,因而不适合需要集中式多人权限管理的组织。
- Git worktree 与主检出版本不一致时,符号跨度和骨架可能对应主副本,而不是当前分支;工具会警告,但仍需用户判断结果。
这个 Agent 与同类方案有什么区别?
与 beads 相比,myc 不只是导入器:它提供自己的任务图、记忆、检索和代理接线层。仓库提供 myc import-beads --dry-run 与正式导入流程,并支持后续同步、字段冲突报告、评论、依赖和记忆迁移。其就绪队列还实现了从父任务继承阻塞关系,以修正早期版本与 beads 队列结果不一致的问题。不过,该迁移路径依赖可用的 bd export --include-memories 数据,局部与双向修改可能需要人工处理冲突。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|
| myc 本地代理记忆与任务层 当前 | 87 · 表现良好 | ★ 13 | 4 天前 | TypeScript | Codex · Claude Code |
| Aura 代码变更审计 | 70 · 存在缺口 | ★ 47 | 5 天前 | Rust | Codex · Claude Code |
| Caura | 70 · 存在缺口 | ★ 533 | 今天 | Python | Codex · Claude Code · Claude.ai |
| Magic Context | 54 · 缺口较多 | ★ 2.2k | 今天 | TypeScript | — |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示工具默认本地运行,网络访问被限定到明确命令或可选更新检查;模型、语法下载、队列钩子、状态栏和用户级接线均为显式选择。接线支持 dry-run、逐节点合并、旁置备份和 unwire,权限规则不会被 myc run 绕过,代码索引还拒绝读取常见凭据文件。扣分在于敏感会话虽标记为 private 并进行秘密掩码,但材料没有说明静态加密、保留期限、删除策略或掩码覆盖率;用户确认机制很强但并非每项本地写入都逐次确认。依赖有哈希校验、deps-check 和受控 SQLite 构建,但未提供锁文件或依赖审计结果。MIT 版权归属清楚,不过发布者身份未验证,材料也未完整交代所有第三方组件的归属。
README、package.json 和工作流对 Bun、SQLite、构建、测试及基准方法基本一致,并明确区分可强制执行的相对检查和未校准机器上的绝对数字。SQLite 前置条件、缺失模型或语法、等待超时、接线缺失和索引偏离均有具体警告或拒绝信息。扣分在依赖可用性:产品严格绑定 Bun 和特定 SQLite 能力,语义模型及语法需要后续网络下载,CI 又使用 latest Bun,长期复现仍依赖外部供应与兼容性。
材料覆盖单代理、多代理、嵌套仓库、git worktree、迁移、离线词法搜索、代码索引和多种宿主接线,且明确说明能力边界、支持语言、作用域和触发条件。钩子对重型命令有较精细的匹配、排除和覆盖设置。环境适配扣分是因为仅原生支持 macOS 和 Linux,Windows 只能使用 WSL,且不能在普通 Node.js 或 Deno 上运行;代码符号规则也仅覆盖 TypeScript、JavaScript 和 Python。
README 提供清晰的安装、快速开始、命令示例、设计文档入口、帮助路径和已知限制,MIT 许可证正文与元数据一致。扣分在于没有提供独立 FAQ;版本信息存在根 package.json 为 0.0.0、README 示例为 0.3.14 的双轨表达,虽可能是 monorepo 设计但来源材料未解释。发布变化散见于版本说明和历史案例,没有给出完整 changelog。维护主体仅能从 aistastudio 版权、仓库名和少量 issue 提及推知,没有明确维护者、支持渠道、响应承诺或安全报告路径。
输出设计强调可操作性:警告会说明降级、缺失组件、等待对象、索引陈旧或 worktree 偏离,并通常附带下一条命令。任务、持久记忆、候选决策复核、代码索引和跨项目重型任务队列形成明显的组合价值。成本也有具体控制,包括本地默认、按需下载、增量索引、后台刷新、大小披露和延迟预算;在静态材料范围内未发现需要扣分的明确效用缺口。
多数性能和排名主张附有日期、脚本、语料或测试路径,并明确标注未重新测量、硬件未校准及哪些断言不会在共享 CI 中强制执行。README 的要求由 package.json 和两个工作流交叉支持,工作流还保存夜间测量产物。事实、测量、历史缺陷和当前推断区分得较清楚,因此静态可追溯性充分;但本评估未运行任何脚本或独立验证结果。
- 本次仅依据所给静态文件评估,未执行构建、测试、基准、安装、接线或撤销流程。
- 会话记录、项目记忆和用户级队列数据库会写入本地磁盘;材料未说明静态加密、自动过期、安全擦除或完整的数据删除流程。
- myc wire --scope user 会修改用户级 Claude Code 或 opencode 配置并安装钩子、插件和 MCP 项;使用前应先运行 --dry-run,并确认备份与 unwire 行为符合本地策略。
- 语义模型、tree-sitter 语法和更新检查会产生网络访问;应审查下载来源、哈希目录及组织的网络政策。
- 根 package.json 的 0.0.0 与 README 的 0.3.14 不一致;发布或审计时应确认实际分发包版本及其对应提交。
- 发布者未被 FollowAgents 企业注册表验证,因此不要仅凭名称推定维护身份、支持承诺或供应链信誉。
常见问题
日常使用是否必须联网或配置 LLM API 密钥?
myc models fetch、myc code fetch、显式版本检查以及启用的每日后台版本检查会联网。没有下载嵌入模型时会发生什么?
WARN degraded.embeddings。如需把退化视为失败,可使用 --strict,此时命令返回退出码 6。myc wire 会覆盖现有代理配置吗?
.myc.bak;CLAUDE.md 不会被修改。可先用 myc wire --dry-run 检查所有计划变更,并用 myc unwire 删除其写入内容。它适合团队共享的中央记忆服务吗?
敏感文件会进入代码索引吗?
.env、私钥、证书、keystore、.npmrc、.netrc 等凭据类文件会被排除,code grep 也拒绝读取它们;模板文件如 .env.example 可以被索引。