计划执行与检查节点
executing-plans
按既定实施计划完成工作,保持过程检查和反馈。
ingestion-pipelines【效率与协作】Operate M-flow ingestion, loader selection, memorization stages, procedural learning, and custom pipeline workflows.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Use this sub-skill when the task is about getting data into M-flow memory or assembling ingestion/memorization pipelines:
preferred_loaders, chunking, and content_type;ingest(), staged add() then memorize(), or advanced run_custom_pipeline() workflows;learn() from already-built episodic memory.Route elsewhere:
core-memory-api;RecallMode, search(), query(), graph/vector adapter tuning, and retrieval ranking → retrieval-graph-search;service-integrations.ingest() for the common add+memorize path. Use add() then memorize() when you need to validate stored data first, use different loader/chunking settings, skip/query later, or recover from a failed memorize stage.content_type=ContentType.TEXT for articles/notes/code-like prose and content_type=ContentType.DIALOG for chats, interviews, meeting logs, or transcripts. For mixed article + transcript data, prefer separate calls/datasets per content type instead of one mixed call.memorize(enable_procedural=True) or can be run later with learn().conflict_mode="error" for production jobs. It prevents accidental concurrent memorize() runs over the same dataset. Use "warn" for interactive work and "ignore" only when you accept duplicate/inconsistent graph risk.import m_flow
from m_flow import ContentType
result = await m_flow.ingest(
data=["meeting-notes.txt", "transcript.txt"],
dataset_name="team-memory",
content_type=ContentType.DIALOG,
enable_content_routing=True,
enable_procedural=True,
conflict_mode="error",
)
if result.needs_retry():
# add() succeeded but memorize() failed; retry only the dataset's memorize stage.
await m_flow.memorize(datasets=[result.dataset_name], content_type=ContentType.DIALOG)
import m_flow
from m_flow import ContentType
await m_flow.add(
data=["docs/overview.md", "docs/reference.pdf"],
dataset_name="docs",
preferred_loaders=[
{"advanced_pdf_loader": {"strategy": "hi_res"}},
"pypdf_loader",
"text_loader",
],
)
await m_flow.memorize(
datasets=["docs"],
chunk_size=1200,
chunks_per_batch=20,
content_type=ContentType.TEXT,
enable_content_routing=True,
precise_mode=True,
conflict_mode="error",
)
import m_flow
# Prefer dataset-wide learning for duplicate prevention: learn() skips Episodes
# that already have derived_procedure edges when it discovers Episodes itself.
summary = await m_flow.learn(datasets=["team-memory"])
print(summary)
learn(run_in_background=True) is accepted by the public signature but currently logs a warning and runs synchronously so it can create derived_procedure edges after procedure persistence.
preferred_loaders, and content-type decisions.learn(), Stage, run_custom_pipeline(), and validation commands.