CMDCRAGArcana (cmdc_rag_arcana v0.4.0)

Copy Markdown View Source

Arcana-backed enterprise RAG adapter for CMDC.

本包不改变 cmdc core,而是通过标准 CMDC.ToolCMDC.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

按企业预配置 Pipeline preset 执行 Arcana Pipeline answer。

执行 Arcana search 并归一化为 CMDCRAGArcana.SearchResult

返回当前包版本号。

Functions

answer(question, opts)

@spec answer(
  String.t(),
  keyword()
) :: {:ok, CMDCRAGArcana.SearchResult.t()} | {:error, term()}

执行 Arcana answer 并归一化为 CMDCRAGArcana.SearchResult

pipeline_answer(question, opts)

@spec pipeline_answer(
  String.t(),
  keyword()
) :: {:ok, CMDCRAGArcana.SearchResult.t()} | {:error, term()}

按企业预配置 Pipeline preset 执行 Arcana Pipeline answer。

search(query, opts)

@spec search(
  String.t(),
  keyword()
) :: {:ok, CMDCRAGArcana.SearchResult.t()} | {:error, term()}

执行 Arcana search 并归一化为 CMDCRAGArcana.SearchResult

version()

@spec version() :: String.t()

返回当前包版本号。