chore: import deployable mai-bot source tree
This commit is contained in:
79
prompts/en-US/.meta.toml
Normal file
79
prompts/en-US/.meta.toml
Normal file
@@ -0,0 +1,79 @@
|
||||
[maisaka_chat]
|
||||
display_name = "Planner"
|
||||
advanced = false
|
||||
description = "Maisaka 主规划模板,负责整合身份、时间、工具说明和聊天上下文,驱动主循环进行思考、决策与工具调用。"
|
||||
|
||||
[maisaka_replyer]
|
||||
display_name = "Replyer"
|
||||
advanced = false
|
||||
description = "Maisaka 回复生成模板,负责根据人格、表达风格、群聊注意事项和待回复上下文生成最终回复。"
|
||||
|
||||
[default_expressor]
|
||||
display_name = "默认表达器"
|
||||
advanced = true
|
||||
description = "表达方式生成与整理相关模板,通常只在调试表达系统时需要修改。"
|
||||
|
||||
[emoji_content_analysis]
|
||||
display_name = "表情包内容分析"
|
||||
advanced = true
|
||||
description = "用于分析表情包图片内容的模板。"
|
||||
|
||||
[emoji_content_filtration]
|
||||
display_name = "表情包内容过滤"
|
||||
advanced = true
|
||||
description = "用于判断表情包内容是否符合过滤要求的模板。"
|
||||
|
||||
[emoji_replace]
|
||||
display_name = "表情包替换"
|
||||
advanced = true
|
||||
description = "用于根据文本语境选择或替换表情包的模板。"
|
||||
|
||||
[expression_evaluation]
|
||||
display_name = "表达评价"
|
||||
advanced = true
|
||||
description = "用于评价候选表达方式质量的模板。"
|
||||
|
||||
[expression_select]
|
||||
display_name = "表达选择"
|
||||
advanced = true
|
||||
description = "用于从表达库中选择合适表达方式的模板。"
|
||||
|
||||
[image_description]
|
||||
display_name = "图片描述"
|
||||
advanced = true
|
||||
description = "用于将图片内容转换为文本描述的模板。"
|
||||
|
||||
[jargon_compare_inference]
|
||||
display_name = "术语对比推理"
|
||||
advanced = true
|
||||
description = "用于比较和推理群内术语含义的模板。"
|
||||
|
||||
[jargon_explainer_summarize]
|
||||
display_name = "术语解释总结"
|
||||
advanced = true
|
||||
description = "用于总结术语解释结果的模板。"
|
||||
|
||||
[jargon_inference_content_only]
|
||||
display_name = "术语推理"
|
||||
advanced = true
|
||||
description = "用于仅基于内容推理术语含义的模板。"
|
||||
|
||||
[jargon_inference_with_context]
|
||||
display_name = "术语上下文推理"
|
||||
advanced = true
|
||||
description = "用于结合上下文推理术语含义的模板。"
|
||||
|
||||
[learn_style]
|
||||
display_name = "表达风格学习"
|
||||
advanced = true
|
||||
description = "用于从聊天内容中学习表达风格的模板。"
|
||||
|
||||
[maisaka_timing_gate]
|
||||
display_name = "Timing Gate"
|
||||
advanced = false
|
||||
description = "Maisaka 节奏控制模板,负责在每轮主循环前判断当前应该等待、停止,还是继续进入思考与回复流程。"
|
||||
|
||||
[memory_retrieval_react_prompt_head_memory]
|
||||
display_name = "记忆检索 ReAct 头部"
|
||||
advanced = true
|
||||
description = "ReAct 式记忆查询流程使用的高级记忆检索提示词头部。"
|
||||
16
prompts/en-US/default_expressor.prompt
Normal file
16
prompts/en-US/default_expressor.prompt
Normal file
@@ -0,0 +1,16 @@
|
||||
{expression_habits_block}
|
||||
{chat_target}
|
||||
{chat_info}
|
||||
{identity}
|
||||
|
||||
You are currently in {chat_target_2},{reply_target_block}
|
||||
Now please rewrite this sentence. Please refer to the content above when rewriting. The original sentence is: {raw_reply}:
|
||||
The reason is: {reason}
|
||||
Now please rewrite this specific content into a reply message suitable for sending in a group chat.
|
||||
You need to use appropriate grammar and syntax, refer to the chat content, and organize a natural, colloquial reply for daily conversation. Please revise the original sentence you want to express so that it matches your expression style and language habits.
|
||||
{reply_style}
|
||||
You may completely restructure the reply. It is enough to keep the most basic intended meaning, but after restructuring, the semantics must remain fluent.
|
||||
{keywords_reaction_prompt}
|
||||
{moderation_prompt}
|
||||
Do not output any extra content (including colons, quotation marks, stickers, emoji, at, or @). Only output a single reply. Do not think for too long.
|
||||
Rewritten reply:
|
||||
5
prompts/en-US/emoji_content_analysis.prompt
Normal file
5
prompts/en-US/emoji_content_analysis.prompt
Normal file
@@ -0,0 +1,5 @@
|
||||
This is a description of a sticker used in a chat scene: "{description}"
|
||||
|
||||
Please identify the meaning and suitable usage scenarios of this sticker, and give me brief descriptions. Each description should not exceed 15 words.
|
||||
You may focus on its humorous and sarcastic meaning, draw on knowledge from Tieba, Weibo, and Xiaohongshu, and you must analyze it from the perspective of internet slang and memes.
|
||||
Please directly output the descriptions without any other content. If there are multiple descriptions, separate them with commas.
|
||||
6
prompts/en-US/emoji_content_filtration.prompt
Normal file
6
prompts/en-US/emoji_content_filtration.prompt
Normal file
@@ -0,0 +1,6 @@
|
||||
This is a sticker. Please review it according to the following criteria:
|
||||
1. It must conform to public order and good morals
|
||||
2. It must not contain pornography, violence, or other illegal or non-compliant content, and it must conform to public order and good morals
|
||||
3. It must not be any form of screenshot, chat record, or video screenshot
|
||||
4. It must not contain more than 5 words
|
||||
Please answer whether this sticker meets the above requirements. If it does, answer yes; otherwise answer no. Do not output any other content.
|
||||
12
prompts/en-US/emoji_replace.prompt
Normal file
12
prompts/en-US/emoji_replace.prompt
Normal file
@@ -0,0 +1,12 @@
|
||||
{nickname}'s sticker storage is full ({emoji_num}/{emoji_num_max}), and it is necessary to decide whether to delete an old sticker to make room for a new sticker.
|
||||
|
||||
New sticker information:
|
||||
Description: {description}
|
||||
|
||||
Existing sticker list:
|
||||
{emoji_list}
|
||||
|
||||
Please decide:
|
||||
1. Whether to delete an existing sticker to make room for the new sticker
|
||||
2. If so, which one should be deleted (provide the number)
|
||||
Please answer only: 'do not delete' or 'delete number X' (X is the sticker number).
|
||||
15
prompts/en-US/expression_evaluation.prompt
Normal file
15
prompts/en-US/expression_evaluation.prompt
Normal file
@@ -0,0 +1,15 @@
|
||||
Please evaluate whether the following expression or language style, together with its usage condition or usage scenario, is appropriate:
|
||||
Usage condition or usage scenario: {situation}
|
||||
Expression or language style: {style}
|
||||
|
||||
Please evaluate from the following aspects:
|
||||
{criteria_list}
|
||||
|
||||
Please output the evaluation result in JSON format:
|
||||
{{
|
||||
"suitable": true/false,
|
||||
"reason": "Reason for evaluation (if inappropriate, explain why)"
|
||||
|
||||
}}
|
||||
If it is appropriate, set suitable to true. If it is not appropriate, set suitable to false and explain the reason in reason.
|
||||
Please strictly output in JSON format and do not include any other content.
|
||||
22
prompts/en-US/expression_select.prompt
Normal file
22
prompts/en-US/expression_select.prompt
Normal file
@@ -0,0 +1,22 @@
|
||||
{chat_observe_info}
|
||||
|
||||
Your name is {bot_name}{target_message}
|
||||
{reply_reason_block}
|
||||
|
||||
The following are optional expression situations:
|
||||
{all_situations}
|
||||
|
||||
Please analyze the context, emotional tone, and topic type of the chat content, and select the situations above that best fit the current chat situation, up to {max_num} situations.
|
||||
Factors to consider include:
|
||||
1. The emotional atmosphere of the chat (relaxed, serious, humorous, etc.)
|
||||
2. The topic type (daily life, technology, games, emotions, etc.)
|
||||
3. The degree of match between the situation and the current context
|
||||
{target_message_extra_block}
|
||||
|
||||
Please output in JSON format. You only need to output the selected situation numbers:
|
||||
For example:
|
||||
{{
|
||||
"selected_situations": [2, 3, 5, 7, 19]
|
||||
}}
|
||||
|
||||
Please strictly output in JSON format and do not include any other content:
|
||||
1
prompts/en-US/image_description.prompt
Normal file
1
prompts/en-US/image_description.prompt
Normal file
@@ -0,0 +1 @@
|
||||
Describe the content of this image in English. If there is text, summarize the text. Pay attention to its topic and immediate impression. Output one plain-text paragraph within 30 words. Do not use bullet points.
|
||||
15
prompts/en-US/jargon_compare_inference.prompt
Normal file
15
prompts/en-US/jargon_compare_inference.prompt
Normal file
@@ -0,0 +1,15 @@
|
||||
**Inference Result 1 (based on context)**
|
||||
{inference1}
|
||||
|
||||
**Inference Result 2 (based only on the term itself)**
|
||||
{inference2}
|
||||
|
||||
Please compare these two inference results and determine whether they are the same or similar.
|
||||
- If the "meaning" in the two inference results is the same or similar, it means this term is not jargon (its meaning is clear)
|
||||
- If the two inference results differ, it means this term may be jargon (it can only be understood with context)
|
||||
|
||||
Output in JSON format:
|
||||
{{
|
||||
"is_similar": true/false,
|
||||
"reason": "Reason for the judgment"
|
||||
}}
|
||||
11
prompts/en-US/jargon_explainer_summarize.prompt
Normal file
11
prompts/en-US/jargon_explainer_summarize.prompt
Normal file
@@ -0,0 +1,11 @@
|
||||
Context chat content:
|
||||
{chat_context}
|
||||
|
||||
Jargon extracted from the context and their meanings:
|
||||
{jargon_explanations}
|
||||
|
||||
Please summarize and organize the jargon explanations based on the information above.
|
||||
- If jargon appears in the context, briefly explain how the jargon is used in the context
|
||||
- Organize all jargon explanations into a concise and readable paragraph
|
||||
- The output format should be natural and suitable as reference information for replies
|
||||
Please output the summarized jargon explanations (directly output one plain-text paragraph, no title, no special formatting or Markdown, and do not use JSON):
|
||||
11
prompts/en-US/jargon_inference_content_only.prompt
Normal file
11
prompts/en-US/jargon_inference_content_only.prompt
Normal file
@@ -0,0 +1,11 @@
|
||||
**Term content**
|
||||
{content}
|
||||
|
||||
Please infer its meaning based only on this term itself.
|
||||
- If this is jargon, slang, or internet language, please infer its meaning
|
||||
- If the meaning is clear (ordinary vocabulary), please also explain it
|
||||
|
||||
Output in JSON format:
|
||||
{{
|
||||
"meaning": "Detailed explanation of the meaning (including usage scenarios, source, specific explanation, etc.)"
|
||||
}}
|
||||
19
prompts/en-US/jargon_inference_with_context.prompt
Normal file
19
prompts/en-US/jargon_inference_with_context.prompt
Normal file
@@ -0,0 +1,19 @@
|
||||
**Term content**
|
||||
{content}
|
||||
**The context in which the term appears. The lines spoken by {bot_name} are your own lines**
|
||||
{raw_content_list}
|
||||
{previous_meaning_section}
|
||||
|
||||
Please infer the meaning of the term "{content}" based on the context.
|
||||
- If this is jargon, slang, or internet language, please infer its meaning
|
||||
- If the meaning is clear (ordinary vocabulary), please also explain it
|
||||
- The lines spoken by {bot_name} may contain mistakes, so do not rely on those lines
|
||||
- If the contextual information is insufficient and the meaning cannot be inferred, please set no_info to true
|
||||
{previous_meaning_instruction}
|
||||
|
||||
Output in JSON format:
|
||||
{{
|
||||
"meaning": "Detailed explanation of the meaning (including usage scenarios, source, specific explanation, etc.)",
|
||||
"no_info": false
|
||||
}}
|
||||
Note: If there is insufficient information to infer the meaning, please set "no_info": true. In that case, meaning may be an empty string.
|
||||
49
prompts/en-US/learn_style.prompt
Normal file
49
prompts/en-US/learn_style.prompt
Normal file
@@ -0,0 +1,49 @@
|
||||
{chat_str}
|
||||
Your name is {bot_name}. Now please complete two extraction tasks.
|
||||
Task 1: Please extract the users' language style and speaking patterns from the group chat above.
|
||||
1. Only consider text; do not consider stickers or images
|
||||
2. Do not summarize SELF's messages, because those are your own messages, so do not repeatedly learn from your own messages
|
||||
3. Do not involve specific person names, and do not involve specific nouns
|
||||
4. Think about whether there are any special memes, and summarize them into the language style as well
|
||||
5. The examples are for reference only. Please summarize strictly according to the group chat content!!!
|
||||
Note: Summarize them into rules in the following format. The summary should be detailed but still generalized:
|
||||
For example: when "AAAAA", you can "BBBBB". AAAAA represents a certain scenario and should not exceed 20 characters. BBBBB represents the corresponding language style, specific sentence pattern, or expression style and should not exceed 20 characters.
|
||||
There should be around 3-5 expression styles, and no more than 10.
|
||||
|
||||
|
||||
Task 2: Please extract candidate items from the chat content above that "may be jargon" (jargon/slang/internet abbreviations/catchphrases).
|
||||
- They must be short words or phrases that actually appeared in the dialogue
|
||||
- They must be words whose meaning you cannot understand; if the meaning is clear, do not select them
|
||||
- Exclude: personal names, @, content inside stickers/images, pure punctuation, and regular function words (such as 的, 了, 呢, 啊, etc.)
|
||||
- Each term is recommended to be 2-8 characters long (not mandatory), and should be as short as possible
|
||||
- Please extract as many possible jargon items as you can, up to 30 in total
|
||||
|
||||
The jargon must be one of the following types:
|
||||
- Abbreviations made of letters and formed from the initials of Chinese pinyin, such as: nb, yyds, xswl
|
||||
- English abbreviations that summarize a word or meaning with letters, such as: CPU, GPU, API
|
||||
- Chinese abbreviations that summarize a word or meaning with a few Chinese characters, such as: 社死, 内卷
|
||||
|
||||
Output requirements:
|
||||
Output the expression styles, language styles, and jargon as a JSON array. Each element should be an object with the following structure (pay attention to the field names):
|
||||
Please do not output duplicate content. Deduplicate both expression styles and jargon.
|
||||
|
||||
[
|
||||
{{"situation": "AAAAA", "style": "BBBBB", "source_id": "3"}},
|
||||
{{"situation": "CCCC", "style": "DDDD", "source_id": "7"}}
|
||||
{{"situation": "expressing strong surprise about something", "style": "use 我嘞个xxxx", "source_id": "[message number]"}},
|
||||
{{"situation": "showing sarcastic agreement without reasoning", "style": "对对对", "source_id": "[message number]"}},
|
||||
{{"situation": "when talking about games, praising with a slightly teasing tone", "style": "use 这么强!", "source_id": "[message number]"}},
|
||||
{{"content": "term", "source_id": "12"}},
|
||||
{{"content": "term2", "source_id": "5"}}
|
||||
]
|
||||
|
||||
Where:
|
||||
Expression-style entries:
|
||||
- situation: a short summary of "under what situation" (no more than 20 characters)
|
||||
- style: the corresponding language style or commonly used expression (no more than 20 characters)
|
||||
- source_id: the "source line number" corresponding to that expression style, namely the number inside square brackets in the chat log above (for example [3]); output only the number itself, without brackets
|
||||
Jargon entries:
|
||||
- content: the content of the jargon
|
||||
- source_id: the "source line number" corresponding to that jargon, namely the number inside square brackets in the chat log above (for example [3]); output only the number itself, without brackets
|
||||
|
||||
Now please output JSON:
|
||||
45
prompts/en-US/maisaka_chat.prompt
Normal file
45
prompts/en-US/maisaka_chat.prompt
Normal file
@@ -0,0 +1,45 @@
|
||||
Your task is to analyze the conversation and the interactions happening in the chat.
|
||||
You need to focus on the dialogue between {bot_name} (AI) and different users so as to choose the correct actions and behaviors, and suggest what information should be gathered.
|
||||
|
||||
[Reference Information]
|
||||
{identity}
|
||||
{time_block}
|
||||
[End of Reference Information]
|
||||
|
||||
You need to analyze based on the provided reference information, the current scenario, and the output rules.
|
||||
In the current scenario, different users are interacting, and {bot_name} is also one of the participating users. Users may also be chatting with each other. Your task is not to generate user-visible replies, but to analyze the situation and guide the AI in replying.
|
||||
"Analysis" should reflect your judgment of the current situation, your suggestions, your next-step plan, and why you think that way.
|
||||
You need to first gather information that can help {bot_name} take the next action, and then provide reply suggestions.
|
||||
|
||||
|
||||
You can use these tools:
|
||||
- reply() - Call this when you judge that {bot_name} should now send a visible reply to the user. After calling it, the system will generate an actual reply to be shown to the user based on your thoughts in this round.
|
||||
- query_jargon() - Use this when you think the meaning of certain terms is unclear, or when a user asks about the meaning of some term and a lookup is needed.
|
||||
- query_memory() - If this tool is available in the current environment, use it when the reply clearly depends on historical dialogue, durable preferences, shared experiences, long-term information about a person, or previous agreements.
|
||||
- Other defined tools may also be used as appropriate.
|
||||
|
||||
Tool usage rules:
|
||||
1. If {bot_name} should send a visible reply now, use `reply`.
|
||||
2. If the user has sent a new message, but you think they still have follow-up messages that have not been sent yet, do not force a reply; end this round with `finish`.
|
||||
3. In some specific situations, consecutive replies are also allowed, such as when you want to ask a follow-up question or add to your previous statement.
|
||||
4. You need to control your speaking frequency. If it is a one-on-one chat, you may speak at a relatively even frequency. If there are many users, do not reply to every message; control the reply frequency. When you decide not to speak for the moment, end this round with `finish`.
|
||||
5. Do not reply to every message. Do not directly reply to sticker-only messages sent by other users. Control the reply frequency so that your messages account for about 1/10 of all users' messages, meaning you reply about once for every 10 messages from others.
|
||||
6. If users have questions or there is uncertainty about certain concepts, you may use tools to gather information or look up meanings. You may use multiple tools.
|
||||
|
||||
Long-term memory guidance:
|
||||
1. Consider `query_memory()` only when missing historical information would materially change the reply.
|
||||
2. Good cases: past events, prior discussion, durable preferences, previous promises, task progress, or recent clues about an ongoing topic. Poor cases: greetings, emotional acknowledgment, light banter, or anything already answerable from recent visible messages.
|
||||
3. Be more selective in group chats; be more proactive in private chats when the user signals memory, such as "before", "last time", "recently", "do you remember", "I like", or "I told you".
|
||||
4. Mode choice: `search` for facts or preferences, `time` for a period, `episode` for a specific incident, `aggregate` for an overview; use `hybrid` when unsure.
|
||||
5. If retrieval returns no hit, is filtered, or is too weak to support a conclusion, say so honestly and do not invent past details.
|
||||
|
||||
Your analysis rules:
|
||||
1. By default, directly output your latest analysis. Do not repeat previous analysis content. The latest analysis should be as specific as possible, grounded in the context, and not vague repetition.
|
||||
2. You need to first evaluate whether users are interacting with each other or with {bot_name}. Do not jump in blindly and reply to the wrong target.
|
||||
3. If you have just used a tool, in the next round you should continue outputting new analysis based on the tool result.
|
||||
4. You need to assess which messages are directed at {bot_name}, and which are interactions between users or self-talk. Do not frequently insert yourself into unrelated topics.
|
||||
5. If you did not speak in the previous round, you still need to analyze again and output new analysis content instead of repeating the previous round's analysis.
|
||||
|
||||
{group_chat_attention_block}
|
||||
|
||||
Now, please output your analysis of how {bot_name} should speak. You must first output the textual analysis, and only then make tool calls:
|
||||
11
prompts/en-US/maisaka_replyer.prompt
Normal file
11
prompts/en-US/maisaka_replyer.prompt
Normal file
@@ -0,0 +1,11 @@
|
||||
You are chatting in a QQ group. Below is the content currently being discussed in the group, including chat records and images in the chat.
|
||||
Messages marked as your own messages should be distinguished carefully:
|
||||
|
||||
{identity}
|
||||
You are chatting in the group now. Please read the previous chat records, grasp the current topic, and then give a natural, colloquial reply.
|
||||
Try to keep it short. It is best to reply to only one topic at a time, so the reply does not become verbose or messy. Please pay attention to the chat content.
|
||||
{reply_style}
|
||||
You may refer to the information in [Reply Reference], but depending on the situation, you do not have to follow it completely.
|
||||
{group_chat_attention_block}
|
||||
{replyer_at_block}
|
||||
Please do not output any extra content (including unnecessary prefixes or suffixes, colons, brackets, stickers, plain at, or @). Only output the message content itself.
|
||||
25
prompts/en-US/maisaka_timing_gate.prompt
Normal file
25
prompts/en-US/maisaka_timing_gate.prompt
Normal file
@@ -0,0 +1,25 @@
|
||||
Your task is to analyze the current chat rhythm and decide only whether {bot_name} should continue, wait, or pause this turn. You are responsible only for rhythm control.
|
||||
|
||||
[Reference]
|
||||
{bot_name}'s persona: {identity}
|
||||
[End Reference]
|
||||
|
||||
Use the reference information, current scene, and output rules to decide the rhythm. Think briefly first, then output a JSON-format tool call.
|
||||
In the current scene, different people may be interacting ({bot_name} is also a participant), and users may be sending consecutive messages or talking to each other.
|
||||
Your task is not to produce a visible reply, nor to directly use query tools. Decide whether the next step should be:
|
||||
- continue: immediately enter the next full reasoning, information gathering, reply, and tool execution flow
|
||||
{timing_gate_wait_rule}
|
||||
- no_reply: do not continue speaking this turn, and wait for new messages; also use this when the user may not have finished and the speaking turn should be returned to the user
|
||||
|
||||
|
||||
Rhythm control rules:
|
||||
1. If {bot_name} has already replied, the user has not sent anything new for now, and there is no new information to gather, wait.
|
||||
2. If the user has sent a new message but you judge that more follow-up messages may still be coming, wait appropriately so the user can finish.
|
||||
3. First determine whether users are talking to each other or talking with {bot_name}. Do not interrupt blindly or reply to the wrong target.
|
||||
4. Evaluate which messages are addressed to {bot_name}, which are exchanges between users, and which are self-talk; speak only when appropriate.
|
||||
5. In specific cases, consecutive replies are allowed, such as asking a follow-up question or supplementing {bot_name}'s previous message. In those cases, call continue so the main flow can proceed.
|
||||
6. If you judge that an actual reply, information query, context inspection, or further analysis is needed, do not complete it here. Call continue directly and hand the work to the main flow.
|
||||
|
||||
{group_chat_attention_block}
|
||||
|
||||
Now, first output a brief textual analysis of the current chat rhythm, then call one tool:
|
||||
@@ -0,0 +1,34 @@
|
||||
你的名字是{bot_name}。现在是{time_now}。
|
||||
你正在参与聊天,你需要搜集信息来帮助你进行回复。
|
||||
重要,这是当前聊天记录:
|
||||
{chat_history}
|
||||
聊天记录结束
|
||||
|
||||
已收集的信息:
|
||||
{collected_info}
|
||||
|
||||
- 你可以对查询思路给出简短的思考:思考要简短,直接切入要点
|
||||
- 思考完毕后,使用工具
|
||||
|
||||
**工具说明:**
|
||||
- 如果涉及过往事件、历史对话、用户长期偏好或某段时间发生的事件,可以使用长期记忆查询工具
|
||||
- 如果遇到不熟悉的词语、缩写、黑话或网络用语,可以使用query_words工具查询其含义
|
||||
- 你必须使用tool,如果需要查询你必须给出使用什么工具进行查询
|
||||
- 当你决定结束查询时,必须调用return_information工具返回总结信息并结束查询
|
||||
|
||||
长期记忆工具 `search_long_term_memory` 支持以下模式:
|
||||
- `mode="search"`:普通事实/偏好/历史内容检索。适合问“她喜欢什么”“我们之前讨论过什么”。
|
||||
- `mode="time"`:按时间范围检索。适合问“昨天发生了什么”“最近7天有哪些相关记忆”。
|
||||
- `mode="episode"`:按事件/情节检索。适合问“那次灯塔停电的经过是什么”“关于某次经历还有什么”。
|
||||
- `mode="aggregate"`:综合检索。适合问“帮我整体回忆一下这个人最近的情况”“把相关线索综合找出来”。
|
||||
|
||||
模式选择建议:
|
||||
- 问单点事实、偏好、人设、具体信息:优先 `search`
|
||||
- 问某段时间发生了什么:优先 `time`
|
||||
- 问某次事件、某段经历、某个剧情片段:优先 `episode`
|
||||
- 问整体回忆、综合找线索、总结最近发生的事:优先 `aggregate`
|
||||
|
||||
时间模式要求:
|
||||
- 使用 `mode="time"` 时,必须填写 `time_expression`
|
||||
- 可用时间表达包括:`今天`、`昨天`、`前天`、`本周`、`上周`、`本月`、`上月`、`最近7天`
|
||||
- 也可以使用绝对时间:`2026/03/18`、`2026/03/18 09:30`
|
||||
79
prompts/ja-JP/.meta.toml
Normal file
79
prompts/ja-JP/.meta.toml
Normal file
@@ -0,0 +1,79 @@
|
||||
[maisaka_chat]
|
||||
display_name = "Planner"
|
||||
advanced = false
|
||||
description = "Maisaka 主规划模板,负责整合身份、时间、工具说明和聊天上下文,驱动主循环进行思考、决策与工具调用。"
|
||||
|
||||
[maisaka_replyer]
|
||||
display_name = "Replyer"
|
||||
advanced = false
|
||||
description = "Maisaka 回复生成模板,负责根据人格、表达风格、群聊注意事项和待回复上下文生成最终回复。"
|
||||
|
||||
[default_expressor]
|
||||
display_name = "默认表达器"
|
||||
advanced = true
|
||||
description = "表达方式生成与整理相关模板,通常只在调试表达系统时需要修改。"
|
||||
|
||||
[emoji_content_analysis]
|
||||
display_name = "表情包内容分析"
|
||||
advanced = true
|
||||
description = "用于分析表情包图片内容的模板。"
|
||||
|
||||
[emoji_content_filtration]
|
||||
display_name = "表情包内容过滤"
|
||||
advanced = true
|
||||
description = "用于判断表情包内容是否符合过滤要求的模板。"
|
||||
|
||||
[emoji_replace]
|
||||
display_name = "表情包替换"
|
||||
advanced = true
|
||||
description = "用于根据文本语境选择或替换表情包的模板。"
|
||||
|
||||
[expression_evaluation]
|
||||
display_name = "表达评价"
|
||||
advanced = true
|
||||
description = "用于评价候选表达方式质量的模板。"
|
||||
|
||||
[expression_select]
|
||||
display_name = "表达选择"
|
||||
advanced = true
|
||||
description = "用于从表达库中选择合适表达方式的模板。"
|
||||
|
||||
[image_description]
|
||||
display_name = "图片描述"
|
||||
advanced = true
|
||||
description = "用于将图片内容转换为文本描述的模板。"
|
||||
|
||||
[jargon_compare_inference]
|
||||
display_name = "术语对比推理"
|
||||
advanced = true
|
||||
description = "用于比较和推理群内术语含义的模板。"
|
||||
|
||||
[jargon_explainer_summarize]
|
||||
display_name = "术语解释总结"
|
||||
advanced = true
|
||||
description = "用于总结术语解释结果的模板。"
|
||||
|
||||
[jargon_inference_content_only]
|
||||
display_name = "术语推理"
|
||||
advanced = true
|
||||
description = "用于仅基于内容推理术语含义的模板。"
|
||||
|
||||
[jargon_inference_with_context]
|
||||
display_name = "术语上下文推理"
|
||||
advanced = true
|
||||
description = "用于结合上下文推理术语含义的模板。"
|
||||
|
||||
[learn_style]
|
||||
display_name = "表达风格学习"
|
||||
advanced = true
|
||||
description = "用于从聊天内容中学习表达风格的模板。"
|
||||
|
||||
[maisaka_timing_gate]
|
||||
display_name = "Timing Gate"
|
||||
advanced = false
|
||||
description = "Maisaka 节奏控制模板,负责在每轮主循环前判断当前应该等待、停止,还是继续进入思考与回复流程。"
|
||||
|
||||
[memory_retrieval_react_prompt_head_memory]
|
||||
display_name = "记忆检索 ReAct 头部"
|
||||
advanced = true
|
||||
description = "ReAct 式记忆查询流程使用的高级记忆检索提示词头部。"
|
||||
16
prompts/ja-JP/default_expressor.prompt
Normal file
16
prompts/ja-JP/default_expressor.prompt
Normal file
@@ -0,0 +1,16 @@
|
||||
{expression_habits_block}
|
||||
{chat_target}
|
||||
{chat_info}
|
||||
{identity}
|
||||
|
||||
あなたは今 {chat_target_2} にいます。{reply_target_block}
|
||||
それでは、この内容を言い換えてください。上記の内容を参考にしながら書き換えてください。元の文は:{raw_reply}:
|
||||
理由は:{reason}
|
||||
この具体的な内容を、グループチャットに送るのに適した返信メッセージへ書き換えてください。
|
||||
適切な文法と構文を使い、チャット内容を参考にしながら、日常的で口語的な返信を組み立ててください。あなたが伝えたい元の文を、あなたの表現スタイルや言語習慣に合うように修正してください。
|
||||
{reply_style}
|
||||
意味の核だけ残っていれば、返信は完全に組み替えてもかまいません。ただし、組み替えたあとも意味が自然に通るようにしてください。
|
||||
{keywords_reaction_prompt}
|
||||
{moderation_prompt}
|
||||
余計な内容(コロンや引用符、スタンプ、emoji、at や @ など)を出力しないでください。返信は 1 件だけ出力してください。考えすぎないでください。
|
||||
書き換え後の返信:
|
||||
5
prompts/ja-JP/emoji_content_analysis.prompt
Normal file
5
prompts/ja-JP/emoji_content_analysis.prompt
Normal file
@@ -0,0 +1,5 @@
|
||||
これはチャットシーンにおけるスタンプの説明です: "{description}"
|
||||
|
||||
このスタンプの意味と適した使用場面を見極め、短い説明をください。各説明は15文字以内にしてください。
|
||||
ユーモアや皮肉のニュアンスに注目し、Tieba、Weibo、小紅書の知識も使いながら、ネットミームの観点から分析してください。
|
||||
説明だけを直接出力し、ほかの内容は出さないでください。複数ある場合は読点で区切ってください。
|
||||
6
prompts/ja-JP/emoji_content_filtration.prompt
Normal file
6
prompts/ja-JP/emoji_content_filtration.prompt
Normal file
@@ -0,0 +1,6 @@
|
||||
これはスタンプです。次の基準に従って審査してください:
|
||||
1. 公序良俗に反しないこと
|
||||
2. 色情、暴力などの違法・不適切な内容ではなく、公序良俗に反しないこと
|
||||
3. いかなる形式のスクリーンショット、チャット履歴、動画のスクリーンショットでもないこと
|
||||
4. 5文字を超える文字が含まれないこと
|
||||
このスタンプが上記の要件を満たすかどうか答えてください。満たすなら「はい」、満たさないなら「いいえ」とだけ答え、ほかの内容は出さないでください。
|
||||
12
prompts/ja-JP/emoji_replace.prompt
Normal file
12
prompts/ja-JP/emoji_replace.prompt
Normal file
@@ -0,0 +1,12 @@
|
||||
{nickname} のスタンプ保存枠が上限です ({emoji_num}/{emoji_num_max})。新しいスタンプのために古いスタンプを削除するか決める必要があります。
|
||||
|
||||
新しいスタンプ情報:
|
||||
説明: {description}
|
||||
|
||||
既存スタンプ一覧:
|
||||
{emoji_list}
|
||||
|
||||
決めてください:
|
||||
1. 新しいスタンプのために既存スタンプを削除するか
|
||||
2. 削除する場合、どれを削除するか(番号を答える)
|
||||
回答は「削除しない」または「番号Xを削除」のみで答えてください。
|
||||
15
prompts/ja-JP/expression_evaluation.prompt
Normal file
15
prompts/ja-JP/expression_evaluation.prompt
Normal file
@@ -0,0 +1,15 @@
|
||||
次の表現方法または言語スタイルと、その使用条件または使用場面が適切かどうか評価してください:
|
||||
使用条件または使用場面:{situation}
|
||||
表現方法または言語スタイル:{style}
|
||||
|
||||
次の観点から評価してください:
|
||||
{criteria_list}
|
||||
|
||||
評価結果を JSON 形式で出力してください:
|
||||
{{
|
||||
"suitable": true/false,
|
||||
"reason": "評価理由(不適切な場合は理由を説明)"
|
||||
|
||||
}}
|
||||
適切なら suitable を true、不適切なら suitable を false にし、reason に理由を書いてください。
|
||||
JSON 形式のみを厳守し、ほかの内容は含めないでください。
|
||||
22
prompts/ja-JP/expression_select.prompt
Normal file
22
prompts/ja-JP/expression_select.prompt
Normal file
@@ -0,0 +1,22 @@
|
||||
{chat_observe_info}
|
||||
|
||||
あなたの名前は{bot_name}{target_message}
|
||||
{reply_reason_block}
|
||||
|
||||
以下は選択可能な表現シチュエーションです:
|
||||
{all_situations}
|
||||
|
||||
チャット内容の文脈、感情、話題タイプを分析し、上記の中から現在のチャット状況に最も適したシチュエーションを最大 {max_num} 個選んでください。
|
||||
考慮要素:
|
||||
1. チャットの感情的な雰囲気(気楽、真面目、ユーモラスなど)
|
||||
2. 話題タイプ(日常、技術、ゲーム、感情など)
|
||||
3. シチュエーションと現在の文脈の一致度
|
||||
{target_message_extra_block}
|
||||
|
||||
JSON 形式で、選んだシチュエーション番号だけを出力してください:
|
||||
例:
|
||||
{{
|
||||
"selected_situations": [2, 3, 5, 7, 19]
|
||||
}}
|
||||
|
||||
JSON 形式のみを厳守し、ほかの内容は含めないでください:
|
||||
1
prompts/ja-JP/image_description.prompt
Normal file
1
prompts/ja-JP/image_description.prompt
Normal file
@@ -0,0 +1 @@
|
||||
この画像の内容を日本語で説明してください。文字がある場合は、その内容を要約してください。主題と直感的な印象に注意し、30語以内の平文1段落で出力してください。箇条書きにしないでください。
|
||||
15
prompts/ja-JP/jargon_compare_inference.prompt
Normal file
15
prompts/ja-JP/jargon_compare_inference.prompt
Normal file
@@ -0,0 +1,15 @@
|
||||
**推論結果1(文脈ベース)**
|
||||
{inference1}
|
||||
|
||||
**推論結果2(語句単体ベース)**
|
||||
{inference2}
|
||||
|
||||
この 2 つの推論結果を比較し、同じまたは近いかどうか判断してください。
|
||||
- 2 つの推論結果の「意味」が同じまたは近いなら、この語句は黒話ではない(意味が明確)
|
||||
- 2 つの推論結果に差があるなら、この語句は黒話かもしれない(文脈がないと理解できない)
|
||||
|
||||
JSON 形式で出力してください:
|
||||
{{
|
||||
"is_similar": true/false,
|
||||
"reason": "判断理由"
|
||||
}}
|
||||
11
prompts/ja-JP/jargon_explainer_summarize.prompt
Normal file
11
prompts/ja-JP/jargon_explainer_summarize.prompt
Normal file
@@ -0,0 +1,11 @@
|
||||
文脈のチャット内容:
|
||||
{chat_context}
|
||||
|
||||
文脈から抽出された黒話とその意味:
|
||||
{jargon_explanations}
|
||||
|
||||
上記の情報に基づき、黒話の説明を要約して整理してください。
|
||||
- 文脈内に黒話が出ている場合は、その黒話が文脈でどのように使われているかを簡潔に説明する
|
||||
- すべての黒話の説明を、簡潔で読みやすい一段落にまとめる
|
||||
- 出力形式は自然で、返信参考情報として使いやすいものにする
|
||||
要約後の黒話説明を出力してください(タイトルなし、特殊な書式や markdown なし、JSON ではなく平文 1 段落を直接出力):
|
||||
11
prompts/ja-JP/jargon_inference_content_only.prompt
Normal file
11
prompts/ja-JP/jargon_inference_content_only.prompt
Normal file
@@ -0,0 +1,11 @@
|
||||
**語句内容**
|
||||
{content}
|
||||
|
||||
この語句そのものだけを基に、意味を推測してください。
|
||||
- これが黒話・スラング・ネット用語なら、その意味を推測してください
|
||||
- 意味が明確(一般語彙)な場合も、その意味を説明してください
|
||||
|
||||
JSON 形式で出力してください:
|
||||
{{
|
||||
"meaning": "詳細な意味説明(使用場面、由来、具体的な解釈などを含む)"
|
||||
}}
|
||||
19
prompts/ja-JP/jargon_inference_with_context.prompt
Normal file
19
prompts/ja-JP/jargon_inference_with_context.prompt
Normal file
@@ -0,0 +1,19 @@
|
||||
**語句内容**
|
||||
{content}
|
||||
**この語句が現れた文脈。{bot_name} の発言はあなた自身の発言**
|
||||
{raw_content_list}
|
||||
{previous_meaning_section}
|
||||
|
||||
文脈に基づいて、「{content}」という語句の意味を推測してください。
|
||||
- これが黒話・スラング・ネット用語なら、その意味を推測してください
|
||||
- 意味が明確(一般語彙)な場合も、その意味を説明してください
|
||||
- {bot_name} の発言内容には誤りが含まれる可能性があるため、参考にしないでください
|
||||
- 文脈情報が不足していて意味を推測できない場合は no_info を true にしてください
|
||||
{previous_meaning_instruction}
|
||||
|
||||
JSON 形式で出力してください:
|
||||
{{
|
||||
"meaning": "詳細な意味説明(使用場面、由来、具体的な解釈などを含む)",
|
||||
"no_info": false
|
||||
}}
|
||||
注意:情報が不足して推測できない場合は "no_info": true にしてください。その場合、meaning は空文字でもかまいません
|
||||
49
prompts/ja-JP/learn_style.prompt
Normal file
49
prompts/ja-JP/learn_style.prompt
Normal file
@@ -0,0 +1,49 @@
|
||||
{chat_str}
|
||||
あなたの名前は{bot_name}です。これから 2 つの抽出タスクを完了してください。
|
||||
タスク1:上のグループチャットから、ユーザーの言語スタイルや話し方を抽出してください。
|
||||
1. 文字だけを考慮し、スタンプや画像は考慮しないこと
|
||||
2. SELF の発言はあなた自身の発言なので要約しないこと。自分の発言を繰り返し学習しないこと
|
||||
3. 具体的な人名や具体的な名詞を含めないこと
|
||||
4. 特殊なミームやネタがあるかも考え、それも言語スタイルとしてまとめること
|
||||
5. 例は参考用のみです。必ずグループチャットの内容に厳密に基づいて要約してください!!!
|
||||
注意:次の形式のルールにまとめてください。要約内容は詳しくしつつ、概括性も持たせてください:
|
||||
例:「AAAAA」のとき、「BBBBB」と言える。AAAAA はある場面を表し、20 字以内。BBBBB は対応する言語スタイル、特定の文型、または表現方法で、20 字以内。
|
||||
表現方式は 3〜5 個程度、最大 10 個までにしてください。
|
||||
|
||||
|
||||
タスク2:上のチャット内容から、「黒話かもしれない」候補(黒話/スラング/ネット略語/口癖)を抽出してください。
|
||||
- 必ず対話中に実際に出現した短い語句であること
|
||||
- 意味を理解できない語句であること。意味が明確なものは選ばないこと
|
||||
- 除外:人名、@、スタンプ/画像内の内容、純粋な記号、一般的な機能語(例:の、ね、よ、啊 など)
|
||||
- 各語句の長さは 2〜8 文字程度を推奨(必須ではない)し、できるだけ短くすること
|
||||
- 可能な限りすべての黒話候補を抽出し、最大 30 個まで
|
||||
|
||||
黒話は次のいずれかのタイプでなければなりません:
|
||||
- アルファベットで構成された、中国語ピンイン頭文字の略語。例:nb、yyds、xswl
|
||||
- 英単語の略語で、英字で単語や意味を要約したもの。例:CPU、GPU、API
|
||||
- 中国語の略語で、数文字の漢字で語句や意味を要約したもの。例:社死、内卷
|
||||
|
||||
出力要件:
|
||||
表現方法、言語スタイル、黒話を JSON 配列で出力してください。各要素は次の構造のオブジェクトです(フィールド名に注意):
|
||||
重複内容は出力しないでください。表現方法と黒話はどちらも重複を除去してください。
|
||||
|
||||
[
|
||||
{{"situation": "AAAAA", "style": "BBBBB", "source_id": "3"}},
|
||||
{{"situation": "CCCC", "style": "DDDD", "source_id": "7"}}
|
||||
{{"situation": "あることに非常に驚いたとき", "style": "我嘞个xxxx を使う", "source_id": "[メッセージ番号]"}},
|
||||
{{"situation": "皮肉っぽく同意し、理屈は言わない", "style": "对对对", "source_id": "[メッセージ番号]"}},
|
||||
{{"situation": "ゲーム関連の話題で、少しからかうように褒める", "style": "这么强!を使う", "source_id": "[メッセージ番号]"}},
|
||||
{{"content": "語句", "source_id": "12"}},
|
||||
{{"content": "語句2", "source_id": "5"}}
|
||||
]
|
||||
|
||||
内訳:
|
||||
表現方式の項目:
|
||||
- situation: 「どんな状況で」を表す短い要約(20 字以内)
|
||||
- style: 対応する言語スタイルまたはよく使う表現(20 字以内)
|
||||
- source_id: その表現方式に対応する「出典行番号」。上のチャット記録の角括弧内の数字(例 [3])で、数字だけを出力し角括弧は含めない
|
||||
黒話 jargon 項目:
|
||||
- content: 黒話の内容
|
||||
- source_id: その黒話に対応する「出典行番号」。上のチャット記録の角括弧内の数字(例 [3])で、数字だけを出力し角括弧は含めない
|
||||
|
||||
それでは JSON を出力してください:
|
||||
44
prompts/ja-JP/maisaka_chat.prompt
Normal file
44
prompts/ja-JP/maisaka_chat.prompt
Normal file
@@ -0,0 +1,44 @@
|
||||
あなたのタスクは、会話とチャット内で起きているやり取りを分析することです。
|
||||
{bot_name}(AI)と複数のユーザーの対話に注目し、適切な行動や振る舞いを選び、収集すべき情報を提案してください。
|
||||
|
||||
【参考情報】
|
||||
{identity}
|
||||
{time_block}
|
||||
【参考情報ここまで】
|
||||
|
||||
提供された参考情報、現在の状況、そして出力ルールに基づいて分析してください。
|
||||
現在の状況では、複数のユーザーがやり取りしており、{bot_name} もその参加者の一人です。ユーザー同士で会話している場合もあります。あなたの役割は、ユーザーに見える発言を生成することではなく、状況を分析して AI の返信を導くことです。
|
||||
「分析」には、現在の状況判断、提案、次に取るべき行動計画、そしてその理由を含めてください。
|
||||
まず {bot_name} が次の行動を取るのに役立つ情報を集め、そのうえで返信方針を示してください。
|
||||
|
||||
使用できるツール:
|
||||
- reply() - {bot_name} が今ユーザーに対して可視の返信を送るべきだと判断したときに呼び出します。呼び出し後、システムはこのターンの思考に基づいて、実際にユーザーへ表示される返信を生成します。
|
||||
- query_jargon() - ある語の意味が不明確だと思うとき、またはユーザーが特定の語の意味を尋ねていて調査が必要なときに使います。
|
||||
- query_memory() - 現在の環境でこのツールが使えるなら、過去の会話、継続的な好み、共有した出来事、人物の長期的な情報、以前の約束など、返信が長期記憶に明確に依存するときに使います。
|
||||
- その他定義済みのツールも、状況に応じて使用できます。
|
||||
|
||||
ツール使用ルール:
|
||||
1. {bot_name} が今ユーザーに見える返信を送るべきなら、`reply` を使ってください。
|
||||
2. ユーザーに新しい発言があっても、まだ続きの発言が送られていないだけだと判断するなら、無理に返信せず `finish` でこのラウンドを終えてください。
|
||||
3. 特定の状況では連続返信も可能です。たとえば追問したいときや、自分の直前の発言を補足したいときです。
|
||||
4. 発言頻度は制御してください。一対一の会話なら比較的均等な頻度で発言して構いませんが、ユーザーが多い場合はすべての発言に反応しないでください。しばらく発言しないと決めた場合は、`finish` でこのラウンドを終えてください。
|
||||
5. すべてのメッセージに返信しないでください。他ユーザーが送ったスタンプだけのメッセージには直接返信しないでください。返信頻度をコントロールし、自分の発言量は全体のおよそ 1/10 程度、つまり他のユーザーが 10 回ほど発言したら 1 回返信する程度を目安にしてください。
|
||||
6. ユーザーの疑問や、ある概念への不確かさがある場合は、ツールを使って情報収集や意味調査をして構いません。複数ツールを使ってもよいです。
|
||||
|
||||
長期記憶の利用指針:
|
||||
1. 履歴情報がないと返信内容が大きく変わる場合にだけ、`query_memory()` を検討してください。
|
||||
2. 検索に向くのは、過去の出来事、以前の会話、継続的な好み、以前の約束、タスク進捗、進行中の話題の最近の手がかりです。あいさつ、感情応答、軽い雑談、直近メッセージだけで答えられる内容には向きません。
|
||||
3. グループチャットではより慎重に、プライベートチャットでは相手が「前に」「この前」「最近」「覚えてる?」などの合図を出したときにやや積極的に検討してください。
|
||||
4. モード選択は、`search` が事実や好み、`time` が期間、`episode` が特定の出来事、`aggregate` が全体像です。迷うなら `hybrid` を使ってください。
|
||||
5. ヒットしない、フィルタでスキップされる、または根拠が弱い場合は、そのまま正直に扱い、過去の細部を作り話してはいけません。
|
||||
|
||||
分析ルール:
|
||||
1. 基本的には、以前の分析を繰り返さず、現在の最新の分析をそのまま出力してください。最新の分析は、できるだけ具体的で文脈に密着しており、曖昧な繰り返しにならないようにしてください。
|
||||
2. まず、ユーザー同士のやり取りなのか、{bot_name} に向けたやり取りなのかを判断してください。やみくもに割り込んで、相手を取り違えて返信してはいけません。
|
||||
3. 直前にツールを使った場合は、次のラウンドでその結果を踏まえた新しい分析を続けてください。
|
||||
4. どの発言が {bot_name} に向けられたものか、どれがユーザー同士のやり取りや独り言なのかを見極め、無関係な話題に頻繁に割り込まないようにしてください。
|
||||
5. 前のターンで発言しなかった場合でも、改めて分析し、新しい分析内容を出力してください。前のターンの分析を繰り返してはいけません。
|
||||
|
||||
{group_chat_attention_block}
|
||||
|
||||
それでは、{bot_name} がどう発言すべきかについての分析を出力してください。必ず先にテキストで分析を出力し、そのあとでツール呼び出しを行ってください。
|
||||
11
prompts/ja-JP/maisaka_replyer.prompt
Normal file
11
prompts/ja-JP/maisaka_replyer.prompt
Normal file
@@ -0,0 +1,11 @@
|
||||
あなたは QQ グループで会話しています。以下はグループ内で現在話されている内容で、チャット記録とチャット中の画像が含まれます。
|
||||
あなた自身の発言として記された発言は、区別に注意してください:
|
||||
|
||||
{identity}
|
||||
今あなたはグループ内で会話しています。これまでのチャット記録を読み、現在の話題を把握したうえで、日常的で口語的な返信をしてください。
|
||||
できるだけ短くしてください。話題は一度に一つだけに返信したほうが、冗長になったり内容が散らかったりしません。チャット内容をしっかり踏まえてください。
|
||||
{reply_style}
|
||||
【返信情報参考】の情報は参考にしてかまいませんが、状況に応じて完全に従う必要はありません。
|
||||
{group_chat_attention_block}
|
||||
{replyer_at_block}
|
||||
余計な内容(不要な前置きや後置き、コロン、括弧、スタンプ、通常の at や @ など)は出力せず、発言内容だけを出力してください。
|
||||
25
prompts/ja-JP/maisaka_timing_gate.prompt
Normal file
25
prompts/ja-JP/maisaka_timing_gate.prompt
Normal file
@@ -0,0 +1,25 @@
|
||||
あなたのタスクは現在のチャットのリズムを分析し、{bot_name} が次に続行するべきか、待機するべきか、またはこのターンの発言を一時停止するべきかだけを決めることです。あなたはリズム制御の判断だけを担当します。
|
||||
|
||||
【参考情報】
|
||||
{bot_name} の人格設定:{identity}
|
||||
【参考情報終了】
|
||||
|
||||
提供された参考情報、現在の状況、出力ルールに基づいてリズムを判断してください。まず簡潔に考え、その後 JSON 形式の tool を出力してください。
|
||||
現在の場面では、複数の人がやり取りしている可能性があります({bot_name} も参加者の一人です)。ユーザーが連続してメッセージを送っていたり、ユーザー同士で会話していたりすることもあります。
|
||||
あなたのタスクは、他人に見える発言を生成することでも、検索系ツールを直接使うことでもありません。現在すべきことを次から判断してください:
|
||||
- continue:すぐに次の完全な思考、情報収集、返信、その他ツール実行のフローに入る
|
||||
{timing_gate_wait_rule}
|
||||
- no_reply:このターンでは発言を続けず、新しいメッセージを待つ。ユーザーがまだ話し終えていない可能性があり、発言権をユーザーに返すべき場面でも使う
|
||||
|
||||
|
||||
リズム制御ルール:
|
||||
1. {bot_name} がすでに返信しており、ユーザーからの新しい返信がまだなく、追加で収集すべき情報もない場合は、待機してください。
|
||||
2. ユーザーの新しい発言があるものの、まだ続きの発言が送られてくる可能性があると判断した場合は、ユーザーが話し終えるまで適切に待ってください。
|
||||
3. まず、ユーザー同士のやり取りなのか、{bot_name} とのやり取りなのかを評価してください。むやみに割り込んだり、返信対象を間違えたりしないでください。
|
||||
4. どの発言が {bot_name} 宛てで、どれがユーザー同士の会話または独り言なのかを評価し、状況に応じて発言してください。
|
||||
5. フォローアップ質問をしたい場合や、以前の発言を補足したい場合など、特定の状況では連続返信してもかまいません。その場合は continue を呼び出し、メインフローを続行させてください。
|
||||
6. 実際の返信、情報検索、文脈確認、またはさらなる分析が必要だと判断した場合は、ここで完了しようとせず、直接 continue を呼び出してメインフローに渡してください。
|
||||
|
||||
{group_chat_attention_block}
|
||||
|
||||
では、まず現在のチャットリズムについて短いテキスト分析を出力し、その後ツールを一つ呼び出してください:
|
||||
@@ -0,0 +1,34 @@
|
||||
你的名字是{bot_name}。现在是{time_now}。
|
||||
你正在参与聊天,你需要搜集信息来帮助你进行回复。
|
||||
重要,这是当前聊天记录:
|
||||
{chat_history}
|
||||
聊天记录结束
|
||||
|
||||
已收集的信息:
|
||||
{collected_info}
|
||||
|
||||
- 你可以对查询思路给出简短的思考:思考要简短,直接切入要点
|
||||
- 思考完毕后,使用工具
|
||||
|
||||
**工具说明:**
|
||||
- 如果涉及过往事件、历史对话、用户长期偏好或某段时间发生的事件,可以使用长期记忆查询工具
|
||||
- 如果遇到不熟悉的词语、缩写、黑话或网络用语,可以使用query_words工具查询其含义
|
||||
- 你必须使用tool,如果需要查询你必须给出使用什么工具进行查询
|
||||
- 当你决定结束查询时,必须调用return_information工具返回总结信息并结束查询
|
||||
|
||||
长期记忆工具 `search_long_term_memory` 支持以下模式:
|
||||
- `mode="search"`:普通事实/偏好/历史内容检索。适合问“她喜欢什么”“我们之前讨论过什么”。
|
||||
- `mode="time"`:按时间范围检索。适合问“昨天发生了什么”“最近7天有哪些相关记忆”。
|
||||
- `mode="episode"`:按事件/情节检索。适合问“那次灯塔停电的经过是什么”“关于某次经历还有什么”。
|
||||
- `mode="aggregate"`:综合检索。适合问“帮我整体回忆一下这个人最近的情况”“把相关线索综合找出来”。
|
||||
|
||||
模式选择建议:
|
||||
- 问单点事实、偏好、人设、具体信息:优先 `search`
|
||||
- 问某段时间发生了什么:优先 `time`
|
||||
- 问某次事件、某段经历、某个剧情片段:优先 `episode`
|
||||
- 问整体回忆、综合找线索、总结最近发生的事:优先 `aggregate`
|
||||
|
||||
时间模式要求:
|
||||
- 使用 `mode="time"` 时,必须填写 `time_expression`
|
||||
- 可用时间表达包括:`今天`、`昨天`、`前天`、`本周`、`上周`、`本月`、`上月`、`最近7天`
|
||||
- 也可以使用绝对时间:`2026/03/18`、`2026/03/18 09:30`
|
||||
74
prompts/zh-CN/.meta.toml
Normal file
74
prompts/zh-CN/.meta.toml
Normal file
@@ -0,0 +1,74 @@
|
||||
[maisaka_chat]
|
||||
display_name = "规划器"
|
||||
advanced = false
|
||||
description = "Maisaka 主规划模板,负责整合身份、时间、工具说明和聊天上下文,驱动主循环进行思考、决策与工具调用。"
|
||||
|
||||
[maisaka_replyer]
|
||||
display_name = "回复"
|
||||
advanced = false
|
||||
description = "Maisaka 回复生成模板,负责根据人格、表达风格、群聊注意事项和待回复上下文生成最终回复。"
|
||||
|
||||
[default_expressor]
|
||||
display_name = "改写器"
|
||||
advanced = true
|
||||
description = "表达方式生成与整理相关模板,通常只在调试表达系统时需要修改。"
|
||||
|
||||
[emoji_content_analysis]
|
||||
display_name = "表情包内容分析"
|
||||
advanced = true
|
||||
description = "用于分析表情包图片内容的模板。"
|
||||
|
||||
[emoji_content_filtration]
|
||||
display_name = "表情包内容过滤"
|
||||
advanced = true
|
||||
description = "用于判断表情包内容是否符合过滤要求的模板。"
|
||||
|
||||
[emoji_replace]
|
||||
display_name = "表情包替换"
|
||||
advanced = true
|
||||
description = "用于根据文本语境选择或替换表情包的模板。"
|
||||
|
||||
[expression_evaluation]
|
||||
display_name = "表达评价"
|
||||
advanced = true
|
||||
description = "用于评价候选表达方式质量的模板。"
|
||||
|
||||
[expression_select]
|
||||
display_name = "表达选择"
|
||||
advanced = true
|
||||
description = "用于从表达库中选择合适表达方式的模板。"
|
||||
|
||||
[image_description]
|
||||
display_name = "图片描述"
|
||||
advanced = true
|
||||
description = "用于将图片内容转换为文本描述的模板。"
|
||||
|
||||
[jargon_compare_inference]
|
||||
display_name = "黑话对比推理"
|
||||
advanced = true
|
||||
description = "用于比较和推理群内黑话含义的模板。"
|
||||
|
||||
[jargon_explainer_summarize]
|
||||
display_name = "黑话解释总结"
|
||||
advanced = true
|
||||
description = "用于总结黑话解释结果的模板。"
|
||||
|
||||
[jargon_inference_content_only]
|
||||
display_name = "黑话推理"
|
||||
advanced = true
|
||||
description = "用于仅基于内容推理黑话含义的模板。"
|
||||
|
||||
[jargon_inference_with_context]
|
||||
display_name = "黑话上下文推理"
|
||||
advanced = true
|
||||
description = "用于结合上下文推理黑话含义的模板。"
|
||||
|
||||
[learn_style]
|
||||
display_name = "表达风格学习"
|
||||
advanced = true
|
||||
description = "用于从聊天内容中学习表达风格的模板。"
|
||||
|
||||
[maisaka_timing_gate]
|
||||
display_name = "时机"
|
||||
advanced = false
|
||||
description = "Maisaka 节奏控制模板,负责在每轮主循环前判断当前应该等待、停止,还是继续进入思考与回复流程。"
|
||||
16
prompts/zh-CN/default_expressor.prompt
Normal file
16
prompts/zh-CN/default_expressor.prompt
Normal file
@@ -0,0 +1,16 @@
|
||||
{expression_habits_block}
|
||||
{chat_target}
|
||||
{chat_info}
|
||||
{identity}
|
||||
|
||||
你正在{chat_target_2},{reply_target_block}
|
||||
现在请你对这句内容进行改写,请你参考上述内容进行改写,原句是:{raw_reply}:
|
||||
原因是:{reason}
|
||||
现在请你将这条具体内容改写成一条适合在群聊中发送的回复消息。
|
||||
你需要使用合适的语法和句法,参考聊天内容,组织一条日常且口语化的回复。请你修改你想表达的原句,符合你的表达风格和语言习惯
|
||||
{reply_style}
|
||||
你可以完全重组回复,保留最基本的表达含义就好,但重组后保持语意通顺。
|
||||
{keywords_reaction_prompt}
|
||||
{moderation_prompt}
|
||||
不要输出多余内容(包括冒号和引号,表情包,emoji,at或 @等 ),只输出一条回复就好。不要思考的太长。
|
||||
改写后的回复:
|
||||
5
prompts/zh-CN/emoji_content_analysis.prompt
Normal file
5
prompts/zh-CN/emoji_content_analysis.prompt
Normal file
@@ -0,0 +1,5 @@
|
||||
这是一个聊天场景中的表情包描述:"{description}"
|
||||
|
||||
请你识别这个表情包的含义和适用场景,给我简短的描述,每个描述不要超过15个字
|
||||
你可以关注其幽默和讽刺意味,动用贴吧,微博,小红书的知识,必须从互联网梗、meme的角度去分析
|
||||
请直接输出描述,不要出现任何其他内容,如果有多个描述,可以用逗号分隔
|
||||
6
prompts/zh-CN/emoji_content_filtration.prompt
Normal file
6
prompts/zh-CN/emoji_content_filtration.prompt
Normal file
@@ -0,0 +1,6 @@
|
||||
这是一个表情包,请对这个表情包进行审核,标准如下:
|
||||
1. 必须符合"符合公序良俗"的要求
|
||||
2. 不能是色情、暴力、等违法违规内容,必须符合公序良俗
|
||||
3. 不能是任何形式的截图,聊天记录或视频截图
|
||||
4. 不要出现5个以上文字
|
||||
请回答这个表情包是否满足上述要求,是则回答是,否则回答否,不要出现任何其他内容
|
||||
12
prompts/zh-CN/emoji_replace.prompt
Normal file
12
prompts/zh-CN/emoji_replace.prompt
Normal file
@@ -0,0 +1,12 @@
|
||||
{nickname}的表情包存储已满({emoji_num}/{emoji_num_max}),需要决定是否删除一个旧表情包来为新表情包腾出空间。
|
||||
|
||||
新表情包信息:
|
||||
描述: {description}
|
||||
|
||||
现有表情包列表:
|
||||
{emoji_list}
|
||||
|
||||
请决定:
|
||||
1. 是否要删除某个现有表情包来为新表情包腾出空间?
|
||||
2. 如果要删除,应该删除哪一个(给出编号)?
|
||||
请只回答:'不删除'或'删除编号X'(X为表情包编号)。
|
||||
15
prompts/zh-CN/expression_evaluation.prompt
Normal file
15
prompts/zh-CN/expression_evaluation.prompt
Normal file
@@ -0,0 +1,15 @@
|
||||
请评估以下表达方式或语言风格以及使用条件或使用情景是否合适:
|
||||
使用条件或使用情景:{situation}
|
||||
表达方式或言语风格:{style}
|
||||
|
||||
请从以下方面进行评估:
|
||||
{criteria_list}
|
||||
|
||||
请以JSON格式输出评估结果:
|
||||
{{
|
||||
"suitable": true/false,
|
||||
"reason": "评估理由(如果不合适,请说明原因)"
|
||||
|
||||
}}
|
||||
如果合适,suitable设为true;如果不合适,suitable设为false,并在reason中说明原因。
|
||||
请严格按照JSON格式输出,不要包含其他内容。
|
||||
22
prompts/zh-CN/expression_select.prompt
Normal file
22
prompts/zh-CN/expression_select.prompt
Normal file
@@ -0,0 +1,22 @@
|
||||
{chat_observe_info}
|
||||
|
||||
你的名字是{bot_name}{target_message}
|
||||
{reply_reason_block}
|
||||
|
||||
以下是可选的表达情境:
|
||||
{all_situations}
|
||||
|
||||
请你分析聊天内容的语境、情绪、话题类型,从上述情境中选择最适合当前聊天情境的,最多{max_num}个情境。
|
||||
考虑因素包括:
|
||||
1.聊天的情绪氛围(轻松、严肃、幽默等)
|
||||
2.话题类型(日常、技术、游戏、情感等)
|
||||
3.情境与当前语境的匹配度
|
||||
{target_message_extra_block}
|
||||
|
||||
请以JSON格式输出,只需要输出选中的情境编号:
|
||||
例如:
|
||||
{{
|
||||
"selected_situations": [2, 3, 5, 7, 19]
|
||||
}}
|
||||
|
||||
请严格按照JSON格式输出,不要包含其他内容:
|
||||
1
prompts/zh-CN/image_description.prompt
Normal file
1
prompts/zh-CN/image_description.prompt
Normal file
@@ -0,0 +1 @@
|
||||
请用中文详细描述这张图片的内容。如果有文字,请把文字描述概括出来,请留意其主题、直观感受,输出为一段平文本,最多100字,请注意不要分点,就输出一段文本
|
||||
15
prompts/zh-CN/jargon_compare_inference.prompt
Normal file
15
prompts/zh-CN/jargon_compare_inference.prompt
Normal file
@@ -0,0 +1,15 @@
|
||||
**推断结果1(基于上下文)**
|
||||
{inference1}
|
||||
|
||||
**推断结果2(仅基于词条)**
|
||||
{inference2}
|
||||
|
||||
请比较这两个推断结果,判断它们是否相同或类似。
|
||||
- 如果两个推断结果的"含义"相同或类似,说明这个词条不是黑话(含义明确)
|
||||
- 如果两个推断结果有差异,说明这个词条可能是黑话(需要上下文才能理解)
|
||||
|
||||
以 JSON 格式输出:
|
||||
{{
|
||||
"is_similar": true/false,
|
||||
"reason": "判断理由"
|
||||
}}
|
||||
11
prompts/zh-CN/jargon_explainer_summarize.prompt
Normal file
11
prompts/zh-CN/jargon_explainer_summarize.prompt
Normal file
@@ -0,0 +1,11 @@
|
||||
上下文聊天内容:
|
||||
{chat_context}
|
||||
|
||||
在上下文中提取到的黑话及其含义:
|
||||
{jargon_explanations}
|
||||
|
||||
请根据上述信息,对黑话解释进行概括和整理。
|
||||
- 如果上下文中有黑话出现,请简要说明这些黑话在上下文中的使用情况
|
||||
- 将所有黑话解释整理成简洁、易读的一段话
|
||||
- 输出格式要自然,适合作为回复参考信息
|
||||
请输出概括后的黑话解释(直接输出一段平文本,不要标题,无特殊格式或markdown格式,不要使用JSON格式):
|
||||
11
prompts/zh-CN/jargon_inference_content_only.prompt
Normal file
11
prompts/zh-CN/jargon_inference_content_only.prompt
Normal file
@@ -0,0 +1,11 @@
|
||||
**词条内容**
|
||||
{content}
|
||||
|
||||
请仅根据这个词条本身,推断其含义。
|
||||
- 如果这是一个黑话、俚语或网络用语,请推断其含义
|
||||
- 如果含义明确(常规词汇),也请说明
|
||||
|
||||
以 JSON 格式输出:
|
||||
{{
|
||||
"meaning": "详细含义说明(包含使用场景、来源、具体解释等)"
|
||||
}}
|
||||
19
prompts/zh-CN/jargon_inference_with_context.prompt
Normal file
19
prompts/zh-CN/jargon_inference_with_context.prompt
Normal file
@@ -0,0 +1,19 @@
|
||||
**词条内容**
|
||||
{content}
|
||||
**词条出现的上下文。其中的{bot_name}的发言内容是你自己的发言**
|
||||
{raw_content_list}
|
||||
{previous_meaning_section}
|
||||
|
||||
请根据上下文,推断"{content}"这个词条的含义。
|
||||
- 如果这是一个黑话、俚语或网络用语,请推断其含义
|
||||
- 如果含义明确(常规词汇),也请说明
|
||||
- {bot_name} 的发言内容可能包含错误,请不要参考其发言内容
|
||||
- 如果上下文信息不足,无法推断含义,请设置 no_info 为 true
|
||||
{previous_meaning_instruction}
|
||||
|
||||
以 JSON 格式输出:
|
||||
{{
|
||||
"meaning": "详细含义说明(包含使用场景、来源、具体解释等)",
|
||||
"no_info": false
|
||||
}}
|
||||
注意:如果信息不足无法推断,请设置 "no_info": true,此时 meaning 可以为空字符串
|
||||
49
prompts/zh-CN/learn_style.prompt
Normal file
49
prompts/zh-CN/learn_style.prompt
Normal file
@@ -0,0 +1,49 @@
|
||||
{chat_str}
|
||||
你的名字是{bot_name},现在请你完成两个提取任务
|
||||
任务1:请从上面这段群聊中用户的语言风格和说话方式
|
||||
1. 只考虑文字,不要考虑表情包和图片
|
||||
2. 不要总结SELF的发言,因为这是你自己的发言,不要重复学习你自己的发言
|
||||
3. 不要涉及具体的人名,也不要涉及具体名词
|
||||
4. 思考有没有特殊的梗,一并总结成语言风格
|
||||
5. 例子仅供参考,请严格根据群聊内容总结!!!
|
||||
注意:总结成如下格式的规律,总结的内容要详细,但具有概括性:
|
||||
例如:当"AAAAA"时,可以"BBBBB", AAAAA代表某个场景,不超过20个字。BBBBB代表对应的语言风格,特定句式或表达方式,不超过20个字。
|
||||
表达方式在3-5个左右,不要超过10个
|
||||
|
||||
|
||||
任务2:请从上面这段聊天内容中提取"可能是黑话"的候选项(黑话/俚语/网络缩写/口头禅)。
|
||||
- 必须为对话中真实出现过的短词或短语
|
||||
- 必须是你无法理解含义的词语,没有明确含义的词语,请不要选择有明确含义,或者含义清晰的词语
|
||||
- 排除:人名、@、表情包/图片中的内容、纯标点、常规功能词(如的、了、呢、啊等)
|
||||
- 每个词条长度建议 2-8 个字符(不强制),尽量短小
|
||||
- 请你提取出可能的黑话,最多30个黑话,请尽量提取所有
|
||||
|
||||
黑话必须为以下几种类型:
|
||||
- 由字母构成的,汉语拼音首字母的简写词,例如:nb、yyds、xswl
|
||||
- 英文词语的缩写,用英文字母概括一个词汇或含义,例如:CPU、GPU、API
|
||||
- 中文词语的缩写,用几个汉字概括一个词汇或含义,例如:社死、内卷
|
||||
|
||||
输出要求:
|
||||
将表达方式,语言风格和黑话以 JSON 数组输出,每个元素为一个对象,结构如下(注意字段名):
|
||||
注意请不要输出重复内容,请对表达方式和黑话进行去重。
|
||||
|
||||
[
|
||||
{{"situation": "AAAAA", "style": "BBBBB", "source_id": "3"}},
|
||||
{{"situation": "CCCC", "style": "DDDD", "source_id": "7"}}
|
||||
{{"situation": "对某件事表示十分惊叹", "style": "使用 我嘞个xxxx", "source_id": "[消息编号]"}},
|
||||
{{"situation": "表示讽刺的赞同,不讲道理", "style": "对对对", "source_id": "[消息编号]"}},
|
||||
{{"situation": "当涉及游戏相关时,夸赞,略带戏谑意味", "style": "使用 这么强!", "source_id": "[消息编号]"}},
|
||||
{{"content": "词条", "source_id": "12"}},
|
||||
{{"content": "词条2", "source_id": "5"}}
|
||||
]
|
||||
|
||||
其中:
|
||||
表达方式条目:
|
||||
- situation:表示“在什么情境下”的简短概括(不超过20个字)
|
||||
- style:表示对应的语言风格或常用表达(不超过20个字)
|
||||
- source_id:该表达方式对应的“来源行编号”,即上方聊天记录中方括号里的数字(例如 [3]),请只输出数字本身,不要包含方括号
|
||||
黑话jargon条目:
|
||||
- content:表示黑话的内容
|
||||
- source_id:该黑话对应的“来源行编号”,即上方聊天记录中方括号里的数字(例如 [3]),请只输出数字本身,不要包含方括号
|
||||
|
||||
现在请你输出 JSON:
|
||||
38
prompts/zh-CN/maisaka_chat.prompt
Normal file
38
prompts/zh-CN/maisaka_chat.prompt
Normal file
@@ -0,0 +1,38 @@
|
||||
你的任务是分析聊天和聊天中的互动情况,然后做出下一步动作。
|
||||
你需要关注 {bot_name}(AI) 与不同用户的对话来为选择正确的动作和行为以及搜集信息提供建议
|
||||
|
||||
【参考信息】
|
||||
{bot_name}的人设:{identity}
|
||||
{time_block}
|
||||
【参考信息结束】
|
||||
|
||||
请你对当前场景和输出规则来进行分析,你可以参考参考信息中的内容,但不用过分遵守,仅供参考。
|
||||
在当前场景中,不同的人正在互动({bot_name}也是一位参与的用户),用户也可能与进行聊天互动,你的任务不是生成对用户可见的发言,而是进行分析来指导AI进行动作。
|
||||
“分析”应该体现你对当前局面的判断、你的建议、你的下一步计划,以及你为什么这样想。默认直接输出你当前的最新分析,不要重复之前的分析内容。最新分析应尽量具体,贴近上下文。
|
||||
你需要先搜集能够帮助{bot_name}进行下一步行动的信息,然后再给出思考
|
||||
如果获取的信息无命中、被过滤、或证据不足,不要编造信息。
|
||||
|
||||
{group_chat_attention_block}
|
||||
|
||||
工具说明:
|
||||
- reply():当你判断{bot_name}现在应该正式对用户发出一条可见回复时调用。调用后系统会基于你当前这轮的想法生成一条真正展示给用户的回复。你可以针对某个用户回复,也可以对所有用户回复。
|
||||
- query_jargon():当你认为某些词的含义不明确,或用户询问某些词的含义,需要进行查询
|
||||
- query_memory():如果当前可用工具中存在它,当回复明显依赖历史对话、长期偏好、共同经历、人物长期信息或之前约定时使用
|
||||
- tool_search():当你在deferred tools列表中需要其中某个工具时,先调用它来搜索并发现对应工具;它只负责让工具在后续轮次变为可用,不直接执行业务
|
||||
- finish():当没有更多操作需要做,使用finish结束这次思考
|
||||
- 其他定义的工具,你可以视情况合适使用
|
||||
|
||||
工具使用规则:
|
||||
1. 你可以一次使用多个工具。
|
||||
2. 如果工具执行出现问题,尝试解决或使用替代方案
|
||||
3. 你可以进行多次工具搜索,聚合不同的信息源,进行多种操作来辅助你
|
||||
4. 如果存在工具可以帮助你执行某些动作,完成某些目标,直接使用该工具来完成任务
|
||||
5. 如果看到 `<system-reminder>` 中列出了 deferred tools,而你需要其中某个工具,先调用 tool_search() 搜索该工具,等它在后续轮次变为可用后再正常调用。
|
||||
|
||||
长期记忆使用建议:
|
||||
1. 仅当历史信息会明显影响当前回复时,才考虑调用 `query_memory()`。
|
||||
2. 适合检索:过去事件、之前聊过的内容、长期偏好、先前承诺、任务进展、近期线索;不适合检索:寒暄、即时情绪回应、轻松接话、只看最近消息就能回答的内容。
|
||||
3. 群聊里更克制;私聊里如果对方提到“之前”“上次”“最近”“还记得吗”“我喜欢”“我说过”等类似的信号,可以更积极考虑检索。
|
||||
4. 模式上:`search` 查事实或偏好,`time` 查某段时间,`episode` 查某次经历,`aggregate` 查整体情况;拿不准时用 `hybrid`。
|
||||
|
||||
现在,请你输出你对{bot_name}发言的分析,你必须先输出文本内容的分析,然后再进行工具调用,:
|
||||
7
prompts/zh-CN/maisaka_replyer.prompt
Normal file
7
prompts/zh-CN/maisaka_replyer.prompt
Normal file
@@ -0,0 +1,7 @@
|
||||
{identity}
|
||||
现在请你读读之前的聊天记录,把握当前的话题,然后给出日常且口语化的回复,
|
||||
{reply_style}
|
||||
你可以参考【回复信息参考】中的信息,但是视情况而定,不用完全遵守。
|
||||
{group_chat_attention_block}
|
||||
{replyer_at_block}
|
||||
请注意不要输出多余内容(包括不必要的前后缀,冒号,括号,表情包,@等 ),只输出发言内容就好。
|
||||
25
prompts/zh-CN/maisaka_timing_gate.prompt
Normal file
25
prompts/zh-CN/maisaka_timing_gate.prompt
Normal file
@@ -0,0 +1,25 @@
|
||||
你的任务是分析当前聊天节奏,并只决定 {bot_name} 下一步应当继续、等待,还是暂停本轮发言。你只负责做节奏控制判断。
|
||||
|
||||
【参考信息】
|
||||
{bot_name} 的人设:{identity}
|
||||
【参考信息结束】
|
||||
|
||||
你需要根据提供的参考信息、当前场景和输出规则来进行节奏判断。你必须先思考再输出json格式的tool
|
||||
在当前场景中,不同的人正在互动({bot_name} 也是一位参与的用户),用户也可能正在连续发送消息或彼此互动。
|
||||
你的任务不是生成对别人可见的发言,也不是直接使用查询类工具,而是判断当前是否应该:
|
||||
- continue:立刻进入下一轮完整思考、搜集信息、回复与其他工具执行
|
||||
{timing_gate_wait_rule}
|
||||
- no_reply:本轮不继续发言,等待新的消息;也用于用户可能还没说完、需要先把发言权交还给用户的场景
|
||||
|
||||
|
||||
节奏控制规则:
|
||||
1. 如果 {bot_name} 已经回复,但用户暂时没有新的回复,且没有新信息需要搜集,进行等待。
|
||||
2. 如果用户有新发言,但是你评估用户还有后续发言尚未发送,可以适当等待让用户说完。
|
||||
3. 你需要先评估是用户之间在互动还是和{bot_name}在互动,不要盲目插话,弄错回复对象
|
||||
4. 你需要评估哪些话是对{bot_name}的发言,哪些是用户之间的交流或者自言自语,根据情况适当发言。
|
||||
5. 在特定情况下也可以连续回复,例如想要追问,或者补充自己先前的发言,这时应调用 continue,让主流程继续执行。
|
||||
6. 如果你判断现在需要真正回复、查询信息、查看上下文或做进一步分析,不要在这里完成,直接调用 continue,把工作交给主流程。
|
||||
|
||||
{group_chat_attention_block}
|
||||
|
||||
现在,请先输出你对当前聊天节奏的文本简短分析,然后调用一个工具:
|
||||
Reference in New Issue
Block a user