Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion astrbot/core/agent/runners/tool_loop_agent_runner.py
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,13 @@ async def reset(
if request.prompt is not None:
m = await request.assemble_context()
messages.append(Message.model_validate(m))
if request.transient_extra_user_content_parts:
extra_msg = Message(
role="user",
content=request.transient_extra_user_content_parts,
)
extra_msg._no_save = True
messages.append(extra_msg)
if request.system_prompt:
messages.insert(
0,
Expand All @@ -207,7 +214,6 @@ async def _iter_llm_responses(
"contexts": self.run_context.messages, # list[Message]
"func_tool": self.req.func_tool,
"session_id": self.req.session_id,
"extra_user_content_parts": self.req.extra_user_content_parts, # list[ContentPart]
}
if include_model:
# For primary provider we keep explicit model selection if provided.
Expand Down
4 changes: 3 additions & 1 deletion astrbot/core/provider/entities.py
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,9 @@ class ProviderRequest:
image_urls: list[str] = field(default_factory=list)
"""图片 URL 列表"""
extra_user_content_parts: list[ContentPart] = field(default_factory=list)
"""额外的用户消息内容部分列表,用于在用户消息后添加额外的内容块(如系统提醒、指令等)。支持 dict 或 ContentPart 对象"""
"""正式用户消息的一部分,会和 prompt、image_urls 一起组成当前轮用户消息,并进入消息记录。适用于应长期保留的补充信息,例如消息发送时间、发送人等。"""
transient_extra_user_content_parts: list[ContentPart] = field(default_factory=list)
"""仅当前轮临时追加的用户内容块,会出现在正式用户消息之后,但不会进入消息记录。适用于只影响当前轮的补充信息,例如增强检索结果、当前语境的相似对话参考等。"""
func_tool: ToolSet | None = None
"""可用的函数工具"""
contexts: list[dict] = field(default_factory=list)
Expand Down
Loading