11 KiB
11 KiB
A_Memorix 配置参考 (v2.0.0)
本文档对应当前仓库代码(__version__ = 2.0.0、SCHEMA_VERSION = 9)。
说明:
- 本文只覆盖 当前运行时实际读取 的配置键。
- 默认配置文件路径为
config/a_memorix.toml。 - 旧版
/query、/memory、/visualize命令体系相关配置,不再作为主路径说明。 - 未配置的键会回退到代码默认值。
- 长期记忆控制台已可视化高频常用字段;未展示的长尾高级项仍然有效,请通过“源码模式 / 原始 TOML”编辑。
常用完整配置
[plugin]
enabled = true
[storage]
data_dir = "data/a-memorix"
[embedding]
model_name = "auto"
dimension = 1024
batch_size = 32
max_concurrent = 5
enable_cache = false
quantization_type = "int8"
[embedding.fallback]
enabled = true
probe_interval_seconds = 180
allow_metadata_only_write = true
[embedding.paragraph_vector_backfill]
enabled = true
interval_seconds = 60
batch_size = 64
max_retry = 5
[retrieval]
top_k_paragraphs = 20
top_k_relations = 10
top_k_final = 10
alpha = 0.5
enable_ppr = true
ppr_alpha = 0.85
ppr_timeout_seconds = 1.5
ppr_concurrency_limit = 4
enable_parallel = true
[retrieval.sparse]
enabled = true
backend = "fts5"
mode = "auto"
tokenizer_mode = "jieba"
candidate_k = 80
relation_candidate_k = 60
[threshold]
min_threshold = 0.3
max_threshold = 0.95
percentile = 75.0
min_results = 3
enable_auto_adjust = true
[filter]
enabled = true
mode = "blacklist"
chats = []
[episode]
enabled = true
generation_enabled = true
pending_batch_size = 20
pending_max_retry = 3
max_paragraphs_per_call = 20
max_chars_per_call = 6000
source_time_window_hours = 24
segmentation_model = "auto"
[person_profile]
enabled = true
refresh_interval_minutes = 30
active_window_hours = 72
max_refresh_per_cycle = 50
top_k_evidence = 12
[memory]
enabled = true
half_life_hours = 24.0
prune_threshold = 0.1
freeze_duration_hours = 24.0
[advanced]
enable_auto_save = true
auto_save_interval_minutes = 5
debug = false
[web.import]
enabled = true
max_queue_size = 20
max_files_per_task = 200
max_file_size_mb = 20
max_paste_chars = 200000
default_file_concurrency = 2
default_chunk_concurrency = 4
[web.tuning]
enabled = true
max_queue_size = 8
poll_interval_ms = 1200
default_intensity = "standard"
default_objective = "precision_priority"
default_top_k_eval = 20
default_sample_size = 24
可视化与原始 TOML 的分工
- 长期记忆控制台:适合修改高频项,例如 embedding、检索、Episode、人物画像、导入与调优的常用开关。
- 原始 TOML:适合复制整份配置、批量调整参数,或修改未在可视化表单中展示的高级项。
- raw-only 高级项仍包括:
retrieval.fusion.*、retrieval.search.relation_intent.*、retrieval.search.graph_recall.*、retrieval.aggregate.*、memory.orphan.*、advanced.extraction_model、web.import.llm_retry.*、web.import.path_aliases、web.import.convert.*、web.tuning.llm_retry.*、web.tuning.eval_query_timeout_seconds。
1. 存储与嵌入
storage
storage.data_dir(当前配置模板默认data/a-memorix) : 数据目录。相对路径按 MaiBot 仓库根目录解析。
补充说明:
- 部分离线脚本若未显式覆盖路径,会回退到
A_memorix.paths.default_data_dir()(当前为data/plugins/a-dawn.a-memorix)。 - 建议在运维侧统一目录策略,避免“控制台写入目录”和“脚本处理目录”不一致。
embedding
embedding.model_name(默认auto) : embedding 模型选择。embedding.dimension(默认1024) : 唯一公开的维度控制项。A_Memorix 内部会自动映射为 provider 所需请求字段,并在运行时做真实探测与校验。embedding.batch_size(默认32)embedding.max_concurrent(默认5)embedding.enable_cache(默认false)embedding.retry(默认{}) : embedding 调用重试策略。embedding.quantization_type: 当前主路径仅建议int8。embedding.fallback.enabled(默认true)embedding.fallback.probe_interval_seconds(默认180)embedding.fallback.allow_metadata_only_write(默认true)embedding.paragraph_vector_backfill.enabled(默认true)embedding.paragraph_vector_backfill.interval_seconds(默认60)embedding.paragraph_vector_backfill.batch_size(默认64)embedding.paragraph_vector_backfill.max_retry(默认5)
2. 检索
retrieval 主键
retrieval.top_k_paragraphs(默认20)retrieval.top_k_relations(默认10)retrieval.top_k_final(默认10)retrieval.alpha(默认0.5)retrieval.enable_ppr(默认true)retrieval.ppr_alpha(默认0.85)retrieval.ppr_timeout_seconds(默认1.5)retrieval.ppr_concurrency_limit(默认4)retrieval.enable_parallel(默认true)retrieval.relation_vectorization.enabled(默认false)
retrieval.sparse (SparseBM25Config)
常用键(默认值):
enabled = truebackend = "fts5"lazy_load = truemode = "auto"(auto/fallback_only/hybrid)- 运行时若 embedding 进入 degraded,会强制按
fallback_only执行读路径(不改用户配置文件) tokenizer_mode = "jieba"(jieba/mixed/char_2gram)char_ngram_n = 2candidate_k = 80relation_candidate_k = 60enable_ngram_fallback_index = trueenable_relation_sparse_fallback = true
retrieval.fusion (FusionConfig)
method(默认weighted_rrf)rrf_k(默认60)vector_weight(默认0.7)bm25_weight(默认0.3)normalize_score(默认true)normalize_method(默认minmax)
retrieval.search.relation_intent (RelationIntentConfig)
enabled(默认true)alpha_override(默认0.35)relation_candidate_multiplier(默认4)preserve_top_relations(默认3)force_relation_sparse(默认true)pair_predicate_rerank_enabled(默认true)pair_predicate_limit(默认3)
retrieval.search.graph_recall (GraphRelationRecallConfig)
enabled(默认true)candidate_k(默认24)max_hop(默认1)allow_two_hop_pair(默认true)max_paths(默认4)
retrieval.aggregate
retrieval.aggregate.rrf_kretrieval.aggregate.weights
用于聚合检索阶段混合策略;未配置时走代码默认行为。
3. 阈值过滤
threshold (ThresholdConfig)
threshold.min_threshold(默认0.3)threshold.max_threshold(默认0.95)threshold.percentile(默认75.0)threshold.std_multiplier(默认1.5)threshold.min_results(默认3)threshold.enable_auto_adjust(默认true)
4. 聊天过滤
filter
用于 respect_filter=true 场景(检索和写入都支持)。
[filter]
enabled = true
mode = "blacklist" # blacklist / whitelist
chats = ["group:123", "user:456", "stream:abc"]
规则:
blacklist:命中列表即拒绝whitelist:仅列表内允许- 列表为空时:
blacklist=> 全允许whitelist=> 全拒绝
5. Episode
episode
episode.enabled(默认true)episode.generation_enabled(默认true)episode.pending_batch_size(默认20,部分路径默认12)episode.pending_max_retry(默认3)episode.max_paragraphs_per_call(默认20)episode.max_chars_per_call(默认6000)episode.source_time_window_hours(默认24)episode.segmentation_model(默认auto) : 支持auto,也支持填写utils/replyer/planner/tool_use或具体模型名。
6. 人物画像
person_profile
person_profile.enabled(默认true)person_profile.refresh_interval_minutes(默认30)person_profile.active_window_hours(默认72)person_profile.max_refresh_per_cycle(默认50)person_profile.top_k_evidence(默认12)
7. 记忆演化与回收
memory
memory.enabled(默认true)memory.half_life_hours(默认24.0)memory.base_decay_interval_hours(默认1.0)memory.prune_threshold(默认0.1)memory.freeze_duration_hours(默认24.0)
memory.orphan
enable_soft_delete(默认true)entity_retention_days(默认7.0)paragraph_retention_days(默认7.0)sweep_grace_hours(默认24.0)
8. 高级运行时
advanced
advanced.enable_auto_save(默认true)advanced.auto_save_interval_minutes(默认5)advanced.debug(默认false)advanced.extraction_model(默认auto)
9. 导入中心 (web.import)
开关与限流
web.import.enabled(默认true)web.import.max_queue_size(默认20)web.import.max_files_per_task(默认200)web.import.max_file_size_mb(默认20)web.import.max_paste_chars(默认200000)web.import.default_file_concurrency(默认2)web.import.default_chunk_concurrency(默认4)web.import.max_file_concurrency(默认6)web.import.max_chunk_concurrency(默认12)web.import.poll_interval_ms(默认1000)
重试与路径
web.import.llm_retry.max_attempts(默认4)web.import.llm_retry.min_wait_seconds(默认3)web.import.llm_retry.max_wait_seconds(默认40)web.import.llm_retry.backoff_multiplier(默认3)web.import.path_aliases(默认内置raw/lpmm/plugin_data)
转换阶段
web.import.convert.enable_staging_switch(默认true)web.import.convert.keep_backup_count(默认3)
10. 调优中心 (web.tuning)
web.tuning.enabled(默认true)web.tuning.max_queue_size(默认8)web.tuning.poll_interval_ms(默认1200)web.tuning.eval_query_timeout_seconds(默认10.0)web.tuning.default_intensity(默认standard,可选quick/standard/deep)web.tuning.default_objective(默认precision_priority,可选precision_priority/balanced/recall_priority)web.tuning.default_top_k_eval(默认20)web.tuning.default_sample_size(默认24)web.tuning.llm_retry.max_attempts(默认3)web.tuning.llm_retry.min_wait_seconds(默认2)web.tuning.llm_retry.max_wait_seconds(默认20)web.tuning.llm_retry.backoff_multiplier(默认2)
11. 兼容性提示
- 若你从
1.x升级,请优先运行:
python src/A_memorix/scripts/release_vnext_migrate.py preflight --strict
python src/A_memorix/scripts/release_vnext_migrate.py migrate --verify-after
python src/A_memorix/scripts/release_vnext_migrate.py verify --strict
- 启动前再执行:
python src/A_memorix/scripts/runtime_self_check.py --json
以避免 embedding 维度与向量库不匹配导致运行时异常。