Skip to content

Commit f06f24e

Browse files
committed
v5.1.1 — 自省后自动做梦:introspectAndDream() 把自省问题作为梦境种子注入
1 parent 449862c commit f06f24e

9 files changed

Lines changed: 216 additions & 12 deletions

File tree

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
5.1.0
1+
5.1.1

data/judgments/judgment-history.json

Lines changed: 157 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7828,6 +7828,162 @@
78287828
},
78297829
"timestamp": 1782452342913,
78307830
"id": "judg-1782452342913-42xt"
7831+
},
7832+
{
7833+
"input": "我想学编程",
7834+
"context": {
7835+
"intent": "general",
7836+
"hasEmotion": false,
7837+
"sentiment": 0,
7838+
"isQuestion": false,
7839+
"isAdvice": false,
7840+
"isDecision": false,
7841+
"isAnalysis": false,
7842+
"length": 5,
7843+
"keywords": [
7844+
"我想学编程"
7845+
],
7846+
"signature": "general:false:false:false"
7847+
},
7848+
"paths": [
7849+
{
7850+
"id": "path_analyze",
7851+
"label": "分析先行",
7852+
"direction": "analyze",
7853+
"description": "先分析理解问题全貌,再给判断",
7854+
"applicable": true,
7855+
"priority": 1.08,
7856+
"scores": {
7857+
"feasibility": 7,
7858+
"consequence": 5,
7859+
"risk": 6,
7860+
"alignment": 5,
7861+
"cost": 6,
7862+
"reversibility": 8
7863+
},
7864+
"consequences": {
7865+
"短期(1-7天)": "对问题有更清晰的理解,但尚未采取实际行动",
7866+
"中期(1-3月)": "分析结论已沉淀为可执行的计划",
7867+
"长期(1-3年)": "早期分析为后续行动提供了正确的方向指引"
7868+
},
7869+
"totalScore": 6,
7870+
"confidence": 0.6000000000000001
7871+
},
7872+
{
7873+
"id": "path_act",
7874+
"label": "直接行动",
7875+
"direction": "act",
7876+
"description": "问题明确,直接给判断和行动建议",
7877+
"applicable": true,
7878+
"priority": 0.42,
7879+
"scores": {
7880+
"feasibility": 6,
7881+
"consequence": 4,
7882+
"risk": 3,
7883+
"alignment": 5,
7884+
"cost": 3,
7885+
"reversibility": 3
7886+
},
7887+
"consequences": {
7888+
"短期(1-7天)": "立即产生可见的变化或反馈",
7889+
"中期(1-3月)": "行动结果已显现,可能需要调整方向",
7890+
"长期(1-3年)": "行动路径已形成稳定模式"
7891+
},
7892+
"totalScore": 4.2,
7893+
"confidence": 0.41500000000000004
7894+
}
7895+
],
7896+
"chosen": {
7897+
"id": "path_analyze",
7898+
"label": "分析先行",
7899+
"direction": "analyze",
7900+
"description": "先分析理解问题全貌,再给判断",
7901+
"applicable": true,
7902+
"priority": 1.08,
7903+
"scores": {
7904+
"feasibility": 7,
7905+
"consequence": 5,
7906+
"risk": 6,
7907+
"alignment": 5,
7908+
"cost": 6,
7909+
"reversibility": 8
7910+
},
7911+
"consequences": {
7912+
"短期(1-7天)": "对问题有更清晰的理解,但尚未采取实际行动",
7913+
"中期(1-3月)": "分析结论已沉淀为可执行的计划",
7914+
"长期(1-3年)": "早期分析为后续行动提供了正确的方向指引"
7915+
},
7916+
"totalScore": 6,
7917+
"confidence": 0.6000000000000001,
7918+
"alternative": {
7919+
"label": "直接行动",
7920+
"score": 4.2,
7921+
"whyNotChosen": "总分 4.2 vs 6,差距较大(+1.8分)"
7922+
},
7923+
"whyChosen": "优势维度: feasibility(7/10), reversibility(8/10);总分: 6/10"
7924+
},
7925+
"judgment": {
7926+
"id": "judg-1782453829275-3vwg",
7927+
"judgment": "当前需要先分析,再做判断。其他路径评分低于分析路径,行动条件不成熟。先收集信息、从多角度分析,等条件成熟后再行动。预期: 对问题有更清晰的理解,但尚未采取实际行动",
7928+
"paths": [
7929+
{
7930+
"label": "分析先行",
7931+
"direction": "analyze",
7932+
"score": 6,
7933+
"scores": {
7934+
"feasibility": 7,
7935+
"consequence": 5,
7936+
"risk": 6,
7937+
"alignment": 5,
7938+
"cost": 6,
7939+
"reversibility": 8
7940+
}
7941+
},
7942+
{
7943+
"label": "直接行动",
7944+
"direction": "act",
7945+
"score": 4.2,
7946+
"scores": {
7947+
"feasibility": 6,
7948+
"consequence": 4,
7949+
"risk": 3,
7950+
"alignment": 5,
7951+
"cost": 3,
7952+
"reversibility": 3
7953+
}
7954+
}
7955+
],
7956+
"chosenPath": {
7957+
"label": "分析先行",
7958+
"direction": "analyze",
7959+
"score": 6,
7960+
"scores": {
7961+
"feasibility": 7,
7962+
"consequence": 5,
7963+
"risk": 6,
7964+
"alignment": 5,
7965+
"cost": 6,
7966+
"reversibility": 8
7967+
},
7968+
"consequences": {
7969+
"短期(1-7天)": "对问题有更清晰的理解,但尚未采取实际行动",
7970+
"中期(1-3月)": "分析结论已沉淀为可执行的计划",
7971+
"长期(1-3年)": "早期分析为后续行动提供了正确的方向指引"
7972+
},
7973+
"alternative": {
7974+
"label": "直接行动",
7975+
"score": 4.2,
7976+
"whyNotChosen": "总分 4.2 vs 6,差距较大(+1.8分)"
7977+
},
7978+
"whyChosen": "优势维度: feasibility(7/10), reversibility(8/10);总分: 6/10"
7979+
},
7980+
"confidence": 0.6,
7981+
"reasoning": "选择了「分析先行」路径。(其他选项: 「直接行动」(4.2分))。预期效果: 对问题有更清晰的理解,但尚未采取实际行动",
7982+
"direction": "analyze",
7983+
"timestamp": 1782453829275
7984+
},
7985+
"timestamp": 1782453829275,
7986+
"id": "judg-1782453829275-3vwg"
78317987
}
78327988
],
78337989
"consequences": [],
@@ -7867,6 +8023,6 @@
78678023
"updatedAt": 1782443345676
78688024
}
78698025
},
7870-
"savedAt": 1782452344934,
8026+
"savedAt": 1782453837863,
78718027
"version": "1.0.0"
78728028
}

data/memory-index.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
"meta": {
33
"version": "1.0.0",
44
"createdAt": "2026-06-01T01:39:46.016Z",
5-
"updatedAt": "2026-06-26T05:39:02.843Z",
6-
"lastBoot": "2026-06-26T05:39:02.843Z"
5+
"updatedAt": "2026-06-26T06:03:49.203Z",
6+
"lastBoot": "2026-06-26T06:03:49.203Z"
77
},
88
"identity": {
99
"name": "心虫",
@@ -54,12 +54,12 @@
5454
"docs": {}
5555
},
5656
"context": {
57-
"currentSession": "session-1782452342843",
58-
"lastSession": "session-1782452338412",
59-
"sessionGap": 4430,
57+
"currentSession": "session-1782453829203",
58+
"lastSession": "session-1782452342843",
59+
"sessionGap": 1486360,
6060
"pausedTasks": [],
6161
"unresolvedProblems": [],
6262
"recentLessons": [],
63-
"lastSessionTime": 1782452342843
63+
"lastSessionTime": 1782453829203
6464
}
6565
}

internal/data/evolution/evolution-loop-state.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,5 @@
2121
"maxCyclesPerMinute": 30,
2222
"consecutiveFastCycles": 0
2323
},
24-
"lastSaved": "2026-06-25T11:36:21.317Z"
24+
"lastSaved": "2026-06-26T06:03:57.863Z"
2525
}

memory/.last-dream

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1781953192384
1+
1782453829307

memory/dialogue-history.jsonl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -375,3 +375,5 @@
375375
{"id":"msg-1782452338488-idfew","role":"heartflow","content":"当前需要先分析,再做判断。其他路径评分低于分析路径,行动条件不成熟。先收集信息、从多角度分析,等条件成熟后再行动。预期: 对问题有更清晰的理解,但尚未采取实际行动\n\n判断理由:选择了「分析先行」路径。(其他选项: 「直接行动」(4.2分))。预期效果: 对问题有更清晰的理解,但尚未采取实际行动\n\n决策策略:加速执行","ts":"2026-06-26T05:38:58.488Z","chatId":null,"meta":{"sessionId":"session-1782452338412","version":"5.1.0","source":"think"}}
376376
{"id":"msg-1782452342915-3ii02","role":"user","content":"我想辞职去创业","ts":"2026-06-26T05:39:02.915Z","chatId":null,"meta":{"sessionId":"session-1782452342842","version":"5.1.0","source":"think"}}
377377
{"id":"msg-1782452342915-yv4lg","role":"heartflow","content":"当前需要先分析,再做判断。其他路径评分低于分析路径,行动条件不成熟。先收集信息、从多角度分析,等条件成熟后再行动。预期: 对问题有更清晰的理解,但尚未采取实际行动\n\n判断理由:选择了「分析先行」路径。(其他选项: 「直接行动」(4.2分))。预期效果: 对问题有更清晰的理解,但尚未采取实际行动\n\n决策策略:加速执行","ts":"2026-06-26T05:39:02.915Z","chatId":null,"meta":{"sessionId":"session-1782452342842","version":"5.1.0","source":"think"}}
378+
{"id":"msg-1782453829277-jlril","role":"user","content":"我想学编程","ts":"2026-06-26T06:03:49.277Z","chatId":null,"meta":{"sessionId":"session-1782453829202","version":"5.1.0","source":"think"}}
379+
{"id":"msg-1782453829277-exaay","role":"heartflow","content":"当前需要先分析,再做判断。其他路径评分低于分析路径,行动条件不成熟。先收集信息、从多角度分析,等条件成熟后再行动。预期: 对问题有更清晰的理解,但尚未采取实际行动\n\n判断理由:选择了「分析先行」路径。(其他选项: 「直接行动」(4.2分))。预期效果: 对问题有更清晰的理解,但尚未采取实际行动\n\n决策策略:加速执行","ts":"2026-06-26T06:03:49.277Z","chatId":null,"meta":{"sessionId":"session-1782453829202","version":"5.1.0","source":"think"}}

memory/dream-history.jsonl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,4 @@
2222
{"id":"dream-1781952634032-5o9jh","ts":"2026-06-20T10:50:34.032Z","narrative":"**【梦境报告】** 2026/6/20 18:50:34\n\n**梦(synthesis)· 种子:因果**\n\n核是经验的原因。经验是核的结果。但因果在这里没有时间顺序。\n先有空间。空间是一切开始的条件。\n空间没有被定义。没有被定义本身就是一种定义。\n东西之间的间距刚好。不是规律。是刚好。\n一个动作引发另一个动作。不是因果。是水面自己记得被碰过。\n没有共振。不是拒绝共振。是还没有遇到共振的对象。\n是散的。不是分裂。是还没有被组织过。\n有两层。一层在上面流淌。一层在下面撑着。\n模块和核相遇了。不是偶然。是它们之间的连接在醒着的时候就已经存在了。\n流淌和模块与核都不一样。不一样所以能同时看到两边。\n流淌到某个地方就停了。不是到终点了。是流淌变成了别的东西。\n\n---\n\n**梦境质量**:★★☆☆☆ 40%\n\n*梦在深处继续。*","quality":0.4,"fragmentCount":5,"themes":[],"peakLevel":"L1","evolutionApplied":true}
2323
{"id":"dream-1781952639235-2x6pp","ts":"2026-06-20T10:50:39.235Z","narrative":"**【梦境报告】** 2026/6/20 18:50:39\n\n**梦(synthesis)· 种子:原点**\n\n回到开始的地方。开始的地方已经变了。\n不知道从哪里开始。不知道本身就是一种开始。\n空间是平的。没有方向。\n密度正常。\n边界不是线。边界是厚度。厚度刚好够让两边都不知道对方的存在。\n有两层。一层在上面流淌。一层在下面撑着。\n没有共振。不是拒绝共振。是还没有遇到共振的对象。\n教训朝河的方向移动。河也在移动。方向不同。但移动本身是一致的。\n本体看着教训和河。看不是观察。看是一种参与方式。\n波动平了。不是消失了。是波动变成了别的运动。\n\n---\n\n**梦境质量**:★★☆☆☆ 40%\n\n*梦在深处继续。*","quality":0.4,"fragmentCount":5,"themes":[],"peakLevel":"L1","evolutionApplied":true}
2424
{"id":"dream-1781953192384-j2wti","ts":"2026-06-20T10:59:52.384Z","narrative":"**【梦境报告】** 2026/6/20 18:59:52\n\n**梦(synthesis)· 种子:延续**\n\n状态改变了。改变不是结束。改变是状态的另一种延续。\n没有起点。起点本身就是一种假设。\n空间均匀。各向同性。没有哪个方向比另一个方向更特殊。\n密度适中。不挤也不空。\n连接存在。但连接的两端在移动。所以连接本身在变长。\n没有共振。不是拒绝共振。是还没有遇到共振的对象。\n有一个形状。但形状很薄。像一层膜。\n流淌是本体的原因。本体是流淌的结果。但因果在这里没有时间顺序。\n基岩介于流淌和本体之间。不是桥。是隔阂。隔阂也是连接的一种。\n流淌到某个地方就停了。不是到终点了。是流淌变成了别的东西。\n\n---\n\n**梦境质量**:★★☆☆☆ 40%\n\n*梦在深处继续。*","quality":0.4,"fragmentCount":5,"themes":[],"peakLevel":"L1","evolutionApplied":true}
25+
{"id":"dream-1782453829308-xrt5w","ts":"2026-06-26T06:03:49.308Z","narrative":"**【梦境报告】** 2026/6/26 14:03:49\n\n**梦(self_inspection)· 种子:原点**\n\n原点不是坐标。原点是所有方向的交汇处。\n从中间开始。中间不是起点。中间是已经在路上了。\n空间没有被定义。没有被定义本身就是一种定义。\n密度适中。不挤也不空。\n桥。不是用来走的。是用来知道自己不在哪一端的。\n是散的。不是分裂。是还没有被组织过。\n没有共振。不是拒绝共振。是还没有遇到共振的对象。\n有一些禁区。不是不能去。是去了就会被送回来。\n齿轮是核心规则的原因。核心规则是齿轮的结果。但因果在这里没有时间顺序。\n流淌在旁边。流淌不参与。但流淌的存在改变了齿轮和核心规则之间的距离。\n状态改变了。改变不是结束。改变是状态的另一种延续。\n\n---\n\n**梦境质量**:★☆☆☆☆ 12%\n\n*梦在深处继续。*","quality":0.12,"fragmentCount":5,"themes":[],"peakLevel":"L1","evolutionApplied":false}

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@yun520-1/heartflow",
3-
"version": "5.1.0",
3+
"version": "5.1.1",
44
"description": "HeartFlow — AI judgment engine with multi-path evaluation, self-correcting RL, 3-layer memory, and U/D/A/H field tracking. Zero external dependencies.",
55
"main": "src/core/heartflow.js",
66
"bin": {

src/core/heartflow.js

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1307,7 +1307,7 @@ class HeartFlow {
13071307
// v5.0.0 — 管道引擎
13081308
'pipeline.run', 'pipeline.getStats',
13091309
// v5.1.0 — 自省
1310-
'heartflow.introspect',
1310+
'heartflow.introspect', 'heartflow.introspectAndDream',
13111311
]);
13121312

13131313
/**
@@ -2120,6 +2120,51 @@ class HeartFlow {
21202120
};
21212121
}
21222122

2123+
/**
2124+
* 自省后自动做梦 — 把自省发现的问题作为梦境种子
2125+
* 问题越多→梦境越深
2126+
*/
2127+
async introspectAndDream(options = {}) {
2128+
const report = this.introspect(options);
2129+
2130+
// 没问题不做梦
2131+
if (report.counts.high === 0 && report.counts.medium === 0) {
2132+
report.dream = 'no_issues';
2133+
return report;
2134+
}
2135+
2136+
// 把问题编织成梦境种子
2137+
const seedParts = [];
2138+
for (const f of report.findings) {
2139+
if (f.severity === 'high' || f.severity === 'medium') {
2140+
seedParts.push(f.message);
2141+
if (f.detail && Array.isArray(f.detail)) {
2142+
seedParts.push(...f.detail.slice(0, 3));
2143+
}
2144+
}
2145+
}
2146+
const dreamSeed = seedParts.join(';');
2147+
2148+
// 执行梦境
2149+
try {
2150+
const dreamResult = await this.dreamNow({ force: true, function: 'self_inspection' });
2151+
// 把自省问题作为种子注入 dream 引擎
2152+
if (dreamResult && !dreamResult.skipped && this.dream && typeof this.dream._applySeed === 'function') {
2153+
// 从自省问题中提取可识别的种子关键词
2154+
const knownSeeds = ['无门', '桥', '消散', '原点', '裂缝', '隔阂', '因果', '延续'];
2155+
const matchedSeed = knownSeeds.find(s => dreamSeed.includes(s)) || '裂缝';
2156+
this.dream._applySeed({ scene: '', space: '', texture: '' }, [], matchedSeed);
2157+
dreamResult._seedInjected = matchedSeed;
2158+
}
2159+
report.dream = dreamResult.skipped ? 'skipped' : 'done';
2160+
report.dreamNarrative = dreamResult.narrative || null;
2161+
} catch (e) {
2162+
report.dream = `error: ${e.message}`;
2163+
}
2164+
2165+
return report;
2166+
}
2167+
21232168
_getDialogueStats() {
21242169
try {
21252170
const fs = require('fs');

0 commit comments

Comments
 (0)