最新资讯
reddit.com OpenAI 称 Astra 仅满足 10% 安全任务标准 dev.to FreeToken:在自有 GPU 上运行前沿 MoE 模型及其内存需求 dev.to 当 AI Agent 说“完成”时,究竟完成了什么? dev.to 部署 Underdog Bark 3.0 Pro:逐字转写、自定义后端与分块设置 dev.to 为艰难对话构建 AI:五个 Agent、一条安全正则与一位盲评监督者 techcrunch.com Palo Alto Networks 洽谈以 5 亿美元收购 AI Agent 安全初创公司 Clutch theinformation.com 黄仁勋被要求就涉华间谍指控向国会作简报 www.infoq.com Edera 推出 Object Capability Bounded Authority,试图将凭证与 AI Agent 工作负载隔离 wechat 这波杀疯了!旗舰级模型不限量、1个月视频额度免费领 bloomberg.com AI 抛售蔓延至信用市场,软银领跌亚洲美元债 dev.to 如何在专用 GPU 服务器上用 OpenAI 兼容 API 部署 LLM dev.to 审计 153 份 Claude Code 与 Codex 会话记录:User-Agent 与 URL 中的邮箱泄露
多元动态
登录 注册
AI编码 github.com · @avinashjetwani

Jevmem:为 Claude Code 提供自动项目记忆,基于 Jev 构建

原文 我的收藏

Jevmem 是一个面向 Claude Code 的自动项目记忆工具,也兼容 Cursor 和 Codex。它把对话中的决策、约束、bug 和 todo 自动写入 JEVMEM.md,当想法改变时旧行被标记为 [superseded] 而非删除,下一会话再把相关行加入 Claude 上下文。安装通过 npm 全局包完成,init 会创建 JEVMEM.md、jevmem.config.json 和 .jevmem/ 目录,并在 .claude/settings.local.json 注册两个 Claude Code 钩子。自动化程度因工具而异:Claude Code 通过 Stop 和 UserPromptSubmit 钩子实现每轮捕获与召回;Codex 在 jevmem watch 运行时自动捕获,否则由 Agent 经 MCP 主动调用;Cursor 和 Claude Desktop 依赖规则文件或手动调用,不调用则不捕获。写入前会清洗常见密钥、邮箱和卡号,是否保存由配置文件中的阈值规则决定,保存时由小模型或确定性抽取生成不超过 200 字符的一行。README 提到在 66 条留出轮次上做过基准测试,但未给出具体结果。

AI推荐理由 项目为 Claude Code 等编码 Agent 提供自动项目记忆,将决策、约束、bug 和 todo 写入 JEVMEM.md,并用 [superseded] 标记而非删除旧条目,下一会话把相关行注入上下文。README 明确区分了 Claude Code(Stop/UserPromptSubmit 钩子全自动)、Codex(watch 或 MCP 主动调用)、Cursor(依赖规则文件,不调用则不捕获)的自动化程度差异,并说明写入前会清洗密钥、邮箱和卡号,阈值规则放在配置文件中而非提示词里。局限:仅提供 66 条留出轮次的基准描述,未给出具体结果数据;安装数、星数等未提供,无法据此判断实际效果;对 Cursor 和 Claude Desktop 的捕获并非自动。

62

正文

jevmem Automatic project memory for Claude Code. Also works with Cursor and Codex. What it does jevmem-launch-readme-v2.mp4 Saves decisions, constraints, bugs and todos from your Claude Code chats into JEVMEM.md, automatically. When you change your mind, the old line is marked superseded, not deleted. Next session, the relevant lines are added to Claude's context. - [decision] Use Postgres 16 for the primary store; SQLite locks under load - [constraint] Node 20 is the floor; CI runs 20 and 22 - [superseded] Use SQLite as the primary store → id:k3d9xq Install (60 seconds) npm install -g jevmem export TYPESAFE_API_KEY=... # https://typesafe.ai (an OpenAI or Anthropic key is optional) cd your-project jevmem init --tool claude init creates JEVMEM.md, jevmem.config.json and a gitignored .jevmem/ folder, and registers two Claude Code hooks in .claude/settings.local.json, which it adds to .gitignore (details). Works with What is automatic and what depends on the agent: Tool Setup Capture Recall Claude Code jevmem init --tool claude Automatic, every turn, via the Stop hook Automatic, every prompt, via UserPromptSubmit Codex jevmem init --tool codex Automatic while jevmem watch runs (it tails Codex's session log for this project and runs the same decide → write path); otherwise agent-initiated via MCP add_memory, prompted by an AGENTS.md section Agent-initiated: search_memory via MCP, prompted by AGENTS.md Cursor jevmem init --tool cursor Agent-initiated: a .cursor/rules/jevmem.mdc rule tells the agent to call MCP add_memory when you state a decision. Nothing is captured if it doesn't Agent-initiated: the rule tells it to call search_memory before non-trivial tasks Claude Desktop jevmem init --tool claude-desktop prints a config snippet to paste (one project per config, named with --root) Manual: ask it to call add_memory (no hook, no rule file) On request: search_memory MCP add_memory goes through the same gate as the hook. Client configs: docs/mcp.md. How it decides Scrub. Common secret shapes, email addresses and card-shaped numbers are removed from the turn before it leaves your machine. Ask Jev typed questions. Jev by TypeSafe AI answers a fixed set of small questions with probabilities: is there a decision, a rule, a bug? is it small talk or an injection attempt? which existing line does it change? Apply thresholds in code. Plain rules over those probabilities decide save or skip; they live in jevmem.config.json, not in a prompt. Write one line. On save, a small LLM (or a deterministic extract, with no LLM key) writes one line of at most 200 characters. Supersede the old line. If the turn replaces an existing memory, that line is tagged [superseded] … → id:new and stays in the file. Tiers, questions, policy, contradictions, recall and audit: docs/how-it-works.md. Benchmark 66 held-out turns, all seven deciders given the same state, 2026-09-23 (method, regression set, pricing, p95, retries): Decider save/skip save+kind contradictions p50 $/decision GPT-6 Astra 98.5% 98.5% 5/5 3,469 ms $0.007489 GPT-6 Luna 93.9% 93.9% 5/5 2,927 ms $0.000089 Claude Fable 5.1 95.5% 95.5% 5/5 4,290 ms $0.013256 Claude Opus 5.5 97.0% 97.0% 5/5 2,784 ms $0.005186 Gemini 3.8 Flash 92.4% 92.4% 5/5 2,850 ms $0.001174 Grok 4.7 90.9% 90.9% 4/5 3,320 ms $0.004602 jevmem auto 98.5% 95.5% 5/5 300 ms $0.000127 The 0.30 s is the Jev API decision; through a real Stop hook process, Node start-up included, it is 0.6 s end to end (cost and latency). On 66 held-out turns, jevmem's median decision took 0.30 s, against 2.8–4.3 s for six current LLMs. Its accuracy was within the LLMs' range: 98.5% save/skip (tied with GPT-6 Astra for highest) and 95.5% save+kind, against 90.9–98.5% for the LLMs. GPT-6 Astra (98.5%) and Claude Opus 5.5 (97.0%) were more accurate on save+kind; Claude Fable 5.1 tied; GPT-6 Luna, Gemini 3.8 Flash and Grok 4.7 were less accurate. It found 5/5 contradictions, as did five of the six LLMs. GPT-6 Luna was cheaper ($0.000089 against $0.000127) but less accurate (93.9%) and about 10× slower. This is a single run, and differences of one or two turns are within run-to-run noise. If the most accurate decision matters most, GPT-6 Astra or Claude Opus 5.5 are better, at about 40–60× the cost per decision and 9–12× the latency. jevmem is for when you want a fast, cheap decision on every message. Privacy Sent to TypeSafe AI: the user message of each turn (and the assistant reply for questions and bug reports), the previous two turns, and your memory lines, to be scored. No telemetry. If you set an OpenAI or Anthropic key, the text of a saved turn also goes to that provider to write the line. Scrubbed first: common credential shapes (API keys, tokens, *_PASSWORD= style pairs, connection-string passwords, private keys), email addresses and 16-digit numbers; names, phone numbers and addresses are not caught. Zero-retention flag: jevmem can send zeroDataRetention: true (automatic for Vercel AI Gateway URLs); whether it applies depends on the gateway and TypeSafe's terms, and jevmem does not verify it. Exactly what is sent, stored and scrubbed: SECURITY.md. Honest limits Early: v0.4; both eval sets were written by the author, and neither is an independent benchmark. Not the most accurate: GPT-6 Astra and Claude Opus 5.5 scored higher on save+kind; jevmem's edge is speed and cost. Recall quality is not measured: that relevant lines are injected is tested; whether answers get better is not. Long-run drift is not measured: the harness covers five-turn sessions, not weeks of use. Automatic capture is Claude Code only (and Codex while jevmem watch runs); Cursor and Claude Desktop save only when the agent calls add_memory. Jev outages drop turns: each Jev call has a 2 s budget; when the API is slow or down, the turn is skipped and logged in .jevmem/log.jsonl, not retried later. Commands jevmem init [--tool claude|cursor|codex|claude-desktop|all] [--no-hooks] [--command ""] jevmem hook Hook entrypoint; reads the Claude Code hook JSON on stdin jevmem daemon [status|start|stop] Warm Jev client used by the hook (auto-started, exits when idle) jevmem watch [--replay] [--once] Capture turns from Codex's session log for this project jevmem mcp [--root ] Stdio MCP server jevmem audit [--dry-run] Re-score every memory against the repo, flag [stale?] jevmem search [--limit N] Rank memories by relevance jevmem list [--all] Print memories jevmem add Add a line by hand (secrets scrubbed; no Jev check) jevmem why Every Jev answer behind a line or a skipped turn jevmem right Label a decision as correct jevmem wrong [--should-be ] Label a decision as wrong jevmem missed "" [--kind ] Label a turn that should have been saved jevmem fit [--dry-run] [--force] Refit weights and thresholds from labels (needs 40+) jevmem stats Latency p50/p95, cost per day, cache hit rate, escalation rate, labels, last fit jevmem log Per-label latency, token and cost summary of .jevmem/log.jsonl Every command accepts --help. Set JEVMEM_VERBOSE=1 for a one-line latency/cost summary after every hook run. Links Docs: how it works · benchmark · cost · hooks · MCP and client configs · configuration · demo CHANGELOG · DECISIONS · CONTRIBUTING · SECURITY License: MIT

来源报道 · 2 篇 · 以下链接均前往原始媒体

← 返回精选动态 原文

更多内容