> For the complete documentation index, see [llms.txt](https://yeasy.gitbook.io/agentic_ai_guide/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://yeasy.gitbook.io/agentic_ai_guide/di-san-bu-fen-gong-cheng-shi-jian-yu-luo-di/08_frameworks/8.5_enterprise.md).

# 8.5 企业级集成：与现有系统整合

在小团队与大型企业环境中，由于合规、安全、技术栈限制（如必须用 Java/.NET），引入智能体技术往往面临巨大阻力。

一类企业级智能体 SDK 正是为了解决这一问题：它们不是要颠覆现有架构，而是作为 **“AI 编排层”** 平滑嵌入既有系统。

> **重要变化**：Microsoft Agent Framework 已成为 Semantic Kernel 与 AutoGen 之后的统一智能体框架方向。由于 SDK 版本和迁移策略变化很快，本节只保留稳定的架构差异和代码形态；实际项目应以 Microsoft 官方文档和当前 release notes 选择版本。

## 8.5.1 企业级智能体 SDK 的核心理念

这类 SDK 往往采用传统软件工程的抽象方式，把 LLM 能力组织为可组合的构件：

### Kernel（内核对象）

系统的核心对象，负责管理服务、插件和执行上下文。它更适合作为一个轻量的运行时容器按次创建，而不是长期持有的单例；因为插件集合是可变的，官方也更推荐按使用周期创建和释放 Kernel。

### Plugins（插件化业务能力）

很多企业 SDK 倾向于把工具称为 Plugins（插件），强调复用现有业务代码。这体现了它的定位：**将现有的业务代码“插件化”给 AI 使用**。

* 一个 Plugin 就是一个普通的 C#/Python 类。
* 只要给函数加上 `@kernel_function` 装饰器，它就变成了 AI 可调用的技能。

### Function Calling（函数调用编排）

现代企业 SDK 更常把编排建立在 **函数调用（Function Calling）** 上：模型根据用户目标自动选择已注册的插件函数，运行时再负责执行、回填结果与继续推理。相比早期的 Planner 抽象，这种方式更贴近主流模型的原生能力，也更容易跨模型迁移。

### 生态演进

* **Semantic Kernel 1.x 时代**：成熟稳定，适合存量生产环境。
* **Microsoft Agent Framework 时代**（新方向）：统一了 Semantic Kernel 与 AutoGen，提供更强的事件驱动与多智能体协作能力。

## 8.5.2 实战：为 ERP 系统添加 AI 助手

假设有一个传统的 ERP 系统，现在想给它加一个“自然语言查询库存”的功能。

### 步骤 1: 定义插件

你不需要重写业务逻辑，只需要简单封装现有的 API。

```python
from semantic_kernel.functions import kernel_function

class InventoryPlugin:
    @kernel_function(
        description="根据产品ID查询当前库存数量",
        name="GetStockCount"
    )
    def get_stock_count(self, product_id: str) -> int:
        # 这里调用旧系统的 API 或数据库

        print(f"Checking database for {product_id}...")
        return 42

    @kernel_function(
        description="当库存低于阈值时发送补货邮件",
        name="SendRestockEmail"
    )
    def send_restock_email(self, product_id: str, quantity: int) -> str:
        return f"Email sent for {quantity} units of {product_id}"
```

### 步骤 2: 定义语义函数

有些逻辑适合写代码（如查库），有些逻辑适合问 AI（如写邮件）。这类 SDK 允许你把 Prompt 也定义为函数。

```python

# 定义一个写邮件的 Prompt 模板

email_prompt = """
请为产品 {{$product_name}} 写一封补货申请邮件。
当前库存: {{$current_stock}}
建议补货: {{$amount}}
语气: 正式且紧急
"""
```

### 步骤 3: 初始化 Kernel 并运行

以下示例展示了如何初始化 Kernel、注册服务与插件，并启用自动函数调用： 阅读时重点关注“注册服务”与“自动函数调用配置”这两段，它们决定了旧系统能力如何被模型稳定编排。

```python

# Semantic Kernel 1.x 示例：初始化 Kernel、注册服务与插件，并启用自动函数调用

import os
from semantic_kernel import Kernel
from semantic_kernel.connectors.ai.open_ai import OpenAIChatCompletion
from semantic_kernel.connectors.ai import FunctionChoiceBehavior
from semantic_kernel.connectors.ai.prompt_execution_settings import PromptExecutionSettings

async def main():
    # 1. 初始化 Kernel

    kernel = Kernel()

    # 2. 配置 AI 服务（具体方法名请按当前 release notes 核对）

    service_id = "default"
    kernel.add_service(
        OpenAIChatCompletion(
            service_id=service_id,
            ai_model_id="gpt-5.5",
            api_key=os.getenv("OPENAI_API_KEY"),
        )
    )

    # 3. 注册插件

    # 导入原生插件

    kernel.add_plugin(InventoryPlugin(), "Inventory")

    # 导入语义插件 (Prompt)

    kernel.add_function(
        plugin_name="Office",
        function_name="WriteEmail",
        prompt=email_prompt
    )

    # 4. 启用自动函数调用
    settings = PromptExecutionSettings()
    settings.function_choice_behavior = FunctionChoiceBehavior.Auto()

    # 用户的模糊指令
    goal = "查询某产品的库存，如果低于阈值，就生成一封补货申请邮件。"

    # 模型会在对话循环中自动选择 Inventory 与 Office 函数
    result = await kernel.invoke_prompt(goal, settings=settings)

    print(result)

if __name__ == "__main__":
    import asyncio
    asyncio.run(main())
```

> **API 变更说明**：
>
> * `add_model_service()` 已改为 `add_service()`（请以当前 Semantic Kernel release notes 为准）
> * `import_plugin_from_object()` 已改为 `add_plugin()`
> * `FunctionChoiceBehavior` 保持稳定，支持 `Auto()`、`Required()` 与 `None()` 三种模式
> * `create_function_from_prompt()` 已改为 `add_function()`

## 8.5.3 企业级特性

### 多语言与技术栈适配

企业级 SDK 往往提供多语言绑定或多运行时支持，便于在既有技术栈内落地。Semantic Kernel 提供 Python、.NET（C#）与 JavaScript 支持，Microsoft Agent Framework 进一步统一跨语言体验。

### 过滤器：类似 AOP 的机制

这类 SDK 常支持类似切面编程（AOP）的过滤器机制：你可以在任何函数被调用前后插入审计、鉴权、脱敏等逻辑。

* **审计**：记录谁在什么时间调用了什么插件。
* **鉴权**：在调用敏感插件前，检查用户权限。
* **脱敏**：在把数据传给 LLM 前，自动掩盖 PII 信息。

### 连接器生态

企业落地的关键不只是“能调用工具”，而是能否与身份、权限、审计、数据源连接器体系集成。常见连接器类型包括：

* 结构化数据源（数据库、数据仓库）
* 文档系统与知识库
* 工单/协作系统
* 向量存储与检索服务

### Microsoft Agent Framework 的新增能力

Microsoft Agent Framework 在 Semantic Kernel 基础上增强了：

* **事件驱动架构**：支持更复杂的多智能体协作与实时反馈。
* **统一的中间层**：无缝整合了原 AutoGen 的群聊编排与 Semantic Kernel 的函数调用。
* **Model Context Protocol (MCP) 支持**：与开源生态的标准交互能力。
* **Agent-to-Agent (A2A) 消息传递**：跨系统的智能体通信。

## 8.5.4 企业落地常见挑战

企业部署智能体时，难点往往集中在工程与治理，而不是“能不能对话”：

* **与现有系统集成**：身份、权限、数据访问与审计如何统一？
* **数据访问与质量**：数据是否可用、可解释、可追责？
* **变更管理**：流程如何改造、岗位如何协同、如何培训与验收？
* **风险控制**：越权调用、提示词注入、数据泄露如何防护与回溯？

## 8.5.5 小结与迁移路径

企业级智能体 SDK 往往没有“炫技式”的 Demo，但更擅长把智能体能力嵌入现有 IT 架构。

它没有试图重造轮子，而是把 AI 变成了一个可以被标准软件工程调用的 **组件**。对于正在进行数字化转型的传统企业，这类 SDK 往往更适合作为“可治理、可审计、可集成”的智能体基座。

**2026 年的选择指南**：

* **维持现状**：如果已采用 Semantic Kernel 1.x，继续维护至少 1 年无压力，建议定期审视新特性。
* **逐步迁移**：考虑在新项目中试用 Microsoft Agent Framework（RC → GA），体验统一的编排模型。
* **长期规划**：Microsoft Agent Framework 代表未来方向，建议在技术选型时纳入评估。

下一节将探讨平台级智能体产品形态，重点对比平台接口与开源框架在能力边界与适用场景上的差异。

***

**下一节**: [8.6 平台级产品：接口原语与托管运行时](/agentic_ai_guide/di-san-bu-fen-gong-cheng-shi-jian-yu-luo-di/08_frameworks/8.6_platforms.md)
