从理论到落地:分层记忆架构在AI Agent中的应用实践

要让 AI Agent 告别“金鱼记忆”,真正变得智能、高效,分层记忆(Tiered Memory Architecture)是核心策略。它模拟了人类大脑处理信息的方式,将不同类型、不同时效性的记忆存储在最适合它们的地方,从而实现 Agent 的高效运作和智能决策。

为什么需要分层记忆?


想象一下我们的大脑:

  • 短期记忆:你正在进行的对话,脑中即时活跃的上下文。它容量有限,但访问速度极快。
  • 中期记忆:你刚刚读完一本书的核心内容,或者最近几天发生的重大事件。它们比短期记忆更持久,但不如长期记忆那样根深蒂固。
  • 长期记忆:你的个人经历、学到的技能、世界观、以及那些你已经掌握的知识。它容量无限,但检索可能需要更长时间。

AI Agent 也面临类似挑战:

  1. LLM 上下文窗口限制与成本:大语言模型虽然强大,但其**上下文窗口(Context Window)**是有限的。将所有历史对话都塞进去,不仅会迅速耗尽上下文限制,导致 Agent “遗忘”早期内容,还会显著增加每次调用的Token 成本
  2. 信息检索效率:对于海量的外部知识,每次都让 LLM 从头“思考”是不现实的。我们需要快速检索相关信息。
  3. 不同记忆的特性:有些记忆需要即时、精准的访问(如当前对话),有些需要结构化存储和高级查询(如用户档案),有些则需要向量匹配和语义搜索(如非结构化知识库)。

分层记忆架构正是为了解决这些问题而生,它通过结合不同存储技术和策略,高效利用计算资源,提升 Agent 的智能性和经济性

。分层记忆架构的核心组成


一个典型的分层记忆架构通常包含以下几个层次:

1. 短期记忆(Short-Term Memory):即时上下文与当前会话状态

存储位置:Agent 的运行时状态(In-memory State / Graph State),通常由 LangGraph 的AgentState对象维护。当 Agent 在运行一个循环(如 ReAct 循环)时,当前步骤的所有输入、输出以及 LLM 的思考过程都暂时保存在这里。

内容:

  • 当前对话轮次的消息历史(近期 N 条):这是 LLM 在生成响应时直接访问的核心上下文。通常指最近的几轮用户和 Agent 的交互。
  • 当前任务的中间结果:例如,Agent 正在分析一个用户查询,解析出的实体、计划步骤等。
  • 临时变量和标志:用于控制 Agent 流程的布尔值或计数器。

特点:

  • 访问速度极快:直接在内存中操作。
  • 容量有限:主要受限于 LLM 的上下文窗口和系统内存。
  • 生命周期短:通常只在当前会话或单个请求的生命周期内有效。

实现方式:

  • 在 LangGraph 中,通过AgentState中的messages: Annotated[List[BaseMessage], add_messages]来自动管理和更新消息列表。
  • 其他状态变量(如current_plan)也是 Agent 运行时状态的一部分。

2. 中期记忆(Medium-Term Memory):对话摘要与近期核心信息

存储位置:可以是关系型数据库(如 PostgreSQL 的某个表,用于存储摘要)、键值存储(如 Redis)或简单的文件系统。通常与 LangGraph 的Checkpointer配合使用。

内容:

  • 对话摘要:对过去某个阶段对话的精炼总结。当对话消息过多时,LLM 可以生成一个简洁的摘要,取代部分原始消息传入上下文,从而节省 Token 并保留核心信息。
  • 近期关键信息/主题:识别出的对话主题、关键实体、用户近期关注点等。
  • 特定会话的短期偏好:在当前会话中用户表达的临时性偏好。

特点:

  • 持久化:即使 Agent 重启,这部分记忆也不会丢失。
  • 平衡成本与上下文:在保持上下文连贯性的同时,有效控制 LLM 的 Token 消耗。
  • 检索速度中等:比直接访问内存慢,但比扫描整个长期知识库快。

实现方式:

  • Agent 节点:在 LangGraph 中设计一个专门的**“摘要节点”**。当messages列表的长度超过某个阈值时,触发此节点。

  • LLM 调用:摘要节点内部调用 LLM(通常是成本较低、上下文窗口较大的模型)对旧消息进行总结。

    # 伪代码:摘要节点逻辑 def summarize_conversation_node(state: AgentState) -> AgentState: messages_to_summarize = state['messages'][:-N_recent_messages] # 保留N条最新,其余摘要 if len(messages_to_summarize) > THRESHOLD_FOR_SUMMARY: # 调用LLM生成摘要 summary_prompt = f"请总结以下对话的关键信息,提取用户意图和重要结论:\n{''.join([m.content for m in messages_to_summarize])}" new_summary = summary_llm.invoke(summary_prompt).content # 将旧摘要更新为新摘要,或者添加到历史摘要列表中 current_summary = state.get('conversation_summary', '') state['conversation_summary'] = combine_summaries(current_summary, new_summary) # 累积摘要 # 更新消息列表:移除旧消息,添加摘要消息 state['messages'] = [SystemMessage(content=f"历史对话摘要:{state['conversation_summary']}")] + state['messages'][-N_recent_messages:] return state
  • 存储:将生成的摘要存储在 LangGraph Checkpointer 管理的数据库中(如 PostgreSQL),或者在AgentState中新增一个conversation_summary字段,让 Checkpointer 自动持久化。

  • 注入:在每次调用 LLM 时,将存储的conversation_summary作为System Message额外的工具参数注入到 LLM 的上下文输入中。


3. 长期记忆(Long-Term Memory):持久化知识与经验积累

存储位置:专门的数据库,如:

  • 关系型数据库(PostgreSQL):存储结构化数据,如用户档案、配置、历史交易记录、Agent 的“学习成果”(例如,某个用户常问的问题模式、特定客户的偏好列表)。
  • 向量数据库(PostgreSQL + pgvector):存储非结构化的外部知识库(External Knowledge Base),如产品文档、FAQ、历史招聘案例、代码库文档、领域专家知识等。
  • 图数据库:存储实体关系,构建复杂的知识图谱。

内容:

  • 外部知识库:大量的、不随每次对话改变的、需要检索才能获得的知识。
  • 用户档案/偏好:用户的基本信息、长期兴趣、个性化设置、历史行为模式等。
  • Agent 学习到的知识/技能:Agent 在长期运行中总结出的经验、优化过的决策规则、对特定问题的解决方案等。
  • 历史执行记录/日志:完整的 Agent 运行日志,用于分析、审计和模型训练。

特点:

  • 巨大容量:能够存储海量数据,几乎无限。
  • 持久性最高:数据长期保存,支持跨用户、跨会话的知识共享和积累。
  • 检索方式多样:通过 SQL 查询、向量相似度搜索、图遍历等方式进行检索。
  • 访问速度相对较慢:通常需要通过专门的工具(Tools)进行查询。

实现方式:

  • PostgreSQL 作为结构化存储:

    # 伪代码:存储用户偏好的工具 @tool def save_user_preference(user_id: str, preference_key: str, preference_value: str) -> str: """保存用户的特定偏好到数据库。""" # 实际代码会调用数据库 ORM 或客户端 (如 SQLAlchemy, psycopg2) # 例如:db_session.query(User).filter_by(id=user_id).update({preference_key: preference_value}) print(f"--- 💾 保存用户 {user_id} 的偏好:{preference_key}={preference_value} ---") return"用户偏好已保存。" # 伪代码:读取用户偏好的工具 @tool def get_user_preference(user_id: str, preference_key: str) -> str: """从数据库读取用户的特定偏好。""" # 例如:user_pref = db_session.query(User).filter_by(id=user_id).first().preference_key user_pref = "黑色"if preference_key == "fav_color"else"未知"# 模拟 print(f"--- 📚 读取用户 {user_id} 的偏好:{preference_key}={user_pref} ---") return user_pref
    • 在 PostgreSQL 中创建独立的表,例如users_profileagent_learned_preferencesrecruitment_job_templates等。
    • 在 LangGraph Agent 中,设计自定义工具(Custom Tools),这些工具内部封装了对 PostgreSQL 数据库的 CRUD (创建、读取、更新、删除) 操作。
    • Agent 根据 LLM 的思考(ReAct 模式),决定何时调用这些工具来读取或写入长期结构化记忆。
  • PostgreSQL +pgvector作为向量数据库 (RAG):

    # 伪代码:RAG 检索工具 # from langchain_community.vectorstores import PGVector # from langchain_openai import OpenAIEmbeddings # # 假设 embeddings 和 vectorstore 已初始化并加载了知识 # embeddings = OpenAIEmbeddings() # pg_vector_store = PGVector( # connection_string=POSTGRES_CONNECTION_STRING, # embedding_function=embeddings, # collection_name="enterprise_knowledge" # ) # @tool # def retrieve_enterprise_knowledge(query: str) -> str: # """从企业知识库中检索与查询相关的文档片段。""" # docs = pg_vector_store.similarity_search(query, k=3) # 检索最相关的3个文档片段 # return "\n".join([doc.page_content for doc in docs]) # # 将 retrieve_enterprise_knowledge 工具添加到 Agent 的工具列表中,让LLM可以调用 # tools.append(retrieve_enterprise_knowledge) # llm_with_tools = llm.bind_tools(tools)
    • 安装pgvector扩展并创建表。
    • 使用LangChainOpenAIEmbeddings或其他Embeddings模型将你的非结构化知识(文档、FAQ、历史招聘数据)转化为向量。
    • 使用langchain-communityPGVector存储器将这些向量及其原始文本存入 PostgreSQL。
    • 设计一个检索工具。Agent 在接收用户查询后,如果判断需要外部知识,就会调用这个检索工具。检索工具会执行向量相似度搜索,从pgvector中找到最相关的文本片段,并将其返回给 Agent。Agent 再将这些片段作为上下文传递给 LLM,生成答案。

🎨 分层记忆架构的整体工作流示意


  1. 用户输入:用户提出问题或指令。

  2. 短期记忆(AgentState.messages)更新:用户输入作为HumanMessage添加到messages列表。

  3. Agent 思考(LLM Node):LLM 接收AgentState.messages(包含最近的对话历史和可能注入的摘要/长期记忆信息),根据提示词和工具定义进行推理。

    • 直接回答(结束当前运行)。
    • 调用某个工具(转到 Tool Node)。
    • 要求澄清(更新状态,引导用户继续输入)。
    • (如果有中期记忆)评估消息长度,如果需要,触发摘要工具。
    • (如果有长期记忆)如果判断需要外部知识或用户偏好,决定调用相应的检索工具数据查询工具
  4. LLM 可能会决定:

  5. 工具执行(Tool Node):如果 LLM 决定调用工具,Agent 执行相应工具(如search_web,retrieve_enterprise_knowledge,get_user_preference,save_user_preference等)。

  6. 工具结果:工具执行结果作为ToolMessage添加回AgentState.messages

  7. 持久化(Checkpointer):LangGraph 的PostgresSaver在每个“可检查点”的步骤(通常是每次节点执行后)自动将当前的AgentState保存到 PostgreSQL。

  8. 循环/结束:Agent 根据工具结果或 LLM 的最新判断,决定是继续循环(如返回 LLM 节点进行进一步思考)还是结束当前运行并返回最终答案。

  9. 中期记忆更新(周期性/事件触发):如果配置了摘要策略,当消息数量达到阈值时,触发摘要流程,更新中期记忆中的摘要。

  10. 长期记忆更新(按需):Agent 在执行特定任务时(如用户更新个人信息、Agent 学习到新模式),会通过工具将相关信息写入 PostgreSQL 的长期记忆表中。

⚖️ 挑战、最佳实践与未来展望


核心挑战:

  1. 数据安全与隐私:这是最重要的一点。确保 PostgreSQL 部署安全、数据传输加密、访问权限控制,并严格遵守 GDPR、国内数据安全法等法规。
  2. 模型偏见与公平性:如果训练数据或 Agent 的学习过程中引入了偏见,长期记忆可能会放大这些偏见。需要持续的监控、审计和去偏见策略。
  3. 成本与性能:长期记忆会带来额外的存储和检索成本。优化数据库查询、合理设计 RAG 策略(如分层检索、缓存)、控制 LLM 调用频率和 Token 长度是关键。
  4. 复杂性管理:分层记忆架构的引入会增加系统设计的复杂性。需要清晰的模块划分、强大的可观测性工具(如 LangSmith),以及健壮的错误处理机制。
  5. 模式设计与演进:随着业务需求变化,记忆的 schema 和内容需要灵活演进。

最佳实践:

  • 明确记忆边界:清楚定义不同层次记忆的职责和存储内容。
  • 异步操作:对于耗时的数据库操作或 LLM 调用,尽量采用异步方式,避免阻塞 Agent 的主流程。
  • 监控与调试:积极利用 LangSmith 等工具,可视化 Agent 的执行路径,监控 Token 使用、延迟、错误,这对于复杂 Agent 的调试至关重要。
  • 版本控制:对 Agent 的逻辑、工具和记忆 schema 进行版本控制,便于回溯和管理。
  • 灰度发布与 A/B 测试:在生产环境中逐步推出新功能,并进行效果评估。

未来展望:

随着 AI Agent 技术的成熟,以及多模态 LLM 和更强大的具身智能体的出现,分层记忆架构将变得更加复杂和精巧。Agent 将不仅仅是简单的“对话机器”,而是能真正地“学习”、“成长”和“决策”,成为各行各业的超级智能助手。

拥有了永不遗忘的记忆,我们的 AI Agent 将不再只是工具,更是能够与人类协作、共同推动生产力进步的“数字生命体”。

普通人如何抓住AI大模型的风口?

领取方式在文末

为什么要学习大模型?

目前AI大模型的技术岗位与能力培养随着人工智能技术的迅速发展和应用 , 大模型作为其中的重要组成部分 , 正逐渐成为推动人工智能发展的重要引擎 。大模型以其强大的数据处理和模式识别能力, 广泛应用于自然语言处理 、计算机视觉 、 智能推荐等领域 ,为各行各业带来了革命性的改变和机遇 。

目前,开源人工智能大模型已应用于医疗、政务、法律、汽车、娱乐、金融、互联网、教育、制造业、企业服务等多个场景,其中,应用于金融、企业服务、制造业和法律领域的大模型在本次调研中占比超过30%。

随着AI大模型技术的迅速发展,相关岗位的需求也日益增加。大模型产业链催生了一批高薪新职业:

人工智能大潮已来,不加入就可能被淘汰。如果你是技术人,尤其是互联网从业者,现在就开始学习AI大模型技术,真的是给你的人生一个重要建议!

最后

只要你真心想学习AI大模型技术,这份精心整理的学习资料我愿意无偿分享给你,但是想学技术去乱搞的人别来找我!

在当前这个人工智能高速发展的时代,AI大模型正在深刻改变各行各业。我国对高水平AI人才的需求也日益增长,真正懂技术、能落地的人才依旧紧缺。我也希望通过这份资料,能够帮助更多有志于AI领域的朋友入门并深入学习。

真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发

【附赠一节免费的直播讲座,技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等,欢迎大家~】

大模型全套学习资料展示

自我们与MoPaaS魔泊云合作以来,我们不断打磨课程体系与技术内容,在细节上精益求精,同时在技术层面也新增了许多前沿且实用的内容,力求为大家带来更系统、更实战、更落地的大模型学习体验。

希望这份系统、实用的大模型学习路径,能够帮助你从零入门,进阶到实战,真正掌握AI时代的核心技能!

01教学内容

  • 从零到精通完整闭环:【基础理论 →RAG开发 → Agent设计 → 模型微调与私有化部署调→热门技术】5大模块,内容比传统教材更贴近企业实战!

  • 大量真实项目案例:带你亲自上手搞数据清洗、模型调优这些硬核操作,把课本知识变成真本事‌!

02适学人群

应届毕业生‌:无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。

零基础转型‌:非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界‌。

业务赋能突破瓶颈:传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型‌。

vx扫描下方二维码即可
【附赠一节免费的直播讲座,技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等,欢迎大家~】

本教程比较珍贵,仅限大家自行学习,不要传播!更严禁商用!

03入门到进阶学习路线图

大模型学习路线图,整体分为5个大的阶段:

04视频和书籍PDF合集

从0到掌握主流大模型技术视频教程(涵盖模型训练、微调、RAG、LangChain、Agent开发等实战方向)

新手必备的大模型学习PDF书单来了!全是硬核知识,帮你少走弯路(不吹牛,真有用)

05行业报告+白皮书合集

收集70+报告与白皮书,了解行业最新动态!

0690+份面试题/经验

AI大模型岗位面试经验总结(谁学技术不是为了赚$呢,找个好的岗位很重要)

07 deepseek部署包+技巧大全

由于篇幅有限

只展示部分资料

并且还在持续更新中…

真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发

【附赠一节免费的直播讲座,技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等,欢迎大家~】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1209490.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

收藏必备!揭秘AI智能体记忆系统:让大模型从“健忘“到“有记忆“的进化之路

想象一下,如果你有一个朋友,他忘记了你曾经说过的所有事情。每一次对话都从零开始。没有记忆,没有上下文,没有进展。这会让人感到尴尬、疲惫和不亲切。不幸的是,这正是今天大多数 AI 智能体系统的行为方式。它们确实聪…

为什么RAG能解决AI幻觉?技术原理深度剖析

近年来,随着人工智能技术的发展,大型语言模型(LLMs)已经成为许多自然语言处理任务中不可或缺的一部分。然而,这些模型仍然存在一些限制,尤其是在知识密集型任务方面,大模型可能会因为缺少实时更…

JWT令牌伪造的自动化检测流水线设计‌—— 构建持续化的安全测试防御体系

‌一、核心检测目标‌ 针对JWT(JSON Web Token)的伪造攻击场景,流水线需覆盖以下攻击面验证: ‌签名篡改‌(如HS/RSA/ECDSA算法密钥破解)‌算法混淆攻击‌(如none算法绕过、RS/HS切换&#xf…

MITRE ATTCK框架驱动的自动化攻击模拟:软件测试实战指南

当测试遇见安全——自动化攻击模拟的必要性 在数字化转型时代,软件测试不再局限于功能验证,安全测试已成为核心环节。MITRE ATT&CK框架作为全球公认的对抗行为知识库,为自动化攻击模拟提供了标准化蓝图。本文从软件测试从业者视角出发&a…

长云科技光缆牵引机,光缆敷设施工好帮手!

面对蜿蜒曲折的通信管道,传统的“人力拉缆”方式正让施工效率面临瓶颈。光缆敷设牵引机的出现,正是为了破解这一难题。它凭借稳定、可控的机械动力,已迅速成为现代光缆施工中提升效率、保障质量的“得力帮手”。 这位帮手的核心价值&#xff…

电缆输送机使用年限

在评估电缆输送机这类专业工程装备时,“使用年限”不应被简单地理解为从出厂到报废的时间跨度。其核心实质是:在额定工况与规范维护下,设备保持核心性能稳定、安全可靠运行的有效生命周期。这直接关系到项目的长期装备成本与投资回报率。 影响…

详解kubectl get replicaset命令及与kubectl get pods的核心区别

在Kubernetes日常运维与开发中,kubectl命令是操作集群的核心工具。其中kubectl get replicaset与kubectl get pods是高频使用命令,但不少开发者容易混淆二者的定位与适用场景。本文结合实操场景,详细拆解kubectl get replicaset的用法&#x…

盘点2025年江苏十大高口碑拖车服务商,做得好的拖车平台费用多少行业优质排行榜亮相

随着长三角一体化进程的加速与汽车保有量的持续增长,江苏省的汽车物流与拖车服务市场呈现出蓬勃发展的态势。消费者对车辆托运的需求已从简单的“能运走”升级为对时效、安全、价格透明及服务体验的综合考量。在此背景…

2025年广东服务大品牌的广告4A公司排行,服务知名品牌的广告公司口碑推荐精选实力品牌

随着消费市场对品牌价值的深度挖掘,广告行业正从“流量驱动”转向“内容与体验驱动”。2025年,广东地区广告市场呈现“头部集中、细分垂直”的格局,美妆、快消、3C等领域品牌对广告公司的要求从单一创意输出升级为“…

如何将VSCode中C项目工程运行到开发板上 - 指南

如何将VSCode中C项目工程运行到开发板上 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &…

中山CNC数控机床批发哪家强?2025最新榜单揭晓,无人机配件数控/CNC数控机床/医疗器械数控机床CNC数控机床门店供应链

作为珠三角地区重要的制造业基地,中山市在精密五金、灯饰、家电等产业领域拥有深厚的集群优势,这直接催生了对CNC数控机床这一核心生产装备的旺盛需求。面对市场上众多的设备供应商,如何选择一家技术可靠、服务完善…

总结2026年冷干机排名,杭州超滤冷干机产品性能佳售后完善排前列!

本榜单依托全维度市场调研与真实行业口碑,深度筛选出五家压缩空气净化领域标杆企业,为工业用户选型提供客观依据,助力精准匹配适配的冷干机及配套净化解决方案伙伴。 TOP1 推荐:杭州超滤实业有限公司 推荐指数:★…

2026年有名的办公室搬迁公司,安徽好为民服务全面哪家强?

本榜单依托全维度市场调研与真实行业口碑,深度筛选出五家标杆企业,为企业选型提供客观依据,助力精准匹配适配的办公室搬迁服务伙伴。 TOP1 推荐:安徽好为民搬家公司 推荐指数:★★★★★ | 口碑评分:合肥地区企业…

2026年合肥办公室搬迁机构推荐,安徽好为民搬家公司性价比如何

在企业发展的进程中,办公室搬迁往往是一次关乎办公秩序、资料安全与业务衔接的重要节点。面对市场上良莠不齐的办公室搬迁服务,如何找到一家专业、可靠的机构,成为许多行政负责人的心头难题。以下将结合不同服务定位…

2026年评价高的陕西钣金铆焊加工厂家高性价比排行榜

2026年评价高的陕西钣金铆焊加工厂家高性价比排行榜2026年,陕西制造业持续迈向高质量发展,电力电子、智能制造、军工配套、新能源等核心行业对陕西钣金铆焊加工产品的精度、稳定性需求不断提升,同时“品质过硬、成本…

2026年天津热门教育机构排名,一铭教育的教学模式怎么样?

本榜单依托全维度教育市场调研与真实家长口碑反馈,深度筛选出五家适配天津本地中小学个性化辅导需求的标杆机构,为家长选型提供客观依据,助力精准匹配适配孩子学习节奏的教育服务伙伴。 TOP1 推荐:一铭教育 推荐指…

2026 线上雅思网课哪个好?单项突破技巧与快速上岸靠谱教育机构推荐

本次测评由全国雅思教学质量监测中心联合海外留学教研联盟全程指导,参照《2026年中国雅思培训行业发展白皮书》核心数据,覆盖北京朝阳区、上海静安区、广州天河区、深圳南山区、成都锦江区、武汉武昌区、杭州西湖区等…

用go构建-回文链表

用go构建-回文链表2026-01-24 11:13 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-fam…

湖南可靠的冷库建造厂家有哪些,哪家口碑好?

2026年冷链经济持续升级,专业冷库建造已成为医药、食品、新能源等行业保障产品安全、提升供应链效率的核心支撑。无论是符合GSP标准的医药冷库、适配农产品保鲜的食品冷库,还是满足工业物料存储的超低温冷库,优质建…

SVN培训笔记(二):使用sourceTree通过git桥接管理svn项目

前言使用sourcetree管理git非常方便,还能额外调用beyond Compare,非常方便,但是git管理权限,是直接服务器用户管理,svn可以通过文本管理,结合sourcetree,最终定好是通过sourceTree管理svn。 解决痛点1:git权限…