codeagent-memory MCP server
2026년 11월 13일 커밋tree-sitter 심볼과 하이브리드 RRF 검색을 사용하여 코딩 에이전트용 로컬 코드 그래프 및 대화형 메모리 시스템을 제공합니다.
다른 이름 HanochZhu/codeagent_memory
- 스타
- 1
- Tools
- —
- 다운로드, 30일
- —
- 최신 버전
- 0.1.6
- 마지막 커밋
- 2026년 11월 13일
- 라이선스
- MIT
codeagent-memory MCP란?
codeagent-memory은(는) MCP server입니다. tree-sitter 심볼과 하이브리드 RRF 검색을 사용하여 코딩 에이전트용 로컬 코드 그래프 및 대화형 메모리 시스템을 제공합니다.
프로젝트 README에서 생성된 요약
codeagent-memory MCP server 정보
codeagent-memory는 AI 코딩 에이전트를 위해 특별히 설계된 로컬 이중 레이어 검색 시스템을 제공합니다. 구조적 탐색을 위한 코드 그래프와 프로젝트 사실 및 아키텍처 결정 사항을 유지하는 대화형 메모리 트리를 결합했습니다. 이 시스템은 Rust 커널로 구축되었으며 SQLite 데이터베이스를 사용하여 로컬 머신에서 완전히 작동하므로 프라이버시가 보장되고 API 비용이 들지 않습니다.
개발자는 MCP stdio 인터페이스를 통해 Cursor, Claude Code, Windsurf, GitHub Copilot과 같은 인기 환경에 이 MCP server를 통합할 수 있습니다. 메인 에이전트는 MCP 도구를 통해 상호작용하지만, 서브 에이전트는 JSON 기반 CLI를 통해 동일한 로직을 활용할 수 있습니다. 이 도구는 tree-sitter를 사용하여 함수 및 타입과 같은 심볼을 파싱하며 Rust, Python, TypeScript를 포함한 9가지 프로그래밍 언어를 지원합니다.
검색은 두 가지 별도의 평면을 통해 처리됩니다. 코드 그래프는 파일 전체가 아닌 특정 심볼 본문을 정밀하게 읽을 수 있게 해주며, 메모리 트리는 밀집 임베딩(dense embeddings)과 BM25를 결합한 하이브리드 RRF 검색을 사용합니다. 이를 통해 에이전트는 복잡한 프로젝트 컨텍스트를 회상하고 호출자(caller)와 피호출자(callee)를 통해 코드베이스를 효율적으로 탐색할 수 있습니다.
활용 사례
- 1문맥 기반 프로젝트 회상개발자가 에이전트에게 특정 아키텍처 결정 사항이나 디버깅 노트를 기억하고 검색하도록 요청할 수 있습니다.
- 2자동 메모리 관리시스템이 새로운 수정 사항을 이전 버전과 연결함으로써 오래된 정보를 자동으로 관리할 수 있습니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
codeagent-memory MCP 설치 방법
형식 확인: 2026년 11월 10일Claude Code에 codeagent-memory MCP 설치
$ claude mcp add codeagent-memory -- docker run -i --rm ghcr.io/hanochzhu/codeagent-memory:0.1.6Cursor에 codeagent-memory MCP 설치
~/.cursor/mcp.json
{
"mcpServers": {
"codeagent-memory": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/hanochzhu/codeagent-memory:0.1.6"
]
}
}
}VS Code에 codeagent-memory MCP 설치
.vscode/mcp.json
{
"servers": {
"codeagent-memory": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/hanochzhu/codeagent-memory:0.1.6"
]
}
}
}Claude Desktop에 codeagent-memory MCP 설치
claude_desktop_config.json
{
"mcpServers": {
"codeagent-memory": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/hanochzhu/codeagent-memory:0.1.6"
]
}
}
}Codex에 codeagent-memory MCP 설치
~/.codex/config.toml
[mcp_servers.codeagent-memory] command = "docker" args = ["run", "-i", "--rm", "ghcr.io/hanochzhu/codeagent-memory:0.1.6"]
Gemini CLI에 codeagent-memory MCP 설치
~/.gemini/settings.json
{
"mcpServers": {
"codeagent-memory": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/hanochzhu/codeagent-memory:0.1.6"
]
}
}
}자동 검사
2026년 11월 14일에 실행됨전체 보고서 →아직 인증되지 않았습니다. 서버는 80점 이상의 점수, 심각한 결함 없음, 그리고 검사에 충분한 데이터를 갖추어야 합니다. 검사 방식
- 소스 저장소 연결 및 접근 가능hanochzhu/codeagent_memory is public and reachablegithub.com/hanochzhu/codeagent_memory ↗통과
- 패키지가 이 저장소를 소스로 지정검사되지 않음
- 빌드 출처(Sigstore 증명)검사되지 않음
- 오픈 소스 라이선스 (OSI)MITspdx.org/licenses/MIT.html ↗통과
- 최근 1년 내 커밋 또는 릴리스Last commit or release 2026-11-13github.com/hanochzhu/codeagent_memory ↗통과
- OpenSSF Scorecard검사되지 않음
- 패키지 이름이 인기 패키지와 유사하지 않음검사되지 않음
- 패키지와 의존성에 심각한 보안 권고 없음검사되지 않음
- 모델에 대한 숨겨진 지침 없음0 tool descriptions and the README read; no override phrases, credential paths or hidden characters통과
- 파괴적인 도구에 라벨 표시됨검사되지 않음
- 원격 endpoint가 MCP 핸드셰이크에 응답검사되지 않음
README
GitHub에서 보기cam
English · 中文 · 日本語 · 한국어 · العربية · 🌐 Website
A local multi-turn conversational memory system purpose-built for coding agents
Code graph + memory · surgical reads · 100% local · MCP + CLI
Kernel written in Rust
Contents
- Why cam?
- Get Started
- Key Features
- How It Works
- Agent Workflow
- CLI Reference
- Memory Rules
- Configuration
- Benchmarks
- Supported Agents
- Supported Languages
- Supported Platforms
- License
Guides: Interactive Showcase (Website) · Main Agent vs Subagent · MCP Configs by IDE · 中文说明
Why cam?
When an AI coding agent explores a repository, it usually rediscovers structure the slow way — running grep, glob, and full-file Read one file at a time — and forgets everything in the next session.
cam gives the agent two local retrieval planes in a single binary:
| Plane | What it stores | How the agent uses it |
|---|---|---|
| Code Graph | Tree-sitter symbols (functions, types, methods) as a virtual filesystem + 1-hop callers/callees | ls, find, read src/file.rs/symbol, ref symbol --dir in|out — surgical symbol reads instead of whole-file dumps |
| Memory Tree | Project facts, architecture decisions, debugging write-ups, and user habits | recall (Vector + BM25 fused with RRF) and add (with branching --parent and revision --supersedes) |
One binary, two interfaces: The main agent calls
camover MCP (cam mcp); subagents (which rarely inherit MCP tools) call the exact same CLI (cam --json …). Both share.cam/cam.dbon disk, 100% local, zero API cost.
Get Started
Option 1: One-Sentence Agent Install (Recommended)
Paste this prompt directly into your coding agent (Cursor, Claude Code, Codex, Windsurf, GitHub Copilot, Cline, etc.) and let it install, index, and wire cam for you:
Install cam from https://github.com/HanochZhu/codeagent_memory: require a working Rust toolchain (rustup), run `cargo install --git https://github.com/HanochZhu/codeagent_memory --locked`, ensure ~/.cargo/bin (or %USERPROFILE%\.cargo\bin on Windows) is on PATH, then verify with `cam --help`. In this repo run `cam index`. For the main agent, register MCP stdio: command `cam`, args `["mcp"]` (Cursor: .cursor/mcp.json; Claude Code: .mcp.json). Subagents call `cam --json` in the shell. Do not add extra docs.
| Environment | What to do |
|---|---|
| Cursor / Windsurf / Claude Code / Codex | Paste into Agent / Chat; the agent runs the terminal install, builds .cam/cam.db, and writes the MCP config |
| VS Code (Copilot / Continue / Cline) | Paste into Agent / Chat mode with terminal access enabled |
| JetBrains (IntelliJ / RustRover / GoLand) | Paste into AI Assistant, or run cargo install in the built-in terminal |
Note: cargo install places cam in ~/.cargo/bin (Windows: %USERPROFILE%\.cargo\bin). Restart your terminal or IDE if cam is not immediately found on PATH.
Option 2: Manual Setup
1. Install the CLI
Requires a Rust toolchain:
cargo install --git https://github.com/HanochZhu/codeagent_memory --locked
cam --help
From a local clone:
git clone https://github.com/HanochZhu/codeagent_memory.git
cd codeagent_memory
cargo install --path . --locked
Docker (no Rust toolchain required):
docker pull ghcr.io/hanochzhu/codeagent-memory:0.1.6
docker run -i --rm -v "$PWD:/work" -w /work ghcr.io/hanochzhu/codeagent-memory:0.1.6
Or build locally: docker build -t cam https://github.com/HanochZhu/codeagent_memory.git
2. Index & query your project
cd your-project
cam index # parse repo into .cam/cam.db
# Query the code graph
cam ls src/ # list files or symbols in a file
cam read src/main.rs/main # read a single symbol body
cam ref main --dir in # 1-hop callers (in) or callees (out)
# Query & write to the memory tree
cam recall "how does hybrid recall fuse BM25 and vectors"
cam add --summary "..." < notes.md
cam auto-initializes .cam/ on first use. Run cam watch in the background if you want live incremental graph updates as files change.
3. Connect MCP for the main agent
Add cam mcp to your host's MCP configuration (e.g. .cursor/mcp.json or .mcp.json):
{
"mcpServers": {
"cam": {
"command": "cam",
"args": ["mcp"]
}
}
}
See docs/mcp.md for host-specific config paths and docs/agents.md for main-agent / subagent prompt rules.
The first recall or add downloads the default embedding model (potion-multilingual-128M to ~/.cam/models/) and falls back to a lexical hash embedder if offline.
Key Features
| Feature | Details |
|---|---|
| SQLite Code Graph | Tree-sitter parses functions, types, and call edges into .cam/cam.db for instant symbol-level navigation |
| Virtual Paths | src/main.rs addresses a file outline; src/main.rs/main addresses the symbol body directly |
| Live Incremental Sync | cam sync hashes file contents; cam watch keeps the graph updated on save |
| Hybrid Recall (RRF) | Combines local dense embeddings (model2vec) + identifier-aware BM25 via Reciprocal Rank Fusion ($k=60$) |
| Revision Chains & Tree | --parent builds branching topic hierarchies; --supersedes links linear revisions and folds older entries automatically |
| Ebbinghaus Retention | Retention $R = e^{-t / S}$ gently weights ranking ($\le 10%$) and flags stale / needs_update memories without deleting history |
| Dual Interface (MCP + CLI) | Main agent uses cam_* MCP tools; subagents run cam --json … in the shell |
| 100% Local & Private | Zero external API keys; runs entirely on local SQLite and on-disk embeddings |
| 9 Languages | Rust, Python, TypeScript, JavaScript, Go, Java, C, C++, C# |
How It Works
- Extract —
tree-sitterwalks the workspace and stores symbol definitions and call edges in.cam/cam.db. - Surgical Read — Agents navigate via virtual paths (
ls→find→read→ref). Reading a file returns its symbol outline; readingfile/symbolreturns only that symbol's source slice. - Hybrid Recall —
recalltakes an English query, embeds it locally, runs identifier-aware BM25 (splittingsnake_case,kebab-case,camelCase+ English stemming), prunes low-confidence tails, and fuses both lists with RRF ($k=60$) scaled by $0.9 + 0.1 \times R$. Superseded revisions are automatically expanded to their newest replacement. - Write-Back — When an agent solves a non-trivial task, it extracts atomic facts so each
addstores only one fact (English summary; body supports non-Latin characters). Related facts are connected via--link/linksinto a knowledge graph (inspected viamem show; recall does not traverse graph links yet).--parentattaches a memory to a structural topic;--supersedesreplaces an outdated memory while preserving lineage.
Architecture deep dive (Chinese): DESIGN.md.
Agent Workflow
Every coding task follows the same four-step loop:
- Recall first — Query
cam_recall/cam recallin English before grepping. Reuse a hit if it islatestand notneeds_update. - Ensure indexed — If graph tools return
not_indexed, runcam_index/cam indexonce for the project. - Walk the graph — On a memory miss, locate symbols with
findorls, read symbol bodies withread <file>/<symbol>, and trace callers/callees withref <symbol> --dir in|out. - Write back — Persist newly discovered architecture facts or fixes with
cam_add/cam addas atomic facts (one fact per memory, English summary; body supports non-Latin characters), linking related facts withlinks/--link.
| Role | Interface | Typical Usage |
|---|---|---|
| Main Agent (Chat / IDE session) | MCP (cam mcp) |
Calls cam_recall, cam_find, cam_ls, cam_read, cam_ref, cam_add, cam_mem_tree, cam_mem_show directly |
| Subagent (Task / explore / CLI) | CLI (cam --json) |
Runs cam --json --project <dir> <cmd> in the shell (subagents rarely inherit MCP tools) |
Full agent rules & copy-paste system prompts: docs/agents.md.
CLI Reference
Code Graph Commands
| Command | Description |
|---|---|
cam index |
Parse the project with tree-sitter into .cam/cam.db (creates .cam/ if needed) |
cam sync |
Incrementally update the graph for modified files using content hashes |
cam watch [--debounce-ms N] |
Watch source files and auto-sync (--json streams one JSON report per sync) |
cam ls [virt_path] |
List directories, files, or symbols inside a file |
cam read <virt_path> [--full] |
Read a file's symbol outline, a specific symbol body (path/symbol), or the --full file |
cam find <query> [--kind K] [--file S] [--scope D] [--limit N] |
Case-insensitive substring search over symbol names (exact matches first, then prefixes) |
cam ref <symbol> --dir in|out [--file S] [--kind K] [--scope D] |
1-hop callers (in / --callers) or callees (out / --callees). Returns ranked candidates on ambiguous names |
Memory Commands
| Command | Description |
|---|---|
cam recall "<query>" [--limit N] [--no-expand] [--include-superseded] [--snippets] |
Hybrid RRF recall (English query). --no-expand skips newest-revision expansion; --include-superseded keeps old revisions; --snippets clips long bodies below rank 1 |
cam add --summary "..." [--parent ID] [--supersedes ID] [--link ID]... [--body TEXT | --file PATH] |
Store one atomic fact as a memory (English summary required; body supports non-Latin characters; via --body, --file, or stdin). --link connects related facts in the knowledge graph; --parent for topic hierarchy; --supersedes to replace an older memory |
cam mem tree |
Render the memory hierarchy and revision chains |
cam mem show <id> |
Inspect a single memory entry in full |
Server & Configuration Commands
| Command | Description |
|---|---|
cam mcp |
Start the stdio MCP server for the main agent (see docs/mcp.md) |
cam status |
Show resolved project root, database path, node/edge/memory counts, and active config |
cam config get |
Print current ~/.cam/config.toml settings |
cam config set stale_days <N> |
Set age threshold (in days) for marking memories stale |
cam config set embedding_model <model> |
Set Hugging Face model2vec repo, local model directory, hash, or default |
Global flags & conventions:
--project <dir>(orCAM_PROJECTenv var) overrides automatic upward.cam/.gitroot detection.--jsonemits compact JSON (--prettyfor indented JSON). Errors on--jsonprint{"error":{"code":…,"message":…}}tostdoutand exit non-zero.- Ambiguous symbols: When
readorrefmatches multiple definitions,camreturnsstatus: "ambiguous"with candidate node IDs (e.g.src/main.rs:function:main:12) that can be passed directly back toreadorref. - Ignore rules & multi-repo directories: Honors
.gitignoreand.camignoreat any depth. A nested directory with its own.git(standalone clone, submodule, or linked worktree) is indexed into that directory's.cam/cam.db. The parent database keeps a catalog of those graphs and queries fan out into them, so opening the nested directory reuses the graph.cam lslists them askind: "project"(passable to--scope).
Memory Rules
- Atomic facts & knowledge graph links: Store only one atomic fact per memory to avoid packing excessive information into a single entry. When multiple facts are related, link them with
--link/linksto form a knowledge graph (graph recall is not enabled yet). - English queries and summaries: Recall queries and memory summaries must be written in English. Memory bodies support non-Latin characters.
- Retention & reinforcement: Ebbinghaus retention $R = e^{-t / S}$ adjusts recall score via $\text{relevance} \times (0.9 + 0.1 \times R)$. Entries with $R < 0.3$ are marked
needs_update; entries older thanstale_days(default30) are markedstale. Every valid recall hit (needs_update = false) refreshes last-accessed time and multiplies stability $S$ by1.7. - Non-destructive lineage: Memories are never deleted.
--parentforms branching trees;--supersedesforms linear revision chains where only the tail is markedlatestand older revisions are folded out of default recall results.
Configuration
Global settings live in ~/.cam/config.toml:
stale_days = 30
# embedding_model = "minishlab/potion-multilingual-128M" # default (cached under ~/.cam/models/)
# embedding_model = "minishlab/potion-base-8M" # lighter Hugging Face model2vec repo
# embedding_model = "/path/to/local/model2vec" # dir with tokenizer.json, config.json, model.safetensors
# embedding_model = "hash" # zero-download lexical hash embedder
Use CAM_EMBED_MODEL to override the model for a single process, or cam config set embedding_model default to reset. When the embedding model changes, the next recall automatically re-embeds existing memories before scoring.
Benchmarks
cam evaluates its code graph and memory planes separately against the closest open-source systems on identical corpora:
| Plane | Baseline / Analogue | Benchmark Corpus | Headline Takeaway |
|---|---|---|---|
| Memory | agentmemory hybrid + tokenized grep |
coding-agent-life-v1 | 1.000 R@5 / 0.240 P@5 (matches hybrid ceiling, 1.000 newest R@5 on revision chains) |
| Long-term Memory | BM25 / dense retrievers | LongMemEval-S | 0.909 R@5 / 0.980 Hit@5 / 0.840 MRR with potion-multilingual-128M |
| Code Graph | codegraph v0.9.6 | LongMemCode (clap) |
0.769 vs 0.768 on supported 1-hop tasks, P95 ≈ 5.2 ms, $0 |
| Workflow Retrieval | Lexical / BM25 file retrieval | Agent Retrieval Bench V2 edit2ripple |
0.297 MRR (best first-hit rank, P95 7.3 ms) |
| Multi-turn Tokens | Full context dump | DeepSeek multi-turn | 57% fewer tokens on memory track, 98% fewer tokens on code track |
General chat memory frameworks (Mem0, Zep, Letta) target conversational logs rather than these coding-agent corpora and are omitted from the tables below.
System Comparison
| cam | agentmemory | codegraph | |
|---|---|---|---|
| What it stores | Code graph + memory tree | Session / chat memories | Code graph |
| Query primitives | recall / ls / find / read / ref |
smart-search / remember |
explore / callers / callees |
| Interface | MCP + CLI | MCP + REST + hooks | MCP + CLI |
| Ranking / Fusion | Vector + BM25 + RRF + retention | BM25 + embed + rerank | FTS5 + graph walk |
| Cost | 100% local ($0) |
Local server | Local |
1. Memory — coding-agent-life-v1
15 sessions, 15 queries, $k=5$ (same scoring as agentmemory score.ts; P@5 ceiling is 0.240).
| System | Hit Rate | R@5 | P@5 | Source |
|---|---|---|---|---|
grep (tokenized substring) |
15 / 15 | 0.967 | 0.227 | this repo, 2026-09-23 |
cam min-max sum (legacy) |
15 / 15 | 0.933 | 0.213 | historical, hash embed |
cam RRF |
15 / 15 | 1.000 | 0.240 | this repo, hash embed |
agentmemory hybrid |
15 / 15 | 1.000 | 0.240 | published v0.9.26 |
Revision chains (--lineage): Re-ingesting every turn as a --supersedes revision tests whether top-$k$ returns the newest node of each gold chain (newest R@k) and whether any superseded node falsely claims latest (stale latest).
| k | R@k | P@k | newest R@k | stale latest |
|---|---|---|---|---|
| 5 | 1.000 | 0.240 | 1.000 | 0 |
| 10 | 1.000 | 0.120 | 1.000 | 0 |
2. Long-Term Memory — LongMemEval-S
100 non-abstention questions sampled with seed 42 from cleaned LongMemEval-S. Retrieval fuses embeddings + BM25 with RRF at $k=10$ without an LLM reader.
| Embedder | R@1 | R@5 | R@10 | Hit@1 | Hit@5 | Hit@10 | MRR | Retrieval P50 / P95 |
|---|---|---|---|---|---|---|---|---|
hash (offline test) |
0.382 | 0.803 | 0.922 | 0.580 | 0.910 | 0.970 | 0.718 | 24.1 / 35.5 ms |
potion-multilingual-128M |
0.474 | 0.909 | 0.952 | 0.740 | 0.980 | 0.990 | 0.840 | 1.12 / 1.34 s |
3. Workflow Retrieval — Agent Retrieval Bench V2 (edit2ripple)
58 anchored-change queries across 44 frozen repository snapshots (no LLM; BCY = Budgeted Context Yield under the canonical 8K-token file-packing protocol).
| System | Recall@5 | Recall@10 | Recall@20 | MRR | BCY@8k |
|---|---|---|---|---|---|
cam graph |
0.300 | 0.335 | 0.378 | 0.297 | 0.300 |
| Lexical | 0.412 | 0.536 | 0.588 | 0.243 | 0.447 |
| BM25 | 0.207 | 0.287 | 0.499 | 0.154 | 0.243 |
cam graph achieves the highest first-hit rank (MRR 0.297, query P95 7.3 ms), while lexical search provides broader multi-file coverage — motivating graph + lexical rank fusion.
4. Code Graph — LongMemCode (clap)
clap v4.6.1, 536 scenarios against SCIP gold (no LLM, P95 ≈ 5.2 ms, $/1k = 0).
| Slice | n | cam |
codegraph 0.9.6 |
|---|---|---|---|
| Supported (1-hop) | 478 | 0.769 | 0.768 |
lookup / file_symbols |
293 / 55 | 0.808 / 0.915 | 0.808 / 0.915 |
callers / callees |
67 / 18 | 0.397 / 0.811 | 0.355 / 0.867 |
implementors |
40 | 0.119 | 0.094 |
| Raw / Weighted (all 536) | 536 | 0.709 / 0.704 | 0.704 / 0.700 |
5. Multi-Turn Token Savings — DeepSeek
Full context dump vs. per-turn cam retrieval (deepseek-flash, hash embedder, 2026-10-13):
| Track | n | Full Acc. | cam Acc. |
Full Tokens | cam Tokens |
Token Saving |
|---|---|---|---|---|---|---|
Memory (coding-agent-life) |
15 | 1.00 | 0.87 | 22,796 | 9,904 | 57% (1,471 → 616 / turn) |
| Code (this repo indexed) | 6 | 0.83 | 0.33 | 379,066 | 6,342 | 98% (63,076 → 1,000 / turn) |
6. Memory writing — who decides what one memory is
The notes are a separate case set, cam-write-memory-eval. This repo keeps the runner. The first eval/write_memory/run.py downloads cases.json to eval/write_memory/data/ (override with CAM_EVAL_WRITE_MEMORY). That is the same split as LongMemEval and LoCoMo: the corpus stays outside, and the script here fetches it when you run the benchmark.
A model receives one note and calls cam_add. legacy asks for one full write-up. split asks for one fact, or one problem's solution path, and links pieces from the same solution with #0. A fact counts as exclusive when one stored memory contains every required phrase and no other gold fact. The notes are public behavior of this repository: recall fusion, the stale-binary restart notice, retention, and read versus delete. Labels and source files are in the case-set README.
Dataset paths are configured in eval/datasets.toml (coding-agent-life-v1 defaults to ../agentmemory or CAM_EVAL_CODING_LIFE).
python3 eval/coding_life/run.py --adapter grep
python3 eval/coding_life/run.py # potion; errors if the model fails
python3 eval/coding_life/run.py --hash-embed # hash embedder
python3 eval/longmemeval/run.py --sample 100 --seed 42 --workers 8 # potion
python3 eval/longmemeval/run.py --sample 100 --seed 42 --workers 8 --hash-embed
python3 eval/locomo/run.py --workers 4 # potion, evidence recall
git clone --depth 1 https://github.com/eyuansu62/agent-retrieval-bench \
eval/agent_retrieval/vendor/agent-retrieval-bench
python3 -m pip install -e eval/agent_retrieval/vendor/agent-retrieval-bench
arb download-benchmark --version v2_edit2ripple --local-dir eval/agent_retrieval/data --force
python3 eval/agent_retrieval/run.py --workers 8
python3 eval/llm_multiturn/run.py --track both # potion; requires DEEPSEEK_API_KEY
python3 eval/write_memory/test_score.py # downloads the case set; no model call
python3 eval/write_memory/run.py # downloads the case set; DEEPSEEK_API_KEY
python3 eval/longmemcode/run.py --corpus clap
python3 eval/charts/generate.py
codeagent-memory MCP 질문
codeagent-memory MCP를 Claude Code에 추가하려면 어떻게 하나요?
터미널에서 claude mcp add codeagent-memory -- docker run -i --rm ghcr.io/hanochzhu/codeagent-memory:0.1.6를 실행합니다. 모든 프로젝트에서 사용할 수 있게 하려면 --scope user를 추가합니다.
codeagent-memory MCP를 Cursor에 추가하려면 어떻게 하나요?
~/.cursor/mcp.json를 열고 mcpServers 아래에 서버를 추가합니다. 위 설치 섹션에 표시된 Cursor 구성을 사용합니다.
데이터가 로컬에 저장되나요, 아니면 클라우드에 저장되나요?
이 시스템은 100% 로컬 및 프라이빗하게 작동하며, 로컬 SQLite와 온디스크 임베딩을 사용하여 외부 API 비용이 전혀 발생하지 않습니다.
코딩 에이전트에 어떻게 연결할 수 있나요?
IDE의 MCP 설정에서 인자값으로 mcp를 사용하는 MCP stdio 명령 cam을 등록하면 됩니다.