원클릭으로
external-integration
当需要让外部项目正确接入 Sirius Pulse 时使用,覆盖 Python API 调用、CLI 调用、配置组织和安全实践。关键词:外部接入、库调用、CLI 集成、provider 配置。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
当需要让外部项目正确接入 Sirius Pulse 时使用,覆盖 Python API 调用、CLI 调用、配置组织和安全实践。关键词:外部接入、库调用、CLI 集成、provider 配置。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
在发布commit前执行检查清单,包括gitignore验证、改动总结、ChangeLog更新与标准格式commit。关键词:commit前检查、gitignore、ChangeLog、commit格式、版本管理。
遍历项目结构变化并同步更新文档。监控模块变化、配置更新,生成检查清单以确保 SKILL、文档、示例和架构信息的实时一致性。关键词:项目结构、模块映射、文档同步、变更追踪、完整性检查。
使用此技能在发布新版本到 PyPI 时执行完整的发布流程。涵盖版本更新、构建验证、tag 推送和 GitHub Actions 自动化。关键词:PyPI 发布、版本控制、自动化构建、Trusted Publishing。
在为 Sirius Pulse 做发布准备时使用,用于校验版本信息、命令可运行性、文档准确性与技能同步状态。关键词:发布准备、发布前检查、文档同步、命令校验。
编写新测试文件或为现有模块补充测试时使用,覆盖命名约定、速度要求、Mock 模式与断言规范。关键词:测试编写、单元测试、pytest、MockProvider、测试速度、精准测试。
当修改 Sirius Pulse 代码后,强制同步代码与文档、SKILL、示例的一致性。涵盖架构变更、接口变更、配置变更的全量检查清单与项目结构地图。关键词:代码同步、文档联动、变更追踪、检查清单、项目结构。
| name | external-integration |
| description | 当需要让外部项目正确接入 Sirius Pulse 时使用,覆盖 Python API 调用、CLI 调用、配置组织和安全实践。关键词:外部接入、库调用、CLI 集成、provider 配置。 |
帮助 AI 在不破坏框架边界的前提下,为外部系统提供正确、可维护的 Sirius Pulse 集成方案。
项目方向:集成时应支持“问题帮助 + 情绪价值”双目标,保障用户上下文与情感线索连续。
description 和正文必须为中文。docs/external-usage.mddocs/architecture.mddocs/full-architecture-flow.mdsirius_pulse/api/__init__.pysirius_pulse/workspace/runtime.pysirius_pulse/workspace/layout.pysirius_pulse/config/models.pysirius_pulse/config/manager.pysirius_pulse/persona_generation/sirius_pulse/core/emotional_engine.pysirius_pulse/core/cognition.pysirius_pulse/core/prompt_factory.pysirius_pulse/session/store.pysirius_pulse/providers/routing.pysirius_pulse/providers/base.pysirius_pulse/cli.pyWorkspaceRuntime / open_workspace_runtime(...);调用方至少传 work_path 和业务输入,必要时再传独立 config_path。runtime 会统一处理恢复、落盘、provider 注册表与文件监听热刷新。create_emotional_engine() 创建 EmotionalGroupChatEngine 并手动管理生命周期(start_background_tasks() / stop_background_tasks() / save_state())。EmotionalGroupChatEngine 的真实实现位于 sirius_pulse/core/emotional_engine.py;sirius_pulse/async_engine/ 主要承担兼容导出、prompts/orchestration/utils 辅助层。EmotionalGroupChatEngine 位于 sirius_pulse/core/emotional_engine.py。SessionStoreFactory 选择 JsonSessionStore 或 SqliteSessionStore;默认 SqliteSessionStore 使用 sessions/<session_id>/session_state.db。sirius_pulse/api/ 导入接口。create_emotional_engine() 创建引擎并手动管理生命周期。EmotionalGroupChatEngine 实例可处理多个群的对话,通过 process_message() 传入不同 group_id 实现群隔离。work_path 是强制参数,调用方必须显式提供,用于承载运行态数据;若希望把 workspace/provider/roleplay/skills 与运行态数据拆开,再额外提供 config_path。SessionConfig.work_path 表示配置根,SessionConfig.data_path 表示运行根;provider 配置保存在 config root 下的 providers/provider_keys.json,会话/记忆/token 则保存在 data root。WorkspaceBootstrap 是默认值注入通道,不是“每次启动强制覆盖”的同步通道。runtime 会把 bootstrap payload 的签名写入 workspace.json;同一份 bootstrap 后续重启不会再次覆盖用户手改的 workspace/config/provider 文件。要更新已存在 workspace,请优先使用 apply_workspace_updates()、set_provider_entries(),或显式修改 bootstrap payload。session.json 与 config/session_config.json 都支持 JSONC 风格注释;若让用户直接编辑配置,推荐提示其沿用 --init-config 生成的带注释模板。User(user_id/name/aliases/traits/identities),让系统稳定识别人。UserProfile.metadata["is_developer"] = True,不要依赖名字或角色文案推断权限。profile.identities、外部显式传入的 name/aliases 属于可信身份锚点;模型推断出的昵称只会写入 runtime.inferred_aliases 作为弱线索,不会自动变成稳定识人绑定。若业务平台有稳定昵称,务必显式传入。identities 可把不同环境(CLI/QQ/微信)的外部账号映射到同一 user_id。EmotionalGroupChatEngine.process_message(...) 逐条传入动态消息;WorkspaceRuntime 可作为高级封装使用。EmotionalGroupChatEngine 支持四种响应策略:IMMEDIATE(立即回复)、DELAYED(延迟回复)、SILENT(不回复)、PROACTIVE(主动发言)。engine.event_bus.subscribe() 订阅事件流,实时接收 PERCEPTION/COGNITION/DECISION/EXECUTION 事件以及 DELAYED/PROACTIVE 触发事件。Message 的 reply_mode 已不在 Emotional Engine 中使用;回复策略由引擎内部决策层统一决定。ThresholdEngine 与 ResponseStrategyEngine 自动处理;engagement_sensitivity 等旧参数已不再通过 OrchestrationPolicy 配置。UserManager.entries 为 {group_id: {user_id: UserProfile}}。_bg_diary_promoter 周期性生成,从 basic_memory 归档消息 LLM 总结为 DiaryEntry。emotional_engine 配置字段完成,如 basic_memory_hard_limit、diary_top_k、diary_token_budget。GlossaryManager 维护名词解释,持久化至 {work_path}/memory/glossary/terms.json。self_memory_extract_batch_size、self_memory_min_chars 和长上下文自动触发控制,不再支持 self_memory_extract_interval_seconds。intent_analysis 任务驱动,可通过 task_enabled/task_models/task_temperatures/task_max_tokens/task_retries 精细控制;任务关闭时使用关键词回退,但任务启用后若调用失败或解析失败,不再自动降级为关键词意图推断。多 AI 群聊里,分析器会进一步区分“当前模型自身”与“其他 AI”,并在后者场景下抑制当前模型自动回复;为降低误判,传给模型的上下文已改为最近交互链摘要,并会显式附带最近 AI 发言者、最近用户侧发言者、aliases、environment_context,以及当前消息命中的当前模型/其他 AI/名称含 AI 线索对象/possible-AI 候选对象等线索。对未明确点名当前模型的群控/停用类命令,还会做硬抑制,不触发当前模型回复。EmotionalGroupChatEngine.process_message(...) 处理消息;WorkspaceRuntime 的 legacy 队列系统已在 v1.0 中移除。enable_intent_analysis / intent_analysis_model 仍可读取,但 ConfigManager 会在加载时自动映射到 task_enabled["intent_analysis"] / task_models["intent_analysis"],新的模板与持久化输出不再写回旧字段。EmotionalGroupChatEngine.start_background_tasks() 启动 4 个后台任务:延迟队列 ticker(10 秒)、主动触发 checker(60 秒)、观察提取 promoter(5 分钟,event_memory 批量 LLM 提取)、语义整合 consolidator(10 分钟,event_memory → semantic 画像)。runtime(偏好标签、情绪线索、摘要),以提升拟人化体验。transcript.find_user_by_channel_uid(channel, uid)。session_state.json 或早期 session_state(payload) 数据,SqliteSessionStore 会自动迁移到 sessions/<session_id>/session_state.db。Transcript.token_usage_records 获取全量 token 调用归档。summarize_token_usage 和 build_token_usage_baseline(来自 token/usage.py)输出成本与损耗基准分析。{work_path}/token_usage.db(SQLite)。使用 TokenUsageStore + sirius_pulse.token.analytics 进行跨会话分析(compute_baseline、group_by_actor/task/model/session、time_series、full_report)。list_roleplay_question_templates() 获取问卷模板名,再用 generate_humanized_roleplay_questions(template=...) 自动生成拟人化问题清单;当前支持 default、companion、romance、group_chat 四类模板。sirius-pulse --list-roleplay-question-templates 与 sirius-pulse --print-roleplay-questions-template <template>。agenerate_agent_prompts_from_answers、agenerate_from_persona_spec(支持 trait_keywords、answers、dependency_files)或 abuild_roleplay_prompt_from_answers_and_apply 生成并应用完整 GeneratedSessionPreset。abuild_roleplay_prompt_from_answers_and_apply(...)、aupdate_agent_prompt(...)、aregenerate_agent_prompt_from_dependencies(...) 这三条持久化链路,框架会先把最新 PersonaSpec 和待生成快照写入 work_path,再发起模型调用;若生成失败,可用 load_persona_spec(work_path, agent_key) 恢复最近一次输入。max_tokens=5120 和 timeout_seconds=120.0,并把 timeout_seconds 透传到 GenerationRequest;各同步 provider 会优先使用请求级 timeout,而不是只使用 provider 构造器上的默认 30 秒。roleplay/generated_agent_traces/<agent_key>.json,避免脏数据覆盖现有人格配置。aregenerate_agent_prompt_from_dependencies(...) 重新读取 dependency_files 并重生人格,无需重新收集问答。roleplay/generated_agents.json),再用 select_generated_agent_profile(work_path, agent_key) 选择,最后通过 WorkspaceRuntime 或 create_session_config_from_selected_agent(...) 创建会话。{work_path}/roleplay/generated_agent_traces/<agent_key>.json;外部若需审计/回放,可调用 load_persona_generation_traces(...)。Agent.metadata["multimodal_model"] 配置多模态专用模型
create_agent_with_multimodal(name, persona, model="gpt-4o-mini", multimodal_model="gpt-4o", ...) 便捷构造函数auto_configure_multimodal_agent(agent, multimodal_model="gpt-4o") 灵活配置既有 Agenthistory_max_messages/history_max_chars 启用自动记忆压缩,控制 token 增长。ConfigManager 处理多环境配置
from sirius_pulse.config import ConfigManager; cfg = ConfigManager.load_from_json('config/base.json')cache/ 模块实现高效的响应缓存
CacheBackend 抽象实现自定义后端generate_cache_key() 生成确定性的 key(支持温度感知)from sirius_pulse.cache import MemoryCache; cache = MemoryCache(max_size=1000, ttl=3600)performance/ 模块追踪和优化应用性能
from sirius_pulse.performance import PerformanceProfiler; with PerformanceProfiler("task"): ...skills/ 模块让 AI 在运行时调用外部 Python 代码
enable_skills=True;框架会先加载包内置 SKILL(当前包含 system_info、learn_term、url_content_reader、bing_search 与 developer-only 的 desktop_screenshot),再加载 workspace skills/ 目录。SKILL 文件默认放在 {work_path}/skills/,双根布局时位于 config_root/skills/。若只想保留目录结构、不执行 SKILL,可显式设置 enable_skills=Falseskills/ 目录变化时自动全量重载;不再在每条 message 路径上扫描 SKILLskills/system_info.py),则以 workspace 版本覆盖内置实现SKILL_META 字典(含 name, description, parameters, 可选 dependencies、developer_only 与 silent)和 run(**kwargs) 函数;如需审计调用者,可显式接收 invocation_context。silent=True 时 SKILL 结果不追加到回复文本,仅保留在内部元数据中SKILL_META["dependencies"] 和 import 语句,用 uv pip install(回退 pip)安装缺失包。内置 SKILL 与 workspace SKILL 共用这条流程,可通过 auto_install_skill_deps=False 关闭SkillDataStore),通过 data_store 参数注入skill_execution_timeout(默认 30 秒),超时返回 SkillResult(success=False)[SKILL_CALL: name | {params}] 标记并执行,结果会先规范化为内部文本/多模态通道后再重新生成text_blocks、multimodal_blocks、internal_metadata,模型只会看到内部推理通道;最终回复会被约束为只输出用户有用的结论,不复述字段名、mime_type、label、路径或 URLfrom sirius_pulse import SkillRegistry, SkillExecutor, SkillDataStore, SkillInvocationContext, resolve_skill_dependenciesexamples/skills/system_info.pysirius_pulse/providers/ 目录下实现。sirius_pulse/core/emotional_engine.py(v1.0 唯一引擎)通过 LLMProvider/AsyncLLMProvider 抽象与 provider 交互,不依赖任何具体实现。api/,并同步外部文档与示例。api/ 暴露可调用接口。examples/external_api_usage.pyexamples/dynamic_group_chat_usage.pysirius-pulse --config examples/session.json --work-path data/session_runtime --output transcript.jsonsirius-pulse --config examples/session.json --work-path data/session_runtimemain.py 入口使用 --no-resume。当以下内容发生变化时,必须同步更新本 SKILL:
并同步更新:
README.md(用户可见用法)docs/external-usage.mddocs/architecture.md(若边界变化)OpenAICompatibleProvider。AliyunBailianProvider(默认 https://dashscope.aliyuncs.com/compatible-mode,兼容传入 /compatible-mode/v1 后缀)。BigModelProvider(默认 https://open.bigmodel.cn/api/paas/v4,接口 POST /chat/completions,兼容传入根域名或完整 api/paas/v4 前缀)。DeepSeekProvider(默认 https://api.deepseek.com,兼容传入 /v1 后缀,接口 POST /chat/completions)。SiliconFlowProvider(默认 https://api.siliconflow.cn,兼容传入 /v1 后缀)。VolcengineArkProvider(默认 https://ark.cn-beijing.volces.com/api/v3,接口 /api/v3/chat/completions)。AutoRoutingProvider + ProviderRegistry,通过模型前缀路由。/provider platforms|add|remove|list 管理 API Key(持久化在 config root 下的 providers/provider_keys.json)。/provider add 需提供 healthcheck_model,注册时会执行可用性检测:
/provider add <type> <api_key> <healthcheck_model> [base_url]OrchestrationPolicy 通过 unified_model 或 task_models 工作;若未显式传入 orchestration,SessionConfig 会默认用主 agent 模型构造 unified_model。图片输入不会触发独立解析任务,而是直接进入主模型;如需自动升级多模态模型,请配置 Agent.metadata["multimodal_model"]。OpenAICompatibleProvider / AliyunBailianProvider 这类 HTTP provider,multimodal_inputs 中的本地图片路径或 file:// URI 会在发送前自动转换为 Data URL;若传公网 URL,需确保上游能直接下载且响应头带 Content-Type / Content-Length。task_retries 与多模态限流参数,避免上游抖动与超长输入导致的失败。from sirius_pulse import MiddlewareChain, RateLimiterMiddleware, RetryMiddleware, CircuitBreakerMiddleware, CostMetricsMiddleware 导入