5. 智能体与业务编排
5.1 Agent技能链
技能定义
智能政务解决方案中的Agent具备多种技能,每个技能对应一个特定的业务能力:
核心技能
-
审批审核技能(ApprovalReviewSkill):
- 功能:审核审批申请,判断是否符合条件,生成审核意见
- 输入:申请信息、申请材料、审批规则
- 输出:审核结果、审核意见、需要补充的材料
- 使用模型:审批专用模型 + 大语言模型
-
公文处理技能(DocumentProcessingSkill):
- 功能:解析公文内容,分类公文,提取关键信息
- 输入:公文文件、公文类型
- 输出:公文类别、公文内容、关键信息
- 使用模型:公文处理模型 + OCR模型
-
政务服务技能(GovernmentServiceSkill):
- 功 能:回答公众咨询,提供办事指南,处理服务请求
- 输入:用户问题、用户信息
- 输出:回答内容、办事指南、操作建议
- 使用模型:大语言模型(通义千问)+ RAG知识库
-
政策分析技能(PolicyAnalysisSkill):
- 功能:分析政策内容,评估政策效果,生成分析报告
- 输入:政策文件、执行数据、分析维度
- 输出:政策分析报告、效果评估、建议
- 使用模型:大语言模型(GPT-4)+ RAG知识库
-
数据查询技能(DataQuerySkill):
- 功能:查询各类政务数据,包括审批数据、公文数据、服务数据
- 输入:查询条件、数据源标识
- 输出:查询结果、数据统计
- 使用工具:数据库查询工具、API调用工具
-
报告生成技能(ReportGenerationSkill):
- 功能:生成各类报告,包括审批报告、分析报告、统计报告
- 输入:分析结果、报告模板
- 输出:格式化报告(Markdown、PDF、Word)
- 使用工具:报告模板工具、格式化工具
技能链设计
技能链是将多个技能组合起来,完成复杂业务流程:
审批流程技能链
技能链配置:
skill_chain:
name: approval_process_chain
skills:
- name: document_parsing
skill: DocumentParsingSkill
inputs:
- application_file
outputs:
- parsed_content
- name: information_extraction
skill: InformationExtractionSkill
inputs:
- parsed_content
outputs:
- applicant_info
- application_content
- materials
- name: approval_review
skill: ApprovalReviewSkill
inputs:
- applicant_info
- application_content
- materials
- approval_rules
outputs:
- review_result
- review_opinion
- missing_materials
- name: decision
skill: DecisionSkill
condition: review_result == "pass"
inputs:
- review_result
- review_opinion
outputs:
- final_decision
公文处理技能链
技能链配置:
skill_chain:
name: document_processing_chain
skills:
- name: format_recognition
skill: FormatRecognitionSkill
inputs:
- document_file
outputs:
- file_format
- name: document_parsing
skill: DocumentParsingSkill
condition: file_format in ["pdf", "word"]
inputs:
- document_file
outputs:
- parsed_content
- name: ocr_recognition
skill: OCRRecognitionSkill
condition: file_format == "image"
inputs:
- document_file
outputs:
- ocr_content
- name: content_extraction
skill: ContentExtractionSkill
inputs:
- parsed_content or ocr_content
outputs:
- document_title
- document_content
- metadata
- name: document_classification
skill: DocumentClassificationSkill
inputs:
- document_title
- document_content
outputs:
- document_category
- confidence
- name: information_extraction
skill: InformationExtractionSkill
inputs:
- document_content
- document_category
outputs:
- key_information
- name: archive
skill: ArchiveSkill
inputs:
- document_file
- document_category
- key_information
outputs:
- archive_result
5.2 工作流编排
n8n工作流设计
审批工作流
# 审批工作流配置
workflow:
name: 智能审批流程
nodes:
- id: webhook-receive
type: n8n-nodes-base.webhook
parameters:
path: approval-submit
httpMethod: POST
- id: validate-input
type: n8n-nodes-base.function
parameters:
functionCode: |
const data = $input.item.json;
if (!data.applicant_name || !data.application_type) {
throw new Error('缺少必要字段');
}
return data;
- id: parse-documents
type: n8n-nodes-base.httpRequest
parameters:
url: http://ai-service/api/document-parsing
method: POST
bodyParameters:
file: {{ $json.file }}
- id: extract-information
type: n8n-nodes-base.httpRequest
parameters:
url: http://ai-service/api/information-extraction
method: POST
bodyParameters:
content: {{ $json.parsed_content }}
- id: rule-check
type: n8n-nodes-base.function
parameters:
functionCode: |
const rules = $('validate-input').item.json.approval_rules;
const info = $('extract-information').item.json;
// 规则检查逻辑
return { passed: true, reason: '' };
- id: ai-review
type: n8n-nodes-base.httpRequest
condition: {{ $json.passed }} == true
parameters:
url: http://ai-service/api/approval-review
method: POST
- id: decision
type: n8n-nodes-base.switch
parameters:
rules:
- value1: {{ $json.confidence }}
operation: largerEqual
value2: 0.9
output: auto-approve
- value1: {{ $json.confidence }}
operation: smaller
value2: 0.9
output: manual-review
- id: auto-approve
type: n8n-nodes-base.respondToWebhook
parameters:
responseCode: 200
responseBody: { status: 'approved' }
- id: manual-review
type: n8n-nodes-base.notify
parameters:
channel: approval-officer
message: 需要人工审核
公文处理工作流
# 公文处理工作流配置
workflow:
name: 智能公文处理流程
nodes:
- id: file-upload
type: n8n-nodes-base.webhook
parameters:
path: document-upload
httpMethod: POST
- id: format-recognition
type: n8n-nodes-base.function
parameters:
functionCode: |
const file = $input.item.json.file;
const ext = file.name.split('.').pop().toLowerCase();
return { format: ext };
- id: document-parsing
type: n8n-nodes-base.httpRequest
condition: {{ $json.format }} in ['pdf', 'doc', 'docx']
parameters:
url: http://ai-service/api/document-parsing
method: POST
- id: ocr-recognition
type: n8n-nodes-base.httpRequest
condition: {{ $json.format }} in ['jpg', 'png', 'tiff']
parameters:
url: http://ai-service/api/ocr
method: POST
- id: content-extraction
type: n8n-nodes-base.httpRequest
parameters:
url: http://ai-service/api/content-extraction
method: POST
- id: document-classification
type: n8n-nodes-base.httpRequest
parameters:
url: http://ai-service/api/document-classification
method: POST
- id: archive
type: n8n-nodes-base.httpRequest
parameters:
url: http://knowledge-base/api/archive
method: POST
5.3 智能体协调
多Agent协作
审批Agent协作
from langchain.agents import AgentExecutor, create_react_agent
from langchain.tools import Tool
# 定义工具
tools = [
Tool(
name="document_parsing",
func=document_parsing_tool,
description="解析申请文档,提取文本内容"
),
Tool(
name="information_extraction",
func=information_extraction_tool,
description="从文档中提取关键信息"
),
Tool(
name="rule_check",
func=rule_check_tool,
description="检查申请是否符合审批规则"
),
Tool(
name="knowledge_retrieval",
func=knowledge_retrieval_tool,
description="从知识库检索相关政策信息"
)
]
# 创建Agent
agent = create_react_agent(
llm=llm,
tools=tools,
prompt=approval_agent_prompt
)
# 执行Agent
executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
result = executor.invoke({
"input": "审核这份审批申请",
"application_file": "path/to/application.pdf"
})
上下文管理
对话上下文
- 会话管理:维护用户会话上下文
- 历史记录:保存对话历史
- 上下文窗口:管理上 下文窗口大小
任务上下文
- 任务状态:跟踪任务执行状态
- 中间结果:保存中间处理结果
- 错误处理:处理任务执行错误
5.4 异常处理与重试
异常处理策略
错误分类
- 可重试错误:网络错误、临时服务不可用
- 不可重试错误:参数错误、权限错误
- 业务错误:审批不通过、数据不存在
重试策略
- 指数退避:重试间隔指数增长
- 最大重试次数:限制最大重试次数
- 超时控制:设置重试超时时间
降级方案
服务降级
- AI服务不可用:使用规则引擎作为备用
- 知识库不可用:使用缓存数据
- 模型响应慢:使用轻量级模型
功能降级
- 自动审批不可用:全部转人工审核
- 智能问答不可用:显示常见问题列表
- 公文处理不可用:提示人工处理