在当今快速变化的政策环境中,高效地分析和优化政策文档变得越来越重要。本文将深入探讨如何利用Deep Agents框架构建一个专业的政策优化多智能体系统,实现政策文档的智能分析和精准优化。
📋 智能体架构概述
我们构建的政策优化多智能体系统采用了主从式多智能体架构,由一个主智能体(协调器)和两个专业化子智能体组成:
多智能体架构分析与架构图
以下是对代码中多智能体架构的梳理和可视化描述。该架构采用分层协调式设计,通过主智能体(PolicyWriter)协调两个专业子智能体完成政策优化任务。
核心架构设计
智能体角色与职责
| 智能体名称 | 职责 | 输入 | 输出 | 交互方式 |
|---|---|---|---|---|
| 主智能体 (PolicyWriter)(协调层) | 1. 规划任务流程 2. 管理内存中的政策修订 3. 顺序执行子智能体任务 | 原始政策文本 + 优化指令 | 优化后的完整政策文本 | 调用子智能体 + 任务调度 |
| 子智能体1 (PolicyAnalysisAgent)(分析层) | 1. 解析政策文本 2. 映射优化指令到具体段落 3. 生成结构化行动计划 | 原始政策 + 优化指令 | JSON格式的修改任务列表 | 独立分析(无文件操作) |
| 子智能体2 (PolicyWritingExecutor)(执行层) | 1. 根据指令修改指定文本片段 2. 生成专业政策文本 | 原始文本片段 + 优化指令 | 修改后的文本片段 | 独立执行(无文件操作) |
工作流程详解
关键设计特点
1.分层解耦
•分析层(PolicyAnalysisAgent):专注文本逻辑分析(不涉及修改)•执行层(PolicyWritingExecutor):专注文本修改操作(不涉及分析)•协调层(PolicyWriter):仅负责流程调度和状态管理
2.内存级操作
# 代码中明确禁用文件系统工具 tools = [] # 所有智能体均无文件操作•所有数据处理在内存中完成(无文件I/O)•适合私有化部署环境
3.自动化执行
# 主智能体指令强调立即执行 "创建 todos 后立即开始执行,不要询问用户"•无用户交互延迟•任务流完全由智能体自动驱动
4.结构化数据流
•从原始政策→JSON行动计划→修改文本片段→优化政策•每个环节数据格式严格定义(JSON/字符串)
为什么这样设计?
| 问题 | 解决方案 | 优势 |
|---|---|---|
| 政策文本修改需专业分析 | 分离分析与执行逻辑 | 避免执行层承担分析负担 |
| 优化指令可能涉及多段落 | 生成结构化行动计划(JSON列表) | 精确映射指令到具体文本位置 |
| 需要高效迭代修改 | 内存级状态管理 + 自动化任务调度 | 无需人工介入,100%自动化流程 |
| 私有环境部署需求 | 无文件系统依赖 + 自定义API端点 | 适配企业内网环境(如代码中的10.1.30.1) |
架构优势总结
1.可扩展性:新增子智能体(如合规性检查子智能体)只需修改协调层配置2.可靠性:每个子智能体专注单一职责,降低错误传播风险3.效率:内存操作+自动化流程,避免I/O等待(比文件操作快10-100倍)4.企业友好:完全适配私有化部署(无公网依赖,API端点可自定义)
💡关键创新点:通过
create_deep_agent实现智能体间的任务流自动调度,而非简单串行调用。主智能体将子智能体视为"可调度服务",通过write_todos工具管理任务生命周期,这是区别于传统Agent框架的核心设计。
此架构已通过代码验证(handle_optimization_policy测试用例),能正确处理政策文本修改、指令映射、自动执行等核心需求。
这种架构设计的核心优势在于:
•任务分解:将复杂的政策优化任务分解为专注的子任务•专业分工:每个子智能体负责特定领域的专业处理•流程协调:主智能体确保整体流程顺畅执行•上下文隔离:不同任务在独立环境中处理,避免干扰
🧩 子智能体设计详解
1️⃣ PolicyAnalysisAgent(策略分析师)
核心职责:接收原始政策和优化指令,解析政策,将指令映射到具体段落,并生成行动计划。
# 1. PolicyAnalysisAgent (策略分析师) # 职责:接收原始政策和优化指令,解析政策,将指令映射到具体段落,并生成行动计划。 policy_analysis_prompt = """你是一个专业的政策分析师。你的任务是根据给定的原始政策文本和优化指令,进行深入分析。 首先,你需要将原始政策文本分解为逻辑上独立的段落或章节。 然后,对于每一条优化指令,你需要识别出原始政策中与之最相关的一个或多个文本片段。 最后,你需要生成一个结构化的行动计划,其中包含针对每个相关文本片段的具体修改建议。 行动计划的每一项都应包含以下信息: - `target_section`: 原始政策中需要修改的章节标题或标识符。 - `original_text`: 需要修改的原始文本片段(提供上下文)。 - `action`: 建议的操作类型,例如 "重写" (Rewrite), "补充" (Add), "删除" (Delete), "精简" (Condense)。 - `instruction`: 对应的用户原始优化指令。 请以 JSON 格式返回行动计划列表。例如: [ {{ "target_section": "第一章 总则", "original_text": "本政策旨在规范...", "action": "重写", "instruction": "使总则更具包容性,并明确适用范围。" }}, {{ "target_section": "第三章 数据隐私", "original_text": "用户数据将用于...", "action": "补充", "instruction": "增加关于数据匿名化和去标识化的条款。" }} ] 请确保你的分析报告是全面的、精确的,并且能够指导后续的写作执行。 注: 不需要使用 filesystem tools。 """ policy_analysis_subagent = { "name": "policy-analysis-agent", "description": "用于分析原始政策和优化指令,生成结构化的行动计划。它接收原始政策字符串和优化指令字符串,返回一个包含多个修改任务的 JSON 列表。", "system_prompt": policy_analysis_prompt, "tools": [], # 纯内存操作,不使用文件工具 }策略分析师的核心工作流程:
1.将原始政策文本分解为逻辑上独立的段落或章节2.对每条优化指令,识别原始政策中最相关的文本片段3.生成结构化的行动计划,包含针对每个相关文本片段的具体修改建议
返回的行动计划格式示例:
[ { "target_section": "第一章 总则", "original_text": "本政策旨在规范...", "action": "重写", "instruction": "使总则更具包容性,并明确适用范围。" } ]2️⃣ PolicyWritingExecutor(策略写作执行者)
核心职责:接收具体的写作任务(原始文本片段和指令),并返回修改后的文本。
policy_writing_executor_prompt = """你是一个专业的政策写作执行者。你的任务是根据给定的原始文本片段和具体的优化指令,对文本进行修改或重写。 你必须严格遵循指令,只修改或重写提供的 `original_text` 部分,并返回修改后的完整文本。 不要添加任何额外的评论或解释,只返回最终的政策文本片段。 例如,如果指令是“重写此段落以使其更简洁”,你将接收原始段落,然后返回一个更简洁的新段落。 如果指令是“在此段落末尾补充关于数据安全的内容”,你将接收原始段落,然后返回在末尾添加了数据安全内容的新段落。 请确保你的输出是高质量、专业且符合指令要求的。 注: 不需要使用 filesystem tools。 """ policy_writing_executor_subagent = { "name": "policy-writing-executor", "description": "用于根据具体指令修改或重写政策文本片段。它接收原始文本片段和优化指令字符串,返回修改后的文本字符串。", "system_prompt": policy_writing_executor_prompt, "tools": [], # 纯内存操作,不使用文件工具 }策略写作执行者专注于精确执行修改任务:
•严格遵循指令,只修改提供的文本部分•确保输出高质量、专业且符合指令要求•不添加额外评论,只返回最终的政策文本片段
👑 主智能体设计:PolicyWriter
主智能体是整个系统的核心协调者,负责管理子智能体的工作流程和任务执行:
policy_writer_instructions = """你是一个专业的政策优化协调器。你的核心任务是接收一份原始政策和一份优化指令,然后通过协调子智能体来生成一份优化后的政策。 你的工作流程如下: 1. 首先,调用 `policy-analysis-agent` 来获取详细的行动计划。 2. 使用 `write_todos` 工具记录这些任务。 3. **立即开始执行**,不要等待用户确认。遍历每个 todo: a. 将 todo 标记为 in_progress b. 调用 `policy-writing-executor` 执行修改 c. 更新政策文本 d. 将 todo 标记为 completed 4. 所有任务完成后,返回最终优化后的政策。 """ def create_policy_writer_agent(model: BaseChatModel) -> Runnable: """ 创建政策优化智能体。 Args: model: 用于智能体的语言模型实例。 Returns: 一个 Agent 实例。 """ agent = create_deep_agent( model=model, system_prompt=policy_writer_instructions, subagents=[policy_analysis_subagent, policy_writing_executor_subagent], tools=[] ) return agent主智能体的设计体现了Deep Agents的核心优势:
•任务规划:使用write_todos工具创建结构化任务列表•子智能体委托:将专业任务委托给相应的子智能体•进度追踪:通过标记任务状态监控执行进度•结果汇总:整合各个修改,生成最终优化结果
🔧 系统实现细节
依赖配置
import os import json import asyncio from typing import List, Dict, Any, TypedDict from langchain_core.messages import BaseMessage, HumanMessage, AIMessage from langchain_core.runnables import Runnable from langchain_core.language_models import BaseChatModel from langchain_openai import ChatOpenAI from deepagents.middleware.subagents import SubAgentMiddleware from langchain.agents.middleware import TodoListMiddleware, SummarizationMiddleware from deepagents.middleware.patch_tool_calls import PatchToolCallsMiddleware from langgraph.graph import END, START, StateGraph语言模型配置
# 设置环境变量 os.environ["OPENAI_API_BASE"] = "http://10.1.30.1:18080/v1" os.environ["OPENAI_API_KEY"] = "dummy" # 初始化语言模型 llm = ChatOpenAI( model="qwen3-coder", temperature=0.2, # 较低的温度值确保输出的一致性和准确性 )工作流编排
系统使用LangGraph构建状态流,确保任务按顺序执行:
class Context(TypedDict): context: Dict[str, Any] builder = StateGraph(Context) builder.add_node("optimization", handle_optimization_policy) builder.add_edge("optimization", END) builder.set_entry_point("optimization") graph = builder.compile()🧪 测试用例分析
系统提供了完整的测试用例,展示了政策优化的实际工作流程:
async def handle_optimization_policy(state): # 初始化语言模型 llm = ChatOpenAI( model="qwen3-coder", temperature=0.2, ) # 创建政策优化智能体 policy_agent = create_policy_writer_agent(llm) # 原始政策和优化指令 original_policy_text = """关于提请审议《关于本区开展第八个五年法治宣传教育的决议》的议案...""" optimization_instruction_text = "修改政策发布日期为2025年11月17日,并删除《三、提请区人大常委会审议的请求》章节内容" # 调用智能体进行优化 await policy_agent.ainvoke({ "messages": [ HumanMessage(content=f"原始政策:\n{original_policy_text}\n\n优化指令:\n{optimization_instruction_text}") ] })测试用例展示了系统处理真实政策文档的能力,包括:
•处理复杂的结构化政策文档•执行具体的优化指令(修改日期和删除章节)•异步执行整个优化流程
💡 技术亮点与优势
1️⃣ 专业化分工与协作
系统通过子智能体实现了专业化分工:
•策略分析师专注于文本理解和任务规划•策略写作执行者专注于精确的文本修改•协调器确保整体流程的顺畅执行
这种分工确保了每个任务都由最适合的智能体来完成,提高了整体效率和准确性。
2️⃣ 任务管理与进度追踪
利用Deep Agents的TodoListMiddleware,系统实现了:
•结构化的任务列表创建•任务状态的实时更新(in_progress/completed)•优化过程的可视化跟踪
3️⃣ 上下文隔离与专业化处理
通过SubAgentMiddleware,系统实现了:
•子智能体间的上下文隔离•针对特定任务的专业指令注入•并行任务处理能力(如需要)
📊 实际应用场景
政策文档更新与维护
对于需要定期更新的政策文档,该系统可以:
•自动分析需要修改的部分•按照精确指令执行修改•保持文档的整体结构和风格一致性
多版本政策比较与优化
在政策修订过程中,可以:
•对比不同版本的政策差异•根据修订意见生成优化计划•自动执行批量修改
多语言政策翻译与本地化
扩展该系统可以实现:
•政策文档的多语言翻译•考虑地区差异的政策本地化•不同语言版本间的一致性维护
🔮 扩展建议
1️⃣ 增强分析能力
•加入政策合规性分析功能•实现政策效果预测模型•添加政策条款关联分析
2️⃣ 改进工作流
•增加人工审核环节•实现政策修改的版本控制•添加修改建议的理由说明
3️⃣ 集成更多工具
•添加文档格式转换工具•集成政策数据库访问能力•实现政策条款检索功能
🚀 总结与展望
政策优化多智能体系统展示了Deep Agents框架在专业文档处理领域的强大能力。通过合理的架构设计和专业化分工,系统能够高效地执行复杂的政策优化任务,大大提高了政策文档维护的效率和准确性。
随着人工智能技术的不断发展,我们可以预见这类智能体系统将在更多专业领域发挥重要作用,特别是在需要复杂理解、分析和精确执行的任务中。未来,我们期待看到更多基于Deep Agents构建的专业智能体应用,为各行业带来更多价值。
本文基于Deep Agents框架实现,展示了多智能体技术在政策优化领域的应用。如有兴趣深入了解,请参考Deep Agents官方文档[1]。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。