用 LangChain 构建 AI Agent 的人应该都遇到过这种情况:测试阶段一切正常,部署到生产环境就开始出各种问题。上下文管理混乱,Agent 的行为变得难以预测,最后不得不写一堆自定义代码来控制信息流向。

这是因为在v1.0 之前的 LangChain 对上下文工程的支持不够系统化。上下文工程的本质其实就是信息管理——给 AI 多少信息、什么时候给、以什么方式给。信息过载会导致模型困惑,信息不足则无法完成任务。这个平衡点一直很难把握。

LangChain v1.0 引入的中间件机制就是为了解决这个问题。中间件的作用类似于一个信息协调层,在用户输入到达模型之前进行必要的处理:

  • 规范化输入格式
  • 注入相关背景知识
  • 过滤敏感信息
  • 限制工具调用权限

这种架构保证了模型接收到的始终是经过精心组织的上下文。

后端视角下的中间件模式

对于熟悉 FastAPI 的开发者来说,LangChain 中间件的概念几乎可以无缝迁移。FastAPI 的中间件拦截 HTTP 请求,LangChain 的中间件拦截 Agent 调用,底层逻辑完全一致。

FastAPI 中间件处理的典型任务:

  • 身份认证
  • 请求日志
  • CORS 配置

LangChain 中间件的对应场景:

  • 上下文管理
  • 安全控制
  • 工具调度
  • 运行时监控

执行流程也是相同的组合模式:

  • FastAPI: Request → Middleware Stack → Endpoint Handler → Response
  • LangChain: User Input → Middleware Stack → AI Model → Response

中间件按照注册顺序依次执行,这种模式让功能扩展变得很直观。

v1.0 之前的技术问题

Agent 失败往往不是模型能力的问题,而是上下文处理出了问题。主要体现在几个方面:

缺少灵活的上下文切换机制。不同场景需要不同的上下文策略,但实现起来很麻烦。长对话的上下文管理是个难题。Token 限制对话历史太长模型就处理不过来了。工具调用权限难以精确控制。有时候你只想让 Agent 使用特定的几个工具,但没有优雅的方式来实现这个需求。任何稍微复杂的需求都得写自定义代码,没有标准化的解决方案。

旧的实现方式充斥着大量配置参数:

 from langchain.agents import AgentExecutor, create_openai_tools_agent  
from langchain_openai import ChatOpenAI  

tools = [search_tool, calculator_tool, database_tool]  
llm = ChatOpenAI(model="gpt-4")  
agent = create_openai_tools_agent(llm, tools, prompt)  
# Too many confusing settings!  
agent_executor = AgentExecutor(  
    agent=agent,  
    tools=tools,  
    max_iterations=15,              # How many times can it try?  
    max_execution_time=300,         # How long can it run?  
    handle_parsing_errors=True,     # What if something breaks?  
    return_intermediate_steps=True, # Show me the steps?  
    trim_intermediate_steps=10,     # How much to remember?  
    # and many more confusing options...  
 )

更极端的情况是完全手写 Agent 循环:

 def custom_agent_loop(user_input, tools, llm):  
    messages = [{"role": "user", "content": user_input}]  
      
    for iteration in range(10):  
        # You have to manually do everything!  
        if len(messages) > 20:  
            messages = summarize_history(messages)  # Clean up old messages  
          
        available_tools = select_tools(messages, tools)  # Pick which tools to use  
        system_prompt = generate_prompt(iteration)  # Create instructions  
          
        response = llm.invoke(messages, tools=available_tools)  
         # And more manual work...

这种实现方式的问题很明显:

代码可读性差,维护成本高。不同项目之间的实现各不相同,无法复用。新增功能需要大量重构,扩展性很受限。

中间件机制带来的改变

v1.0 的中间件设计借鉴了成熟的软件工程实践,把功能模块化,然后通过组合来实现复杂逻辑。
 


中间件可以在 Agent 执行流程的不同阶段介入:

before_model

在模型调用前执行,通常用于输入预处理,比如文本清洗或格式标准化。

wrap_model_call

包裹模型调用过程,可以修改传递给模型的参数,比如动态调整可用工具列表。

wrap_tool_call

拦截工具调用,实现权限控制或者参数验证。

after_model

在模型返回后执行,用于输出验证或者安全检查。

LangChain v1.0 提供了一些常用的中间件实现,开箱即用。

create_agent

函数的设计就是围绕中间件展开的,这是个很重要的架构决策。

 from langchain.agents import create_agent  
from langchain.agents.middleware import (  
    PIIMiddleware,  
    SummarizationMiddleware,  
    HumanInTheLoopMiddleware  
)  
agent = create_agent(  
    model="claude-sonnet-4-5-20250929",  
    tools=[read_email, send_email],  
    middleware=[  
        # Hide email addresses automatically (privacy protection)  
        PIIMiddleware("email", strategy="redact"),  
          
        # Block phone numbers completely (extra privacy)  
        PIIMiddleware("phone_number", strategy="block"),  
          
        # When conversation gets long, make a short summary  
        # (like creating a highlight reel of a long movie)  
        SummarizationMiddleware(  
            model="claude-sonnet-4-5-20250929",  
            max_tokens_before_summary=500  
        ),  
          
        # Before sending emails, ask a human "Is this okay?"  
        # (like a safety check before hitting send)  
        HumanInTheLoopMiddleware(  
            interrupt_on={  
                "send_email": {  
                    "allowed_decisions": ["approve", "edit", "reject"]  
                }  
            }  
        ),  
    ]  
 )

这段代码实现了几个关键功能:

PIIMiddleware 处理个人敏感信息,邮箱地址会被脱敏处理,电话号码直接阻断,确保隐私数据不会泄露给模型。

SummarizationMiddleware 解决长对话的上下文管理问题。Token 数超过阈值后自动生成摘要,保持上下文简洁的同时不丢失关键信息。

HumanInTheLoopMiddleware 在关键操作前加入人工审核。比如发送邮件这种操作,必须经过人类批准才能执行。

每个中间件负责一个具体的功能,想添加新能力直接往列表里加就行,代码结构很清晰。

除了这几个以外,v1.0 还提供了其他常用中间件:

Token 统计和预算控制、响应缓存机制、错误处理和重试逻辑、自定义日志记录等等。

官方的文档文档写得比较详细,查起来也方便。

自定义中间件的实现

内置中间件覆盖了常见场景,但真正体现灵活性的是自定义中间件的能力。

我们举个例子,假设需要根据用户的技术水平动态调整 Agent 的能力:

 from dataclasses import dataclass  
from typing import Callable  
from langchain_openai import ChatOpenAI  
from langchain.agents.middleware import AgentMiddleware, ModelRequest  
from langchain.agents.middleware.types import ModelResponse  

# First, define what you want to track about users  
@dataclass  
class Context:  
    user_expertise: str = "beginner"  # Is user a beginner or expert?  

# Create your custom middleware  
class ExpertiseBasedToolMiddleware(AgentMiddleware):  
    def wrap_model_call(  
        self,  
        request: ModelRequest,  
        handler: Callable[[ModelRequest], ModelResponse]  
    ) -> ModelResponse:  

        # Check: Is this user a beginner or expert?  
        user_level = request.runtime.context.user_expertise  
          
        if user_level == "expert":  
            # Experts get powerful AI and advanced tools  
            model = ChatOpenAI(model="gpt-5")  
            tools = [advanced_search, data_analysis]  
        else:  
            # Beginners get simpler AI and basic tools  
            model = ChatOpenAI(model="gpt-5-nano")  
            tools = [simple_search, basic_calculator]  
          
        # Update what the AI sees  
        request.model = model  
        request.tools = tools  
          
        # Send it forward to the AI  
        return handler(request)  

     
# Now use your custom middleware (just like the built-in ones!)  
agent = create_agent(  
    model="claude-sonnet-4-5-20250929",  
    tools=[simple_search, advanced_search, basic_calculator, data_analysis],  
    middleware=[ExpertiseBasedToolMiddleware()],  # Your custom middleware here!  
    context_schema=Context  
 )

这个中间件实现了能力分级:

先从运行时上下文读取用户的技术水平标识。

如果是专家用户,分配更强的模型(gpt-5)和高级工具(advanced_search、data_analysis)。如果是初学者,使用轻量模型(gpt-5-nano)和基础工具(simple_search、basic_calculator)。

每次模型调用前这个逻辑都会自动执行,根据用户身份动态调整 Agent 配置。

这种模式类似游戏的难度调节——新手和老手面对的是不同的游戏环境,但切换过程是无感的。只不过这里调整的不是游戏难度,而是 AI 的能力边界和可用资源。

中间件架构优势

中间件系统提供了多个介入点,覆盖 Agent 执行的全流程:

带来的改进是系统性的:

代码组织更规范。每个中间件都是独立模块,功能边界清晰,不会出现逻辑耦合的问题。

复用性大幅提升。写好的中间件可以在不同项目间共享,不用每次都重新实现。

组合灵活性很高。像搭积木一样组合不同的中间件,快速实现复杂功能。

测试和调试简化了。每个中间件可以单独测试,出问题也容易定位。

生产环境的适配性更好。常见的生产需求都有对应的模式,不需要从零开始摸索。

github.com/qaoocif/po/issues/501
github.com/qaoocif/po/issues/502
github.com/qaoocif/po/issues/503
github.com/qaoocif/po/issues/504
github.com/qaoocif/po/issues/505
github.com/qaoocif/po/issues/506
github.com/qaoocif/po/issues/507
github.com/qaoocif/po/issues/508
github.com/qaoocif/po/issues/509
github.com/qaoocif/po/issues/510
github.com/qaoocif/po/issues/511
github.com/qaoocif/po/issues/512
github.com/qaoocif/po/issues/513
github.com/qaoocif/po/issues/514
github.com/qaoocif/po/issues/515
github.com/qaoocif/po/issues/516
github.com/qaoocif/po/issues/517
github.com/qaoocif/po/issues/518
github.com/qaoocif/po/issues/519
github.com/qaoocif/po/issues/520
github.com/qaoocif/po/issues/521
github.com/qaoocif/po/issues/522
github.com/qaoocif/po/issues/523
github.com/qaoocif/po/issues/524
github.com/qaoocif/po/issues/525
github.com/qaoocif/po/issues/526
github.com/qaoocif/po/issues/527
github.com/qaoocif/po/issues/528
github.com/qaoocif/po/issues/529
github.com/qaoocif/po/issues/530
github.com/qaoocif/po/issues/531
github.com/qaoocif/po/issues/532
github.com/qaoocif/po/issues/533
github.com/qaoocif/po/issues/534
github.com/qaoocif/po/issues/535
github.com/qaoocif/po/issues/536
github.com/qaoocif/po/issues/537
github.com/qaoocif/po/issues/538
github.com/qaoocif/po/issues/539
github.com/qaoocif/po/issues/540
github.com/qaoocif/po/issues/541
github.com/qaoocif/po/issues/542
github.com/qaoocif/po/issues/543
github.com/qaoocif/po/issues/544
github.com/qaoocif/po/issues/545
github.com/qaoocif/po/issues/546
github.com/qaoocif/po/issues/547
github.com/qaoocif/po/issues/548
github.com/qaoocif/po/issues/549
github.com/qaoocif/po/issues/550
github.com/qaoocif/po/issues/551
github.com/qaoocif/po/issues/552
github.com/qaoocif/po/issues/553
github.com/qaoocif/po/issues/554
github.com/qaoocif/po/issues/555
github.com/qaoocif/po/issues/556
github.com/qaoocif/po/issues/557
github.com/qaoocif/po/issues/558
github.com/qaoocif/po/issues/559
github.com/qaoocif/po/issues/560
github.com/qaoocif/po/issues/561
github.com/qaoocif/po/issues/562
github.com/qaoocif/po/issues/563
github.com/qaoocif/po/issues/564
github.com/qaoocif/po/issues/565
github.com/qaoocif/po/issues/566
github.com/qaoocif/po/issues/567
github.com/qaoocif/po/issues/568
github.com/qaoocif/po/issues/569
github.com/qaoocif/po/issues/570
github.com/qaoocif/po/issues/571
github.com/qaoocif/po/issues/572
github.com/qaoocif/po/issues/573
github.com/qaoocif/po/issues/574
github.com/qaoocif/po/issues/575
github.com/qaoocif/po/issues/576
github.com/qaoocif/po/issues/577
github.com/qaoocif/po/issues/578
github.com/qaoocif/po/issues/579
github.com/qaoocif/po/issues/580
github.com/qaoocif/po/issues/581
github.com/qaoocif/po/issues/582
github.com/qaoocif/po/issues/583
github.com/qaoocif/po/issues/584
github.com/qaoocif/po/issues/585
github.com/qaoocif/po/issues/586
github.com/qaoocif/po/issues/587
github.com/qaoocif/po/issues/588
github.com/qaoocif/po/issues/589
github.com/qaoocif/po/issues/590
github.com/qaoocif/po/issues/591
github.com/qaoocif/po/issues/592
github.com/qaoocif/po/issues/593
github.com/qaoocif/po/issues/594
github.com/qaoocif/po/issues/595
github.com/qaoocif/po/issues/596
github.com/qaoocif/po/issues/597
github.com/qaoocif/po/issues/598
github.com/qaoocif/po/issues/599
github.com/qaoocif/po/issues/600
github.com/qaoocif/po/issues/601
github.com/qaoocif/po/issues/602
github.com/qaoocif/po/issues/603
github.com/qaoocif/po/issues/604
github.com/qaoocif/po/issues/605
github.com/qaoocif/po/issues/606
github.com/qaoocif/po/issues/607
github.com/qaoocif/po/issues/608
github.com/qaoocif/po/issues/609
github.com/qaoocif/po/issues/610
github.com/qaoocif/po/issues/611
github.com/qaoocif/po/issues/612
github.com/qaoocif/po/issues/613
github.com/qaoocif/po/issues/614
github.com/qaoocif/po/issues/615
github.com/qaoocif/po/issues/616
github.com/qaoocif/po/issues/617
github.com/qaoocif/po/issues/618
github.com/qaoocif/po/issues/619
github.com/qaoocif/po/issues/620
github.com/qaoocif/po/issues/621
github.com/qaoocif/po/issues/622
github.com/qaoocif/po/issues/623
github.com/qaoocif/po/issues/624
github.com/qaoocif/po/issues/625
github.com/qaoocif/po/issues/626
github.com/qaoocif/po/issues/627
github.com/qaoocif/po/issues/628
github.com/qaoocif/po/issues/629
github.com/qaoocif/po/issues/630
github.com/qaoocif/po/issues/631
github.com/qaoocif/po/issues/632
github.com/qaoocif/po/issues/633
github.com/qaoocif/po/issues/634
github.com/qaoocif/po/issues/635
github.com/qaoocif/po/issues/636
github.com/qaoocif/po/issues/637
github.com/qaoocif/po/issues/638
github.com/qaoocif/po/issues/639
github.com/qaoocif/po/issues/640
github.com/qaoocif/po/issues/641
github.com/qaoocif/po/issues/642
github.com/qaoocif/po/issues/643
github.com/qaoocif/po/issues/644
github.com/qaoocif/po/issues/645
github.com/qaoocif/po/issues/646
github.com/qaoocif/po/issues/647
github.com/qaoocif/po/issues/648
github.com/qaoocif/po/issues/649
github.com/qaoocif/po/issues/650
github.com/qaoocif/po/issues/651
github.com/qaoocif/po/issues/652
github.com/qaoocif/po/issues/653
github.com/qaoocif/po/issues/654
github.com/qaoocif/po/issues/655
github.com/qaoocif/po/issues/656
github.com/qaoocif/po/issues/657
github.com/qaoocif/po/issues/658
github.com/qaoocif/po/issues/659
github.com/qaoocif/po/issues/660
github.com/qaoocif/po/issues/661
github.com/qaoocif/po/issues/662
github.com/qaoocif/po/issues/663
github.com/qaoocif/po/issues/664
github.com/qaoocif/po/issues/665
github.com/qaoocif/po/issues/666
github.com/qaoocif/po/issues/667
github.com/qaoocif/po/issues/668
github.com/qaoocif/po/issues/669
github.com/qaoocif/po/issues/670
github.com/qaoocif/po/issues/671
github.com/qaoocif/po/issues/672
github.com/qaoocif/po/issues/673
github.com/qaoocif/po/issues/674
github.com/qaoocif/po/issues/675
github.com/qaoocif/po/issues/676
github.com/qaoocif/po/issues/677
github.com/qaoocif/po/issues/678
github.com/qaoocif/po/issues/679
github.com/qaoocif/po/issues/680
github.com/qaoocif/po/issues/681
github.com/qaoocif/po/issues/682
github.com/qaoocif/po/issues/683
github.com/qaoocif/po/issues/684
github.com/qaoocif/po/issues/685
github.com/qaoocif/po/issues/686
github.com/qaoocif/po/issues/687
github.com/qaoocif/po/issues/688
github.com/qaoocif/po/issues/689
github.com/qaoocif/po/issues/690
github.com/qaoocif/po/issues/691
github.com/qaoocif/po/issues/692
github.com/qaoocif/po/issues/693
github.com/qaoocif/po/issues/694
github.com/qaoocif/po/issues/695
github.com/qaoocif/po/issues/696
github.com/qaoocif/po/issues/697
github.com/qaoocif/po/issues/698
github.com/qaoocif/po/issues/699
github.com/qaoocif/po/issues/700
github.com/qaoocif/po/issues/701
github.com/qaoocif/po/issues/702
github.com/qaoocif/po/issues/703
github.com/qaoocif/po/issues/704
github.com/qaoocif/po/issues/705
github.com/qaoocif/po/issues/706
github.com/qaoocif/po/issues/707
github.com/qaoocif/po/issues/708
github.com/qaoocif/po/issues/709
github.com/qaoocif/po/issues/710
github.com/qaoocif/po/issues/711
github.com/qaoocif/po/issues/712
github.com/qaoocif/po/issues/713
github.com/qaoocif/po/issues/714
github.com/qaoocif/po/issues/715
github.com/qaoocif/po/issues/716
github.com/qaoocif/po/issues/717
github.com/qaoocif/po/issues/718
github.com/qaoocif/po/issues/719
github.com/qaoocif/po/issues/720
github.com/qaoocif/po/issues/721
github.com/qaoocif/po/issues/722
github.com/qaoocif/po/issues/723
github.com/qaoocif/po/issues/724
github.com/qaoocif/po/issues/725
github.com/qaoocif/po/issues/726
github.com/qaoocif/po/issues/727
github.com/qaoocif/po/issues/728
github.com/qaoocif/po/issues/729
github.com/qaoocif/po/issues/730
github.com/qaoocif/po/issues/731
github.com/qaoocif/po/issues/732
github.com/qaoocif/po/issues/733
github.com/qaoocif/po/issues/734
github.com/qaoocif/po/issues/735
github.com/qaoocif/po/issues/736
github.com/qaoocif/po/issues/737
github.com/qaoocif/po/issues/738
github.com/qaoocif/po/issues/739
github.com/qaoocif/po/issues/740
github.com/qaoocif/po/issues/741
github.com/qaoocif/po/issues/742
github.com/qaoocif/po/issues/743
github.com/qaoocif/po/issues/744
github.com/qaoocif/po/issues/745
github.com/qaoocif/po/issues/746
github.com/qaoocif/po/issues/747
github.com/qaoocif/po/issues/748
github.com/qaoocif/po/issues/749
github.com/qaoocif/po/issues/750
github.com/qaoocif/po/issues/751
github.com/qaoocif/po/issues/752
github.com/qaoocif/po/issues/753
github.com/qaoocif/po/issues/754
github.com/qaoocif/po/issues/755
github.com/qaoocif/po/issues/756
github.com/qaoocif/po/issues/757
github.com/qaoocif/po/issues/758
github.com/qaoocif/po/issues/759
github.com/qaoocif/po/issues/760
github.com/qaoocif/po/issues/761
github.com/qaoocif/po/issues/762
github.com/qaoocif/po/issues/763
github.com/qaoocif/po/issues/764
github.com/qaoocif/po/issues/765
github.com/qaoocif/po/issues/766
github.com/qaoocif/po/issues/767
github.com/qaoocif/po/issues/768
github.com/qaoocif/po/issues/769
github.com/qaoocif/po/issues/770
github.com/qaoocif/po/issues/771
github.com/qaoocif/po/issues/772
github.com/qaoocif/po/issues/773
github.com/qaoocif/po/issues/774
github.com/qaoocif/po/issues/775
github.com/qaoocif/po/issues/776
github.com/qaoocif/po/issues/777
github.com/qaoocif/po/issues/778
github.com/qaoocif/po/issues/779
github.com/qaoocif/po/issues/780
github.com/qaoocif/po/issues/781
github.com/qaoocif/po/issues/782
github.com/qaoocif/po/issues/783
github.com/qaoocif/po/issues/784
github.com/qaoocif/po/issues/785
github.com/qaoocif/po/issues/786
github.com/qaoocif/po/issues/787
github.com/qaoocif/po/issues/788
github.com/qaoocif/po/issues/789
github.com/qaoocif/po/issues/790
github.com/qaoocif/po/issues/791
github.com/qaoocif/po/issues/792
github.com/qaoocif/po/issues/793
github.com/qaoocif/po/issues/794
github.com/qaoocif/po/issues/795
github.com/qaoocif/po/issues/796
github.com/qaoocif/po/issues/797
github.com/qaoocif/po/issues/798
github.com/qaoocif/po/issues/799
github.com/qaoocif/po/issues/800
github.com/qaoocif/po/issues/801
github.com/qaoocif/po/issues/802
github.com/qaoocif/po/issues/803
github.com/qaoocif/po/issues/804
github.com/qaoocif/po/issues/805
github.com/qaoocif/po/issues/806
github.com/qaoocif/po/issues/807
github.com/qaoocif/po/issues/808
github.com/qaoocif/po/issues/809
github.com/qaoocif/po/issues/810
github.com/qaoocif/po/issues/811
github.com/qaoocif/po/issues/812
github.com/qaoocif/po/issues/813
github.com/qaoocif/po/issues/814
github.com/qaoocif/po/issues/815
github.com/qaoocif/po/issues/816
github.com/qaoocif/po/issues/817
github.com/qaoocif/po/issues/818
github.com/qaoocif/po/issues/819
github.com/qaoocif/po/issues/820
github.com/qaoocif/po/issues/821
github.com/qaoocif/po/issues/822
github.com/qaoocif/po/issues/823
github.com/qaoocif/po/issues/824
github.com/qaoocif/po/issues/825
github.com/qaoocif/po/issues/826
github.com/qaoocif/po/issues/827
github.com/qaoocif/po/issues/828
github.com/qaoocif/po/issues/829
github.com/qaoocif/po/issues/830
github.com/qaoocif/po/issues/831
github.com/qaoocif/po/issues/832
github.com/qaoocif/po/issues/833
github.com/qaoocif/po/issues/834
github.com/qaoocif/po/issues/835
github.com/qaoocif/po/issues/836
github.com/qaoocif/po/issues/837
github.com/qaoocif/po/issues/838
github.com/qaoocif/po/issues/839
github.com/qaoocif/po/issues/840
github.com/qaoocif/po/issues/841
github.com/qaoocif/po/issues/842
github.com/qaoocif/po/issues/843
github.com/qaoocif/po/issues/844
github.com/qaoocif/po/issues/845
github.com/qaoocif/po/issues/846
github.com/qaoocif/po/issues/847
github.com/qaoocif/po/issues/848
github.com/qaoocif/po/issues/849
github.com/qaoocif/po/issues/850
github.com/qaoocif/po/issues/851
github.com/qaoocif/po/issues/852
github.com/qaoocif/po/issues/853
github.com/qaoocif/po/issues/854
github.com/qaoocif/po/issues/855
github.com/qaoocif/po/issues/856
github.com/qaoocif/po/issues/857
github.com/qaoocif/po/issues/858
github.com/qaoocif/po/issues/859
github.com/qaoocif/po/issues/860
github.com/qaoocif/po/issues/861
github.com/qaoocif/po/issues/862
github.com/qaoocif/po/issues/863
github.com/qaoocif/po/issues/864
github.com/qaoocif/po/issues/865
github.com/qaoocif/po/issues/866
github.com/qaoocif/po/issues/867
github.com/qaoocif/po/issues/868
github.com/qaoocif/po/issues/869
github.com/qaoocif/po/issues/870
github.com/qaoocif/po/issues/871
github.com/qaoocif/po/issues/872
github.com/qaoocif/po/issues/873
github.com/qaoocif/po/issues/874
github.com/qaoocif/po/issues/875
github.com/qaoocif/po/issues/876
github.com/qaoocif/po/issues/877
github.com/qaoocif/po/issues/878
github.com/qaoocif/po/issues/879
github.com/qaoocif/po/issues/880
github.com/qaoocif/po/issues/881
github.com/qaoocif/po/issues/882
github.com/qaoocif/po/issues/883
github.com/qaoocif/po/issues/884
github.com/qaoocif/po/issues/885
github.com/qaoocif/po/issues/886
github.com/qaoocif/po/issues/887
github.com/qaoocif/po/issues/888
github.com/qaoocif/po/issues/889
github.com/qaoocif/po/issues/890
github.com/qaoocif/po/issues/891
github.com/qaoocif/po/issues/892
github.com/qaoocif/po/issues/893
github.com/qaoocif/po/issues/894
github.com/qaoocif/po/issues/895
github.com/qaoocif/po/issues/896
github.com/qaoocif/po/issues/897
github.com/qaoocif/po/issues/898
github.com/qaoocif/po/issues/899
github.com/qaoocif/po/issues/900
github.com/qaoocif/po/issues/901
github.com/qaoocif/po/issues/902
github.com/qaoocif/po/issues/903
github.com/qaoocif/po/issues/904
github.com/qaoocif/po/issues/905
github.com/qaoocif/po/issues/906
github.com/qaoocif/po/issues/907
github.com/qaoocif/po/issues/908
github.com/qaoocif/po/issues/909
github.com/qaoocif/po/issues/910
github.com/qaoocif/po/issues/911
github.com/qaoocif/po/issues/912
github.com/qaoocif/po/issues/913
github.com/qaoocif/po/issues/914
github.com/qaoocif/po/issues/915
github.com/qaoocif/po/issues/916
github.com/qaoocif/po/issues/917
github.com/qaoocif/po/issues/918
github.com/qaoocif/po/issues/919
github.com/qaoocif/po/issues/920
github.com/qaoocif/po/issues/921
github.com/qaoocif/po/issues/922
github.com/qaoocif/po/issues/923
github.com/qaoocif/po/issues/924
github.com/qaoocif/po/issues/925
github.com/qaoocif/po/issues/926
github.com/qaoocif/po/issues/927
github.com/qaoocif/po/issues/928
github.com/qaoocif/po/issues/929
github.com/qaoocif/po/issues/930
github.com/qaoocif/po/issues/931
github.com/qaoocif/po/issues/932
github.com/qaoocif/po/issues/933
github.com/qaoocif/po/issues/934
github.com/qaoocif/po/issues/935
github.com/qaoocif/po/issues/936
github.com/qaoocif/po/issues/937
github.com/qaoocif/po/issues/938
github.com/qaoocif/po/issues/939
github.com/qaoocif/po/issues/940
github.com/qaoocif/po/issues/941
github.com/qaoocif/po/issues/942
github.com/qaoocif/po/issues/943
github.com/qaoocif/po/issues/944
github.com/qaoocif/po/issues/945
github.com/qaoocif/po/issues/946
github.com/qaoocif/po/issues/947
github.com/qaoocif/po/issues/948
github.com/qaoocif/po/issues/949
github.com/oheriga/on/issues/4162
github.com/oheriga/on/issues/4163
github.com/oheriga/on/issues/4164
github.com/oheriga/on/issues/4165
github.com/oheriga/on/issues/4166
github.com/oheriga/on/issues/4167
github.com/oheriga/on/issues/4168
github.com/oheriga/on/issues/4169
github.com/oheriga/on/issues/4170
github.com/oheriga/on/issues/4171
github.com/oheriga/on/issues/4172
github.com/oheriga/on/issues/4173
github.com/oheriga/on/issues/4174
github.com/oheriga/on/issues/4175
github.com/oheriga/on/issues/4176
github.com/oheriga/on/issues/4177
github.com/oheriga/on/issues/4178
github.com/oheriga/on/issues/4179
github.com/oheriga/on/issues/4180
github.com/oheriga/on/issues/4181
github.com/oheriga/on/issues/4182
github.com/oheriga/on/issues/4183
github.com/oheriga/on/issues/4184
github.com/oheriga/on/issues/4185
github.com/oheriga/on/issues/4186
github.com/oheriga/on/issues/4187
github.com/oheriga/on/issues/4188
github.com/oheriga/on/issues/4189
github.com/oheriga/on/issues/4190
github.com/oheriga/on/issues/4191
github.com/oheriga/on/issues/4192
github.com/oheriga/on/issues/4193
github.com/oheriga/on/issues/4194
github.com/oheriga/on/issues/4195
github.com/oheriga/on/issues/4196
github.com/oheriga/on/issues/4197
github.com/oheriga/on/issues/4198
github.com/oheriga/on/issues/4199
github.com/oheriga/on/issues/4200
github.com/oheriga/on/issues/4201
github.com/oheriga/on/issues/4202
github.com/oheriga/on/issues/4203
github.com/oheriga/on/issues/4204
github.com/oheriga/on/issues/4205
github.com/oheriga/on/issues/4206
github.com/oheriga/on/issues/4207
github.com/oheriga/on/issues/4208
github.com/oheriga/on/issues/4209
github.com/oheriga/on/issues/4210
github.com/oheriga/on/issues/4211
github.com/oheriga/on/issues/4212
github.com/oheriga/on/issues/4213
github.com/oheriga/on/issues/4214
github.com/oheriga/on/issues/4215
github.com/oheriga/on/issues/4216
github.com/oheriga/on/issues/4217
github.com/oheriga/on/issues/4218
github.com/oheriga/on/issues/4219
github.com/oheriga/on/issues/4220
github.com/oheriga/on/issues/4221
github.com/oheriga/on/issues/4222
github.com/oheriga/on/issues/4223
github.com/oheriga/on/issues/4224
github.com/oheriga/on/issues/4225
github.com/oheriga/on/issues/4226
github.com/oheriga/on/issues/4227
github.com/oheriga/on/issues/4228
github.com/oheriga/on/issues/4229
github.com/oheriga/on/issues/4230
github.com/oheriga/on/issues/4231
github.com/oheriga/on/issues/4232
github.com/oheriga/on/issues/4233
github.com/oheriga/on/issues/4234
github.com/oheriga/on/issues/4235
github.com/oheriga/on/issues/4236
github.com/oheriga/on/issues/4237
github.com/oheriga/on/issues/4238
github.com/oheriga/on/issues/4239
github.com/oheriga/on/issues/4240
github.com/oheriga/on/issues/4241
github.com/oheriga/on/issues/4242
github.com/oheriga/on/issues/4243
github.com/oheriga/on/issues/4244
github.com/oheriga/on/issues/4245
github.com/oheriga/on/issues/4246
github.com/oheriga/on/issues/4247
github.com/oheriga/on/issues/4248
github.com/oheriga/on/issues/4249
github.com/oheriga/on/issues/4250
github.com/oheriga/on/issues/4251
github.com/oheriga/on/issues/4252
github.com/oheriga/on/issues/4253
github.com/oheriga/on/issues/4254
github.com/oheriga/on/issues/4255
github.com/oheriga/on/issues/4256
github.com/oheriga/on/issues/4257
github.com/oheriga/on/issues/4258
github.com/oheriga/on/issues/4259
github.com/oheriga/on/issues/4260
github.com/oheriga/on/issues/4261
github.com/oheriga/on/issues/4262
github.com/oheriga/on/issues/4263
github.com/oheriga/on/issues/4264
github.com/oheriga/on/issues/4265
github.com/oheriga/on/issues/4266
github.com/oheriga/on/issues/4267
github.com/oheriga/on/issues/4268
github.com/oheriga/on/issues/4269
github.com/oheriga/on/issues/4270
github.com/oheriga/on/issues/4271
github.com/oheriga/on/issues/4272
github.com/oheriga/on/issues/4273
github.com/oheriga/on/issues/4274
github.com/oheriga/on/issues/4275
github.com/oheriga/on/issues/4276
github.com/oheriga/on/issues/4277
github.com/oheriga/on/issues/4278
github.com/oheriga/on/issues/4279
github.com/oheriga/on/issues/4280
github.com/oheriga/on/issues/4281
github.com/oheriga/on/issues/4282
github.com/oheriga/on/issues/4283
github.com/oheriga/on/issues/4284
github.com/oheriga/on/issues/4285
github.com/oheriga/on/issues/4286
github.com/oheriga/on/issues/4287
github.com/oheriga/on/issues/4288
github.com/oheriga/on/issues/4289
github.com/oheriga/on/issues/4290
github.com/oheriga/on/issues/4291
github.com/oheriga/on/issues/4292
github.com/oheriga/on/issues/4293
github.com/oheriga/on/issues/4294
github.com/oheriga/on/issues/4295
github.com/oheriga/on/issues/4296
github.com/oheriga/on/issues/4297
github.com/oheriga/on/issues/4298
github.com/oheriga/on/issues/4299
github.com/oheriga/on/issues/4300
github.com/oheriga/on/issues/4301
github.com/oheriga/on/issues/4302
github.com/oheriga/on/issues/4303
github.com/oheriga/on/issues/4304
github.com/oheriga/on/issues/4305
github.com/oheriga/on/issues/4306
github.com/oheriga/on/issues/4307
github.com/oheriga/on/issues/4308
github.com/oheriga/on/issues/4309
github.com/oheriga/on/issues/4310
github.com/oheriga/on/issues/4311
github.com/oheriga/on/issues/4312
github.com/oheriga/on/issues/4313
github.com/oheriga/on/issues/4314
github.com/oheriga/on/issues/4315
github.com/oheriga/on/issues/4316
github.com/oheriga/on/issues/4317
github.com/oheriga/on/issues/4318
github.com/oheriga/on/issues/4319
github.com/oheriga/on/issues/4320
github.com/oheriga/on/issues/4321
github.com/oheriga/on/issues/4322
github.com/oheriga/on/issues/4323
github.com/oheriga/on/issues/4324
github.com/oheriga/on/issues/4325
github.com/oheriga/on/issues/4326
github.com/oheriga/on/issues/4327
github.com/oheriga/on/issues/4328
github.com/oheriga/on/issues/4329
github.com/oheriga/on/issues/4330
github.com/oheriga/on/issues/4331
github.com/oheriga/on/issues/4332
github.com/oheriga/on/issues/4333
github.com/oheriga/on/issues/4334
github.com/oheriga/on/issues/4335
github.com/oheriga/on/issues/4336
github.com/oheriga/on/issues/4337
github.com/oheriga/on/issues/4338
github.com/oheriga/on/issues/4339
github.com/oheriga/on/issues/4340
github.com/oheriga/on/issues/4341
github.com/oheriga/on/issues/4342
github.com/oheriga/on/issues/4343
github.com/oheriga/on/issues/4344
github.com/oheriga/on/issues/4345
github.com/oheriga/on/issues/4346
github.com/oheriga/on/issues/4347
github.com/oheriga/on/issues/4348
github.com/oheriga/on/issues/4349
github.com/oheriga/on/issues/4350
github.com/oheriga/on/issues/4351
github.com/oheriga/on/issues/4352
github.com/oheriga/on/issues/4353
github.com/oheriga/on/issues/4354
github.com/oheriga/on/issues/4355
github.com/oheriga/on/issues/4356
github.com/oheriga/on/issues/4357
github.com/oheriga/on/issues/4358
github.com/oheriga/on/issues/4359
github.com/oheriga/on/issues/4360
github.com/oheriga/on/issues/4361
github.com/oheriga/on/issues/4362
github.com/oheriga/on/issues/4363
github.com/oheriga/on/issues/4364
github.com/oheriga/on/issues/4365
github.com/oheriga/on/issues/4366
github.com/oheriga/on/issues/4367
github.com/oheriga/on/issues/4368
github.com/oheriga/on/issues/4369
github.com/oheriga/on/issues/4370
github.com/oheriga/on/issues/4371
github.com/oheriga/on/issues/4372
github.com/oheriga/on/issues/4373
github.com/oheriga/on/issues/4374
github.com/oheriga/on/issues/4375
github.com/oheriga/on/issues/4376
github.com/oheriga/on/issues/4377
github.com/oheriga/on/issues/4378
github.com/oheriga/on/issues/4379
github.com/oheriga/on/issues/4380
github.com/oheriga/on/issues/4381
github.com/oheriga/on/issues/4382
github.com/oheriga/on/issues/4383
github.com/oheriga/on/issues/4384
github.com/oheriga/on/issues/4385
github.com/oheriga/on/issues/4386
github.com/oheriga/on/issues/4387
github.com/oheriga/on/issues/4388
github.com/oheriga/on/issues/4389
github.com/oheriga/on/issues/4390
github.com/oheriga/on/issues/4391
github.com/oheriga/on/issues/4392
github.com/oheriga/on/issues/4393
github.com/oheriga/on/issues/4394
github.com/oheriga/on/issues/4395
github.com/oheriga/on/issues/4396
github.com/oheriga/on/issues/4397
github.com/oheriga/on/issues/4398
github.com/oheriga/on/issues/4399
github.com/oheriga/on/issues/4400
github.com/oheriga/on/issues/4401
github.com/oheriga/on/issues/4402
github.com/oheriga/on/issues/4403
github.com/oheriga/on/issues/4404
github.com/oheriga/on/issues/4405
github.com/oheriga/on/issues/4406
github.com/oheriga/on/issues/4407
github.com/oheriga/on/issues/4408
github.com/oheriga/on/issues/4409
github.com/oheriga/on/issues/4410
github.com/oheriga/on/issues/4411
github.com/oheriga/on/issues/4412
github.com/oheriga/on/issues/4413
github.com/oheriga/on/issues/4414
github.com/oheriga/on/issues/4415
github.com/oheriga/on/issues/4416
github.com/oheriga/on/issues/4417
github.com/oheriga/on/issues/4418
github.com/oheriga/on/issues/4419
github.com/oheriga/on/issues/4420
github.com/oheriga/on/issues/4421
github.com/oheriga/on/issues/4422
github.com/oheriga/on/issues/4423
github.com/oheriga/on/issues/4424
github.com/oheriga/on/issues/4425
github.com/oheriga/on/issues/4426
github.com/oheriga/on/issues/4427
github.com/oheriga/on/issues/4428
github.com/oheriga/on/issues/4429
github.com/oheriga/on/issues/4430
github.com/oheriga/on/issues/4431
github.com/oheriga/on/issues/4432
github.com/oheriga/on/issues/4433
github.com/oheriga/on/issues/4434
github.com/oheriga/on/issues/4435
github.com/oheriga/on/issues/4436
github.com/oheriga/on/issues/4437
github.com/oheriga/on/issues/4438
github.com/oheriga/on/issues/4439
github.com/oheriga/on/issues/4440
github.com/oheriga/on/issues/4441
github.com/oheriga/on/issues/4442
github.com/oheriga/on/issues/4443
github.com/oheriga/on/issues/4444
github.com/oheriga/on/issues/4445
github.com/oheriga/on/issues/4446
github.com/oheriga/on/issues/4447
github.com/oheriga/on/issues/4448
github.com/oheriga/on/issues/4449
github.com/oheriga/on/issues/4450
github.com/oheriga/on/issues/4451
github.com/oheriga/on/issues/4452
github.com/oheriga/on/issues/4453
github.com/oheriga/on/issues/4454
github.com/oheriga/on/issues/4455
github.com/oheriga/on/issues/4456
github.com/oheriga/on/issues/4457
github.com/oheriga/on/issues/4458
github.com/oheriga/on/issues/4459
github.com/oheriga/on/issues/4460
github.com/oheriga/on/issues/4461
github.com/oheriga/on/issues/4462
github.com/oheriga/on/issues/4463
github.com/oheriga/on/issues/4464
github.com/oheriga/on/issues/4465
github.com/oheriga/on/issues/4466
github.com/oheriga/on/issues/4467
github.com/oheriga/on/issues/4468
github.com/oheriga/on/issues/4469
github.com/oheriga/on/issues/4470
github.com/oheriga/on/issues/4471
github.com/oheriga/on/issues/4472
github.com/oheriga/on/issues/4473
github.com/oheriga/on/issues/4474
github.com/oheriga/on/issues/4475
github.com/oheriga/on/issues/4476
github.com/oheriga/on/issues/4477
github.com/oheriga/on/issues/4478
github.com/oheriga/on/issues/4479
github.com/oheriga/on/issues/4480
github.com/oheriga/on/issues/4481
github.com/oheriga/on/issues/4482
github.com/oheriga/on/issues/4483
github.com/oheriga/on/issues/4484
github.com/oheriga/on/issues/4485
github.com/oheriga/on/issues/4486
github.com/oheriga/on/issues/4487
github.com/oheriga/on/issues/4488
github.com/oheriga/on/issues/4489
github.com/oheriga/on/issues/4490
github.com/oheriga/on/issues/4491
github.com/oheriga/on/issues/4492
github.com/oheriga/on/issues/4493
github.com/oheriga/on/issues/4494
github.com/oheriga/on/issues/4495
github.com/oheriga/on/issues/4496
github.com/oheriga/on/issues/4497
github.com/oheriga/on/issues/4498
github.com/oheriga/on/issues/4499
github.com/oheriga/on/issues/4500
github.com/oheriga/on/issues/4501
github.com/oheriga/on/issues/4502
github.com/oheriga/on/issues/4503
github.com/oheriga/on/issues/4504
github.com/oheriga/on/issues/4505
github.com/oheriga/on/issues/4506
github.com/oheriga/on/issues/4507
github.com/oheriga/on/issues/4508
github.com/oheriga/on/issues/4509
github.com/oheriga/on/issues/4510
github.com/oheriga/on/issues/4511
github.com/oheriga/on/issues/4512
github.com/oheriga/on/issues/4513
github.com/oheriga/on/issues/4514
github.com/oheriga/on/issues/4515
github.com/oheriga/on/issues/4516
github.com/oheriga/on/issues/4517
github.com/oheriga/on/issues/4518
github.com/oheriga/on/issues/4519
github.com/oheriga/on/issues/4520
github.com/oheriga/on/issues/4521
github.com/oheriga/on/issues/4522
github.com/oheriga/on/issues/4523
github.com/oheriga/on/issues/4524
github.com/oheriga/on/issues/4525
github.com/oheriga/on/issues/4526
github.com/oheriga/on/issues/4527
github.com/oheriga/on/issues/4528
github.com/oheriga/on/issues/4529
github.com/oheriga/on/issues/4530
github.com/oheriga/on/issues/4531
github.com/oheriga/on/issues/4532
github.com/oheriga/on/issues/4533
github.com/oheriga/on/issues/4534
github.com/oheriga/on/issues/4535
github.com/oheriga/on/issues/4536
github.com/oheriga/on/issues/4537
github.com/oheriga/on/issues/4538
github.com/oheriga/on/issues/4539
github.com/oheriga/on/issues/4540
github.com/oheriga/on/issues/4541
github.com/oheriga/on/issues/4542
github.com/oheriga/on/issues/4543
github.com/oheriga/on/issues/4544
github.com/oheriga/on/issues/4545
github.com/oheriga/on/issues/4546
github.com/oheriga/on/issues/4547
github.com/oheriga/on/issues/4548
github.com/oheriga/on/issues/4549
github.com/oheriga/on/issues/4550
github.com/oheriga/on/issues/4551
github.com/oheriga/on/issues/4552
github.com/oheriga/on/issues/4553
github.com/oheriga/on/issues/4554
github.com/oheriga/on/issues/4555
github.com/oheriga/on/issues/4556
github.com/oheriga/on/issues/4557
github.com/oheriga/on/issues/4558
github.com/oheriga/on/issues/4559
github.com/oheriga/on/issues/4560
github.com/oheriga/on/issues/4561
github.com/oheriga/on/issues/4562
github.com/oheriga/on/issues/4563
github.com/oheriga/on/issues/4564
github.com/oheriga/on/issues/4565
github.com/oheriga/on/issues/4566
github.com/oheriga/on/issues/4567
github.com/oheriga/on/issues/4568
github.com/oheriga/on/issues/4569
github.com/oheriga/on/issues/4570
github.com/oheriga/on/issues/4571
github.com/oheriga/on/issues/4572
github.com/oheriga/on/issues/4573
github.com/oheriga/on/issues/4574
github.com/oheriga/on/issues/4575
github.com/oheriga/on/issues/4576
github.com/oheriga/on/issues/4577
github.com/oheriga/on/issues/4578
github.com/oheriga/on/issues/4579
github.com/oheriga/on/issues/4580
github.com/oheriga/on/issues/4581
github.com/oheriga/on/issues/4582
github.com/oheriga/on/issues/4583
github.com/oheriga/on/issues/4584
github.com/oheriga/on/issues/4585
github.com/oheriga/on/issues/4586
github.com/oheriga/on/issues/4587
github.com/oheriga/on/issues/4588
github.com/oheriga/on/issues/4589
github.com/oheriga/on/issues/4590
github.com/oheriga/on/issues/4591
github.com/oheriga/on/issues/4592
github.com/oheriga/on/issues/4593
github.com/oheriga/on/issues/4594
github.com/oheriga/on/issues/4595
github.com/oheriga/on/issues/4596
github.com/oheriga/on/issues/4597
github.com/oheriga/on/issues/4598
github.com/oheriga/on/issues/4599
github.com/oheriga/on/issues/4600
github.com/oheriga/on/issues/4601
github.com/oheriga/on/issues/4602
github.com/oheriga/on/issues/4603
github.com/oheriga/on/issues/4604
github.com/oheriga/on/issues/4605
github.com/oheriga/on/issues/4606
github.com/oheriga/on/issues/4607
github.com/oheriga/on/issues/4608
github.com/oheriga/on/issues/4609
github.com/oheriga/on/issues/4610
github.com/oheriga/on/issues/4611
github.com/oheriga/on/issues/4612
github.com/oheriga/on/issues/4613
github.com/oheriga/on/issues/4614
github.com/oheriga/on/issues/4615
github.com/oheriga/on/issues/4616
github.com/oheriga/on/issues/4617
github.com/oheriga/on/issues/4618
github.com/oheriga/on/issues/4619
github.com/oheriga/on/issues/4620
github.com/oheriga/on/issues/4621
github.com/oheriga/on/issues/4622
github.com/oheriga/on/issues/4623
github.com/oheriga/on/issues/4624
github.com/oheriga/on/issues/4625
github.com/oheriga/on/issues/4626
github.com/oheriga/on/issues/4627
github.com/oheriga/on/issues/4628
github.com/oheriga/on/issues/4629
github.com/oheriga/on/issues/4630
github.com/oheriga/on/issues/4631
github.com/oheriga/on/issues/4632
github.com/oheriga/on/issues/4633
github.com/oheriga/on/issues/4634
github.com/oheriga/on/issues/4635
github.com/oheriga/on/issues/4636
github.com/oheriga/on/issues/4637
github.com/oheriga/on/issues/4638
github.com/oheriga/on/issues/4639
github.com/oheriga/on/issues/4640
github.com/oheriga/on/issues/4641
github.com/oheriga/on/issues/4642
github.com/oheriga/on/issues/4643
github.com/oheriga/on/issues/4644
github.com/oheriga/on/issues/4645
github.com/oheriga/on/issues/4646
github.com/oheriga/on/issues/4647
github.com/oheriga/on/issues/4648
github.com/oheriga/on/issues/4649
github.com/oheriga/on/issues/4650
github.com/oheriga/on/issues/4651
github.com/oheriga/on/issues/4652
github.com/oheriga/on/issues/4653
github.com/oheriga/on/issues/4654
github.com/oheriga/on/issues/4655
github.com/oheriga/on/issues/4656
github.com/oheriga/on/issues/4657
github.com/oheriga/on/issues/4658
github.com/oheriga/on/issues/4659
github.com/oheriga/on/issues/4660
github.com/oheriga/on/issues/4661
github.com/oheriga/on/issues/4662
github.com/oheriga/on/issues/4663
github.com/oheriga/on/issues/4664
github.com/oheriga/on/issues/4665
github.com/oheriga/on/issues/4666
github.com/oheriga/on/issues/4667
github.com/oheriga/on/issues/4668
github.com/oheriga/on/issues/4669
github.com/oheriga/on/issues/4670
github.com/oheriga/on/issues/4671
github.com/oheriga/on/issues/4672
github.com/oheriga/on/issues/4673
github.com/oheriga/on/issues/4674
github.com/oheriga/on/issues/4675
github.com/oheriga/on/issues/4676
github.com/oheriga/on/issues/4677
github.com/oheriga/on/issues/4678
github.com/oheriga/on/issues/4679
github.com/oheriga/on/issues/4680
github.com/oheriga/on/issues/4681
github.com/oheriga/on/issues/4682
github.com/oheriga/on/issues/4683
github.com/oheriga/on/issues/4684
github.com/oheriga/on/issues/4685
github.com/oheriga/on/issues/4686
github.com/oheriga/on/issues/4687
github.com/oheriga/on/issues/4688
github.com/oheriga/on/issues/4689
github.com/oheriga/on/issues/4690
github.com/oheriga/on/issues/4691
github.com/oheriga/on/issues/4692
github.com/oheriga/on/issues/4693
github.com/oheriga/on/issues/4694
github.com/oheriga/on/issues/4695
github.com/oheriga/on/issues/4696
github.com/oheriga/on/issues/4697
github.com/oheriga/on/issues/4698
github.com/oheriga/on/issues/4699
github.com/oheriga/on/issues/4700
github.com/oheriga/on/issues/4701
github.com/oheriga/on/issues/4702
github.com/oheriga/on/issues/4703
github.com/oheriga/on/issues/4704
github.com/oheriga/on/issues/4705
github.com/oheriga/on/issues/4706
github.com/oheriga/on/issues/4707
github.com/oheriga/on/issues/4708
github.com/oheriga/on/issues/4709
github.com/oheriga/on/issues/4710
github.com/oheriga/on/issues/4711
github.com/oheriga/on/issues/4712
github.com/oheriga/on/issues/4713
github.com/oheriga/on/issues/4714
github.com/oheriga/on/issues/4715
github.com/oheriga/on/issues/4716
github.com/oheriga/on/issues/4717
github.com/oheriga/on/issues/4718
github.com/oheriga/on/issues/4719
github.com/oheriga/on/issues/4720
github.com/oheriga/on/issues/4721
github.com/oheriga/on/issues/4722
github.com/oheriga/on/issues/4723
github.com/oheriga/on/issues/4724
github.com/oheriga/on/issues/4725
github.com/oheriga/on/issues/4726
github.com/oheriga/on/issues/4727
github.com/oheriga/on/issues/4728
github.com/oheriga/on/issues/4729
github.com/oheriga/on/issues/4730
github.com/oheriga/on/issues/4731
github.com/oheriga/on/issues/4732
github.com/oheriga/on/issues/4733
github.com/oheriga/on/issues/4734
github.com/oheriga/on/issues/4735
github.com/oheriga/on/issues/4736
github.com/oheriga/on/issues/4737
github.com/oheriga/on/issues/4738
github.com/oheriga/on/issues/4739
github.com/oheriga/on/issues/4740
github.com/oheriga/on/issues/4741
github.com/oheriga/on/issues/4742
github.com/oheriga/on/issues/4743
github.com/oheriga/on/issues/4744
github.com/oheriga/on/issues/4745
github.com/oheriga/on/issues/4746
github.com/oheriga/on/issues/4747
github.com/oheriga/on/issues/4748
github.com/oheriga/on/issues/4749
github.com/oheriga/on/issues/4750
github.com/oheriga/on/issues/4751
github.com/oheriga/on/issues/4752
github.com/oheriga/on/issues/4753
github.com/oheriga/on/issues/4754
github.com/oheriga/on/issues/4755
github.com/oheriga/on/issues/4756
github.com/oheriga/on/issues/4757
github.com/oheriga/on/issues/4758
github.com/oheriga/on/issues/4759
github.com/oheriga/on/issues/4760
github.com/oheriga/on/issues/4761
github.com/oheriga/on/issues/4762
github.com/oheriga/on/issues/4763
github.com/oheriga/on/issues/4764
github.com/oheriga/on/issues/4765
github.com/oheriga/on/issues/4766
github.com/oheriga/on/issues/4767
github.com/oheriga/on/issues/4768
github.com/oheriga/on/issues/4769
github.com/oheriga/on/issues/4770
github.com/oheriga/on/issues/4771
github.com/oheriga/on/issues/4772
github.com/oheriga/on/issues/4773
github.com/oheriga/on/issues/4774
github.com/oheriga/on/issues/4775
github.com/oheriga/on/issues/4776
github.com/oheriga/on/issues/4777
github.com/oheriga/on/issues/4778
github.com/oheriga/on/issues/4779
github.com/oheriga/on/issues/4780
 

总结

v1.0 之前,上下文控制基本靠手写代码,没有统一的抽象层。中间件机制把上下文工程变成了系统化的工程实践。无论是使用现成的中间件处理通用场景,还是开发自定义中间件满足特定需求,这套机制都提供了足够的灵活性和控制力。这对构建可靠的生产级 Agent 来说很关键。

create_agent

以中间件为核心的设计不只是功能上的补充,更像是对 Agent 构建范式的重新定义——把上下文工程提升到和模型选择、工具设计同等重要的位置。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐