目标、队列、定时与记忆
有些活装不下一轮对话:它要占一个上午、一周,或者要按时间表来。这一页讲 Kiki 为这种情况准备的部分:跨轮次推进的目标、你输入时智能体正忙着的那个队列、跨会话存活的定时任务、可选的任务看板插件、决定上下文满了之后怎么办的上下文窗口,以及所有这些之上仍然留得住的事实——记忆。
跨轮次目标(/goal)
普通提示词说的是「下一步做什么」,目标说的是「什么必须变成真的」。用 /goal 开一个目标,智能体会跨多轮一直朝它推进,每轮结束后检查目标自己的状态:完成、受阻、暂停,还是仍在进行。你可以编辑、暂停、取消它。
目标最好写清结果和拿什么证据证明结果——包括第一个线索其实不是根因的那种情况,因为目标描述的是结果,智能体会在过程中调整。目标不适合用在没有完成线的宽泛话题、明知做不到的事,以及边界模糊到无法判断是否完成的目标上。见使用目标模式,那里讲了什么时候用以及怎么管理生命周期。
消息队列与发送时机
智能体忙碌时,新消息会进输入框上方的队列,而不是打断当前工作。每条排队消息各自带一个发送时机:空闲后(智能体结束当前轮次就发)、子智能体完成后(等正在跑的子智能体结束)、任务完成后(等所有后台任务结束)。你可以在队列里那一行改时机、改内容、调顺序,或者立刻发出去。
把鼠标悬在发送按钮上(或聚焦后按 ↓)会打开同一组选项,另外还可以把消息送进当前轮次、在下一个安全步骤边界读取(与 Ctrl-Enter 相同)。时机选择只作用于这一条消息,不改变默认值。重启后,恢复的排队消息会等你确认:立即发送只发这一条,继续发送解除整个队列的等待。
完整行为见界面导览。
投递时机设为排队的定时任务也会进入这条队列,和你提交的消息排在一起,带定时任务标签。设为空闲时插入或立即插入的定时任务也会出现在这里,并在那一行标出持有它的时机,但它不是你待发的消息之一:正文仍可读、仍可移除,而调顺序和立即发送这些控件不出现。


定时任务与任务看板
定时任务让活跨过单次对话。它在全局层面列出,而不是挂在某个会话上。任务看板不是这份列表:它是可选插件,卡片是工作区里的需求。
定时任务。 智能体可以安排一条提示词在未来某个时间触发,一次性或者按你本地时区的 cron 表达式,全局面板列出所有计划。计划由「打开着这个会话」的 Kiki 触发——交互式 daemon 或 server,或 print 模式为本次运行已打开的会话触发。它不会扫描 home 中的其它会话,也不会唤醒未打开的会话,所以计划只在有 Kiki 持有该会话时才会触发。周期任务会被确定性地往后错开,避免所有人在整点同时触发;错过了若干触发时刻的周期任务会带着次数补发一次。计划绑定在它所属的会话上,不会带进一个全新的会话;一个会话最多有 50 个活跃计划。见定时任务。

手动管理日程
定时任务页也是你自己改日程的地方。每一条开头写的是它什么时候跑,用的是人话而不是 cron 表达式:「每小时整点」「每天 09:00」「每周一 08:30」。表达式本身还在,在这条的详情面板里点开就能看到,同时还有完整提示词、所属对话,以及服务端算出的下次触发时间。
新建定时任务用来创建,编辑用来修改。表单先问它是只跑一次还是重复,然后问按什么重复:每 N 小时、每天某个时刻、每周几天、每月几号。你要选它属于哪个对话,可以按标题搜索,并按工作区分组——那是它的产出送到哪儿去的地方。
投递时机说的是这条提示词触发时怎么进入那个对话,日程本身说不了这件事。空闲时插入(默认)等当前这轮工作做完再开始,排在队列里等着的消息之前。排队和你提交的排队消息一起等待,按你发送的先后顺序发送。立即插入让对话在下一个安全步骤读到它,不打断正在进行的那次请求。只有排队会产生一条普通的排队消息:设为空闲时插入或立即插入的任务被持有在这个发送顺序之外,因此不计入你待发送的条数,也没有调顺序的手柄和立即发送——它那一行保留可读正文并标出时机,时机在这一页上改。
比这些控件更具体的日程,比如一天里多个时刻、把某月的某天钉在某个星期几,会直接以 cron 表达式的形式打开,并按原样保存。编辑这样的任务不会悄悄把它换成一条更简单的规则。服务端拒绝的保存会把你填的东西都留在表单里,重试不费事。只改日程、提示词或绑定对话,投递时机保持原样。
立即触发单独占一条,位于每条的左下角,与暂停和删除分开:它只跑这一次,不动日程。把已有任务改绑到另一个对话时,只能选同一个工作区里的对话。
任务看板。 安装可选官方插件 kiki-task-board,就能用卡片保存工作区的长期需求。已有卡片保留在原存储位置,读取不会改动它们。没装插件时没有看板入口,用过它的对话仍可打开、阅读和发送普通消息。见任务看板。
上下文窗口与续接策略
对话变长时,Kiki 会在上下文接近窗口上限时压缩历史。压缩点定在哪、到了压缩点之后做什么,都由你决定。
上下文用量表在输入框下方。展开是一张详情卡,分两段:上下文窗口轨道(已用、压缩点、预留、可用上限,压缩点可以直接按 token 数或百分比改),以及本会话累计的输入、输出、缓存读、缓存写 token 和费用。终端里 /autocompact 展示和修改的是同一个压缩点。
这张卡里还有续上下文策略——到了压缩点时做什么的三选一:
- 压缩(Summarize):让模型生成历史摘要后继续。
- 清空重开(Fresh):不调用摘要模型,直接组成交接包,保留选取的用户输入、工作笔记、历史引用、最近的完整交互与可续用的媒体。
- 自动(Auto,原生主智能体与子智能体的内置默认):交接后能在可用窗口内继续,就使用交接包;否则生成模型摘要。
旁边的来源标签说明当前值来自哪一层(会话、profile、全局,或继承而来),它同时也是把值保存到更大范围或恢复继承的控件。会话选择优先于 profile,其次是全局设置,最后才是内置默认。子智能体可单独配置默认策略,外部执行器自行管理上下文;两者在这里都是只读。
Fresh 是上下文交接,不会删除这段对话。上次交接后来了新输入、工具报错或笔记尚未确认审阅,都不会单独迫使它生成模型摘要。只有必要用户原文既未保留也无法从历史恢复、媒体无法续用,或交接后的上下文超出可用窗口时,Kiki 才改走摘要。自定义压缩指令也会使用摘要模型,除非请求明确选定无模型交接。保存失败后重试会沿用已准备的结果,不会悄悄切换策略。
手动这一侧用 /compact 随时压缩,并可以给一句提示告诉模型优先保留什么。见上下文压缩和 /autocompact。


跨会话长期记忆
会话会结束,记忆不会。智能体把你的偏好、反馈、已核实的项目事实和参考指引存下来,之后再找回来。在 /memory 页上你选正在看哪一部分记忆:全局、某个工作区,或某个角色。角色自己的条目与其他角色隔离;默认情况下角色也能读到共享的全局和工作区记忆。
记忆默认开启,侧栏的 /memory 页是它永久的家——关着的时候是「怎么打开」的说明页,开着的时候是管理台。你可以搜索条目、按类型筛选、编辑、置顶和删除,每次改动都能逐条撤销,删除也可以撤销。记忆审批设为 review 时,改动提议会先在收件箱页等你接受或丢弃,不会自己生效。
智能体用 MemoryWrite 写记忆,用 MemorySearch 和 MemoryRead 读回来。完整说明、审批收件箱和怎么关掉,见记忆。
