원클릭으로
debug-diagnosis
在修改 Sirius Pulse 核心模块(core/memory/providers/platforms 等)后,系统化排查异常、定位根因并验证修复。关键词:调试诊断、bug排查、异常定位、核心模块、修复验证。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
在修改 Sirius Pulse 核心模块(core/memory/providers/platforms 等)后,系统化排查异常、定位根因并验证修复。关键词:调试诊断、bug排查、异常定位、核心模块、修复验证。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
在发布commit前执行检查清单,包括gitignore验证、改动总结、ChangeLog更新与标准格式commit。关键词:commit前检查、gitignore、ChangeLog、commit格式、版本管理。
当需要让外部项目正确接入 Sirius Pulse 时使用,覆盖 Python API 调用、CLI 调用、配置组织和安全实践。关键词:外部接入、库调用、CLI 集成、provider 配置。
遍历项目结构变化并同步更新文档。监控模块变化、配置更新,生成检查清单以确保 SKILL、文档、示例和架构信息的实时一致性。关键词:项目结构、模块映射、文档同步、变更追踪、完整性检查。
使用此技能在发布新版本到 PyPI 时执行完整的发布流程。涵盖版本更新、构建验证、tag 推送和 GitHub Actions 自动化。关键词:PyPI 发布、版本控制、自动化构建、Trusted Publishing。
在为 Sirius Pulse 做发布准备时使用,用于校验版本信息、命令可运行性、文档准确性与技能同步状态。关键词:发布准备、发布前检查、文档同步、命令校验。
编写新测试文件或为现有模块补充测试时使用,覆盖命名约定、速度要求、Mock 模式与断言规范。关键词:测试编写、单元测试、pytest、MockProvider、测试速度、精准测试。
| name | debug-diagnosis |
| description | 在修改 Sirius Pulse 核心模块(core/memory/providers/platforms 等)后,系统化排查异常、定位根因并验证修复。关键词:调试诊断、bug排查、异常定位、核心模块、修复验证。 |
在修改 sirius_pulse 核心模块后出现异常或行为偏离预期时,通过结构化的排查流程快速定位根因,避免盲目猜测和过度修复。
description 和正文必须为中文。当以下场景出现时,必须执行本流程:
sirius_pulse/core/、sirius_pulse/memory/、sirius_pulse/providers/、sirius_pulse/platforms/ 后测试失败或行为异常sirius_pulse/models/ 数据模型后引发上下游兼容性问题sirius_pulse/config/ 配置系统后导致引擎初始化失败MockProvider 和临时目录排除外部干扰。必须收集的信息:
git diff HEAD~1 --name-only)logs/ 或控制台输出)快速命令:
# 查看最近改动
git diff HEAD~1 --name-only
# 查看改动统计
git diff HEAD~1 --stat
# 查看特定文件的改动
git diff HEAD~1 -- sirius_pulse/core/emotional_engine.py
根据异常类型和堆栈,判断问题发生在哪个架构层级:
| 异常特征 | 可能层级 | 优先检查文件 |
|---|---|---|
KeyError、AttributeError、TypeError 在数据访问时 | 数据模型/配置 | sirius_pulse/models/、sirius_pulse/config/ |
| 消息处理无响应或响应内容异常 | 引擎核心 | sirius_pulse/core/emotional_engine.py、core/prompt_factory.py、core/cognition.py |
| 记忆丢失、重复或检索异常 | 记忆系统 | sirius_pulse/memory/basic/、memory/diary/、memory/semantic/、memory/context_assembler.py |
| LLM 调用失败、超时或返回解析错误 | Provider/路由 | sirius_pulse/providers/、providers/routing.py |
| 群消息收发异常、连接断开 | 平台适配 | sirius_pulse/platforms/napcat_adapter.py、platforms/napcat_bridge.py |
| 子进程崩溃、端口冲突 | 运行时/管理 | sirius_pulse/platforms/runtime.py、persona_manager.py、persona_worker.py |
| 配置加载失败、路径错误 | Workspace/配置 | sirius_pulse/utils/layout.py、config/manager.py |
| SKILL 调用失败 | 技能系统 | sirius_pulse/skills/registry.py、skills/executor.py、skills/security.py |
| WebUI 无法访问 | WebUI | sirius_pulse/webui/server.py |
二分法定位:
关键检查点:
async def 被同步调用)?在修复前,先写一个能稳定复现问题的测试:
import pytest
from sirius_pulse.core.emotional_engine import EmotionalGroupChatEngine
from sirius_pulse.models.persona import PersonaProfile
from sirius_pulse.providers.mock import MockProvider
from sirius_pulse.models.models import Message, Participant
@pytest.mark.asyncio
async def test_reproduce_issue(tmp_path):
"""复现 [问题描述]"""
provider = MockProvider(responses=["测试回复"])
engine = EmotionalGroupChatEngine(
work_path=tmp_path,
persona=PersonaProfile(name="DebugBot"),
provider_async=provider,
)
# 构造触发异常的输入
participant = Participant(name="u1", user_id="u1")
msg = Message(role="human", content="触发内容", speaker="u1")
# 执行并观察异常
reply = await engine.process_message(msg, [participant], "group_a")
# 断言异常行为或错误结果
# assert ...
修复原则:
pytest tests/test_<module>.py -xvs验证清单:
pytest tests/test_<module>.py -qpytest tests/ -qpython main.py --help 正常输出。sirius_pulse/__init__.py 已同步更新。若问题是隐蔽的(如时序问题、状态竞争),考虑增强日志:
logger.debug() 记录状态变更。pytest -xvs -k <test_name> 查看详细输出。engine_state/ 和 logs/ 中的持久化状态是否一致。| 现象 | 常见根因 | 快速验证 |
|---|---|---|
ModuleNotFoundError | 新增文件未包含在包内或 __init__.py 未导出 | 检查 sirius_pulse/__init__.py 的 __all__ |
PersonaProfile 反序列化失败 | 新增必填字段无默认值 | 检查 persona.json 与 PersonaProfile 定义 |
| 引擎无响应 | sensitivity=0 或阈值过高 | 检查 config 中的 sensitivity 和 task_enabled |
| LLM 返回解析失败 | 模型返回被截断或非预期格式 | 检查 MockProvider 响应格式是否匹配预期 |
| 记忆不持久化 | work_path 未正确传入或权限问题 | 检查 tmp_path / work_path 目录内容 |
| 后台任务异常 | start_background_tasks() 未正确关闭 | 确保测试中使用 engine.stop_background_tasks() |
| NapCat 连接失败 | 端口冲突或配置不匹配 | 检查 adapter_port_registry.json 和 napcat 日志 |
| 子进程崩溃 | 人格目录缺失或配置错误 | 检查 data/personas/ 目录结构和 persona.json |
| SKILL 调用被拒绝 | 开发者权限未配置 | 检查 UserProfile.metadata["is_developer"] |
| WebUI 无法访问 | 端口被占用或服务未启动 | 检查 global_config.json 中的 webui_host/webui_port |
code-change-sync SKILL)。提供一份简要诊断报告,包含: