{"id":48187152,"url":"https://github.com/mnemebrain/mnemebrain-rust","last_synced_at":"2026-04-04T17:51:17.180Z","repository":{"id":344468102,"uuid":"1181096939","full_name":"mnemebrain/mnemebrain-rust","owner":"mnemebrain","description":"Rust SDK for MnemeBrain — a belief memory system for AI agents. Supports MnemeBrain Lite and Full APIs.","archived":false,"fork":false,"pushed_at":"2026-03-14T21:36:13.000Z","size":64,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-15T06:08:17.943Z","etag":null,"topics":["ai-brain","ai-infrastructure","ai-memory","llm-agents","mnemebrain","rag","rust","rust-sdk","tokio","vector-database"],"latest_commit_sha":null,"homepage":"https://mnemebrain.ai/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mnemebrain.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-13T18:41:49.000Z","updated_at":"2026-03-14T21:35:52.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/mnemebrain/mnemebrain-rust","commit_stats":null,"previous_names":["mnemebrain/mnemebrain-rust"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/mnemebrain/mnemebrain-rust","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mnemebrain%2Fmnemebrain-rust","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mnemebrain%2Fmnemebrain-rust/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mnemebrain%2Fmnemebrain-rust/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mnemebrain%2Fmnemebrain-rust/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mnemebrain","download_url":"https://codeload.github.com/mnemebrain/mnemebrain-rust/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mnemebrain%2Fmnemebrain-rust/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31407655,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T10:20:44.708Z","status":"ssl_error","status_checked_at":"2026-04-04T10:20:06.846Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-brain","ai-infrastructure","ai-memory","llm-agents","mnemebrain","rag","rust","rust-sdk","tokio","vector-database"],"created_at":"2026-04-04T17:51:16.489Z","updated_at":"2026-04-04T17:51:17.164Z","avatar_url":"https://github.com/mnemebrain.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mnemebrain\n\nRust SDK for [MnemeBrain](https://github.com/mnemebrain/mnemebrain) — belief-based memory for AI agents.\n\nProvides a typed async HTTP client for both MnemeBrain Lite and the full MnemeBrain backend, with Belnap four-valued logic, append-only evidence, and working memory frames.\n\n\u003e **Alpha**: API may change before 0.1 stable.\n\n## Install\n\n```toml\n[dependencies]\nmnemebrain = \"0.1.0-alpha.2\"\ntokio = { version = \"1\", features = [\"full\"] }\n```\n\n## Quick Start\n\n```rust\nuse std::time::Duration;\nuse mnemebrain::{MnemeBrainClient, MnemeBrainClientBuilder, BelieveRequest, EvidenceInput, BeliefType};\n\n#[tokio::main]\nasync fn main() -\u003e mnemebrain::Result\u003c()\u003e {\n    let client = MnemeBrainClientBuilder::new(\"http://localhost:8000\")\n        .timeout(Duration::from_secs(30))\n        .api_key(\"your-api-key\")\n        .build();\n\n    // Store a belief with typed request\n    let ev = EvidenceInput::new(\"astronomy-textbook\", \"Confirmed by observation\")\n        .with_weight(0.95)\n        .with_reliability(1.0);\n    let request = BelieveRequest::new(\"Earth orbits the Sun\", vec![ev])\n        .with_belief_type(BeliefType::Fact)\n        .with_source_agent(\"my-agent\");\n    let result = client.believe(\u0026request).await?;\n    println!(\"truth_state: {:?}, confidence: {}\", result.truth_state, result.confidence);\n\n    // Explain a belief\n    if let Some(explanation) = client.explain(\"Earth orbits the Sun\").await? {\n        println!(\"supporting evidence: {}\", explanation.supporting.len());\n    }\n\n    // Search beliefs with typed request\n    use mnemebrain::{SearchRequest, ConflictPolicy};\n    let search = SearchRequest::new(\"astronomy\")\n        .with_limit(10)\n        .with_conflict_policy(ConflictPolicy::Surface);\n    let results = client.search(\u0026search).await?;\n    for r in \u0026results.results {\n        println!(\"{}: {:?} ({})\", r.claim, r.truth_state, r.rank_score);\n    }\n\n    // Retract evidence\n    if let Some(ids) = \u0026result.evidence_ids {\n        let affected = client.retract(\u0026ids[0]).await?;\n        println!(\"affected beliefs: {}\", affected.len());\n    }\n\n    Ok(())\n}\n```\n\n## Client Configuration\n\n```rust\nuse std::time::Duration;\n\n// Simple (no auth)\nlet client = MnemeBrainClient::new(\"http://localhost:8000\", Duration::from_secs(30));\n\n// With auth\nlet client = MnemeBrainClient::with_auth(\"http://localhost:8000\", \"key\", Duration::from_secs(30));\n\n// Builder (recommended)\nlet client = MnemeBrainClientBuilder::new(\"http://localhost:8000\")\n    .timeout(Duration::from_secs(60))\n    .api_key(\"your-api-key\")\n    .user_agent(\"my-agent/1.0\")\n    .build();\n```\n\n## Core Operations\n\n- `believe(\u0026BelieveRequest)` — store a belief with evidence\n- `explain(claim)` — get truth state + evidence breakdown\n- `search(\u0026SearchRequest)` — semantic belief search\n- `retract(evidence_id)` — retract evidence\n- `revise(belief_id, \u0026EvidenceInput)` — add evidence to existing belief\n- `list_beliefs(\u0026BeliefFilters)` — paginated belief listing\n\n## Working Memory Frames\n\nFrames provide an active context buffer for multi-step reasoning:\n\n```rust\nuse mnemebrain::FrameOpenRequest;\n\n// Full backend API\nlet req = FrameOpenRequest::new(\"dietary preferences\")\n    .with_ttl(300)\n    .with_agent(\"agent-1\");\nlet frame = client.frame_open(\u0026req).await?;\n\n// Lite API\nuse mnemebrain::LiteFrameOpenRequest;\nlet req = LiteFrameOpenRequest::new(\"query-uuid\");\nlet frame = client.frame_open_lite(\u0026req).await?;\n\n// Add beliefs, write scratchpad, get context\nclient.frame_add(\u0026frame.frame_id, \"user is vegetarian\").await?;\nclient.frame_scratchpad(\u0026frame.frame_id, \"step\", serde_json::json!(\"analyzing\")).await?;\nlet ctx = client.frame_context(\u0026frame.frame_id).await?;\n\n// Commit or close\nclient.frame_close(\u0026frame.frame_id).await?;\n```\n\n## Sub-clients (Full Backend)\n\nThese methods are available against the full MnemeBrain backend only. Calling them against MnemeBrain Lite will return `MnemeBrainError::Http { status: 404, .. }`.\n\n```rust\n// Sandbox — what-if reasoning\nlet sb = client.sandbox().fork(None, \"test-scenario\", 300).await?;\nclient.sandbox().assume(\u0026sb.id, \"belief-id\", \"false\").await?;\nlet diff = client.sandbox().diff(\u0026sb.id).await?;\n\n// Goals\nlet goal = client.goals().create(\"reach 100 users\", \"agent-1\", 0.8, None, None).await?;\n\n// Policies\nlet policy = client.policies().list().await?;\n\n// Revision\nclient.revision().set_policy(\"bounded\", Some(3), Some(10)).await?;\n\n// Attacks\nlet edges = client.attacks().list(\"belief-id\").await?;\n\n// Reconsolidation\nlet queue = client.reconsolidation().queue().await?;\n```\n\n## Error Handling\n\n```rust\nuse mnemebrain::MnemeBrainError;\n\nmatch client.health().await {\n    Ok(resp) =\u003e println!(\"status: {}\", resp.status),\n    Err(MnemeBrainError::Http { status, message }) =\u003e {\n        // Server returned 4xx/5xx\n        eprintln!(\"server error {}: {}\", status, message);\n    }\n    Err(MnemeBrainError::Request(e)) =\u003e {\n        // Network/transport error (DNS, connection, timeout)\n        eprintln!(\"network error: {}\", e);\n    }\n    Err(MnemeBrainError::Json(e)) =\u003e {\n        // Response deserialization failed\n        eprintln!(\"parse error: {}\", e);\n    }\n    Err(MnemeBrainError::Other(msg)) =\u003e {\n        eprintln!(\"other: {}\", msg);\n    }\n}\n```\n\n## API Compatibility\n\n| Feature | Lite | Full Backend |\n|---------|------|-------------|\n| believe, retract, explain, revise | Yes | Yes |\n| search, list beliefs | Yes | Yes |\n| Working memory frames | Yes | Yes |\n| Consolidation, memory tiers | — | Yes |\n| Sandbox, goals, policies | — | Yes |\n| Revision, attacks, reconsolidation | — | Yes |\n| Multihop queries | — | Yes |\n| Benchmark endpoints | — | Yes |\n\nCalling a full-backend-only method against MnemeBrain Lite will return `MnemeBrainError::Http { status: 404, .. }`.\n\n## Data Model\n\n**Truth States** (Belnap four-valued logic): `True`, `False`, `Both` (conflict), `Neither` (insufficient evidence)\n\n**Belief Types**: `Fact` (365d half-life), `Preference` (90d), `Inference` (30d), `Prediction` (3d)\n\n**Confidence**: Ranking signal via log-odds with sigmoid. `0.5` = maximum uncertainty.\n\n## Development\n\n```bash\ncargo test                    # unit + integration tests\ncargo clippy -- -D warnings   # lint\ncargo fmt -- --check          # format check\ncargo audit                   # security audit\n```\n\n### E2E tests\n\n```bash\nMNEMEBRAIN_URL=http://localhost:8000 cargo test e2e -- --ignored\nMNEMEBRAIN_URL=http://localhost:8000 MNEMEBRAIN_VARIANT=lite cargo test e2e -- --ignored\n```\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for the full development guide.\n\n## License\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmnemebrain%2Fmnemebrain-rust","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmnemebrain%2Fmnemebrain-rust","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmnemebrain%2Fmnemebrain-rust/lists"}