Logo
热心市民王先生

02 - ACI 技术原理核心

2.1 ACI 协议架构与通信模型

2.1.1 分层架构设计

ACI 采用三层架构设计,在传统的客户端-服务端模型之间引入语义中间层:

flowchart TB
    subgraph "Presentation Layer"
        A[Agent / LLM]
    end
    
    subgraph "ACI Semantic Layer"
        B[Intent Parser<br/>意图解析器]
        C[Context Manager<br/>上下文管理器]
        D[Tool Orchestrator<br/>工具编排器]
        E[Response Formatter<br/>响应格式化器]
    end
    
    subgraph "Tool Execution Layer"
        F[Tool A Adapter]
        G[Tool B Adapter]
        H[Tool C Adapter]
    end
    
    subgraph "Service Layer"
        I[Database]
        J[APIs]
        K[File System]
    end
    
    A -->|Natural Language| B
    B --> C
    C --> D
    D --> F
    D --> G
    D --> H
    F --> I
    G --> J
    H --> K
    E --> A
    F --> E
    G --> E
    H --> E

各层职责

层级组件核心职责
表示层Agent/LLM生成自然语言意图,理解响应
语义层Intent Parser将模糊输入解析为结构化意图
Context Manager维护会话状态,处理指代消解
Tool Orchestrator选择工具,编排执行链
Response Formatter将工具输出转换为自然语言
执行层Tool Adapters将 ACI 调用转换为底层 API 调用
服务层Services实际业务逻辑执行

2.1.2 通信模型:请求-协商-执行

与传统 API 的请求-响应模型不同,ACI 采用请求-协商-执行(Request-Negotiate-Execute)模型:

sequenceDiagram
    participant A as Agent
    participant AC as ACI Layer
    participant T as Tool
    
    A->>AC: 请求(可能不完整)
    
    alt 参数完整
        AC->>T: 直接执行
        T-->>AC: 结果
        AC-->>A: 响应
    else 参数缺失
        AC-->>A: 询问补充
        A->>AC: 提供补充
        AC->>T: 执行
        T-->>AC: 结果
        AC-->>A: 响应
    else 参数歧义
        AC-->>A: 请求澄清
        A->>AC: 确认意图
        AC->>T: 执行
        T-->>AC: 结果
        AC-->>A: 响应
    end

关键差异:ACI 允许多轮交互以达成共识,而非一次性精确调用。

2.1.3 MCP 协议实例分析

Model Context Protocol (MCP) 是 ACI 的标准化实现,其通信流程如下:

// 1. 工具发现
{
  "jsonrpc": "2.0",
  "method": "tools/list",
  "id": 1
}

// 2. 工具描述(ACI Schema)
{
  "tools": [{
    "name": "query_database",
    "description": "查询数据库获取数据",
    "inputSchema": {
      "type": "object",
      "properties": {
        "sql": {
          "type": "string",
          "description": "SQL 查询语句"
        }
      },
      "required": ["sql"]
    }
  }]
}

// 3. 工具调用(支持自然语言参数)
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "query_database",
    "arguments": {
      "sql": "SELECT * FROM orders WHERE date > '2024-01-01'"
    }
  },
  "id": 2
}

2.2 与传统 API/REST/GraphQL 的本质区别

2.2.1 协议设计哲学对比

维度REST APIGraphQLgRPCACI
设计目标资源操作数据查询高效 RPC意图执行
接口契约URL + HTTP MethodSchemaProtobuf语义描述
输入方式精确参数精确查询精确消息自然语言
错误处理状态码错误扩展状态码对话式澄清
状态管理无状态无状态可流式有状态会话
版本管理URL 版本Schema 演进协议版本向后兼容语义

2.2.2 接口描述方式演进

传统 OpenAPI (REST)

paths:
  /orders:
    post:
      summary: 创建订单
      parameters:
        - name: product_id
          required: true
          schema:
            type: string
        - name: quantity
          required: true
          schema:
            type: integer
            minimum: 1

特点

  • 精确类型定义
  • 严格校验规则
  • 机器优先阅读

ACI Schema (MCP)

{
  "name": "create_order",
  "description": "为用户创建新订单。支持自然语言描述,如'一杯大杯拿铁'或'两份三明治'。",
  "examples": [
    {
      "input": "一杯大杯拿铁,送到公司",
      "output": {"product": "latte", "size": "large", "address": "company"}
    }
  ],
  "inputSchema": {
    "type": "object",
    "properties": {
      "description": {
        "type": "string",
        "description": "订单的自然语言描述"
      }
    }
  }
}

特点

  • 语义化描述
  • 提供示例引导
  • 支持模糊输入
  • 人类和 Agent 均可理解

2.2.3 调用复杂度对比

场景:查询”张三最近的 3 个订单”

REST API 调用

# 需要 3 次调用
# 1. 查询用户 ID
GET /users?name=张三
# 2. 查询订单列表
GET /orders?user_id=xxx&sort=date_desc&limit=3
# 3. 获取订单详情(如需要)
GET /orders/{id}

ACI 调用

Agent -> ACI: "查询张三最近的 3 个订单"
ACI -> Tool: 自动执行上述 3 步
Tool -> ACI: 返回聚合结果
ACI -> Agent: "张三最近 3 个订单:1) 咖啡 (3天前) 2) 书籍 (1周前)..."

效率提升:ACI 将编排复杂度从客户端转移到协议层,Agent 只需表达意图。

2.3 面向 Agent 的交互模式设计

2.3.1 意图解析机制

ACI 的核心能力是将模糊意图映射到精确操作

flowchart LR
    A[自然语言输入] --> B{意图分类}
    B -->|查询| C[Query Intent]
    B -->|操作| D[Action Intent]
    B -->|创建| E[Creation Intent]
    
    C --> F[参数提取]
    D --> F
    E --> F
    
    F --> G[实体识别]
    G --> H[槽位填充]
    H --> I[工具选择]

技术实现

  • Few-shot Prompting:通过示例教会 LLM 意图映射
  • Function Calling:OpenAI/Anthropic 原生支持的工具调用格式
  • ReAct Pattern:推理(Reasoning)+ 行动(Acting)交替执行

2.3.2 上下文管理机制

ACI 需要维护多层级上下文

上下文类型范围示例
会话级单次对话用户偏好、历史指令
任务级当前任务多步操作的状态
工具级特定工具数据库连接、缓存
全局级跨会话用户画像、权限

MCP 上下文传递示例

{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "query_orders",
    "arguments": {
      "query": "最近的"  // 模糊,依赖上下文
    },
    "context": {
      "user_id": "user_123",
      "last_query": "查看我的订单",
      "timezone": "Asia/Shanghai"
    }
  }
}

2.3.3 渐进式确认模式

对于高风险操作(支付、删除),ACI 采用渐进式确认

sequenceDiagram
    participant A as Agent
    participant AC as ACI
    participant T as Tool
    
    A->>AC: "删除所有草稿"
    AC-->>A: "将删除 15 个草稿文件,确认吗?"
    A->>AC: "确认"
    AC->>T: 执行删除
    T-->>AC: "已删除 15 个文件"
    AC-->>A: "已完成,删除:file1.txt, file2.txt..."

优势

  • 减少误操作
  • 提供操作预览
  • 支持撤销(在超时窗口内)

2.4 语义理解与意图识别机制

2.4.1 语义 Schema 设计原则

ACI 的 Schema 不仅是类型定义,更是语义引导

原则说明示例
描述优先用自然语言说明用途”查询用户最近的订单”
示例驱动提供典型输入输出3-5 个示例
约束表达用描述而非硬规则”日期格式为 YYYY-MM-DD”
歧义处理说明如何澄清”如未指定时间,询问用户”

2.4.2 工具选择算法

当多个工具可能匹配时,ACI 使用相关性评分

def score_tool_match(intent, tool):
    score = 0
    
    # 1. 名称相似度(语义嵌入)
    score += semantic_similarity(intent, tool.name) * 0.3
    
    # 2. 描述匹配度
    score += semantic_similarity(intent, tool.description) * 0.4
    
    # 3. 示例匹配度
    for example in tool.examples:
        score += similarity(intent, example.input) * 0.2
    
    # 4. 历史成功率
    score += tool.success_rate * 0.1
    
    return score

阈值策略

  • score > 0.8:直接执行
  • 0.5 < score < 0.8:请求确认
  • score < 0.5:拒绝或询问

2.4.3 多语言与跨文化支持

ACI 需要处理不同语言的意图表达:

语言表达方式ACI 处理
英文”Book a table for 2 at 7pm”直接解析
中文”晚上7点订个两人桌”时区转换
日文”今夜7時に2名で予約”敬语处理
口语”帮我整个明天下午3点的会议室”口语化映射

2.5 本章小结

ACI 的技术架构在三个维度实现了对传统协议的突破:

  1. 通信模型:从请求-响应演进为请求-协商-执行,支持多轮对话达成共识
  2. 接口描述:从精确类型定义转向语义化描述 + 示例驱动
  3. 交互模式:引入意图解析、上下文管理和渐进式确认

这些技术特性使得 ACI 更适合 Agent 的不确定性和对话特性。下一章将通过对比矩阵,系统性分析 ACI 与传统 API 的差异。


本章引用

  1. Anthropic. “Model Context Protocol Specification.” 2024.
  2. OpenAI. “Function Calling Best Practices.” 2024.
  3. LangChain. “Tool Design Patterns Documentation.” 2024.
  4. ReAct Paper: “ReAct: Synergizing Reasoning and Acting in Language Models.” 2023.