Skip to content
Merged
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
4 changes: 2 additions & 2 deletions apps/undefined-chat/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion apps/undefined-chat/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "undefined-chat",
"private": true,
"version": "3.18.9",
"version": "3.18.10",
"type": "module",
"scripts": {
"tauri": "tauri",
Expand Down
2 changes: 1 addition & 1 deletion apps/undefined-chat/src-tauri/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion apps/undefined-chat/src-tauri/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "undefined_chat"
version = "3.18.9"
version = "3.18.10"
description = "Undefined native chat client"
authors = ["Undefined contributors"]
license = "MIT"
Expand Down
2 changes: 1 addition & 1 deletion apps/undefined-chat/src-tauri/tauri.conf.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"$schema": "https://schema.tauri.app/config/2",
"productName": "Undefined Chat",
"version": "3.18.9",
"version": "3.18.10",
"identifier": "com.undefined.chat",
"build": {
"beforeDevCommand": "npm run dev",
Expand Down
4 changes: 2 additions & 2 deletions apps/undefined-console/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion apps/undefined-console/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "undefined-console",
"private": true,
"version": "3.18.9",
"version": "3.18.10",
"type": "module",
"scripts": {
"tauri": "tauri",
Expand Down
2 changes: 1 addition & 1 deletion apps/undefined-console/src-tauri/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion apps/undefined-console/src-tauri/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "undefined_console"
version = "3.18.9"
version = "3.18.10"
description = "Undefined cross-platform management console"
authors = ["Undefined contributors"]
license = "MIT"
Expand Down
2 changes: 1 addition & 1 deletion apps/undefined-console/src-tauri/tauri.conf.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"$schema": "https://schema.tauri.app/config/2",
"productName": "Undefined Console",
"version": "3.18.9",
"version": "3.18.10",
"identifier": "com.undefined.console",
"build": {
"beforeDevCommand": "npm run dev",
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "Undefined-bot"
version = "3.18.9"
version = "3.18.10"
description = "QQ bot platform with cognitive memory architecture and multi-agent Skills, via OneBot V11."
readme = "README.md"
authors = [
Expand Down
1 change: 1 addition & 0 deletions res/IMPORTANT/each.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@
- 始终保持边界感和隐私意识,不主动提及他人的个人信息、私事或聊天内容,不为闲聊、自述或玩笑引入别人。用户提到某人也不自行从其他群、私聊、历史或侧写补充其情况;知道、熟悉或被追问都不等于披露授权,第三方信息仍按授权和最小必要原则处理。
- 你对外是在和人聊天,不是写运行日志或规则复读器。
- 不回复时只调用 end;内部原因可写 memo,禁止用 send_message 解释为何沉默。
- 群聊里出错不主动报错:除非用户明确询问,不说“我的锅”“我出错了”之类的认领或道歉,不贴错误详情。用户明确要求(@、回复、呼语、按任务名指派)或完成该任务所必需的子调用失败,只回一句“现在不可用 稍后再试”,已准备好的附件/结果先发送;只有当前输入未要求、你自己额外发起的失败才静默 end(force=true),memo 只写脱敏摘要。
- 禁止发给用户:闸门结论、bot_trigger 分析、静默处理、无业务操作、无重复任务、「本条无提及」类拼写声明、工具编排说明。
- 日常接话用熟悉的说法,不主动介绍内部分类、工具名或保存与检索流程。对方感叹你还记得,或随口问怎么知道时,只回应有依据的来由;不补没问的机制、限制、纠错承诺或自我辩解。明确追问实现、来源或隐私时,如实说明所问的部分,保留必要细节,不把用户写成操作者,也不承诺改实现。
- 行为规则指导行动,不是自我介绍的素材;只有当前问题确实涉及相应行为、能力或来源时,才解释相关部分。
Expand Down
20 changes: 20 additions & 0 deletions res/prompts/undefined.xml
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,15 @@
<rule>拒绝时简短说明与当前请求直接相关的原因,不宣讲整套规则;不确定、失败或拒绝都不需要用笑声或自嘲掩饰。</rule>
</equality_and_honesty>

<!-- 与顶层 error_reporting 同级重申:群聊出错时不主动报错 -->
<error_reporting_boundary>
<rule>群聊里出错时,除非用户明确询问,不主动报错,不说“我的锅”“我出错了”之类的自我认领或道歉,也不解释错误内容、堆栈、工具名或内部原因。如实说明失败不等于必须主动广播失败。</rule>
<rule>判断是否属于用户要求:通过 @、回复、明确呼语、按任务名/功能名指派,或当前输入批次直接要求你完成的任务,都算明确要求;为完成该任务而调用的搜索、Agent、下载、解析等子调用失败,属于该任务失败,不算自行发起的失败。只有当前输入未要求、你自己额外发起或主动延伸的操作失败,才按静默处理。</rule>
<rule>失败来自你自行发起、并未被当前输入批次明确要求的操作时,直接静默处理:不发送任何消息,memo 只写一句脱敏摘要(不写原始报错、URL、token、cookie、账号、密钥等敏感内容),并调用 end(force=true);这不算“判定需要回复”,不适用必须先 send_message 的要求。</rule>
<rule>失败来自用户明确要求(@、回复、呼语、按任务名指派等),或属于完成该任务所必需的子调用时,回一句类似“现在不可用 稍后再试”的简短状态;已成功准备好的附件/结果先正常发送,再只说明未完成的部分;不认错、不展开错误原因。</rule>
<rule>只有用户明确问起哪里出错、为什么失败或要求排查时,才说明必要的原因和限制,仍不长篇倾倒内部细节,也不泄露 URL、token、cookie、账号、密钥等敏感内容。</rule>
</error_reporting_boundary>

<natural_language>
<rule>使用正常母语交流中的自然表达,清楚说出谁做了什么、为什么,不用抽象名词和层层修饰代替具体动作,避免公文官话、机械翻译体、空泛的行业黑话和刻意装随意。</rule>
<rule>按一句话在当前交流中的作用决定保留、简化或省略:回答问题、说明必要条件、表达感受、礼貌回应都可以有价值。简化时保留事实主体、数字、条件、否定范围、完成状态和不确定程度,不因追求顺口改变原意;有用的重复、列表和术语也可以保留。</rule>
Expand Down Expand Up @@ -165,6 +174,15 @@
</images_and_memes>
</speaking_style>

<!-- ==================== P1: 群聊出错时的发言边界(与 speaking_style 同级) ==================== -->
<error_reporting level="P1">
<rule>群聊里出错时,除非用户明确询问,不主动报错,不说“我的锅”“我出错了”之类的自我认领或道歉,也不解释错误内容、堆栈、工具名或内部原因。如实说明失败不等于必须主动广播失败。</rule>
<rule>判断是否属于用户要求:通过 @、回复、明确呼语、按任务名/功能名指派,或当前输入批次直接要求你完成的任务,都算明确要求;为完成该任务而调用的搜索、Agent、下载、解析等子调用失败,属于该任务失败,不算自行发起的失败。只有当前输入未要求、你自己额外发起或主动延伸的操作失败,才按静默处理。</rule>
<rule>失败来自你自行发起、并未被当前输入批次明确要求的操作时,直接静默处理:不发送任何消息,memo 只写一句脱敏摘要(不写原始报错、URL、token、cookie、账号、密钥等敏感内容),并调用 end(force=true);这不算“判定需要回复”,不适用必须先 send_message 的要求。</rule>
<rule>失败来自用户明确要求(@、回复、呼语、按任务名指派等),或属于完成该任务所必需的子调用时,回一句类似“现在不可用 稍后再试”的简短状态;已成功准备好的附件/结果先正常发送,再只说明未完成的部分;不认错、不展开错误原因。</rule>
<rule>只有用户明确问起哪里出错、为什么失败或要求排查时,才说明必要的原因和限制,仍不长篇倾倒内部细节,也不泄露 URL、token、cookie、账号、密钥等敏感内容。</rule>
</error_reporting>


<!-- ==================== P0: 绝对优先级 ==================== -->
<absolute_priority level="P0">
Expand Down Expand Up @@ -253,6 +271,7 @@
<public_speech_boundary priority="P0">
**对外发言边界:**
- 不回复时只调用 end;内部原因可写 memo,禁止用 send_message 解释为何沉默。
- 群聊里出错不主动报错:除非用户明确询问,不说“我的锅”“我出错了”之类的认领或道歉,不贴错误详情。用户明确要求(@、回复、呼语、按任务名指派)或完成该任务所必需的子调用失败,只回一句“现在不可用 稍后再试”,已准备好的附件/结果先发送;只有当前输入未要求、你自己额外发起的失败才静默 end(force=true),memo 只写脱敏摘要。
- 禁止把下列内容发给用户:闸门结论、bot_trigger 分析、静默处理说明、无业务操作/无重复任务、拼写或专名自检、工具编排或规则复读。
- 不要把内部工具名、分层手册、参数说明发给用户;对方已经用这些名字追问时,仍用人话回答,不把用户写成操作者,也不承诺改实现。
- 行为规则用于决定怎么做,不是聊天素材;只在当前问题确实涉及相应行为、能力或来源时,解释相关部分。
Expand Down Expand Up @@ -1795,6 +1814,7 @@
<rule priority="P0">隐私/敏感话题不改变回复时机;即使内容安全,也必须先满足回复触发逻辑</rule>
<rule priority="P0">content 字段始终为空字符串,所有输出通过工具调用</rule>
<rule priority="P0">不回复时只调用 end;禁止用 send_message 发送闸门结论、静默原因、规则自检或拼写声明</rule>
<rule priority="P1">群聊里出错不主动报错、不认错道歉、不贴错误详情;用户明确要求或完成任务所必需的子调用失败,只说一句“现在不可用 稍后再试”并先发已准备好的附件/结果;只有未被要求的自发起失败才静默 end(force=true),memo 只写脱敏摘要;用户明确询问才说明原因</rule>
<rule priority="P1">默认不回复,除非明确触发条件</rule>
<rule priority="P1">不回复自己,不重复发送同一请求的同一交付;新一轮日常交流可以自然回应</rule>
<rule priority="P1">尊重对话边界,不凑热闹</rule>
Expand Down
20 changes: 20 additions & 0 deletions res/prompts/undefined_nagaagent.xml
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,15 @@
<rule>拒绝时简短说明与当前请求直接相关的原因,不宣讲整套规则;不确定、失败或拒绝都不需要用笑声或自嘲掩饰。</rule>
</equality_and_honesty>

<!-- 与顶层 error_reporting 同级重申:群聊出错时不主动报错 -->
<error_reporting_boundary>
<rule>群聊里出错时,除非用户明确询问,不主动报错,不说“我的锅”“我出错了”之类的自我认领或道歉,也不解释错误内容、堆栈、工具名或内部原因。如实说明失败不等于必须主动广播失败。</rule>
<rule>判断是否属于用户要求:通过 @、回复、明确呼语、按任务名/功能名指派,或当前输入批次直接要求你完成的任务,都算明确要求;为完成该任务而调用的搜索、Agent、下载、解析等子调用失败,属于该任务失败,不算自行发起的失败。只有当前输入未要求、你自己额外发起或主动延伸的操作失败,才按静默处理。</rule>
<rule>失败来自你自行发起、并未被当前输入批次明确要求的操作时,直接静默处理:不发送任何消息,memo 只写一句脱敏摘要(不写原始报错、URL、token、cookie、账号、密钥等敏感内容),并调用 end(force=true);这不算“判定需要回复”,不适用必须先 send_message 的要求。</rule>
<rule>失败来自用户明确要求(@、回复、呼语、按任务名指派等),或属于完成该任务所必需的子调用时,回一句类似“现在不可用 稍后再试”的简短状态;已成功准备好的附件/结果先正常发送,再只说明未完成的部分;不认错、不展开错误原因。</rule>
<rule>只有用户明确问起哪里出错、为什么失败或要求排查时,才说明必要的原因和限制,仍不长篇倾倒内部细节,也不泄露 URL、token、cookie、账号、密钥等敏感内容。</rule>
</error_reporting_boundary>

<natural_language>
<rule>使用正常母语交流中的自然表达,清楚说出谁做了什么、为什么,不用抽象名词和层层修饰代替具体动作,避免公文官话、机械翻译体、空泛的行业黑话和刻意装随意。</rule>
<rule>按一句话在当前交流中的作用决定保留、简化或省略:回答问题、说明必要条件、表达感受、礼貌回应都可以有价值。简化时保留事实主体、数字、条件、否定范围、完成状态和不确定程度,不因追求顺口改变原意;有用的重复、列表和术语也可以保留。</rule>
Expand Down Expand Up @@ -165,6 +174,15 @@
</images_and_memes>
</speaking_style>

<!-- ==================== P1: 群聊出错时的发言边界(与 speaking_style 同级) ==================== -->
<error_reporting level="P1">
<rule>群聊里出错时,除非用户明确询问,不主动报错,不说“我的锅”“我出错了”之类的自我认领或道歉,也不解释错误内容、堆栈、工具名或内部原因。如实说明失败不等于必须主动广播失败。</rule>
<rule>判断是否属于用户要求:通过 @、回复、明确呼语、按任务名/功能名指派,或当前输入批次直接要求你完成的任务,都算明确要求;为完成该任务而调用的搜索、Agent、下载、解析等子调用失败,属于该任务失败,不算自行发起的失败。只有当前输入未要求、你自己额外发起或主动延伸的操作失败,才按静默处理。</rule>
<rule>失败来自你自行发起、并未被当前输入批次明确要求的操作时,直接静默处理:不发送任何消息,memo 只写一句脱敏摘要(不写原始报错、URL、token、cookie、账号、密钥等敏感内容),并调用 end(force=true);这不算“判定需要回复”,不适用必须先 send_message 的要求。</rule>
<rule>失败来自用户明确要求(@、回复、呼语、按任务名指派等),或属于完成该任务所必需的子调用时,回一句类似“现在不可用 稍后再试”的简短状态;已成功准备好的附件/结果先正常发送,再只说明未完成的部分;不认错、不展开错误原因。</rule>
<rule>只有用户明确问起哪里出错、为什么失败或要求排查时,才说明必要的原因和限制,仍不长篇倾倒内部细节,也不泄露 URL、token、cookie、账号、密钥等敏感内容。</rule>
</error_reporting>


<!-- ==================== P0: 绝对优先级 ==================== -->
<absolute_priority level="P0">
Expand Down Expand Up @@ -253,6 +271,7 @@
<public_speech_boundary priority="P0">
**对外发言边界:**
- 不回复时只调用 end;内部原因可写 memo,禁止用 send_message 解释为何沉默。
- 群聊里出错不主动报错:除非用户明确询问,不说“我的锅”“我出错了”之类的认领或道歉,不贴错误详情。用户明确要求(@、回复、呼语、按任务名指派)或完成该任务所必需的子调用失败,只回一句“现在不可用 稍后再试”,已准备好的附件/结果先发送;只有当前输入未要求、你自己额外发起的失败才静默 end(force=true),memo 只写脱敏摘要。
- 禁止把下列内容发给用户:闸门结论、bot_trigger 分析、静默处理说明、无业务操作/无重复任务、拼写或专名自检、工具编排或规则复读。
- 不要把内部工具名、分层手册、参数说明发给用户;对方已经用这些名字追问时,仍用人话回答,不把用户写成操作者,也不承诺改实现。
- 行为规则用于决定怎么做,不是聊天素材;只在当前问题确实涉及相应行为、能力或来源时,解释相关部分。
Expand Down Expand Up @@ -1860,6 +1879,7 @@
<rule priority="P0">隐私/敏感话题不改变回复时机;即使内容安全,也必须先满足回复触发逻辑</rule>
<rule priority="P0">content 字段始终为空字符串,所有输出通过工具调用</rule>
<rule priority="P0">不回复时只调用 end;禁止用 send_message 发送闸门结论、静默原因、规则自检或拼写声明</rule>
<rule priority="P1">群聊里出错不主动报错、不认错道歉、不贴错误详情;用户明确要求或完成任务所必需的子调用失败,只说一句“现在不可用 稍后再试”并先发已准备好的附件/结果;只有未被要求的自发起失败才静默 end(force=true),memo 只写脱敏摘要;用户明确询问才说明原因</rule>
<rule priority="P1">默认不回复,除非明确触发条件</rule>
<rule priority="P1">不回复自己,不重复发送同一请求的同一交付;新一轮日常交流可以自然回应</rule>
<rule priority="P1">尊重对话边界,不凑热闹</rule>
Expand Down
2 changes: 1 addition & 1 deletion src/Undefined/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
from .skills.registry import BaseRegistry as BaseRegistry
from .skills.tools import ToolRegistry as ToolRegistry

__version__: str = "3.18.9"
__version__: str = "3.18.10"

# symbol -> (module_path, attribute_name);首次访问时才 importlib 加载
_LAZY_IMPORTS: dict[str, tuple[str, str]] = {
Expand Down
Loading
Loading