从遗留系统到智能体工作流:公共服务如何安全提速

2026-09-19 13 预计阅读时间: 1 分钟
来源: cloud.google.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.

预计阅读时间:13 分钟

州和地方政府并不缺少数字化系统,真正的问题是系统太多、数据彼此隔离、工作人员仍要在多个界面之间重复录入。进入智能体时代后,AI 的价值不应只是生成一段文字,而是把数据查询、文档核验、规则匹配和人工审批串成一条可审计的服务流程。

这也是 AI 成为州级 CIO 首要关注事项的重要背景:当积压案件、老旧基础设施和公众服务预期同时上升,机构需要的不是另一个孤立的聊天机器人,而是一座连接现有投资与现代服务交付的桥梁。

公共服务的瓶颈,本质上是流程断裂

公共部门常见的摩擦可以归纳为三类。

数据被部门边界切碎

案件材料、资产信息、合同记录和居民身份数据往往存放在不同部门维护的仓库中。工作人员即使拥有权限,也可能需要在多个系统中检索、下载和重新录入。

智能体并不能自动消除这些边界,但可以在权限控制之上调用查询工具,把多个来源的数据组织成统一的案件视图。关键是保留原始数据的归属和访问策略,而不是先把所有内容无差别复制到一个大数据库。

人工时间耗在低价值操作上

录入表单、整理附件、检查缺失字段、比对合同条款和生成标准通知,都会消耗专业人员的时间。适合自动化的是可重复、规则明确、结果可复核的步骤;涉及资格裁决、执法决定或高影响资源分配时,则应保留明确的人工审批点。

居民承担系统不互通的成本

当多个平台无法交换已经验证过的材料,居民可能被要求反复提交同一份证明。更合理的模式是:在居民授权、用途限定和保留期限明确的前提下,工作流先查询已有核验结果,仅在材料缺失、过期或不满足当前业务要求时请求补充。

案例说明:价值来自流程重构,而不只是模型能力

已有实践展示了几种不同的落地方向:

  • 犹他州交通运输部门(UDOT)需要识别并绘制超过 52,000 个地产地块。原先估计需要 33.5 年人工劳动,通过在 BigQuery 上构建统一数据平台,项目在不到一年内完成,让工程师能够重新专注于道路安全。
  • 哈特福德市在公共会议中提供覆盖 80 种语言的实时双向翻译,在扩大公众参与的同时,实现了 130 万美元的结构性成本节约。
  • 查塔努加市集中管理碰撞和事故数据,帮助规划与公共安全团队识别高风险路段、优化信号灯时序并安排基础设施投资。
  • 印第安纳州交通运输部门(INDOT)使用 AI 和文档分析处理采购合同合规审计,在不把持证工程师从现场项目中抽离的情况下满足 30 天合规期限,并节省了 360 小时高级工程师工时。
  • 洛杉矶市面对世界杯、超级碗和奥运会等大型活动带来的需求,将 Gemini 纳入 45 个部门、27,500 名员工的日常工作,以扩展行政处理能力和多语言支持。
  • 马里兰州在注重安全和隐私的云基础上,为约 40,000 名工作人员提供 Gemini 和 Gemini Notebook。相关团队在五周内构建并部署了清洁水管理应用,节省了数千小时工作时间。

这些项目的共同点不是“让 AI 独立管理政府”,而是先统一数据入口,再把模型嵌入一个边界清晰的业务流程。衡量指标也很具体:处理周期、人工工时、重复提交次数、语言覆盖率以及安全或合规结果。

一个可改造的案件预审工作流

下面是一个仅使用 Python 标准库的最小示例,用来演示智能体工作流的结构。它会检查申请字段、复用已有材料、查询政策规则,并把需要判断的案件送入人工队列。

假设说明:示例中的分类逻辑是确定性规则,不代表 Google Cloud 或 Gemini 的真实 API。实际项目可以在 classify_case 中接入机构批准的模型,在 lookup_existing_document 中接入 BigQuery 或现有案件系统,并使用正式的身份、授权和审计服务。

将以下内容保存为 workflow.py,然后运行 python workflow.py

from dataclasses import dataclass, asdict
from datetime import date
import json

@dataclass
class Application:
    case_id: str
    resident_id: str
    program: str
    annual_income: int
    household_size: int
    consent_to_reuse: bool
    submitted_documents: list[str]

# 模拟跨部门文档索引;生产环境必须按用途和权限查询。
DOCUMENT_INDEX = {
    "resident-1001": {
        "identity": {"verified": True, "expires": "2027-05-01"},
        "income": {"verified": True, "expires": "2026-12-31"},
    }
}

POLICY = {
    "housing_support": {
        "base_income_limit": 30000,
        "per_additional_member": 6000,
        "required_documents": ["identity", "income"],
    }
}

def lookup_existing_document(app: Application, document_type: str):
    if not app.consent_to_reuse:
        return None
    record = DOCUMENT_INDEX.get(app.resident_id, {}).get(document_type)
    if not record or not record["verified"]:
        return None
    if date.fromisoformat(record["expires"]) < date.today():
        return None
    return record


def collect_document_status(app: Application, required: list[str]):
    result = {}
    for document_type in required:
        if document_type in app.submitted_documents:
            result[document_type] = "submitted_now"
        elif lookup_existing_document(app, document_type):
            result[document_type] = "reused_with_consent"
        else:
            result[document_type] = "missing"
    return result


def classify_case(app: Application):
    policy = POLICY.get(app.program)
    if not policy:
        return {"route": "human_review", "reason": "unknown_program"}

    documents = collect_document_status(app, policy["required_documents"])
    missing = [name for name, status in documents.items() if status == "missing"]
    if missing:
        return {
            "route": "request_documents",
            "reason": "missing_required_documents",
            "missing": missing,
            "documents": documents,
        }

    income_limit = (
        policy["base_income_limit"]
        + max(0, app.household_size - 1) * policy["per_additional_member"]
    )

    # 接近阈值的案件交给工作人员,避免自动化直接作出高影响决定。
    margin = abs(app.annual_income - income_limit) / income_limit
    if margin <= 0.10:
        route = "human_review"
        reason = "income_near_policy_threshold"
    elif app.annual_income < income_limit:
        route = "ready_for_caseworker_approval"
        reason = "precheck_passed"
    else:
        route = "human_review"
        reason = "potential_ineligibility_requires_review"

    return {
        "route": route,
        "reason": reason,
        "income_limit": income_limit,
        "documents": documents,
    }


def audit_event(app: Application, result: dict):
    # 生产环境应写入不可篡改日志,并避免记录非必要的敏感信息。
    return {
        "event": "application_prechecked",
        "case_id": app.case_id,
        "program": app.program,
        "input_snapshot": asdict(app),
        "result": result,
    }


if __name__ == "__main__":
    application = Application(
        case_id="CASE-2026-0001",
        resident_id="resident-1001",
        program="housing_support",
        annual_income=32500,
        household_size=2,
        consent_to_reuse=True,
        submitted_documents=[],
    )

    decision = classify_case(application)
    print(json.dumps(audit_event(application, decision), indent=2, ensure_ascii=False))

这个示例刻意把最终决定留给案件工作人员。生产系统还应增加以下组件:

  1. 身份与授权层:验证工作人员身份,并按岗位、案件和数据用途控制访问。
  2. 检索层:只返回当前任务需要的字段,同时附带来源、时间和有效期。
  3. 智能体编排层:限制模型可调用的工具、参数和执行顺序。
  4. 人工审批层:对低置信度、高影响或政策边界案件强制复核。
  5. 审计与评估层:记录模型版本、工具调用、引用来源、审批人和最终结果。

上线前不要只测“回答得像不像”

公共服务系统的验收标准应覆盖任务质量、公平性、安全性和运营能力。

可以建立一组脱敏测试案件,并持续计算:

  • 必填字段提取准确率和文档分类准确率;
  • 错误复用、过期材料复用和越权读取的发生率;
  • 不同语言、地区或群体的转人工比例与错误率;
  • 平均处理时间、案件积压量和每案人工触点数;
  • 模型无法回答时是否能够安全退出,而不是编造政策;
  • 工作人员是否能看到来源、修改建议并推翻自动结果。

翻译场景还需要母语使用者参与评估,尤其要测试法律、福利、医疗和应急术语。文档审计场景则应要求系统引用具体合同页码或条款,不能只输出没有证据的结论。

采用建议:从一个拥堵环节开始,而不是一次替换全部系统

更稳妥的落地顺序是:

  • 选择一个量大、规则相对稳定、人工负担重且结果可验证的流程;
  • 建立基线,包括当前处理周期、返工率、积压量和单位成本;
  • 让智能体先做摘要、分类和材料检查,不立即执行不可逆操作;
  • 用 API 和受控工具连接遗留系统,避免把模型直接暴露给底层数据库;
  • 为居民提供知情说明、人工渠道、申诉机制和材料复用选择权;
  • 小范围上线并按群体、语言和案件类型观察结果,再逐步扩大权限。

智能体时代的公共服务不应以“无人参与”为目标。更实际的方向,是让系统处理重复检索和机械操作,让工作人员把时间投入现场安全、复杂案件判断、居民沟通和政策执行。只有当数据治理、人工责任和技术编排同时到位,AI 才能真正缩短服务链路,而不是在旧有孤岛之上增加一个新的界面。


相关推荐