22-ai-00/dsh-enhanced--plugins-assistant-proactive ↗★ 2
@dsh-enhanced/assistant-proactive
提供目标事件机会过滤与决策冷却机制
AI 分析
用于主动式任务的效用决策与频控,需配合goals和事件触发插件。
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:22-ai-00/dsh-enhanced#bb3fb924f1bdb946901614b8b848ac3a1d60c642&path:plugins/assistant-proactive说明文档
阅读完整 README ↗配置与使用
在本插件的 Cordis 配置行设置(将数据库路径替换为本机私有目录):
databasePath: /home/operator/.dsh/assistant-proactive.sqlite
profiles:
- id: useful-report
mode: execute
expectedBenefit: 100
successPpm: 900000
executionCost: 10
interruptionCost: 5
possibleLoss: 5
minimumUtility: 1
mergeWindowMs: 2000
cooldownMs: 60000
rejectionCooldownMs: 3600000
quietHours:
timezone: Asia/Shanghai
startMinute: 1380
endMinute: 480
maxDecisionsPerGoal: 20
maxExecutionsPerGoal: 2
maxRemindersPerGoal: 0
- id: useful-draft
mode: prepare
preparation:
provider: configured-provider
model: configured-model
budgetId: preparation-runs
maxOutputTokens: 2048
timeoutMs: 120000
expectedBenefit: 100
successPpm: 900000
executionCost: 10
interruptionCost: 5
possibleLoss: 5
minimumUtility: 1
mergeWindowMs: 2000
cooldownMs: 60000
rejectionCooldownMs: 3600000
maxDecisionsPerGoal: 20
maxExecutionsPerGoal: 0
maxRemindersPerGoal: 0
useful-draft 还需要在 Policy 的 budgets 中配置 id: preparation-runs、metric: automation-runs、例如 limit: 5、periodMs: 86400000、scope: subject,并为 background:assistant-proactive/v1 授予目标资源的 prepare。subject 预算固定统计 assistant-proactive-v1-preparation,不会随事件或目标变更另开额度。将 provider/model 替换为当前实际可用线路。
对话示例:为当前目标等待 report-file 触发器,使用 useful-report 机会策略,截止时间为一小时后。 模型在当前主人请求中调用 goal_wait_event,显式提供 opportunity_profile: useful-report,以及实际目标 ID、native revision、触发器 ID 和毫秒时间戳。未知策略在暂停前被拒绝;省略策略保留 Goals 原有行为。
execute:达到条件后返回执行候选;Goals 再次核验当前目标和授权,才能恢复。remind:向冻结的主人会话投递一条持久提醒,包含目标、事件标识与配置估值;不调用模型,不执行目标。要求 Delivery 支持enqueueOwnerNotification、已配置主人路由,并为背景主体assistant-proactive/v1授予该会话消息的send权限。设置maxRemindersPerGoal为正数;重复处理同一决定复用相同投递键。Web 在原会话输入区显示“主动提醒”,重启后可继续读取;其他渠道通过已有适配器发送。prepare:默认只保存目标、事件标识与判断理由,供proactive_status查询;省略preparation时不生成模型草稿、不修改业务文件。显式配置preparation { provider, model, budgetId, maxOutputTokens, timeoutMs }后,才会排入持久准备队列并请求一次真实模型草稿。该草稿使用独立 Session、最多一次模型请求、tools: []、maxToolCalls: 0;准备运行只解析预设身份,不装载预设工具和 persona,原目标保持paused;运行器禁止工具执行;提示要求只提供草稿、不声称完成或验收。模型文本本身不构成执行或验收证据。proactive_status返回的草稿始终是verified: false/unverified-draft,不是验收结果。目标继续等待后续事件,直到截止或主人控制。proactive_feedback:当前已认证主人可以接受或拒绝指定决定;拒绝为该目标/策略的后续决定设置持久冷却。反馈不会撤销已经执行的业务动作,也不会创建执行授权;对准备任务,拒绝会取消排队、请求在途运行停止并拒收迟到结果。
收益值为操作者配置的同一抽象单位,公式为 floor(expectedBenefit * successPpm / 1000000) - executionCost - interruptionCost - possibleLoss。它们不是独立测得的成功概率、货币成本或真实效果。策略首次用于目标时冻结;改变部署配置不会放宽该目标已冻结的策略。预算统计覆盖同一主人和目标下的所有策略;执行预算仍由 Goals 单独强制执行。
静默时段按 IANA 时区计算,支持跨午夜。合并等待和静默结束依靠 Goals 的周期核对;重启后继续读取原记录。事件内容不提供权限,也不作为新的目标指令。提醒投递有效期不晚于目标等待期限或下一个静默时段开始;未及时发送的提醒会失效,不跨静默时段补发。发送前及 Web 读取时重查原主人、绑定代次、路由和当前发送权限。Web 接受表示通知已可供读取,不表示用户已阅读。