用 Amazon Bedrock AgentCore 与 MCP 构建跨系统自治商业洞察

2026-07-29 13 预计阅读时间: 1 分钟
来源: aws.amazon.com AI 摘要 Original link

Disclaimer: This article is an AI-assisted summary. Read it together with the original source when precision matters. The summary may omit context, version differences, or edge cases and is not official documentation.

预计阅读时间:8 分钟

企业并不缺数据,真正困难的是让模型在正确的权限边界内访问分散的数据,并把一次问答变成可持续的分析流程。Amazon Bedrock AgentCore 的思路是把数据连接、访问控制和持久记忆更多地交给配置层:通过预构建的 MCP Server 连接器接入多个系统,让业务人员用自然语言提问,同时自动执行角色边界。

从“接一个数据源”转向“编排多个能力”

传统商业智能助手通常需要为数据仓库、CRM、工单系统和文档库分别开发适配器。每增加一个系统,团队都要处理认证、参数转换、异常重试和返回结构,定制代码很快成为维护负担。

MCP Server 把外部能力表示为模型可以发现和调用的工具。Agent 不必理解每个后端的私有协议,只需要知道工具名称、输入参数、输出结构以及调用约束。企业因此可以把系统集成拆成三个相对独立的层次:

  • MCP 连接器负责暴露查询、搜索或聚合能力。
  • AgentCore 负责工具选择、流程执行和上下文管理。
  • 访问策略负责决定某个身份能看哪些数据、调用哪些工具。

例如,“解释本季度续约率下降的原因”可能需要先读取数据仓库中的续约指标,再从 CRM 汇总流失客户特征,最后检索支持系统中的高频问题。这里的价值不只是一次性拼接结果,而是让 Agent 根据中间结果继续选择工具、验证假设并形成带依据的结论。

权限必须约束每一次工具调用

自然语言入口不能成为绕过业务权限的捷径。即使同一个 Agent 面向多个部门,也应在每次 MCP 工具调用时携带并校验用户身份、角色、租户和数据范围。

细粒度控制通常需要同时回答四个问题:

  1. 当前用户能否使用这个工具?
  2. 用户能访问哪些区域、客户或业务单元?
  3. 返回结果中是否存在需要屏蔽的字段?
  4. 这次调用是否需要记录到审计日志?

角色权限不应只写进系统提示词。提示词可以指导模型行为,却不是可靠的授权机制。真正的边界应由连接器、策略层或目标系统强制执行。这样,即使模型错误地选择了工具或构造了过宽的查询,后端仍会拒绝越权请求。

持久记忆让分析连续,但不能变成数据仓库

持久记忆可以保存用户偏好、历史分析目标和已经验证过的业务假设。例如,销售负责人再次询问“更新上周的流失分析”时,Agent 可以沿用指标定义、时间窗口和关注区域,而不必重新收集全部上下文。

不过,记忆中不宜无限保存原始查询结果。客户明细、财务数据和个人信息可能受到保留期限、删除请求及跨区域存储规则约束。更稳妥的做法是保存引用、摘要和决策状态,并在需要时根据当前权限重新读取源系统。权限变更后,历史记忆也不应继续暴露用户已经失去访问权的数据。

一个可以改造的配置与请求示例

下面是概念性的 YAML,用来展示如何组织 MCP 连接器、角色策略和记忆配置。它不是官方 AgentCore 配置格式;落地时需要把连接器名称、字段和部署命令替换成当前环境实际支持的定义。

agent:
  name: business-insights
  instruction: |
    Analyze business questions with available MCP tools.
    Cite the source system and reporting period for every conclusion.
    Do not infer customer-level facts when only aggregate data is available.

mcp_servers:
  - id: warehouse
    connector: prebuilt-data-warehouse
    authentication: workload_identity
    tools:
      - query_metrics
  - id: crm
    connector: prebuilt-crm
    authentication: oauth2
    tools:
      - summarize_accounts
  - id: support
    connector: prebuilt-support-desk
    authentication: oauth2
    tools:
      - search_ticket_themes

access_policies:
  - role: finance_analyst
    allow:
      - warehouse.query_metrics
    filters:
      region: "${user.region}"
  - role: revenue_manager
    allow:
      - warehouse.query_metrics
      - crm.summarize_accounts
      - support.search_ticket_themes
    filters:
      business_unit: "${user.business_unit}"

memory:
  enabled: true
  namespace: "${user.tenant_id}/${user.user_id}"
  retain_days: 30
  store_raw_tool_results: false

audit:
  log_tool_calls: true
  log_policy_decisions: true
  redact_fields:
    - customer_email
    - phone_number

配置完成后,可以这样实践一次自然语言分析请求。下面的端点和令牌变量同样是便于改造的接口示例,不代表固定的 AgentCore API 路径:

export AGENT_ENDPOINT="https://agent.example.com/invoke"
export ACCESS_TOKEN="replace-with-a-short-lived-token"

curl --fail-with-body "$AGENT_ENDPOINT" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "session_id": "renewal-review-2025-q1",
    "message": "比较本季度与上季度的续约率,找出下降最明显的区域,并结合 CRM 和支持工单解释可能原因。每个结论都注明数据来源和统计周期。"
  }'

生产环境还应让响应包含工具调用记录、数据时间戳和策略判定标识。业务结论可以用自然语言表达,但证据链必须能够被审计和复现。

上线前检查这些边界

采用这种架构时,连接器数量并不是最重要的指标。更关键的是工具定义是否足够窄、身份是否端到端传递,以及失败时系统是否选择拒绝访问。

上线前至少应检查:未授权角色无法发现或调用受限工具;区域和租户过滤由服务端执行;记忆使用独立命名空间并支持过期;敏感字段不会进入日志;每个结论能够追溯到数据源和统计时间;高风险操作需要人工确认。

AgentCore、MCP 连接器和配置化权限可以减少重复集成代码,但不会自动解决数据质量、指标口径和治理责任。更稳妥的采用路径是先选一个指标定义清晰、只读且容易复核的分析场景,再逐步增加数据源、记忆范围和自治程度。


相关推荐