优化Local Ai Agent事件触发机制

This commit is contained in:
jingrow 2025-10-30 15:09:40 +08:00
parent 89277d1f49
commit 3e0aa1e3f3
2 changed files with 1 additions and 19 deletions

View File

@ -9,7 +9,6 @@ from jingrow.utils.jingrow_api import get_record_list, get_page_meta
def _get_all_local_ai_agents():
"""获取所有启用的事件触发 Local Ai Agent支持按PageType和Module分组缓存返回。
通过本地 API 封装获取非适配器
"""
res = get_record_list(
"Local Ai Agent",
@ -40,7 +39,6 @@ def _get_all_local_ai_agents():
def run_agent(pg=None, method=None, event=None, page=None, **kwargs):
"""本地版 Local Ai Agent 事件驱动机制。
- 支持按 pagetype module 分组合并去重
- condition 支持 Jinja2 表达式
- 使用本地任务队列避免链式重复触发
@ -95,7 +93,6 @@ def run_agent(pg=None, method=None, event=None, page=None, **kwargs):
for agent in agents_for_pg:
event = method if method in event_list else None
if event and (agent.get("event_type") == event):
# 简化:不做最近去重缓存,直接执行
trigger = False
if not agent.get("condition"):

View File

@ -35,15 +35,7 @@ def execute_hooks(pagetype: str, name: str, hook_name: str, data: Dict[str, Any]
hook_full_name = f"page.{pagetype}.{hook_name}"
# 重要:不要展开 data避免与 HookRegistry.send(name=...) 参数名冲突
pg_obj = jingrow.get_pg(pagetype, name)
# 1) 精确钩子
execute_hook(
hook_full_name,
sender=pagetype,
page=pg_obj,
event=hook_name,
data=data or {},
)
# 2) 通配钩子(与 hooks.py 的 "*" 对齐)
# 仅发通配钩子对齐SaaS通配注册+统一分派)
wildcard_hook = f"page.*.{hook_name}"
execute_hook(
wildcard_hook,
@ -65,13 +57,6 @@ def execute_hooks_async(pagetype: str, name: str, hook_name: str, data: Dict[str
# 异步丢到事件循环(同样不要展开 data。同时发送精确与通配钩子
import asyncio
async def _fire():
await execute_hook_async(
hook_full_name,
sender=pagetype,
page=pg,
event=hook_name,
data=data or {},
)
wildcard_hook = f"page.*.{hook_name}"
await execute_hook_async(
wildcard_hook,