PROJECT 02 — 产品设计 + 独立开发 · 生产运行中

智绘维护国土空间动态维护平台

说一句话,让 AI 完成原来 3 天的规划维护作业——Agent 与确定性流程共存的业务自动化实践。

角色 产品设计 + 全栈独立开发 周期 2026.01 - 至今 状态 生产运行 · 服务 10+ 业务人员
3天 → 1小时报告生成全流程耗时
10 倍异步化后单次任务提速
26 + 22 项业务指标体系设计
零改动新增 GIS 工具(自动注册)

为什么做

WHY

01痛点:一份维护方案 = 3 天重复劳动

规划「动态维护」要反复做同一套流程:读 GDB 数据 → 校验 → 算 26 项指标 → 出两张附表 → 写 Word 报告。流程固定,但每次都要人做——这正是 AI 该接管的事。

02判断:全交给 Agent 不行,全写成死代码也不行

已验证的 SOP 要确定性可审计(图执行,一步不乱);探索性需求要灵活性(Agent 自主编排)。所以核心设计是:让两条路共存,且软技能跑通后会沉淀为硬技能

怎么架构

ARCHITECTURE
前端      Vue3 三栏交互(聊天 SSE · 工作空间 · 动态表单)
   │
接口层    FastAPI · 7 组路由 · SSE 流式(校验 / 指标 / 报告全程可视)
   │
编排层    顶层 LangGraph 图 · 智能路由决定走哪条路
          ├─ 硬技能子图:StateGraph 确定性执行(步骤 = 节点,checkpoint = 条件边,失败自动降级 Agent)
          └─ Agent 子图:create_agent 自主编排工具(checkpointer 记忆 · 按项目会话隔离)
   │
服务层    工具自动注册(__init_subclass__,新增工具零改动)· 技能沉淀(序列挖掘 → 候选 → 人工升级)· 记忆与同步
   │
数据层    10+ 个 GIS 工具(arcpy 执行)· config.yaml 技能定义 · 双 SQLite(状态主存储 / 查询库)

值得展开讲的四个技术决策

HIGHLIGHTS
双形态编排

确定性图 + 自主 Agent 共存

已验证 SOP 走 LangGraph StateGraph 保证可审计;探索性流程交给 create_agent 保灵活。失败条件边让硬技能出错时自动降级给 Agent 兜底。

技能沉淀

系统会「学会」新技能

从操作历史里挖掘频繁成功序列 → 生成候选技能 → 人工确认升级为硬技能——软技能多次跑通后自动固化,系统的确定性覆盖面随使用扩大。

插件化工具

新增工具零改动

__init_subclass__ 钩子自动注册 + Pydantic 动态生成参数 Schema——放一个 .py 文件进目录,Agent 与技能体系立刻可用,注册表是唯一真相源。

工程治理

三层配置分离 + 全链路可观测

凭证(.env) / 运行参数(config.yaml) / 业务模板(templates) 三层分离;业务模板带 pytest schema 校验,业务侧改参数出错立刻暴露。

做成了什么

RESULTS

业务侧

报告生成从 人工 3 天压缩到 1 小时内;异步化改造让单次任务从 5 分钟降到 30 秒(10 倍)。维护方案产出附表 + Word 报告一键交付,10+ 业务人员日常使用。

工程侧

经历一轮完整的外部代码审查驱动的工程化整改:16 项缺陷逐一修复(异步 Checkpointer / 流式透传 / 操作记录幂等),沉淀出「改工具执行层必须同时验证技能路径与 Agent 路径」这类可复用的工程经验。

技术栈

STACK
LangChainLangGraphAgent 编排FastAPIVue3DeepSeek SSE 流式ArcPy / GISAPSchedulerSQLitefrpDocker阿里云