Files
xk-ai-agent/docs/agent_lifecycle.md
2026-08-14 21:50:48 +08:00

13 KiB
Raw Blame History

AI Agent 生命周期详解

概述

本文档详细描述中医AI Agent的完整生命周期以"患者主诉生成病历"和"病历生成处方"两个核心场景为例。


通用生命周期6个阶段

┌─────────┐    ┌─────────┐    ┌─────────┐    ┌──────────┐    ┌─────────┐    ┌─────────┐
│  ①感知  │───▶│  ②规划  │───▶│  ③检索  │───▶│  ④工具   │───▶│  ⑤反思  │───▶│  ⑥输出  │
│         │    │         │    │         │    │  调用    │    │  校验   │    │         │
└─────────┘    └─────────┘    └─────────┘    └──────────┘    └─────────┘    └─────────┘
     ▲                                                                              │
     │                                                                              │
     └────────────────────── 记忆沉淀(长期学习) ◀──────────────────────────────────┘

场景A患者主诉 → 生成病历

时序图

患者/医生         Go服务(Controller)        Agent Runner          LLM              MaxKB         规则引擎
    │                   │                      │                  │                 │              │
    │ POST /emr/gen     │                      │                  │                 │              │
    │──────────────────▶│                      │                  │                 │              │
    │                   │ CreateSession        │                  │                 │              │
    │                   │─────────────────────▶│                  │                 │              │
    │                   │                      │ 注入System Prompt │                 │              │
    │                   │                      │─────────────────▶│                 │              │
    │                   │                      │                  │                 │              │
    │                   │                      │ 思考:需要检索病历模板               │              │
    │                   │                      │ 调用工具maxkb_retrieve          │              │
    │                   │                      │───────────────────────────────────────────────▶│
    │                   │                      │                 │                 │  RAG检索    │
    │                   │                      │                 │                 │ 返回规范片段 │
    │                   │                      │◀────────────────────────────────────────────────│
    │                   │                      │                  │                 │              │
    │                   │                      │ 生成病历初稿     │                 │              │
    │                   │                      │─────────────────▶│                 │              │
    │                   │                      │                  │                 │              │
    │                   │                      │ 规则校验          │                 │              │
    │                   │                      │──────────────────────────────────────────────────────────▶│
    │                   │                      │                  │                 │              │
    │                   │                      │ 有issues─────Yes──▶ 反思修正循环  │              │
    │                   │                      │────No──▶ 输出最终结果               │              │
    │                   │                      │                  │                 │              │
    │◀─────────────────│ JSON Response        │                  │                 │              │
    │                   │                      │                  │                 │              │

详细步骤

阶段 动作 涉及组件 代码位置
①感知 接收HTTP请求解析JSON创建Agent会话 handler.EMRHandler.Generate internal/handler/emr_handler.go
②规划 LLM分析任务需要哪些信息检索什么 agent.Runner.Run → LLM internal/agent/runner.go
③检索 调用MaxKB获取病历模板、术语规范 tool.MaxKBRetrieveTool internal/tool/maxkb.go
④工具 可选查HIS获取患者病史 tool.HISTool internal/tool/agent_tools.go
⑤反思 规则引擎检查完整性,不通过则修正 rule.EMRQualityChecker internal/rule/rule_engine.go
⑥输出 返回结构化病历JSON + 质控结果 handler响应封装 internal/handler/emr_handler.go

场景B病历 → 生成处方

时序图

医生               Go服务              Agent Runner          LLM              MaxKB        规则引擎
 │                   │                    │                  │                 │              │
 │ POST /rx/gen      │                    │                  │                 │              │
 │──────────────────▶│                    │                  │                 │              │
 │                   │ CreateSession      │                  │                 │              │
 │                   │───────────────────▶│                  │                 │              │
 │                   │                    │ System Prompt注入 │                 │              │
 │                   │                    │─────────────────▶│                 │              │
 │                   │                    │                  │                 │              │
 │                   │                    │ 辨证:太阳伤寒表实证              │              │
 │                   │                    │ 检索经典方剂       │                 │              │
 │                   │                    │──────────────────────────────────▶│              │
 │                   │                    │                  │                 │ 返回麻黄汤   │
 │                   │                    │◀──────────────────────────────────│              │
 │                   │                    │                  │                 │              │
 │                   │                    │ 生成处方初稿      │                 │              │
 │                   │                    │─────────────────▶│                 │              │
 │                   │                    │                  │                 │              │
 │                   │                    │ 配伍禁忌校验 ◀──────────────────────────────────────────────│
 │                   │                    │ 剂量校验       ◀──────────────────────────────────────────────│
 │                   │                    │ 孕妇安全检查   ◀──────────────────────────────────────────────│
 │                   │                    │                  │                 │              │
 │                   │                    │ Blocked? ──Yes──▶ 重新组方(反思循环)         │
 │                   │                    │────No──▶ 输出处方               │              │
 │                   │                    │                  │                 │              │
 │◀─────────────────│ JSON Response      │                  │                 │              │
 │                   │                    │                  │                 │              │
 │ 医生审核确认       │                    │                  │                 │              │
 │ POST /rx/:id/approve                  │                  │                 │              │
 │──────────────────▶│ 写入审计日志       │                  │                 │              │
 │                   │──────────────────────────────────────────────────────────────────────▶│
 │                   │                    │                  │                 │              │

详细步骤

阶段 动作 涉及组件 安全级别
①感知 接收病历+患者信息,创建会话 handler.PrescriptionHandler -
②规划 LLM辨证→确定治则治法→选方思路 agent.PrescriptionGenerator -
③检索 MaxKB检索对应证型的经典方剂 tool.MaxKBRetrieveTool 知识来源
④工具 药典查询验证剂量、HIS查过敏史 tool.PharmacopoeiaTool 数据支撑
⑤反思 十八反十九畏硬校验 rule.PrescriptionValidator 🔴 硬拦截
⑤反思 孕妇/儿童剂量调整 rule.PrescriptionValidator 🟡 警告
⑤反思 过敏史冲突检查 rule.PrescriptionValidator 🔴 硬拦截
⑥输出 结构化处方 + Human-in-the-Loop handler响应 + 医生审核 🟢 人工兜底

安全设计原则

三层防护体系

┌─────────────────────────────────────────────────┐
│  Layer 3: 人工审核Human-in-the-Loop         │  ← 最后防线
│  医生审核确认每一张处方                          │
├─────────────────────────────────────────────────┤
│  Layer 2: 规则引擎硬约束独立于LLM         │  ← 核心防线
│  十八反十九畏 / 剂量上限 / 孕妇禁忌 / 过敏冲突   │
├─────────────────────────────────────────────────┤
│  Layer 1: MaxKB知识库事实基础               │  ← 知识防线
│  药典规范 / 经典方剂 / 临床指南                 │
└─────────────────────────────────────────────────┘

关键原则

  1. LLM不做最终决策 —— 只负责语言理解和推理,不负责医疗判断
  2. 规则引擎独立运行 —— 不依赖LLM的自检用确定性代码做硬校验
  3. 每次修正都有审计日志 —— 谁在什么时间做了什么修改,全链路可追溯
  4. Human-in-the-Loop —— 处方最终必须经过医生确认才能生效

配置 MaxKB 知识库

快速部署

# Docker一键启动MaxKB
docker run -d --name maxkb -p 8080:8080 1panel/maxkb

# 访问 http://localhost:8080
# 默认账号: admin / MaxKB@123..

推荐上传的文档

分类 文档示例 用途
药典 《中国药典》2020版中药部分 剂量、性味归经、禁忌
方剂 《方剂学》教材 / 《伤寒论》原文 经典方剂组成与主治
规范 《中医病历书写规范》 病历模板与质控标准
指南 各病种中医诊疗指南 辨证分型与治法
内部分享 本院名老中医经验方 院内知识沉淀

获取API Key

  1. 登录MaxKB控制台
  2. 进入「应用管理」→ 创建应用
  3. 选择知识库 → 配置模型
  4. 在「API Key管理」中生成 Key
  5. 将 Key 和 AppID 填入 manifest/config/config.yaml