用 Amazon Bedrock 构建面向残障学生的多智能体过渡规划系统

2026-09-03 28 预计阅读时间: 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.

预计阅读时间:11 分钟

对残障学生而言,从学校走向高等教育、职业培训或就业,不只是生成一份普通的学习计划。规划过程需要理解学生的能力、兴趣、支持需求和家庭意见,还要符合美国《残障人士教育法案》(IDEA)中的过渡规划要求。Trinity 的案例展示了一个重要方向:把对话式 AI 从单一问答工具扩展为基于 Amazon Bedrock 的无服务器多智能体系统,为美国各地学区生成更具结构化和可执行性的过渡计划。

从聊天机器人到规划系统

普通聊天机器人通常围绕“输入问题,生成回答”运行。但过渡规划需要多个相互衔接的任务:

  • 通过对话收集学生的目标、优势、兴趣和支持需求。
  • 识别教育、就业、独立生活等不同领域的规划信息。
  • 检查内容是否覆盖 IDEA 相关要求。
  • 将信息整理成学校工作人员可以审阅和执行的计划。
  • 在缺少信息、存在歧义或涉及敏感判断时要求人工介入。

因此,系统的核心不应只是一个更大的模型,而是清晰的任务分工和可追踪的工作流。可以把它拆成多个专业智能体:访谈智能体负责提问,分析智能体负责提取结构化信息,合规智能体负责检查完整性,计划智能体负责生成草案,审阅智能体负责指出风险和缺口。

这种拆分有两个直接好处。其一,每个智能体的提示词和输出格式更容易测试。其二,学区可以知道一项建议是由哪个步骤产生的,便于教师、家长和学生共同审阅,而不是把最终文本当成不可解释的黑盒结果。

为什么采用无服务器多智能体架构

面向美国多个学区部署时,系统需要同时处理不同规模的会话、学校和地区配置。无服务器架构可以让计算资源随请求变化,减少长期维护服务器集群的负担。一个可行的逻辑链路如下:

  1. 前端或学校系统提交一次学生访谈输入。
  2. API 层对用户身份、租户和请求格式进行校验。
  3. 工作流服务调用不同的 Bedrock 智能体或模型步骤。
  4. 每个步骤输出结构化 JSON,而不是直接输出一段不可解析的长文本。
  5. 工作流保存中间状态、审阅记录和最终计划。
  6. 学校工作人员在发布前确认内容,并处理需要人工判断的事项。

在 AWS 中,可以根据组织现有能力组合 API Gateway、Lambda、Step Functions、Amazon Bedrock、DynamoDB 和 CloudWatch。这里的关键不在于服务数量,而在于边界设计:模型负责语言理解和草案生成,业务系统负责权限、状态、审计和发布控制。

对残障学生数据尤其要谨慎。系统应尽量减少不必要的个人信息,按学区和角色实施访问控制,对提示词、模型响应和计划版本建立审计记录,并在产品层面明确 AI 生成内容必须经过合格人员审阅。IDEA 对教育服务和个体支持的要求不能被简单等同为模型输出格式,合规检查只能辅助工作人员,不能替代专业判断。

一个可改造的 Bedrock 工作流示例

下面的示例演示一个最小化的“分析智能体 + 计划智能体”流程。它假设已经在 AWS 区域中配置了可调用的 Bedrock 模型,并通过环境变量提供模型 ID。示例使用 converse API,适合放入 Lambda 或普通 Python 服务中改造;真实系统还需要加入认证、租户隔离、持久化和人工审批。

运行前准备:

  • 配置 AWS 凭证和默认区域,例如 AWS_REGION=us-east-1
  • 设置一个当前账户可访问的 Bedrock 模型 ID。
  • 确认 IAM 权限包含对应模型的调用权限。
  • 不要在测试数据中使用真实学生姓名、联系方式或其他不必要的身份信息。
import json
import os
from typing import Any

import boto3


MODEL_ID = os.environ["BEDROCK_MODEL_ID"]
REGION = os.getenv("AWS_REGION", "us-east-1")

bedrock = boto3.client("bedrock-runtime", region_name=REGION)


def call_agent(system_prompt: str, user_payload: dict[str, Any]) -> dict[str, Any]:
    response = bedrock.converse(
        modelId=MODEL_ID,
        system=[{"text": system_prompt}],
        messages=[
            {
                "role": "user",
                "content": [{"text": json.dumps(user_payload, ensure_ascii=False)}],
            }
        ],
        inferenceConfig={"temperature": 0.2, "maxTokens": 1200},
    )

    text = response["output"]["message"]["content"][0]["text"]
    return json.loads(text)


def build_transition_plan(student_input: str) -> dict[str, Any]:
    extracted = call_agent(
        """
你是过渡规划信息提取智能体。只返回合法 JSON,不要输出 Markdown。
字段必须为 strengths、interests、education_goals、employment_goals、
independent_living_needs、supports、missing_information。
不要猜测没有提供的事实;缺少的信息放入 missing_information。
""",
        {"student_input": student_input},
    )

    plan = call_agent(
        """
你是学校过渡计划草案智能体。只返回合法 JSON,不要输出 Markdown。
字段必须为 student_vision、measurable_goals、services_and_supports、
responsible_parties、timeline、review_questions。
所有目标都必须明确指出依据的已知信息;无法确定的内容写入 review_questions。
不要做医疗、法律或能力诊断,不要替代学校工作人员的专业判断。
""",
        {"extracted_profile": extracted},
    )

    return {
        "profile": extracted,
        "draft_plan": plan,
        "requires_human_review": True,
    }


if __name__ == "__main__":
    sample = (
        "学生喜欢计算机维修,希望毕业后参加职业培训;在公共交通和工作场所沟通方面需要支持。"
    )
    print(json.dumps(build_transition_plan(sample), ensure_ascii=False, indent=2))

这个示例刻意把中间结果限制为 JSON。实际部署时,可以将两个调用拆成 Step Functions 的不同状态,并把输入和输出保存到 DynamoDB。若某一步返回无效 JSON、发现关键字段缺失,或检测到需要专业人员判断的内容,工作流应进入人工审阅状态,而不是继续自动发布。

多学区扩展时需要解决的问题

租户隔离

不同学区可能拥有不同的表单字段、审批流程、支持资源和文档模板。应在每次请求中显式传递 district_id,并在数据库分区键、授权策略和日志字段中保持一致。不能只依赖模型提示词来实现数据隔离。

输出可追踪

一份计划不应只有最终文本。建议同时保存:输入摘要、结构化提取结果、使用的提示词版本、模型标识、生成时间、审阅者、修改记录和发布状态。这样才能解释计划如何形成,也便于发现某个提示词版本带来的系统性问题。

质量评估

评估指标不能只看语言是否流畅,还应检查:

  • 是否忠实于学生提供的信息。
  • 是否覆盖教育、就业和独立生活等相关目标。
  • 是否提供了可执行、可衡量的目标。
  • 是否正确标记了缺失信息和不确定内容。
  • 是否存在刻板印象、过度推断或不适当的建议。
  • 教师、家长和学生是否能够理解并修订结果。

对于这类高影响场景,离线评测集、人工抽检和持续反馈比单纯提高模型温度或更换模型更重要。

落地建议

Trinity 这类系统的价值,不只是“让 AI 写出一份计划”,而是把复杂的访谈、信息整理、要求检查和人工审阅组织成一个可扩展的服务流程。采用时可以遵循以下边界:

  • 先明确计划 schema 和审批状态,再设计智能体。
  • 让每个智能体只负责一个可测试的任务。
  • 使用结构化输出承载中间状态,减少自由文本在步骤之间流动。
  • 把身份、权限、审计和数据保留策略放在应用层控制。
  • 将 AI 结果定位为可编辑草案,而不是自动生效的教育决定。
  • 用真实工作流程中的教师、家长和学生反馈持续校准系统。

当模型能力与严格的工作流、隐私控制和人工责任边界结合起来时,多智能体架构才适合进入教育和残障支持等高敏感领域。


相关推荐