LocalAgent

June 26, 2026 · View on GitHub


该类在类层次结构中的位置:

[Oxy](./base_oxy.md)
├── [BaseFlow](./base_flow.md)
│   └── [BaseAgent](./base_agent.md)
│       ├── [LocalAgent](./local_agent.md)
│       │   ├── [ChatAgent](./chat_agent.md)
│       │   │   └── [RAGAgent](./rag_agent.md)
│       │   ├── [ReActAgent](./react_agent.md)
│       │   │   ├── [ShellUseAgent](./shell_use_agent.md)
│       │   │   └── [SkillAgent](./skill_agent.md)
│       │   ├── [ParallelAgent](./parallel_agent.md)
│       │   ├── [WorkflowAgent](./workflow_agent.md)
│       │   └── [PlanAndSolveAgent](./plan_and_solve_agent.md)
│       └── [RemoteAgent](./remote_agent.md)
│           ├── [SSEOxyGent](./sse_oxy_agent.md)
│           └── [A2AClientAgent](./a2a_client_agent.md)
└── [BaseTool](../tools/base_tools.md)

简介

LocalAgent 是具有工具管理和记忆能力的本地 Agent。

该 Agent 扩展了 BaseAgent,提供以下本地执行能力:

  • 动态工具发现与检索
  • 子 Agent 委托和层级支持
  • 对话记忆管理
  • LLM 模型集成与提示词模板化
  • 基于团队的并行执行支持

参数

参数类型 / 允许的值默认值描述
llm_modelstrConfig.get_agent_llm_model()该 Agent 调用的 LLM 标识符。
promptOptional[str]Config.get_agent_prompt()基础系统提示词模板。
prompt_keyOptional[str]None实时提示词查询的键名;默认为 {agent_name}_prompt
use_live_promptboolConfig.get_live_prompt_is_active()是否使用实时提示词热重载系统。
additional_promptOptional[str]""用户提供的文本,追加到提示词末尾。
tools_placeholderstr"tools_description"提示词模板中用于注入工具描述的占位符键名。
sub_agentslist[]该 Agent 可委托的其他 Agent 名称。
toolslist[]显式可用的工具。
except_toolslist[]显式禁止的工具。
bankslist[]该 Agent 可用的 Bank 工具(BankTool / BankClient)。
is_sourcing_toolsboolFalse启用动态工具检索而非静态列表。
is_retain_subagent_in_toolsetboolFalse在返回给 LLM 的工具集中保留子 Agent 可见。
top_k_toolsint10检索工具的最大数量。
is_retrieve_even_if_tools_scarceboolTrue当前工具池较少时仍执行检索。
short_memory_sizeintConfig.get_agent_short_memory_size()短期记忆中保留的对话轮数。
intent_understanding_agentOptional[str]None用于改写查询以进行工具检索的 Agent。
is_retain_master_short_memoryboolFalse是否同时附加用户-主 Agent 会话记忆。
is_attachment_processing_enabledboolTrue是否将附件注入到查询中。
is_multimodal_supportedboolFalse所选 LLM 是否能处理图片。
team_sizeint1并行运行的克隆实例数量(混合 Agent 模式)。

方法

方法协程(async)返回值用途(简要)
__init__(**kwargs)None初始化对象并验证 llm_model 已设置。
_init_available_tool_name_list()None构建允许的工具列表(tools、子 Agent、hubs、MCP 客户端、banks)。
__deepcopy__(memo)LocalAgent深拷贝 Agent,同时保持共享的 MAS 引用。
reload_prompt()bool从实时提示词系统热重载提示词。
init()None一次性初始化;执行工具发现、多模态检查和可选的团队生成。
_get_history(oxy_request, is_get_user_master_session=False)Memory从 Elasticsearch 检索近期对话历史。
_get_llm_tool_desc_list(oxy_request, query)list[str]为 LLM 组装工具描述(静态列表或检索结果)。
_build_instruction(arguments)str替换提示词中的 ${var} 占位符。
_pre_process(oxy_request)OxyRequest在处理前附加短期记忆(以及可选的主 Agent 记忆)。
_before_execute(oxy_request)OxyRequest注入 tools_descriptionadditional_prompt 和多模态附件。
_execute(oxy_request)OxyResponse抽象方法 - 具体子类必须实现实际执行逻辑。

继承

请参阅 BaseAgent 类以了解继承的参数和方法。

使用方式

LocalAgent 类必须被继承使用。