基于 Microsoft Foundry 的智能体式 AI——面向上下文 AI 的企业数据集成

11 阅读13分钟

现代 AI systems 的能力,取决于它们能够访问什么数据。虽然 Large Language Models(LLM)提供了强大的 general reasoning capabilities,但 enterprise applications 需要 contextual grounding,也就是基于可信的、组织特定数据生成 responses 的能力。

在本章中,你将学习如何将 enterprise data 集成到 AI systems 中,以提升 accuracy、relevance 和 reliability。你将探索 Microsoft Foundry 如何通过 unified knowledge layer 实现这一点,使 agents 能够在尊重 security 和 governance boundaries 的前提下,访问跨多个 sources 的 structured 和 unstructured data。

你还将学习 contextual AI systems 与 generic models 有何不同,retrieval mechanisms 在实践中如何工作,以及如何设计可被多个 agents 和 applications 复用的 knowledge bases。

到本章结束时,你将理解如何架构基于 enterprise knowledge grounding 的 AI solutions,从而生成更准确的 responses,并支持 scalable automation。

本章将覆盖以下主要主题:

  • Understanding the importance of contextual AI
  • Understanding Foundry IQ and agentic retrieval
  • Creating and connecting a knowledge base for contextual AI
  • Designing reusable knowledge bases for agents
  • Evaluating and governing contextual AI systems

Technical requirements

要跟随本章内容,你应该已经具备:

  • 已配置好的 Microsoft Foundry environment,来自第 2 章
  • 对 agents 和 tools 的基本理解,来自前几章
  • Azure AI Search resource,并已索引数据,推荐用于 hands-on

Understanding the importance of contextual AI

在本节中,你将学习为什么 enterprise AI systems 必须超越 general-purpose generation,并纳入 organization-specific knowledge。

Contextual AI 是一种人工智能形式,它不仅仅回应单个 prompt,而是能够理解更广泛的情境,例如 user intent、past interactions、environment 和 relevant data,从而交付更准确、个性化且有意义的 outcomes。它不会将每个 request 孤立处理,而是结合来自 history、real-time inputs 和 domain knowledge 的 context,通常使用 retrieval-augmented generation 和 memory 等技术,来做出 decisions 或生成 responses,使其与 user needs 和当前 task 对齐。因此,contextual AI 对 enterprise applications 和 agentic AI systems 尤其强大。

LLMs 非常擅长 reasoning 和生成 natural language,但它们天然受限于 training data。它们并不直接了解 enterprise-specific systems、policies 或 real-time updates。在 business context 中,这一缺口会变得非常重要,因为决策往往依赖 internal documentation、operational data 和 domain-specific rules。

如果缺少 grounding,AI systems 可能会生成听起来令人信服,但实际上 incomplete、outdated 或与 business reality 不一致的 responses。这个问题通常被称为 hallucination,它会降低用户对 AI systems 的信任,并限制它们在 production environments 中的可用性。

Contextual AI 通过在 runtime 纳入 enterprise data 来解决这一挑战。System 不再仅依赖 pre-trained knowledge,而是从 trusted sources 中检索 relevant information,并用这些信息生成 responses。这确保 outputs 不只是 fluent,而且 accurate、relevant,并与 organizational context 对齐。

通过将 responses grounding 到 enterprise data 中,AI systems 会从 generic assistants 演进为 domain-aware tools,从而支持真实的 business workflows。

在现代 AI-driven systems 中,enterprise data 会被处理成 structured chunks,转换为 vector embeddings,并存储在 vector database 中,以便高效 retrieval。当发起 query 时,system 会执行 similarity search,通常使用 cosine similarity,识别与 user input 在语义上最接近的内容,而不是仅依赖 exact keyword matches。随后,最相关的结果,通常是 top five 到 top ten matches,会被检索出来,并在 real time 中动态纳入 model 的 context,使其能够生成基于 enterprise knowledge 的 accurate、context-aware responses。

Contextual AI 是一个概念,其中我们使用 agents 来验证 retrieval augmented generation 的 output。这正是下一节将要看到的内容。

Understanding retrieval-augmented generation

Retrieval augmented generation(RAG)是实现 contextual AI 最常见的方法之一。它将 retrieval mechanism 与 generative model 结合起来,使 system 能够在生成 response 之前先获取 relevant information。

在典型 RAG workflow 中,user query 首先用于检索 relevant documents 或 data。随后,这些信息会被注入 model 的 context,使 model 能够生成同时反映 query 和 retrieved content 的 response。这种方法可以提升 accuracy,并确保 responses 基于 up-to-date 和 domain-specific information。

不过,传统 RAG implementations 往往会引入复杂性。Developers 必须构建并维护 retrieval pipelines,管理 data indexing,并且为每个 application 分别执行 security controls。随着组织在多个 use cases 中扩展 AI,这种方式会导致重复劳动和 fragmented architectures。

这些限制凸显了对一种更加统一且可复用的 enterprise data integration 方法的需求。

Exploring enterprise data integration patterns

Enterprise data 很少是集中式的。相反,它通常分布在广泛的 systems 中,包括 document repositories、structured databases、analytics platforms、APIs 和 external services。每个 system 都有自己的 format、access method 和 security model。这里就会使用 Foundry IQ,也就是 Microsoft Foundry 中称为 Knowledge 的能力,来为多个 data sources 创建 centralized knowledge base。

传统上,将这些数据集成进 AI systems,需要为每个 source 构建 custom connectors,将数据转换成 usable format,并实现 retrieval logic。随着时间推移,这会形成 tightly coupled architectures,每个 application 都维护自己的 integration layer。

这种方法会引入几个挑战。随着新 data sources 被加入,development effort 会增加;跨 applications 维持 consistency 会变得困难;而执行 governance policies 也需要在多个地方重复实现 logic。当组织扩展 AI initiatives 时,这些挑战会更加明显。

为了创建一个 centralized knowledge base,作为多个 data sources 的 gateway,我们将进一步探索。

现代 AI platforms 通过引入 centralized knowledge layer 解决这一问题,该层会抽象 data access 和 retrieval。这里就会使用 Foundry IQ,也就是 Microsoft Foundry 中称为 Knowledge 的能力,来为多个 data sources 创建 centralized knowledge base。

AI applications 不再直接与 individual systems 交互,而是查询一个 unified interface,由该 interface 在内部处理 retrieval、ranking 和 security。

这种转变简化了 architecture,并支持更 scalable 和 maintainable AI solutions。

接下来,让我们进一步看看如何实现上述概念。

Understanding Foundry IQ and agentic retrieval

在本节中,你将学习 Microsoft Foundry IQ 如何通过 unified knowledge layer 和 intelligent retrieval mechanisms 支持 contextual AI。

Foundry IQ 提供一个 centralized interface,使 agents 能够跨多个 systems 访问 enterprise data,而不需要为每个 application 构建 custom integration。Developers 不再构建分散的 retrieval pipelines,而是可以将 agents 连接到 shared knowledge layer,由该层处理 data access、retrieval 和 security。

这种方法在改善 AI solutions 的 consistency 和 governance 的同时,也简化了 development。

Understanding the unified knowledge layer

Unified knowledge layer 抽象了 enterprise data 的复杂性。Agents 不需要知道 data 存储在哪里,也不需要了解 data 如何组织。相反,它们与一个 consistent interface 交互,由该 interface 自动检索并排序 relevant information。

这一层会聚合来自多个 sources 的 data,包括 documents、structured records 和 external systems。它还会执行 access control policies,确保 users 只能收到他们有权查看的信息。

通过集中化 data access,unified knowledge layer 使组织能够构建 scalable AI systems,同时保持 security 和 compliance。

有了这一概念基础后,现在让我们从理论走向实践,探索如何创建并连接一个支撑 contextual AI 的 knowledge base。

Creating and connecting a knowledge base for contextual AI

在本节中,你将通过在 Azure AI Search 中创建 knowledge base,并将其连接到 Foundry agent,来构建 contextual AI 所需的基础。

在将 enterprise data 集成到 agent 之前,理解支撑 retrieval systems 的几个核心概念非常重要。Knowledge source 表示 raw data,例如存储在 Blob Storage、SharePoint 中的 documents,或 structured datasets。Knowledge base 是一个 logical construct,它会将一个或多个 knowledge sources 组合起来,并定义这些 data 如何被 index 和 retrieve。Index 则是这些 data 的 optimized representation,使其能够通过 keyword、vector 或 hybrid search techniques 快速 retrieval。

这些 components 共同构成 contextual AI systems 的骨干。System 不会直接查询 raw files,而是查询 enterprise knowledge 的 indexed 和 structured representation,从而返回 precise 且 relevant information。

Understanding how knowledge bases are structured

Knowledge base 不只是 documents 的集合,它是一个面向 AI interaction 设计的 structured retrieval system。当 data 被 ingested 时,通常会被拆分为更小的 chunks,以提升 retrieval accuracy。随后,这些 chunks 会被转换为 vector embeddings,使 system 能够在 traditional keyword matching 之外执行 semantic search。

除了 embeddings,还会存储 metadata,以支持 filtering、ranking 和 access control。Chunking、embedding 和 metadata enrichment 的组合,使 system 能够检索高度相关的 content segments,而不是整篇 documents。这会在 grounding AI outputs 时显著提升 response quality。

这种结构化方法,使 AI systems 能够有效回答复杂 natural language queries。

下面进一步学习如何在 AI Search 中创建 knowledge base,为 models 创建 embeddings,以便 search 并提供信息。

Creating a knowledge base in Azure AI Search

在这个练习中,你将为 financial policy assistant 创建一个 knowledge base,使它能够回答与 expense policies 和 reimbursement guidelines 相关的问题。

下面是一个 sample code block,用于展示如何创建并填充 index。下面的代码不是完整实现,只是一个示例:

# Create client
index_client = SearchIndexClient(
    endpoint=search_endpoint,
    credential=credential
)

# Define schema (your "knowledge base")
index = SearchIndex(
    name=index_name,
    fields=[
        SimpleField(name="id", type="Edm.String", key=True),
        SearchableField(name="content", type="Edm.String"),
        SearchableField(name="title", type="Edm.String"),
    ],
    vector_search=VectorSearch(
        algorithms=[
            HnswAlgorithmConfiguration(name="hnsw-config")
        ],
        profiles=[
            VectorSearchProfile(
                name="vector-profile",
                algorithm_configuration_name="hnsw-config"
            )
        ]
    )
)

# Create index
index_client.create_or_update_index(index)
print(f"Knowledge base '{index_name}' created successfully.")

首先准备你的 data。这通常包括收集 documents,例如 expense reimbursement policies、travel guidelines 和 approval workflows。这些 documents 可以上传到 Azure Blob Storage 等 storage service。需要确保 documents 干净、结构良好且保持最新,因为这些 data 的质量会直接影响 AI system 的 accuracy。

Data 准备完成后,下一步是在 Azure AI Search 中创建 index。Index 定义 data 如何被存储和检索。在这个过程中,system 会决定 documents 如何被拆成 smaller chunks,embeddings 如何为 semantic search 生成,以及 metadata fields 如何定义。这一转换会将 raw enterprise documents 转换为 searchable 和 optimized format。

Index 创建完成后,你需要定义一个引用 indexed data 的 knowledge base。Knowledge base 充当 indexed content 之上的 logical abstraction,使 AI systems 能够查询它,而无需理解底层 storage 或 indexing mechanisms。到此时,你的 enterprise data 已经为 retrieval-based AI scenarios 做好了准备。

Connecting the knowledge base to a Foundry agent

Knowledge base 就绪后,下一步是使用 Model Context Protocol(MCP)将其连接到 Foundry agent。该 connection 使 agent 能够在 response generation process 中从 knowledge base 检索信息。

要建立这个 connection,首先需要创建一个 project-level connection,指向 knowledge base 的 MCP endpoint。该 connection 充当 Foundry environment 和 Azure AI Search service 之间的安全桥梁。

from azure.identity import (
    DefaultAzureCredential,
    get_bearer_token_provider
)

credential = DefaultAzureCredential()
project_resource_id = "<project-resource-id>"
connection_name = "finance-kb-connection"
search_endpoint = "https://<search-service>.search.windows.net"
knowledge_base = "finance-policy-kb"

mcp_endpoint = f"{search_endpoint}/knowledgebases/{knowledge_base}/mcp?api-version=2025-11-01-preview"

token_provider = get_bearer_token_provider(
    credential,
    "https://management.azure.com/.default"
)

headers = {
    "Authorization": f"Bearer {token_provider()}"
}

payload = {
    "name": connection_name,
    "type": "Microsoft.MachineLearningServices/workspaces/connections",
    "properties": {
        "authType": "ProjectManagedIdentity",
        "category": "RemoteTool",
        "target": mcp_endpoint
    }
}

requests.put(
    f"https://management.azure.com{project_resource_id}/connections/{connection_name}?api-version=2025-10-01-preview",
    headers=headers,
    json=payload
)

这一步通过 managed identity authentication,实现 agent 与 knowledge base 之间的 secure communication。

Creating an agent with knowledge-base access

Connection 建立后,你可以创建一个将 knowledge base 作为 retrieval tool 的 agent。Agent 会配置 instructions,明确指导它在回答问题时使用 knowledge base,从而确保 responses 基于 enterprise data grounding。

from azure.ai.projects import AIProjectClient
from azure.ai.projects.models import PromptAgentDefinition, MCPTool
from azure.identity import DefaultAzureCredential

client = AIProjectClient(
    endpoint="<project-endpoint>",
    credential=DefaultAzureCredential()
)

tool = MCPTool(
    server_label="finance-kb",
    server_url="https://<search-service>/knowledgebases/finance-policy-kb/mcp",
    allowed_tools=["knowledge_base.retrieve"],
    project_connection_id="finance-kb-connection"
)

agent = client.agents.create_version(
    agent_name="finance-policy-agent",
    definition=PromptAgentDefinition(
        model="gpt-4.1-mini",
        instructions="""
You are a financial policy assistant.
Use the knowledge base for all answers.
If information is missing, respond with "I don't know".
Include references in responses.
""",
        tools=[tool]
    )
)

print("Agent created")

这一 configuration 确保 agent 优先使用 retrieval-based responses,并避免依赖 unsupported assumptions。

Invoking the agent and validating results

Agent 创建完成后,你可以使用 conversational interface 调用它。当提交 query 时,agent 会判断是否调用 knowledge base tool,检索 relevant data,并生成 grounded response。

openai_client = client.get_openai_client()
conversation = openai_client.conversations.create()

response = openai_client.responses.create(
    conversation=conversation.id,
    input="What are the reimbursement limits for travel expenses?",
    extra_body={
        "agent_reference": {
            "name": "finance-policy-agent",
            "type": "agent_reference"
        }
    }
)

print(response.output_text)

在 runtime,system 会在后台执行多个步骤。它可能会将 query 分解为 smaller parts,结合 keyword 和 vector search 检索 relevant content,基于 relevance 对结果排序,并合成包含 original sources references 的 final response。

要完整验证 system,应使用一系列 queries 进行测试,包括直接的 factual questions、更复杂的 multi-step queries,以及 knowledge base 中可能不存在答案的 scenarios。这有助于确保 system 能检索准确信息、适当使用 citations,并优雅处理 uncertainty。

Designing reusable knowledge bases for agents

在本节中,我们将看到如何在其他 applications 中消费 Foundry IQ。鉴于 Foundry IQ 为我们提供了一种创建 agentic Retrieval augment system 的方式,我们将看到如何使用 Microsoft Foundry UI,并连接上一节创建的 search index,构建 Foundry IQ knowledge base。

进入 Azure portal 中的 Microsoft Foundry,访问 URL:

https://ai.azure.com

然后在左侧菜单中,向下滚动到:

Knowledge -> Create Knowledge base

image.png

图 7.1

在本节中,我们假设将使用已创建的 existing search index。

现在按照下图选择 Azure AI Search

image.png

图 7.2:Azure AI Search choice

提供一个 name,并选择上一节创建的 Azure AI Search index。

image.png

图 7.3:Creating an index

当 name、description 和 index 信息填写完成后,请点击 Create 按钮继续。

现在,我们将按照下图配置 agentic retrieval augment system。

image.png

图 7.4:Agentic Retrieval configuration

从上图可以看到,需要为 knowledge base 提供一个名称,供其他 applications 或 agents 调用。还需要提供 description,让其他 users 知道这个 Foundry IQ knowledge base 的用途。随后选择一个 model 来消费。在我的上图示例中,我使用 gpt-4.1-mini 来降低成本。但也可以使用任何 reasoning model。基于 output accuracy 和 cost,我们可以选择其他 models,例如 GPT-5.5、GPT-5.4,或其他可用 models。

将 reasoning effort 选择为 low。这也取决于 dataset 的复杂度。如果 documents 内容比较 straightforward,可以使用 low reasoning effort;如果内容复杂,则更适合选择 high。

提供一些 retrieval instructions。如果我们选择了多个 knowledge bases 作为 sources,而且它们有不同 contexts,例如 Finance、HR、Customer Support,那么这一部分会更合适。我们可以提供 instructions,说明应优先使用哪个知识库,或提供 details 以选择正确的 knowledge base。完成这一部分后,你应该能在页面底部看到一开始选择的 Azure AI Search。

现在点击右上角的 Save Knowledge Base

image.png

图 7.5

在本节中,我们学习了如何使用现有 Azure AI Search index,并创建 Foundry IQ knowledge base。Foundry IQ 允许我们在 Foundry 中创建一次,然后添加为任何后续构建 agent 的 knowledge。我们也学习了本节中需要提供的 configurations,例如 name、description、reasoning effort 和 retrieval instruction。

接下来,我们将学习如何评估 Foundry IQ knowledge base。

Evaluating and governing contextual AI systems

在本节中,我们将学习如何评估和治理 contextual AI systems。一旦创建 Foundry IQ knowledge base,它的 evaluation 会从被 agent 消费时开始。例如,当我们创建一个新 agent 时,需要将 knowledge base 添加到 agent 中,然后就可以使用第 11 章后面会学习的 evaluation section,通过 groundedness 和 retrieval score 进行评估。

要更新和编辑 Foundry IQ knowledge base,请回到 Microsoft Foundry User interface,并在左侧菜单中进入 knowledge。此时你应该会看到所有已创建的 knowledge bases。点击某个 knowledge base 后,会看到可编辑页面,你可以根据需要更新 instructions、修改 model、调整 reasoning efforts。上一节已经覆盖了这些 details。

Summary

本章中,你学习了如何使用 Microsoft Foundry IQ 将 enterprise data 集成到 AI systems 中。你探索了 contextual AI 的重要性,考察了 enterprise data integration patterns,并完成了一个 hands-on example,将 knowledge base 连接到 agent。

你还学习了如何设计 reusable knowledge bases,并确保 systems 得到有效 evaluation 和 governance。

下一章中,我们将在这些概念基础上继续,实施 advanced agent capabilities 和 tool integrations。