Arcana-backed enterprise RAG adapter for CMDC.
本包不改变 cmdc core,而是通过标准 CMDC.Tool 与 CMDC.Plugin
边界把 Arcana 的 search/answer 能力挂入 Agent Runtime。第一版只提供
只读检索与问答,不允许 Agent 直接 ingest / delete 企业知识库文档。
快速使用
{:ok, session} =
CMDC.create_agent(
model: "anthropic:claude-sonnet-4-5",
tools: [
CMDCRAGArcana.Tool.Search,
CMDCRAGArcana.Tool.Answer,
CMDCRAGArcana.Tool.IngestStatus
],
plugins: [
CMDCRAGArcana.Plugin.AccessControl,
CMDCRAGArcana.Plugin.CitationAudit
],
user_data: %{
tenant_id: "tenant-a",
user_id: "u-1",
roles: ["ops"],
cmdc_rag_arcana: %{
repo: MyApp.Repo,
llm: "openai:gpt-4o-mini",
status_backend: MyApp.Knowledge.RAGStatusBackend,
allowed_collections: ["policies"]
}
}
)集成测试可以把 :backend / :status_backend 改为自定义模块,从而避免
真实 Repo / pgvector / LLM / 企业控制面数据库。
Summary
Functions
执行 Arcana answer 并归一化为 CMDCRAGArcana.SearchResult。
执行 Arcana search 并归一化为 CMDCRAGArcana.SearchResult。
返回当前包版本号。
Functions
@spec answer( String.t(), keyword() ) :: {:ok, CMDCRAGArcana.SearchResult.t()} | {:error, term()}
执行 Arcana answer 并归一化为 CMDCRAGArcana.SearchResult。
@spec search( String.t(), keyword() ) :: {:ok, CMDCRAGArcana.SearchResult.t()} | {:error, term()}
执行 Arcana search 并归一化为 CMDCRAGArcana.SearchResult。
@spec version() :: String.t()
返回当前包版本号。