Live Prompt

May 19, 2026 · View on GitHub


模块所在位置:

oxygent/live_prompt/
├── manager.py      → PromptManager
├── optimizer.py    → PromptOptimizer
├── version.py      → VersionSyncCoordinator
└── wrapper.py      → DynamicAgentManager

简介

Live Prompt 系统提供基于 Elasticsearch(或 LocalEs 回退方案)的热更新提示词管理。它支持在不重启进程的情况下实时更新提示词,维护所有提示词变更的版本历史,并通过 ES 轮询支持多实例间的缓存同步。该系统还包含基于 LLM 的提示词优化器和自动化的 Agent 提示词热更新功能。


PromptManager

PromptManagermanager.py)是核心类,提供提示词的增删改查操作、版本管理、缓存和全文搜索功能。

参数

参数类型默认值描述
index_namestr"{app_name}_prompt"存储提示词的 ES 索引名称。
use_local_esboolFalse当前是否使用 LocalEs 作为后端。
db_client-自动检测 (JesEs 或 LocalEs)数据库客户端实例。

方法

方法协程 (async)返回值用途
save_prompt(prompt_key, prompt_content, ...)bool保存或更新提示词,包含版本历史和乐观锁。
get_prompt(prompt_key, use_cache=True)Optional[dict]按键获取提示词(优先使用缓存)。
get_prompt_content(prompt_key, fallback_content, use_cache)str获取提示词内容,支持回退值。
get_prompt_history(prompt_key)list[dict]获取按版本降序排列的提示词版本历史。
revert_to_version(prompt_key, target_version)bool将提示词回退到历史中的指定版本。
list_prompts(category, agent_type, is_active, tags)list[dict]列出提示词,支持可选过滤条件。
delete_prompt(prompt_key)bool从数据库和缓存中删除提示词。
search_prompts(keyword, category)list[dict]跨提示词字段进行全文搜索。
clear_cache(prompt_key=None)None清除指定键或所有键的缓存。
start_version_sync()None启动版本同步,确保多实例一致性。
stop_version_sync()None停止版本同步。
close()None关闭数据库连接并停止版本同步。

模块级便捷函数

函数协程 (async)返回值用途
get_prompt_manager()PromptManager获取全局单例 PromptManager 实例。
close_prompt_manager()None关闭全局管理器并清理资源。
get_dynamic_prompt(prompt_key, fallback, use_cache)str获取动态提示词内容,支持回退值。
resolve_prompt_from_es(prompt_key, default, use_cache)str通过精确键从 ES 解析提示词。

PromptOptimizer

PromptOptimizeroptimizer.py)提供基于 LLM 的提示词分析和改进功能,支持框架特定的约束验证。

参数

参数类型默认值描述
llm_modelstr(自动检测)用于优化的 LLM 实例名称。

方法

方法协程 (async)返回值用途
optimize(current_prompt, agent_type, strategy, requirements, context)dict根据策略和约束优化提示词。
get_available_strategies()list[str]列出可用的优化策略。
get_supported_agent_types()list[str]列出支持的 Agent 类型(react、general)。

模块级函数

函数返回值用途
get_prompt_optimizer(llm_model, force_new)PromptOptimizer获取或创建单例优化器。

VersionSyncCoordinator

VersionSyncCoordinatorversion.py)通过 ES 轮询协调多实例间的缓存同步。

参数

参数类型默认值描述
prompt_manager-(必需)需要同步的 PromptManager 实例。
polling_intervalint来自配置或 2ES 轮询的时间间隔(秒)。
use_es_pollingbool自动检测是否启用 ES 轮询(仅限远程 ES)。

方法

方法协程 (async)返回值用途
start()None启动同步协调器和 ES 轮询。
stop()None停止同步协调器。
update_local_version(prompt_key, version)None保存后更新本地版本追踪器。

DynamicAgentManager

DynamicAgentManagerwrapper.py)管理 Agent 提示词从 Live Prompt 系统的热更新。

方法

方法协程 (async)返回值用途
register_agents_from_mas(mas_instance)bool从 MAS 中自动注册使用 Live Prompt 的 Agent。
update_agent_prompt(agent_name)bool更新指定 Agent 的提示词。
update_all_prompts()dict[str, bool]更新所有已注册 Agent 的提示词。
update_prompt_by_key(prompt_key)dict[str, bool]更新使用指定提示词键的所有 Agent。
get_agent_prompt_mapping()dict[str, str]获取 Agent 到提示词键的映射。

模块级便捷函数

函数协程 (async)返回值用途
setup_dynamic_agents(mas_instance)None为 MAS Agent 设置动态提示词功能。
hot_reload_prompt(prompt_key)bool按键热更新指定提示词。
hot_reload_all_prompts()bool热更新所有提示词。
hot_reload_agent(agent_name)bool热更新指定 Agent 的提示词。