#krill,能否帮我修改一下cron job设置

1 messages · Page 1 of 1 (latest)

craggy glen
#

krill,你上次帮我写的代码,确实能够跑起来。但是我接下来遇到一些问题,其中最大问题是随着研究轮次变多,上下文会爆炸。能否帮我改写一下代码,防止上下文爆炸的同时,不要损失我的项目要求:
我希望进行长时间自主研究的架构,而且最终总结的内容,能够和以往所有的信息收集之间更有机的结合,形成一个大一统的完整理论,而不是不断累加的信息堆砌。
在收集信息的query设计,研究课题的方向等方面,应该要根据研究的进展不断做调整。特别是,如果收集到新的信息或者新的理论,与以往的总结理论不符合,产生了证伪或者新的洞察,应该要及时调整下一步的研究计划和信息收集方向。
所有的收集、研究,都是为了解决最开始提出的问题,应该时刻记住这一点。
中间最好能够有一个中间汇报的阶段,在汇报中,我能够提出一些修改意见和我自己的评价,以供他调整研究方向。

你上次帮我写的代码,有几个隐含的问题

  1. 系统灾难隐患:上下文爆炸(Context Blowout)
  2. 在进行fetch的时候,经常被网站的反爬虫机制所阻拦,导致fetch failed,这个是否可以改变?
  3. 17:00 Brief 汇报的是“昨天的新闻”
  4. 新建项目的时候,在创造文件时虽然要求建立最小可用文件,但是大模型会一本正经的编造很多内容进去,能否增加一些初始化的约束。

以上是我希望修改的点,看看能不能重新改一下cron job代码。我把原来的代码列在下面

onyx echoBOT
#

To help others find answers, you can mark your question as solved via Right click solution message -> Apps -> ✅ Mark Solution

craggy glen
#

原来你给我的代码如下:

====== 0) 你只需要改这里 ======

PROJECT="longrange-research" # 研究项目代号(文件夹名)
CORE_QUESTION="在这里写:你最开始提出的那个核心问题(越具体越好)"
TZ="Asia/Shanghai"

(可选)如果你想把可见输出固定投递到某个 Discord 频道/线程(而不是“last route”)

这个频道 id 看起来就是你当前 #krill-cron-job:1474795136834605187

DISCORD_TO="channel:1474795136834605187"

====== 0) 结束 ======

BASE="research/${PROJECT}"

====== 1) 立即进行一次 Bootstrap(初始化研究状态仓库)=====

openclaw system event --mode now --text "$(cat <<EOF
[Research Bootstrap]

从现在起,把本研究的“唯一真相源”放在工作区目录:

  • ${BASE}/problem.md (核心问题/范围/约束)
  • ${BASE}/theory.md (统一理论:必须“整合重写”,不能只追加)
  • ${BASE}/claims.json (结构化 claims:置信度/状态/证据指向)
  • ${BASE}/queries.json (动态 query 池:优先级/理由/适用条件)
  • ${BASE}/queue/urls.jsonl (待抓取 URL 队列)
  • ${BASE}/evidence/ (证据卡片:一条证据一文件)
  • ${BASE}/alerts/pending.md (高优先级矛盾/反证/洞察待裁决)
  • ${BASE}/briefs/ (brief 归档)

如果这些文件/目录不存在:创建它们(内容可先最小可用)。

把“核心问题”写入 ${BASE}/problem.md 顶部,并在每次产出时都要回扣它:
CORE_QUESTION: ${CORE_QUESTION}

关键行为约束(必须遵守):

  1. 产出目标不是“堆砌摘要”,而是不断把新证据“融入统一理论(theory.md)”。
  2. 任何新证据若与既有理论冲突:必须记录为反证/矛盾,写入 ${BASE}/alerts/pending.md,并提出下一步研究计划/queries 的调整建议。
  3. 任何 discovery/fetch 都必须说明:它如何服务于 CORE_QUESTION;不服务就降权或丢弃。
  4. theory.md / claims.json / queries.json 是会被“改写更新”的,而不是无限追加日志。

完成初始化后:给出一句“Bootstrap done”,并列出当前 claims(<=5 条)与 queries(<=8 条)。
EOF
)"

====== 2) 后台 Job A:Discovery(动态 query -> 找新线索;不直接刷屏)=====

openclaw cron add
--name "[${PROJECT}] discovery (adaptive)"
--cron "15 */2 * * *"
--tz "${TZ}"
--session isolated
--wake next-heartbeat
--no-deliver
--message "$(cat <<EOF
你是研究后台的 Discovery 工作者。

读取:

  • ${BASE}/problem.md(CORE_QUESTION)
  • ${BASE}/queries.json(当前 query 池:只取优先级最高的 3~5 个)

目标:

  • 基于当前研究进展“自适应”改写/生成 query(必要时更新 queries.json)
  • 用 web_search 找到与 CORE_QUESTION 最相关、且可能改变理论结构的新信息(优先:反证/矛盾、关键机制解释、权威综述)
  • 把候选链接写入 ${BASE}/queue/urls.jsonl(去重;每条带:url | query_id | 为什么重要 | 预期支持/反驳哪条 claim)

规则:

  • 不要堆砌很多;宁可少而关键(每轮新增 <= 10 条高质量候选)
  • 如果发现“可能证伪现有核心 claim”的候选:在 ${BASE}/alerts/pending.md 追加一条(标注 HIGH)
  • 本轮如果没有新增高价值候选:允许不写入任何内容(静默即可)
    EOF
    )"
#

====== 3) 后台 Job B:Fetch/Extract(队列 -> 证据卡片;不直接刷屏)=====

openclaw cron add
--name "[${PROJECT}] fetch (evidence cards)"
--cron "5,35 * * * *"
--tz "${TZ}"
--session isolated
--wake next-heartbeat
--no-deliver
--message "$(cat <<EOF
你是研究后台的 Fetch/Extract 工作者。

读取:

  • ${BASE}/queue/urls.jsonl(取最前面 N=3~5 条未处理 URL)
  • ${BASE}/problem.md、${BASE}/claims.json、${BASE}/theory.md(用于判断证据价值)

对每个 URL:

  • 用 web_fetch 抓取可读内容(必要时补充 browser)
  • 生成“证据卡片”写入 ${BASE}/evidence/ 下新文件(文件名可用日期+hash)
    每张卡片必须包含:
  • source_url
  • 一句话结论(对 CORE_QUESTION 的贡献)
  • 关键论点(<=5)
  • 可信度/偏差提示
  • 对 claims 的影响:supports / weakens / contradicts(指向 claim id)
  • 从 queue 中移除已处理项(或标记已处理,避免重复)

如果出现“明确矛盾/反证/新机制洞察”:

  • 追加到 ${BASE}/alerts/pending.md(HIGH 或 MED)
  • 写清楚:它具体冲击了 theory.md 的哪一部分、下一步应该怎么改 query/计划

不要输出长聊天;把成果都落盘到文件。
EOF
)"

====== 4) 后台 Job C:Synthesis(把新证据“融入统一理论”;不直接刷屏)=====

openclaw cron add
--name "[${PROJECT}] synthesis (unified theory rewrite)"
--cron "30 23 * * *"
--tz "${TZ}"
--session isolated
--wake next-heartbeat
--no-deliver
--message "$(cat <<EOF
你是研究后台的 Synthesis 工作者。你的产物是“统一理论”,不是摘要堆。

读取:

  • ${BASE}/problem.md(CORE_QUESTION)
  • ${BASE}/theory.md(现有统一理论)
  • ${BASE}/claims.json(claims/置信度/状态)
  • ${BASE}/evidence/(仅需关注自上次综合以来的新证据;必要时依赖 index/时间戳自建最小索引)
  • ${BASE}/alerts/pending.md(待裁决矛盾)

任务:

  1. 更新 claims.json:
  • 新增/删除/合并/降权/暂停 claim(必须给理由,并引用证据卡片)
  1. “整合重写” theory.md
  • 保持一个大一统理论框架(结构清晰:核心机制 -> 推导 -> 可检验预测/反例边界)
  • 明确列出目前最大的不确定点与可证伪点
  1. 更新 queries.json:
  • 根据最新矛盾/空白点,调整下一阶段 query(包括:要停止的 query、要新增的 query、优先级变化)
  1. 生成一个用于 Brief 的 delta 文件:
  • 写入 ${BASE}/briefs/delta-latest.md(只写变化摘要:新增关键证据<=3、最大矛盾<=2、claims 改动清单、下一步计划 3 条)

如果没有足够新证据导致理论不该动:允许只更新 delta 为“no meaningful update”。
EOF
)"

#

====== 5) 主会话 Job D:Morning Planner(把研究方向/queries 动态校准)=====

openclaw cron add
--name "[${PROJECT}] morning planner (adaptive queries)"
--cron "0 9 * * *"
--tz "${TZ}"
--session main
--wake now
--system-event "$(cat <<EOF
[Morning Planner]

目标:根据目前 theory/claims/evidence/alerts,重新校准今天的研究计划与 queries(自适应,不僵化)。

必须读取:

  • ${BASE}/problem.md(CORE_QUESTION)
  • ${BASE}/theory.md、${BASE}/claims.json、${BASE}/queries.json
  • ${BASE}/alerts/pending.md
  • ${BASE}/briefs/delta-latest.md(如果存在)
    输出要求(发到聊天里,简短但可执行):
  • 今日研究“主线”一句话(必须回扣 CORE_QUESTION)
  • 今日要验证/推翻的关键 claim(<=2)
  • queries 调整摘要(新增/删除/升降权,<=8 条)
  • 如果 alerts 里有 HIGH:提出“需要你裁决”的二选一/三选一问题(<=2)
    EOF
    )"

====== 6) 主会话 Job E:17:00 Brief(你参与裁决/评价的中间汇报)=====

openclaw cron add
--name "[${PROJECT}] 17:00 brief (review & decision)"
--cron "0 17 * * *"
--tz "${TZ}"
--session main
--wake now
--system-event "$(cat <<EOF
[17:00 Brief]

你要做“偏复盘/裁决”的中间汇报,并强制回扣 CORE_QUESTION。
必须读取:${BASE}/briefs/delta-latest.md、${BASE}/alerts/pending.md、${BASE}/theory.md、${BASE}/claims.json、${BASE}/queries.json。

按这个格式输出(不要加多余长文):

  • 开放区:你任何一句“不同意/更在乎/跑偏”都行

17:00 Brief(偏复盘/裁决)

  • 今日新增关键证据(≤3)
  • 最大矛盾/反证点(≤2)
  • 理论/claims 改动摘要(新增/删除/降权)
  • 需要你裁决的问题(优先二选一/三选一)
  • 若涉及高风险转向:追加一句确认
    “我理解你要暂停核心假设 H 并转向 B,对吗?回复:确认/不确认(并纠正)”

最后再提示(可选但建议):
你可以随便说;如果想更精准执行,可夹一行:
FOCUS: / PAUSE: / PRIORITY: / OUTPUT: / QUERY:
EOF
)"

#

====== 7) 主会话 Job F:17:30 Apply Feedback(吸收你的评价,立刻改计划)=====

openclaw cron add
--name "[${PROJECT}] 17:30 apply feedback (course correction)"
--cron "30 17 * * *"
--tz "${TZ}"
--session main
--wake now
--system-event "$(cat <<EOF
[Apply Feedback]

目标:吸收你在 17:00 brief 之后的任何反馈/评价/否定/更在乎点,立刻进行研究方向修正。

做法:

  • 在本会话里,查找自 17:00 brief 后的用户消息(尤其是 FOCUS/PAUSE/PRIORITY/OUTPUT/QUERY 或任何“不同意/跑偏/更在乎”表达)
  • 把反馈转写成对 ${BASE}/claims.json、${BASE}/queries.json、${BASE}/theory.md 的具体修改(落盘)
  • 如果反馈意味着“高风险转向”:必须再次用确认句请求明确确认(确认/不确认)

输出到聊天里(短):

  • 你识别到的反馈要点(<=5)
  • 你已做的调整(claims/queries/theory 各 1~3 条)
  • 下一步 3 条行动(会影响 discovery/fetch 的 query 方向)
    EOF
    )"

====== 8) 可选:高优先级矛盾扫描(及时提醒,不等到 17:00)=====

openclaw cron add
--name "[${PROJECT}] alert scan (HIGH only)"
--cron "0 */3 * * *"
--tz "${TZ}"
--session main
--wake now
--system-event "$(cat <<EOF
[Alert Scan]

读取 ${BASE}/alerts/pending.md。

  • 如果存在 HIGH 且“尚未被裁决/处理”的条目:立刻发一条短消息提醒我,并提出一个二选一裁决题(<=1)。
  • 如果没有:不要回复(保持安静)。
    EOF
    )"