通过抽象Agent、AgentConfig、LLM三个核心数据模型,封装各种大模型的能力,组装出各类智能体。
一、核心设计思路参考
已有工程实践验证了这套三层抽象的可行性:将LLM作为底层调用能力载体、AgentConfig作为配置约束层、Agent作为业务逻辑执行层,所有业务智能体只需继承基础Agent类,传入对应配置和LLM实例即可快速生成,大幅减少重复代码,新增智能体的开发成本可降低70%以上。
二、符合要求的主流开源封装方案
1、LiteLLM + 自定义三层封装
LiteLLM 是轻量级多模型集成利器,它通过标准化的OpenAI兼容接口,封装了OpenAI、DeepSeek、Anthropic等几乎所有主流大模型的调用逻辑,天然适配LLM基础数据模型的抽象需求。你只需在此基础上补充AgentConfig(封装api_key、temperature、上下文窗口等参数)和Agent(封装对话历史、工具调用逻辑)两个类,就能快速搭建出符合要求的极简框架,学习曲线极平缓,适合快速落地。
2、面向对象极简社区开源实现Mini-Agent
特点:许多开发者在 GitHub 上发布的 mini-agent 或 simple-agent 仓库(如搜索结果显示的 sergenes/mini_agent 或类似变种)通常只有几百行代码。
契合点:这类项目通常明确定义 class LLM, class AgentConfig, class BaseAgent,非常适合学习和二次开发。
3、LangChain 轻量化改造方案
LangChain作为主流的LLM应用开发脚手架,本身已经提供了BaseLanguageModel等基础抽象类,你可以剥离它的冗余组件,仅保留核心的LLM封装能力,再自行抽象出轻量的AgentConfig和Agent数据模型,既能复用LangChain成熟的多模型兼容能力,又能避免框架过重的问题,完全贴合极简封装的需求。
三、参考实现核心结构
# LLM基础数据模型 class BaseLLM: def __init__(self, api_key: str, base_url: str, model_name: str): self.client = OpenAI(api_key=api_key, base_url=base_url) self.model_name = model_name def chat(self, messages, **kwargs): return self.client.chat.completions.create(model=self.model_name, messages=messages, **kwargs) # AgentConfig配置数据模型 @dataclass class AgentConfig: system_prompt: str temperature: float = 0.7 max_history: int = 10 # Agent基础数据模型 class BaseAgent: def __init__(self, llm: BaseLLM, config: AgentConfig): self.llm = llm self.config = config self.history = [{"role": "system", "content": config.system_prompt}] def run(self, user_input: str): self.history.append({"role": "user", "content": user_input}) resp = self.llm.chat(self.history, temperature=self.config.temperature) self.history.append({"role": "assistant", "content": resp}) return resp基于这个极简结构,你可以快速组装出闲聊Agent、数据提取Agent、工具调用Agent等各类业务智能体,无需重复编写底层逻辑。