بنقرة واحدة
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 导入