feat:非核心动作已从planner分离到副planner,移除action的激活机制,添加模型

This commit is contained in:
SengokuCola
2025-08-22 22:35:27 +08:00
parent 1ddfa47e68
commit b525e1e098
10 changed files with 609 additions and 140 deletions

View File

@@ -29,6 +29,7 @@ from src.plugin_system.core import events_manager
from src.plugin_system.apis import generator_api, send_api, message_api, database_api
from src.mais4u.mai_think import mai_thinking_manager
from src.mais4u.s4u_config import s4u_config
from src.chat.utils.chat_message_builder import build_readable_messages_with_id, build_readable_actions, get_actions_by_timestamp_with_chat, get_raw_msg_before_timestamp_with_chat
if TYPE_CHECKING:
from src.common.data_models.database_data_model import DatabaseMessages
@@ -402,8 +403,8 @@ class HeartFChatting:
)
]
else:
# 第一步:动作修改
with Timer("动作修改", cycle_timers):
# 第一步:动作检查
with Timer("动作检查", cycle_timers):
try:
await self.action_modifier.modify_actions()
available_actions = self.action_manager.get_using_actions()
@@ -412,10 +413,45 @@ class HeartFChatting:
# 执行planner
planner_info = self.action_planner.get_necessary_info()
message_list_before_now = get_raw_msg_before_timestamp_with_chat(
chat_id=self.stream_id,
timestamp=time.time(),
limit=int(global_config.chat.max_context_size * 0.6),
)
chat_content_block, message_id_list = build_readable_messages_with_id(
messages=message_list_before_now,
timestamp_mode="normal_no_YMD",
read_mark=self.action_planner.last_obs_time_mark,
truncate=True,
show_actions=True,
)
actions_before_now = get_actions_by_timestamp_with_chat(
chat_id=self.stream_id,
timestamp_start=time.time() - 600,
timestamp_end=time.time(),
limit=5,
)
actions_before_now_block = build_readable_actions(
actions=actions_before_now,
)
prompt_info = await self.action_planner.build_planner_prompt(
is_group_chat=planner_info[0],
chat_target_info=planner_info[1],
current_available_actions=planner_info[2],
chat_content_block=chat_content_block,
actions_before_now_block=actions_before_now_block,
message_id_list=message_id_list,
)
if not await events_manager.handle_mai_events(
EventType.ON_PLAN, None, prompt_info[0], None, self.chat_stream.stream_id
@@ -427,6 +463,9 @@ class HeartFChatting:
loop_start_time=self.last_read_time,
available_actions=available_actions,
)
for action in action_to_use_info:
print(action.action_type)
# 3. 并行执行所有动作
action_tasks = [