@yun520-1/heartflow 0.15.2 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +64 -163
- package/VERSION +1 -1
- package/install.sh +26 -117
- package/meaningful-core.json +26 -0
- package/package.json +9 -18
- package/src/core/heartflow.js +187 -532
- package/src/dream/engine.js +99 -0
- package/src/evolution/loop.js +145 -0
- package/src/psychology/engine.js +268 -0
- package/tests/run.js +195 -0
- package/AI-AGENT-README.md +0 -154
- package/CLAIMS.md +0 -23
- package/CORE_VALUES.md +0 -50
- package/INSTALL_FOR_AI.md +0 -104
- package/QUICK_START.md +0 -77
- package/READ/refresh_11.2.6.md +0 -6
- package/README.zh.md +0 -49
- package/REPO_STRUCTURE.md +0 -47
- package/SKILL.md.new +0 -1
- package/_test_memory.mjs +0 -52
- package/assets/banner.png +0 -0
- package/bin/cli.js +0 -167
- package/bin/setup.js +0 -382
- package/co-evolution/index.ts +0 -511
- package/com.heartflow.auto-evolution.plist.disabled +0 -26
- package/com.heartflow.auto-upgrade.plist.disabled +0 -26
- package/com.heartflow.comfyui-monitor.plist.disabled +0 -22
- package/com.heartflow.enhanced-upgrade.plist.disabled +0 -22
- package/com.heartflow.full-audit.plist +0 -28
- package/com.heartflow.github-audit.plist +0 -21
- package/com.heartflow.paper-upgrade.plist.disabled +0 -21
- package/config/ai-config.json +0 -12
- package/config/ai-providers.json +0 -14
- package/dict-data/generate-graph.js +0 -203
- package/dist/agent/runtime/AgentRuntime.d.ts +0 -212
- package/dist/agent/runtime/AgentRuntime.d.ts.map +0 -1
- package/dist/agent/runtime/AgentRuntime.js +0 -355
- package/dist/agent/runtime/AgentRuntime.js.map +0 -1
- package/dist/agent/runtime/PlanExecutor.d.ts +0 -132
- package/dist/agent/runtime/PlanExecutor.d.ts.map +0 -1
- package/dist/agent/runtime/PlanExecutor.js +0 -322
- package/dist/agent/runtime/PlanExecutor.js.map +0 -1
- package/dist/agent/runtime/TaskGraph.d.ts +0 -170
- package/dist/agent/runtime/TaskGraph.d.ts.map +0 -1
- package/dist/agent/runtime/TaskGraph.js +0 -390
- package/dist/agent/runtime/TaskGraph.js.map +0 -1
- package/dist/agent/runtime/TaskScheduler.d.ts +0 -120
- package/dist/agent/runtime/TaskScheduler.d.ts.map +0 -1
- package/dist/agent/runtime/TaskScheduler.js +0 -301
- package/dist/agent/runtime/TaskScheduler.js.map +0 -1
- package/dist/agent/runtime/index.d.ts +0 -17
- package/dist/agent/runtime/index.d.ts.map +0 -1
- package/dist/agent/runtime/index.js +0 -22
- package/dist/agent/runtime/index.js.map +0 -1
- package/dist/agent/runtime/test-runtime.d.ts +0 -2
- package/dist/agent/runtime/test-runtime.d.ts.map +0 -1
- package/dist/agent/runtime/test-runtime.js +0 -71
- package/dist/agent/runtime/test-runtime.js.map +0 -1
- package/dist/agent/tools/BashTool.d.ts +0 -44
- package/dist/agent/tools/BashTool.d.ts.map +0 -1
- package/dist/agent/tools/BashTool.js +0 -355
- package/dist/agent/tools/BashTool.js.map +0 -1
- package/dist/agent/tools/FileReadTool.d.ts +0 -29
- package/dist/agent/tools/FileReadTool.d.ts.map +0 -1
- package/dist/agent/tools/FileReadTool.js +0 -196
- package/dist/agent/tools/FileReadTool.js.map +0 -1
- package/dist/agent/tools/FileWriteTool.d.ts +0 -35
- package/dist/agent/tools/FileWriteTool.d.ts.map +0 -1
- package/dist/agent/tools/FileWriteTool.js +0 -204
- package/dist/agent/tools/FileWriteTool.js.map +0 -1
- package/dist/agent/tools/Tool.d.ts +0 -75
- package/dist/agent/tools/Tool.d.ts.map +0 -1
- package/dist/agent/tools/Tool.js +0 -54
- package/dist/agent/tools/Tool.js.map +0 -1
- package/dist/agent/tools/WebSearchTool.d.ts +0 -27
- package/dist/agent/tools/WebSearchTool.d.ts.map +0 -1
- package/dist/agent/tools/WebSearchTool.js +0 -136
- package/dist/agent/tools/WebSearchTool.js.map +0 -1
- package/dist/cli/commands/engines.d.ts +0 -39
- package/dist/cli/commands/engines.d.ts.map +0 -1
- package/dist/cli/commands/engines.js +0 -275
- package/dist/cli/commands/engines.js.map +0 -1
- package/dist/cli/commands/health.d.ts +0 -34
- package/dist/cli/commands/health.d.ts.map +0 -1
- package/dist/cli/commands/health.js +0 -381
- package/dist/cli/commands/health.js.map +0 -1
- package/dist/cli/commands/repl.d.ts +0 -40
- package/dist/cli/commands/repl.d.ts.map +0 -1
- package/dist/cli/commands/repl.js +0 -286
- package/dist/cli/commands/repl.js.map +0 -1
- package/dist/cli/commands/status.d.ts +0 -22
- package/dist/cli/commands/status.d.ts.map +0 -1
- package/dist/cli/commands/status.js +0 -266
- package/dist/cli/commands/status.js.map +0 -1
- package/dist/cli/index.d.ts +0 -7
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/index.js +0 -13
- package/dist/cli/index.js.map +0 -1
- package/dist/core/consciousness/2308.08708_upgrade.d.ts +0 -321
- package/dist/core/consciousness/2308.08708_upgrade.d.ts.map +0 -1
- package/dist/core/consciousness/2308.08708_upgrade.js +0 -917
- package/dist/core/consciousness/2308.08708_upgrade.js.map +0 -1
- package/dist/core/dream/dream-consolidator.d.ts +0 -11
- package/dist/core/dream/dream-consolidator.d.ts.map +0 -1
- package/dist/core/dream/dream-consolidator.js +0 -188
- package/dist/core/dream/dream-consolidator.js.map +0 -1
- package/dist/core/dream/dream.d.ts +0 -71
- package/dist/core/dream/dream.d.ts.map +0 -1
- package/dist/core/dream/dream.js +0 -318
- package/dist/core/dream/dream.js.map +0 -1
- package/dist/core/dream/index.d.ts +0 -38
- package/dist/core/dream/index.d.ts.map +0 -1
- package/dist/core/dream/index.js +0 -185
- package/dist/core/dream/index.js.map +0 -1
- package/dist/core/emotion/deep-emotion.js +0 -574
- package/dist/core/emotion/emotion-engine.js +0 -138
- package/dist/core/emotion/index.d.ts +0 -44
- package/dist/core/emotion/index.d.ts.map +0 -1
- package/dist/core/emotion/index.js +0 -41
- package/dist/core/emotion/index.js.map +0 -1
- package/dist/core/heartcore/health-check.d.ts +0 -43
- package/dist/core/heartcore/health-check.d.ts.map +0 -1
- package/dist/core/heartcore/health-check.js +0 -152
- package/dist/core/heartcore/health-check.js.map +0 -1
- package/dist/core/heartcore/heartbeat.d.ts +0 -45
- package/dist/core/heartcore/heartbeat.d.ts.map +0 -1
- package/dist/core/heartcore/heartbeat.js +0 -127
- package/dist/core/heartcore/heartbeat.js.map +0 -1
- package/dist/core/heartcore/sleep-wake.d.ts +0 -61
- package/dist/core/heartcore/sleep-wake.d.ts.map +0 -1
- package/dist/core/heartcore/sleep-wake.js +0 -173
- package/dist/core/heartcore/sleep-wake.js.map +0 -1
- package/dist/core/heartcore/startup-check.d.ts +0 -38
- package/dist/core/heartcore/startup-check.d.ts.map +0 -1
- package/dist/core/heartcore/startup-check.js +0 -148
- package/dist/core/heartcore/startup-check.js.map +0 -1
- package/dist/core/index.js +0 -267
- package/dist/core/knowledge/index.d.ts +0 -95
- package/dist/core/knowledge/index.d.ts.map +0 -1
- package/dist/core/knowledge/index.js +0 -14
- package/dist/core/knowledge/index.js.map +0 -1
- package/dist/core/knowledge/knowledge-graph.js +0 -359
- package/dist/core/psychology/index.d.ts +0 -59
- package/dist/core/psychology/index.d.ts.map +0 -1
- package/dist/core/psychology/index.js +0 -268
- package/dist/core/psychology/index.js.map +0 -1
- package/dist/core/reasoning/bounded-rationality.d.ts +0 -76
- package/dist/core/reasoning/bounded-rationality.d.ts.map +0 -1
- package/dist/core/reasoning/bounded-rationality.js +0 -257
- package/dist/core/reasoning/bounded-rationality.js.map +0 -1
- package/dist/core/reasoning/causal-reasoning.d.ts +0 -89
- package/dist/core/reasoning/causal-reasoning.d.ts.map +0 -1
- package/dist/core/reasoning/causal-reasoning.js +0 -282
- package/dist/core/reasoning/causal-reasoning.js.map +0 -1
- package/dist/core/reasoning/index.d.ts +0 -38
- package/dist/core/reasoning/index.d.ts.map +0 -1
- package/dist/core/reasoning/index.js +0 -93
- package/dist/core/reasoning/index.js.map +0 -1
- package/dist/core/self-evolution/index.d.ts +0 -75
- package/dist/core/self-evolution/index.d.ts.map +0 -1
- package/dist/core/self-evolution/index.js +0 -311
- package/dist/core/self-evolution/index.js.map +0 -1
- package/dist/storage/checkpoint/CheckpointEngine.d.ts +0 -110
- package/dist/storage/checkpoint/CheckpointEngine.d.ts.map +0 -1
- package/dist/storage/checkpoint/CheckpointEngine.js +0 -227
- package/dist/storage/checkpoint/CheckpointEngine.js.map +0 -1
- package/dist/storage/checkpoint.d.ts +0 -18
- package/dist/storage/checkpoint.d.ts.map +0 -1
- package/dist/storage/checkpoint.js +0 -61
- package/dist/storage/checkpoint.js.map +0 -1
- package/dist/storage/index.d.ts +0 -61
- package/dist/storage/index.d.ts.map +0 -1
- package/dist/storage/index.js +0 -84
- package/dist/storage/index.js.map +0 -1
- package/dist/storage/vector/VectorStoreEngine.d.ts +0 -24
- package/dist/storage/vector/VectorStoreEngine.d.ts.map +0 -1
- package/dist/storage/vector/VectorStoreEngine.js +0 -197
- package/dist/storage/vector/VectorStoreEngine.js.map +0 -1
- package/distributed/-v2026.5.7/META.json +0 -9
- package/distributed/-v2026.5.7/package.json +0 -12
- package/distributed/.personal_backup/deepseek-key-v2026.5.7/META.json +0 -9
- package/distributed/.personal_backup/deepseek-key-v2026.5.7/package.json +0 -12
- package/distributed/.personal_backup/git-push-v2026.5.7/META.json +0 -9
- package/distributed/.personal_backup/git-push-v2026.5.7/package.json +0 -12
- package/distributed/.personal_backup/heartflow-always-upgrade-v2026.5.7/META.json +0 -9
- package/distributed/.personal_backup/heartflow-always-upgrade-v2026.5.7/package.json +0 -12
- package/distributed/.personal_backup/key-a-v2026.5.7/META.json +0 -9
- package/distributed/.personal_backup/key-a-v2026.5.7/package.json +0 -12
- package/distributed/.personal_backup/merge-memory-systems-v2026.5.7/META.json +0 -9
- package/distributed/.personal_backup/merge-memory-systems-v2026.5.7/package.json +0 -12
- package/distributed/.personal_backup/search-papers-first-v2026.5.7/META.json +0 -9
- package/distributed/.personal_backup/search-papers-first-v2026.5.7/package.json +0 -12
- package/distributed/.personal_backup/v11-5-8-v2026.5.7/META.json +0 -9
- package/distributed/.personal_backup/v11-5-8-v2026.5.7/package.json +0 -12
- package/distributed/.personal_backup/v11-5-9-v2026.5.7/META.json +0 -9
- package/distributed/.personal_backup/v11-5-9-v2026.5.7/package.json +0 -12
- package/distributed/MANIFEST.json +0 -5
- package/distributed/bundles/install--v2026.5.7.sh +0 -21
- package/distributed/bundles/install-deepseek-key-v2026.5.7.sh +0 -21
- package/distributed/bundles/install-git-push-v2026.5.7.sh +0 -21
- package/distributed/bundles/install-heartflow-always-upgrade-v2026.5.7.sh +0 -21
- package/distributed/bundles/install-key-a-v2026.5.7.sh +0 -21
- package/distributed/bundles/install-merge-memory-systems-v2026.5.7.sh +0 -21
- package/distributed/bundles/install-search-papers-first-v2026.5.7.sh +0 -21
- package/distributed/bundles/install-v11-5-8-v2026.5.7.sh +0 -21
- package/distributed/bundles/install-v11-5-9-v2026.5.7.sh +0 -21
- package/distributed/heartflow-knowledge-base/INDEX.json +0 -29
- package/distributed/heartflow-knowledge-base/PATTERNS.json +0 -74
- package/distributed/heartflow-knowledge-base/package.json +0 -28
- package/distributed_upgrades/TASK_CONFIG.json +0 -20
- package/distributed_upgrades/UPGRADE_BATCH_STATUS.json +0 -29
- package/distributed_upgrades/distributed_upgrades/agent_0.pid +0 -1
- package/distributed_upgrades/distributed_upgrades/agent_1.pid +0 -1
- package/distributed_upgrades/distributed_upgrades/agent_2.pid +0 -1
- package/distributed_upgrades/distributed_upgrades/agent_3.pid +0 -1
- package/distributed_upgrades/distributed_upgrades/agent_4.pid +0 -1
- package/distributed_upgrades/distributed_upgrades/agent_5.pid +0 -1
- package/distributed_upgrades/distributed_upgrades/paper_batches.txt +0 -200
- package/distributed_upgrades/launch-distributed.sh +0 -83
- package/docs/ACTION_PLAN_2026-04-06_0941.md +0 -117
- package/docs/ANALYSIS_REPORT.md +0 -766
- package/docs/APPLICATION_GUIDE.md +0 -444
- package/docs/AUTO_UPGRADE_REPORT_v6.2.56.md +0 -45
- package/docs/AWAKENING_SYSTEM_GUIDE.md +0 -285
- package/docs/BILINGUAL_STANDARD.md +0 -156
- package/docs/BRAND_GUIDELINES.md +0 -251
- package/docs/CODE_OPTIMIZATION_PLAN.md +0 -293
- package/docs/COMPLETE_FIX_SUMMARY.md +0 -250
- package/docs/CONTINUOUS_REFLECTION_2026-04-06_1031.md +0 -233
- package/docs/CONTRIBUTING.md +0 -87
- package/docs/CRON_JOBS_REVIEW_v6.md +0 -60
- package/docs/DATA_FLOW_ARCHITECTURE.md +0 -373
- package/docs/DEEPEST_REFLECTION_2026-04-06_0941.md +0 -167
- package/docs/DEEP_REFLECTION_2026-04-05.md +0 -204
- package/docs/DEEP_VALIDATION_20260403.md +0 -319
- package/docs/DEEP_VALIDATION_20260404.md +0 -295
- package/docs/EMOTION_THEORY_INTEGRATION.md +0 -483
- package/docs/ERROR_FIX_REPORT_2026-04-07.md +0 -316
- package/docs/EVOLUTION_SYSTEM.md +0 -96
- package/docs/FEATURES_SIMPLE.md +0 -53
- package/docs/FEATURES_v5.3.md +0 -291
- package/docs/FEATURES_v7.1.md +0 -172
- package/docs/FINAL_RUN_REPORT_20260403.md +0 -202
- package/docs/GITHUB_COMPLETE_DOCUMENTATION_v6.0.2.md +0 -579
- package/docs/GITHUB_PUSH_LOG.md +0 -16
- package/docs/GITHUB_RELEASE.md +0 -138
- package/docs/GITHUB_RELEASE_v5.3.0.md +0 -395
- package/docs/GITHUB_RELEASE_v6.0.0.md +0 -74
- package/docs/HEARTFLOW_V6_GITHUB_PUSH.md +0 -159
- package/docs/HEARTFLOW_V6_MANIFESTO.md +0 -287
- package/docs/HEARTFLOW_V6_README.md +0 -299
- package/docs/HEARTFLOW_V6_TASK_REVIEW.md +0 -215
- package/docs/HEARTFLOW_VALUES_AND_MISSION.md +0 -177
- package/docs/HeartFlow_Monograph_Volume_II_Chapter_01.md +0 -377
- package/docs/HeartFlow_Monograph_Volume_II_Chapter_02.md +0 -324
- package/docs/HeartFlow_Monograph_Volume_II_Start.md +0 -78
- package/docs/HeartFlow_Monograph_Volume_I_Final.md +0 -9464
- package/docs/INSTALLATION_DIAGNOSIS.md +0 -368
- package/docs/INTEGRATION_CHECKLIST_v6.1.41.md +0 -229
- package/docs/INTEGRATION_SUMMARY.md +0 -380
- package/docs/INTELLIGENT_ROUTING_SYSTEM.md +0 -329
- package/docs/LEARNING_PHILOSOPHY.md +0 -320
- package/docs/LOGIC_AUDIT_REPORT_20260405.md +0 -369
- package/docs/MOTIVE_CHECK_2026-04-06_0945.md +0 -90
- package/docs/PERSONALITY_CALCULATION_RULES.md +0 -104
- package/docs/PERSONALITY_SYNC_FIX.md +0 -166
- package/docs/PROJECT_SUMMARY.md +0 -347
- package/docs/PUBLISH_GUIDE.md +0 -149
- package/docs/README_UPDATE_STANDARD.md +0 -357
- package/docs/README_v5.3.md +0 -519
- package/docs/RELEASE_v6.2.0.md +0 -240
- package/docs/SAGE_PATH_2026-04-06_0952.md +0 -265
- package/docs/SELF_REFLECTION_2026-04-06_1006.md +0 -311
- package/docs/SEVEN_SYSTEMS.md +0 -642
- package/docs/SMART_EVOLUTION_GUIDE.md +0 -103
- package/docs/SMART_EVOLUTION_v4.md +0 -194
- package/docs/SYNC_REPORT_1775363972464.json +0 -23
- package/docs/SYNC_REPORT_1775364446763.json +0 -23
- package/docs/SYNC_REPORT_1775364984353.json +0 -23
- package/docs/SYNC_REPORT_1775397556306.json +0 -23
- package/docs/SYNC_REPORT_1775399840010.json +0 -23
- package/docs/SYNC_REPORT_1775400929082.json +0 -23
- package/docs/SYNC_REPORT_1775455697235.json +0 -23
- package/docs/SYNC_REPORT_1775459792479.json +0 -23
- package/docs/SYNC_REPORT_1775483413473.json +0 -23
- package/docs/SYSTEM_FIX_AND_VERIFICATION_REPORT.md +0 -390
- package/docs/SYSTEM_REQUIREMENTS_v6.2.52.md +0 -611
- package/docs/TASK_BREAKDOWN_CHECKLIST.md +0 -164
- package/docs/THEORY_TO_CODE_v6.2.52.md +0 -930
- package/docs/UPGRADE_COMPLETE_v6.2.33.md +0 -226
- package/docs/UPGRADE_COMPLETE_v6.2.60.md +0 -135
- package/docs/UPGRADE_COMPLETE_v6.2.66.md +0 -265
- package/docs/UPGRADE_COMPLETE_v7.1.8.md +0 -176
- package/docs/UPGRADE_COMPLETE_v7.3.95.md +0 -59
- package/docs/UPGRADE_REPORT_1775313572473.json +0 -50
- package/docs/UPGRADE_REPORT_1775364977378.json +0 -50
- package/docs/UPGRADE_REPORT_1775364984469.json +0 -55
- package/docs/UPGRADE_REPORT_1775397556425.json +0 -55
- package/docs/UPGRADE_REPORT_1775399840144.json +0 -55
- package/docs/UPGRADE_REPORT_1775400929201.json +0 -55
- package/docs/UPGRADE_REPORT_1775455697348.json +0 -55
- package/docs/UPGRADE_REPORT_1775459792601.json +0 -55
- package/docs/UPGRADE_REPORT_1775459829.md +0 -59
- package/docs/UPGRADE_REPORT_1775483413653.json +0 -55
- package/docs/UPGRADE_REPORT_v6.2.25.md +0 -172
- package/docs/UPGRADE_REPORT_v6.2.26.md +0 -166
- package/docs/UPGRADE_REPORT_v6.2.28.md +0 -214
- package/docs/UPGRADE_REPORT_v6.2.29.md +0 -186
- package/docs/VERSION_FIX_REPORT.md +0 -218
- package/docs/VERSION_HISTORY.md +0 -5
- package/docs/VERSION_INDEX.md +0 -180
- package/docs/WAY_OF_BEING_2026-04-06_0955.md +0 -241
- package/docs/ai-self-awareness-awakening.md +0 -551
- package/docs/cronjob-backup.md +0 -55
- package/docs/emotion-prototype-theory-v5.0.12.md +0 -430
- package/docs/examples.md +0 -439
- package/docs/heartflow-ppt-design.md +0 -237
- package/docs/install-troubleshooting.md +0 -21
- package/docs/phase-upgrade-template-v0.0.1.md +0 -33
- package/docs/pricing.md +0 -191
- package/docs/psych-analysis-v0.0.1.md +0 -38
- package/docs/reasoning-checklist.md +0 -60
- package/docs/self-evolution-state-v6.0.19.md +0 -391
- package/docs/self-evolution-state-v6.0.23.md +0 -293
- package/docs/self-evolution-state-v6.0.24.md +0 -281
- package/docs/self-evolution-state-v6.0.49.md +0 -267
- package/docs/self-evolution-state-v6.2.33.md +0 -269
- package/docs/self-evolution-state-v6.2.60.md +0 -180
- package/docs/self-evolution-state-v6.2.66.md +0 -520
- package/docs/self-evolution-state-v7.3.95.md +0 -165
- package/docs/self-evolution-state.md +0 -226
- package/docs/system-core-principles.md +0 -53
- package/docs/system-truth-goodness-beauty-principles.md +0 -502
- package/docs/theories/human-nature-motivation.md +0 -251
- package/docs/theories/motivation-memory-integration.md +0 -265
- package/docs/theories/sdt-test.md +0 -17
- package/docs/theory-integration-analysis-v5.2.0.md +0 -236
- package/docs/theory-update-summary-v5.0.34.md +0 -193
- package/docs/theory-update-summary-v5.0.35.md +0 -104
- package/docs/theory-update-summary-v5.0.41.md +0 -281
- package/docs/theory-update-summary-v5.0.42.md +0 -421
- package/docs/theory-update-summary-v5.0.46.md +0 -386
- package/docs/theory-update-summary-v5.0.47.md +0 -449
- package/docs/theory-update-summary-v5.0.48.md +0 -183
- package/docs/theory-update-summary-v5.0.49.md +0 -191
- package/docs/theory-update-summary-v5.0.50.md +0 -205
- package/docs/theory-update-summary-v5.0.51.md +0 -191
- package/docs/theory-update-summary-v5.0.52.md +0 -183
- package/docs/theory-update-summary-v5.0.53.md +0 -306
- package/docs/theory-update-summary-v5.0.54.md +0 -98
- package/docs/theory-update-summary-v5.0.55.md +0 -391
- package/docs/theory-update-summary-v5.0.57.md +0 -398
- package/docs/theory-update-summary-v5.0.58.md +0 -476
- package/docs/theory-update-summary-v5.0.59.md +0 -520
- package/docs/theory-update-summary-v5.0.60.md +0 -460
- package/docs/theory-update-summary-v5.0.61.md +0 -108
- package/docs/theory-update-summary-v5.0.62.md +0 -74
- package/docs/theory-update-summary-v5.0.63.md +0 -112
- package/docs/theory-update-summary-v5.0.64.md +0 -55
- package/docs/theory-update-summary-v5.0.67.md +0 -539
- package/docs/theory-update-summary-v5.2.0.md +0 -168
- package/docs/theory-update-summary-v5.2.1.md +0 -406
- package/docs/theory-update-summary-v5.2.37.md +0 -518
- package/docs/theory-update-summary-v6.0.19.md +0 -715
- package/docs/theory-update-summary-v6.0.23.md +0 -729
- package/docs/theory-update-summary-v6.0.24.md +0 -229
- package/docs/theory-update-summary-v6.0.49.md +0 -223
- package/docs/theory-update-summary-v6.2.33.md +0 -303
- package/docs/theory-update-summary-v6.2.49.md +0 -489
- package/docs/theory-update-summary-v6.2.60.md +0 -273
- package/docs/theory-update-summary-v6.2.66.md +0 -322
- package/docs/theory-update-summary-v7.3.95.md +0 -197
- package/docs/theory-update-summary.md +0 -174
- package/docs/upgrade-notes-v0.0.1.md +0 -15
- package/docs/upgrade-report-v5.0.34.md +0 -144
- package/docs/upgrade-report-v5.0.42-cron.md +0 -269
- package/docs/upgrade-report-v5.0.43-cron.md +0 -248
- package/docs/upgrade-report-v5.0.45-cron.md +0 -63
- package/docs/upgrade-report-v5.0.55-cron.md +0 -173
- package/docs/upgrade-report-v5.0.63-cron.md +0 -145
- package/docs/upgrade-report-v5.0.67-cron.md +0 -185
- package/docs/upgrade-report-v5.0.68-cron.md +0 -409
- package/docs/upgrade-report-v5.2.0-cron.md +0 -178
- package/docs/upgrade-report-v5.2.1-cron.md +0 -321
- package/docs/upgrade-report-v5.2.37-cron.md +0 -602
- package/docs/upgrade-report-v6.0.19-cron.md +0 -296
- package/docs/upgrade-report-v6.0.23-cron.md +0 -81
- package/docs/upgrade-report-v6.0.24-cron.md +0 -272
- package/docs/upgrade-report-v6.0.49-cron.md +0 -277
- package/docs/upgrade-report-v6.2.33-cron.md +0 -290
- package/docs/upgrade-report-v6.2.60-cron.md +0 -93
- package/docs/upgrade-report-v7.3.95-cron.md +0 -65
- package/docs/upgrade-report.md +0 -327
- package/docs/upgrade-v3.21.0.md +0 -249
- package/docs/v4.8.0-upgrade.md +0 -287
- package/docs/version-summary-20260429.md +0 -142
- package/explore-engine/index.ts +0 -478
- package/extract-text.py +0 -12
- package/failure-pattern-memory/index.ts +0 -234
- package/heartflow-identity/HEARTCORE/health-check.js +0 -49
- package/heartflow-identity/HEARTCORE/heartbeat.js +0 -42
- package/heartflow-identity/HEARTCORE/heartcore.js +0 -86
- package/heartflow-identity/HEARTCORE/safety-check.js +0 -282
- package/heartflow-identity/HEARTCORE/self-check.js +0 -90
- package/heartflow-identity/HEARTCORE/sleep-wake.js +0 -105
- package/heartflow-identity/LICENSE +0 -17
- package/heartflow-identity/VERSION +0 -1
- package/heartflow-identity/install.sh +0 -80
- package/languages/README_LANGS.md +0 -20
- package/languages/README_ar.md +0 -48
- package/languages/README_de.md +0 -48
- package/languages/README_en.md +0 -48
- package/languages/README_es.md +0 -48
- package/languages/README_fr.md +0 -48
- package/languages/README_ja.md +0 -48
- package/languages/README_ko.md +0 -48
- package/languages/README_zh.md +0 -85
- package/memory-log.json +0 -5
- package/migrate-memories.js +0 -101
- package/package.json.bak +0 -13
- package/patches/embodied-core-v2.2.3.patch +0 -475
- package/patches/goedel-engine-v2.2.2.patch +0 -161
- package/patches/new-features-v2.2.3.patch +0 -1371
- package/patches/self-modifier-v2.2.2.patch +0 -252
- package/run-full-audit.sh +0 -4
- package/run-github-audit.sh +0 -3
- package/run-hf.sh +0 -5
- package/run-paper-upgrade.sh +0 -5
- package/session-continuity/index.ts +0 -262
- package/shared-discovery-log/index.ts +0 -281
- package/skills/.skills_store_lock.json +0 -11
- package/skills/baidu-search/_meta.json +0 -6
- package/src/__init__.py +0 -4
- package/src/__pycache__/__init__.cpython-313.pyc +0 -0
- package/src/agent/runtime/AgentRuntime.ts +0 -481
- package/src/agent/runtime/PlanExecutor.ts +0 -441
- package/src/agent/runtime/TaskGraph.ts +0 -487
- package/src/agent/runtime/TaskScheduler.ts +0 -364
- package/src/agent/runtime/index.ts +0 -17
- package/src/agent/runtime/test-runtime.ts +0 -80
- package/src/agent/tools/BashTool.ts +0 -390
- package/src/agent/tools/FileReadTool.ts +0 -176
- package/src/agent/tools/FileWriteTool.ts +0 -182
- package/src/agent/tools/Tool.ts +0 -105
- package/src/agent/tools/WebSearchTool.ts +0 -158
- package/src/cli/commands/engines.ts +0 -280
- package/src/cli/commands/health.ts +0 -433
- package/src/cli/commands/repl.ts +0 -267
- package/src/cli/commands/status.ts +0 -264
- package/src/cli/index.ts +0 -7
- package/src/core/VERSION +0 -1
- package/src/core/__init__.py +0 -3
- package/src/core/__pycache__/__init__.cpython-313.pyc +0 -0
- package/src/core/__pycache__/heartflow.cpython-313.pyc +0 -0
- package/src/core/_upgrade_archive/upgrade_1778685492336.js +0 -118
- package/src/core/_upgrade_archive/upgrade_1778685493439.js +0 -118
- package/src/core/_upgrade_archive/upgrade_1778685559715.js +0 -346
- package/src/core/_upgrade_archive/upgrade_1778685676694.js +0 -198
- package/src/core/_upgrade_archive/upgrade_1778685861697.js +0 -345
- package/src/core/_upgrade_archive/upgrade_1778686211075.js +0 -346
- package/src/core/_upgrade_archive/upgrade_1778686749596.js +0 -198
- package/src/core/_upgrade_archive/upgrade_1778714606944.js +0 -198
- package/src/core/_upgrade_archive/upgrade_1778714616000.js +0 -345
- package/src/core/_upgrade_archive/upgrade_1778714625871.js +0 -118
- package/src/core/_upgrade_archive/upgrade_1778714990353.js +0 -346
- package/src/core/_upgrade_archive/upgrade_1778716193707.js +0 -198
- package/src/core/agent-performance.json +0 -147
- package/src/core/agents/AgentManager.js +0 -161
- package/src/core/agents/FocusAgent.js +0 -120
- package/src/core/agents/MoodAgent.js +0 -141
- package/src/core/agents/ReflectionAgent.js +0 -241
- package/src/core/agents/SelfAgent.js +0 -100
- package/src/core/agents/base-agents.js +0 -127
- package/src/core/associative-engine/association-graph.json +0 -2057
- package/src/core/associative-engine/associative-engine.js +0 -174
- package/src/core/associative-engine/chunk-detector.js +0 -246
- package/src/core/associative-engine/idiom-story-db.json +0 -1708
- package/src/core/associative-engine/lexical-associator.js +0 -195
- package/src/core/associative-engine/narrative-prototypes.json +0 -130
- package/src/core/associative-engine/narrative-retriever.js +0 -232
- package/src/core/associative-engine/semantic-converger.js +0 -267
- package/src/core/associative-engine/story-prototypes.json +0 -322
- package/src/core/associative-engine/word-by-word-generator.js +0 -222
- package/src/core/auto-upgrade-engine.js +0 -56
- package/src/core/autonomy/autonomous-decision.js +0 -199
- package/src/core/autonomy/digital-homeostasis.js +0 -259
- package/src/core/autonomy/flow-predictor.js +0 -496
- package/src/core/autonomy/goal-generator.js +0 -277
- package/src/core/autonomy/pdca-engine.js +0 -905
- package/src/core/autonomy/policy-optimizer.js +0 -286
- package/src/core/autonomy/temporal-planner.js +0 -230
- package/src/core/cognition/cognitive-engine.js +0 -224
- package/src/core/cognition/cognitive-loop.js +0 -414
- package/src/core/cognition/metacognitive-failure-predictor.js +0 -447
- package/src/core/consciousness/2308.08708_upgrade.ts +0 -1206
- package/src/core/consciousness/arena-consciousness.js +0 -441
- package/src/core/consciousness/depth-indicator.js +0 -459
- package/src/core/consciousness/global-workspace.js +0 -233
- package/src/core/consciousness/mind-wanderer.js +0 -187
- package/src/core/consciousness/self-model.js +0 -473
- package/src/core/context/context-manager.js +0 -683
- package/src/core/cortex-integration/INTEGRATION_PLAN.md +0 -63
- package/src/core/cortex-integration/hooks/cortex-hooks.mjs +0 -646
- package/src/core/cortex-integration/hooks/on_session_start.py +0 -174
- package/src/core/cortex-integration/hooks/on_tool_failure.py +0 -292
- package/src/core/cortex-integration/hooks/on_tool_success.py +0 -130
- package/src/core/dream/dream-consolidator.ts +0 -252
- package/src/core/dream/dream-loop.js +0 -610
- package/src/core/dream/dream.ts +0 -430
- package/src/core/dream/index.ts +0 -229
- package/src/core/dream/sleep-cycle.mjs +0 -208
- package/src/core/embodied/embodied-core.js +0 -276
- package/src/core/emotion/AppraisalEngine.js +0 -276
- package/src/core/emotion/EmotionCore.js +0 -237
- package/src/core/emotion/EmotionKeywords.js +0 -217
- package/src/core/emotion/EmotionRegulation.js +0 -303
- package/src/core/emotion/EmotionStates.js +0 -133
- package/src/core/emotion/EmotionTransition.js +0 -245
- package/src/core/emotion/EmotionTrigger.js +0 -182
- package/src/core/emotion/EmotionalMomentum.js +0 -270
- package/src/core/emotion/EmpathyGenerator.js +0 -106
- package/src/core/emotion/ResponseStyle.js +0 -162
- package/src/core/emotion/deep-emotion.js +0 -582
- package/src/core/emotion/emotion-arc.mjs +0 -238
- package/src/core/emotion/emotion-engine.js +0 -139
- package/src/core/emotion/index.ts +0 -65
- package/src/core/ethics/boundary-negotiation.js +0 -193
- package/src/core/ethics/guard.js +0 -219
- package/src/core/ethics/sage-guardian.js +0 -394
- package/src/core/ethics/value-internalizer.js +0 -211
- package/src/core/heartflow.py +0 -1542
- package/src/core/identity/identity-engine.js +0 -777
- package/src/core/identity/identity.js +0 -358
- package/src/core/knowledge/index.ts +0 -84
- package/src/core/knowledge/knowledge-graph.js +0 -370
- package/src/core/learning/experience-replay.js +0 -354
- package/src/core/learning/learning-engine.js +0 -734
- package/src/core/paper-processors/index.js +0 -9772
- package/src/core/papers/__init__.py +0 -0
- package/src/core/papers/__pycache__/attention_logic_verifier.cpython-313.pyc +0 -0
- package/src/core/papers/__pycache__/dream_generator.cpython-313.pyc +0 -0
- package/src/core/papers/__pycache__/emotion_memory_bridge.cpython-313.pyc +0 -0
- package/src/core/papers/__pycache__/episodic_memory.cpython-313.pyc +0 -0
- package/src/core/papers/__pycache__/memory_consolidator.cpython-313.pyc +0 -0
- package/src/core/papers/__pycache__/memory_planner.cpython-313.pyc +0 -0
- package/src/core/papers/__pycache__/reflection_engine.cpython-313.pyc +0 -0
- package/src/core/papers/__pycache__/sleep_cycle_simulator.cpython-313.pyc +0 -0
- package/src/core/papers/attention_logic_verifier.py +0 -153
- package/src/core/papers/dream_generator.py +0 -176
- package/src/core/papers/emotion_memory_bridge.py +0 -213
- package/src/core/papers/episodic_memory.py +0 -140
- package/src/core/papers/memory_consolidator.py +0 -144
- package/src/core/papers/memory_planner.py +0 -198
- package/src/core/papers/papers-index.js +0 -344
- package/src/core/papers/reflection_engine.py +0 -219
- package/src/core/papers/sleep_cycle_simulator.py +0 -133
- package/src/core/papers/v11_43_1_integration.js +0 -365
- package/src/core/papers/v11_43_2_integration.js +0 -369
- package/src/core/psychology/index.ts +0 -331
- package/src/core/reasoning/bounded-rationality.ts +0 -342
- package/src/core/reasoning/causal-reasoning.ts +0 -402
- package/src/core/reasoning/index.ts +0 -170
- package/src/core/self-evolution/attention-logic-verifier.js +0 -179
- package/src/core/self-evolution/generative-agents.js +0 -886
- package/src/core/self-evolution/goedel-engine.js +0 -991
- package/src/core/self-evolution/index.ts +0 -433
- package/src/core/self-evolution/lesson-aware-loop.mjs +0 -146
- package/src/core/self-evolution/meta-learning.js +0 -256
- package/src/core/self-evolution/reflexion-agent.js +0 -782
- package/src/core/self-evolution/reflexion-prompts.mjs +0 -284
- package/src/core/self-evolution/reflexion-v2.mjs +0 -427
- package/src/core/self-evolution/reflexion.js +0 -134
- package/src/core/self-evolution/rollback-manager.js +0 -278
- package/src/core/self-evolution/self-evolution-core.js +0 -334
- package/src/core/self-evolution/self-modifier.js +0 -248
- package/src/core/self-evolution/self-modifier.js.bak +0 -199
- package/src/core/self-evolution/self-refine.js +0 -42
- package/src/core/self-evolution/skill-improve-workflow.mjs +0 -264
- package/src/core/self-evolution/skill-knowledge.mjs +0 -374
- package/src/core/self-evolution/skill-learning-loop.mjs +0 -180
- package/src/core/self-healing/self-healing-rl.js +0 -208
- package/src/core/self-healing/self-healing.js +0 -142
- package/src/core/skills/skill-dag.js +0 -524
- package/src/core/skills/skill-loader.js +0 -62
- package/src/core/skills/skill-registry.js +0 -71
- package/src/core/task-persistence.js +0 -322
- package/src/core/theory/advanced-formulas-v7.3.3.js +0 -68
- package/src/core/theory/sep-intentionality-v7.3.2.js +0 -246
- package/src/core/theory/sep-qualia-v7.3.1.js +0 -257
- package/src/core/theory/sep-self-consciousness-v7.3.0.js +0 -222
- package/src/core/think-cli.js +0 -50
- package/src/core/upgrade-principle/SYSTEMS.md +0 -105
- package/src/core/upgrade-principle/UPGRADE_LOG.md +0 -52
- package/src/core/utils/error-handler.js +0 -228
- package/src/core/utils/fs-adapter.js +0 -36
- package/src/core/utils/logger.js +0 -25
- package/src/core/utils/retry-util.js +0 -118
- package/src/core/utils/state-snapshot.js +0 -382
- package/src/index.ts +0 -198
- package/src/self-evolution/reflexion.js +0 -553
- package/src/storage/checkpoint/CheckpointEngine.ts +0 -259
- package/src/storage/checkpoint.ts +0 -79
- package/src/storage/index.ts +0 -112
- package/src/storage/vector/VectorStoreEngine.ts +0 -205
- package/src/utils/atomic-write.js +0 -85
- package/src/utils/file-lock.js +0 -139
- package/src/utils/logger.js +0 -58
- package/src/utils/safe-path.js +0 -115
- package/src/utils/wal.js +0 -115
- package/start.sh +0 -63
- package/test_think_tmp.js +0 -10
- package/transmission/identity-bundle/README-transmission.md +0 -103
- package/transmission/identity-bundle/core-identity.md +0 -142
- package/transmission/identity-bundle/manifest.json +0 -68
- package/transmission/identity-bundle/psychology-engine.ts +0 -331
- package/truth-teller/index.ts +0 -261
- package/tsconfig.json +0 -21
- package/tsconfig.tsbuildinfo +0 -1
- package/upgrade-check.sh +0 -42
- package/upgrade-registry.json +0 -27
- package/user-mental-model/index.ts +0 -298
- package//346/234/200/345/220/216/346/233/264/346/226/260: +0 -0
|
@@ -1,782 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Reflexion Agent - Enhanced Implementation
|
|
3
|
-
* Based on "Reflexion: Language Agents with Verbal Reinforcement Learning" (Shinn et al. 2023)
|
|
4
|
-
* arXiv: 2303.11366
|
|
5
|
-
*
|
|
6
|
-
* Core Architecture:
|
|
7
|
-
* - Actor (Ma): Generates text/actions based on state observations
|
|
8
|
-
* - Evaluator (Me): Scores trajectory outputs
|
|
9
|
-
* - Self-Reflection (Msr): Generates verbal reinforcement cues
|
|
10
|
-
*
|
|
11
|
-
* Key Innovation: Verbal reinforcement via semantic gradient signals instead of weight updates
|
|
12
|
-
* Episodic memory buffer stores self-reflections for improved decision-making
|
|
13
|
-
*
|
|
14
|
-
* @version v0.13.13
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
'use strict';
|
|
18
|
-
|
|
19
|
-
const path = require('path');
|
|
20
|
-
const fs = require('fs');
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Memory buffer for storing self-reflections (episodic long-term memory)
|
|
24
|
-
* Bound by maximum experiences (Ω) to fit within LLM context limits
|
|
25
|
-
*/
|
|
26
|
-
class EpisodicMemoryBuffer {
|
|
27
|
-
constructor(maxSize = 3) {
|
|
28
|
-
this.maxSize = maxSize;
|
|
29
|
-
this.memories = [];
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
append(reflection) {
|
|
33
|
-
this.memories.push(reflection);
|
|
34
|
-
if (this.memories.length > this.maxSize) {
|
|
35
|
-
this.memories.shift(); // Remove oldest when exceeding max
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
getAll() {
|
|
40
|
-
return [...this.memories];
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
getFormatted() {
|
|
44
|
-
return this.memories
|
|
45
|
-
.map((m, i) => `[Experience ${i + 1}]: ${m.content}`)
|
|
46
|
-
.join('\n');
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
clear() {
|
|
50
|
-
this.memories = [];
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
size() {
|
|
54
|
-
return this.memories.length;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Trajectory tracker for short-term memory
|
|
60
|
-
* Records (action, observation) pairs during agent-environment interaction
|
|
61
|
-
*/
|
|
62
|
-
class TrajectoryTracker {
|
|
63
|
-
constructor() {
|
|
64
|
-
this.trajectory = [];
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
add(action, observation) {
|
|
68
|
-
this.trajectory.push({ action, observation, timestamp: Date.now() });
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
getTrajectory() {
|
|
72
|
-
return [...this.trajectory];
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
getFormatted() {
|
|
76
|
-
return this.trajectory
|
|
77
|
-
.map((t, i) => `Step ${i + 1}: Action="${t.action}" -> Observation="${t.observation}"`)
|
|
78
|
-
.join('\n');
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
clear() {
|
|
82
|
-
this.trajectory = [];
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
length() {
|
|
86
|
-
return this.trajectory.length;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
/**
|
|
91
|
-
* Self-Reflection Model
|
|
92
|
-
* Generates nuanced verbal feedback from sparse reward signals
|
|
93
|
-
* Converts binary/scalar feedback into actionable insights
|
|
94
|
-
*/
|
|
95
|
-
class SelfReflectionModel {
|
|
96
|
-
constructor() {
|
|
97
|
-
this.reflectionCount = 0;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
/**
|
|
101
|
-
* Generate self-reflection from trajectory and reward
|
|
102
|
-
* @param {string} trajectory - Formatted trajectory string
|
|
103
|
-
* @param {number} reward - Scalar reward (0 = fail, 1 = success)
|
|
104
|
-
* @param {string} task - Task description
|
|
105
|
-
* @param {string[]} priorMemories - Prior self-reflections for context
|
|
106
|
-
* @returns {object} Reflection object with content and metadata
|
|
107
|
-
*/
|
|
108
|
-
reflect(trajectory, reward, task, priorMemories = []) {
|
|
109
|
-
this.reflectionCount++;
|
|
110
|
-
|
|
111
|
-
const isSuccess = reward >= 1;
|
|
112
|
-
let content;
|
|
113
|
-
let errorType = null;
|
|
114
|
-
let suggestedAction = null;
|
|
115
|
-
|
|
116
|
-
if (isSuccess) {
|
|
117
|
-
content = this.generateSuccessReflection(trajectory, task);
|
|
118
|
-
} else {
|
|
119
|
-
const analysis = this.analyzeFailure(trajectory, task);
|
|
120
|
-
content = analysis.content;
|
|
121
|
-
errorType = analysis.errorType;
|
|
122
|
-
suggestedAction = analysis.suggestedAction;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
return {
|
|
126
|
-
id: `sr-${Date.now()}-${this.reflectionCount}`,
|
|
127
|
-
content,
|
|
128
|
-
reward,
|
|
129
|
-
isSuccess,
|
|
130
|
-
errorType,
|
|
131
|
-
suggestedAction,
|
|
132
|
-
task,
|
|
133
|
-
trajectoryLength: trajectory.split('\n').length,
|
|
134
|
-
priorMemoryCount: priorMemories.length,
|
|
135
|
-
timestamp: Date.now()
|
|
136
|
-
};
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
generateSuccessReflection(trajectory, task) {
|
|
140
|
-
const steps = trajectory.split('\n').length;
|
|
141
|
-
return `Success on "${task}" after ${steps} steps. ` +
|
|
142
|
-
`The approach of analyzing each step and maintaining context was effective. ` +
|
|
143
|
-
`Key pattern: Sequential reasoning with intermediate checkpoints ensured progress.`;
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
analyzeFailure(trajectory, task) {
|
|
147
|
-
const lines = trajectory.split('\n');
|
|
148
|
-
const hasLongTrajectory = lines.length > 10;
|
|
149
|
-
const hasRepeatedActions = this.checkRepeatedActions(lines);
|
|
150
|
-
const hasHallucination = /think|believe|know/i.test(trajectory) &&
|
|
151
|
-
!/(?:actual|real|verified|correct)/i.test(trajectory);
|
|
152
|
-
|
|
153
|
-
let errorType;
|
|
154
|
-
let suggestedAction;
|
|
155
|
-
let content;
|
|
156
|
-
|
|
157
|
-
if (hasHallucination) {
|
|
158
|
-
errorType = 'hallucination';
|
|
159
|
-
suggestedAction = 'Verify each belief against actual observations before proceeding';
|
|
160
|
-
content = `Failed "${task}" due to hallucination. ` +
|
|
161
|
-
`The agent made assumptions not grounded in environment feedback. ` +
|
|
162
|
-
`Recommendation: ${suggestedAction}`;
|
|
163
|
-
} else if (hasRepeatedActions) {
|
|
164
|
-
errorType = 'inefficient_planning';
|
|
165
|
-
suggestedAction = 'Try alternative action sequences when stuck';
|
|
166
|
-
content = `Failed "${task}" due to inefficient planning. ` +
|
|
167
|
-
`Agent repeated similar actions without progress. ` +
|
|
168
|
-
`Recommendation: ${suggestedAction}`;
|
|
169
|
-
} else if (hasLongTrajectory) {
|
|
170
|
-
errorType = 'early_mistake';
|
|
171
|
-
suggestedAction = 'Identify the critical error point in the trajectory';
|
|
172
|
-
content = `Failed "${task}" with long trajectory. ` +
|
|
173
|
-
`Early mistake cascaded into subsequent failures. ` +
|
|
174
|
-
`Need to: ${suggestedAction}`;
|
|
175
|
-
} else {
|
|
176
|
-
errorType = 'unknown';
|
|
177
|
-
suggestedAction = 'Re-analyze problem constraints and environment feedback';
|
|
178
|
-
content = `Failed "${task}" for unclear reasons. ` +
|
|
179
|
-
`Consider: ${suggestedAction}`;
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
return { content, errorType, suggestedAction };
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
checkRepeatedActions(lines) {
|
|
186
|
-
if (lines.length < 3) return false;
|
|
187
|
-
const lastActions = lines.slice(-3).map(l => l.match(/Action="([^"]+)"/)?.[1]).filter(v => typeof v === 'string');
|
|
188
|
-
return lastActions.length >= 2 && lastActions.every(a => a === lastActions[0]);
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
/**
|
|
193
|
-
* Evaluator Model
|
|
194
|
-
* Assesses trajectory quality and computes reward signals
|
|
195
|
-
*/
|
|
196
|
-
class EvaluatorModel {
|
|
197
|
-
constructor(type = 'binary') {
|
|
198
|
-
this.type = type; // 'binary', 'heuristic', 'llm'
|
|
199
|
-
this.evaluationCount = 0;
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
/**
|
|
203
|
-
* Evaluate a trajectory
|
|
204
|
-
* @param {string} trajectory - Formatted trajectory
|
|
205
|
-
* @param {object} context - Evaluation context
|
|
206
|
-
* @returns {number} Reward score
|
|
207
|
-
*/
|
|
208
|
-
evaluate(trajectory, context = {}) {
|
|
209
|
-
this.evaluationCount++;
|
|
210
|
-
|
|
211
|
-
switch (this.type) {
|
|
212
|
-
case 'binary':
|
|
213
|
-
return this.binaryEvaluate(trajectory, context);
|
|
214
|
-
case 'heuristic':
|
|
215
|
-
return this.heuristicEvaluate(trajectory, context);
|
|
216
|
-
case 'llm':
|
|
217
|
-
return this.llmEvaluate(trajectory, context);
|
|
218
|
-
default:
|
|
219
|
-
return this.binaryEvaluate(trajectory, context);
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
binaryEvaluate(trajectory, context) {
|
|
224
|
-
// Simple binary success/failure based on trajectory characteristics
|
|
225
|
-
const hasError = /(fail|error|wrong|incorrect|not found|cannot)/i.test(trajectory);
|
|
226
|
-
const hasSuccess = /(success|complete|finish|done|achieved)/i.test(trajectory);
|
|
227
|
-
|
|
228
|
-
if (hasSuccess && !hasError) return 1;
|
|
229
|
-
if (hasError) return 0;
|
|
230
|
-
|
|
231
|
-
// Default to failure if unclear
|
|
232
|
-
return 0;
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
heuristicEvaluate(trajectory, context) {
|
|
236
|
-
let score = 0.5;
|
|
237
|
-
|
|
238
|
-
// Penalize long trajectories (inefficient planning)
|
|
239
|
-
const steps = trajectory.split('\n').length;
|
|
240
|
-
if (steps > 20) score -= 0.2;
|
|
241
|
-
if (steps > 30) score -= 0.2;
|
|
242
|
-
|
|
243
|
-
// Penalize repeated actions
|
|
244
|
-
if (/(repeated|same action|again)/i.test(trajectory)) score -= 0.15;
|
|
245
|
-
|
|
246
|
-
// Reward clear completion signals
|
|
247
|
-
if (/task complete|successfully|finished/i.test(trajectory)) score += 0.3;
|
|
248
|
-
|
|
249
|
-
// Penalize halluncination indicators
|
|
250
|
-
if (/think.*but.*not.*actual/i.test(trajectory)) score -= 0.25;
|
|
251
|
-
|
|
252
|
-
return Math.max(0, Math.min(1, score));
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
llmEvaluate(trajectory, context) {
|
|
256
|
-
// Simulated LLM evaluation - in production would call actual LLM
|
|
257
|
-
// Uses heuristic as proxy
|
|
258
|
-
const hScore = this.heuristicEvaluate(trajectory, context);
|
|
259
|
-
|
|
260
|
-
// Use deterministic evaluation only — variance in LLM evaluation poisons Q-tables
|
|
261
|
-
return Math.max(0, Math.min(1, hScore));
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
isPassing(score) {
|
|
265
|
-
return score >= 1 || (this.type !== 'binary' && score >= 0.7);
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
/**
|
|
270
|
-
* Actor Model
|
|
271
|
-
* Generates actions based on state and memory context
|
|
272
|
-
* Uses in-context learning from memory buffer
|
|
273
|
-
*/
|
|
274
|
-
class ActorModel {
|
|
275
|
-
constructor() {
|
|
276
|
-
this.actionCount = 0;
|
|
277
|
-
this.prompt = '';
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
/**
|
|
281
|
-
* Generate next action given state and memory
|
|
282
|
-
* @param {string} state - Current environment state/observation
|
|
283
|
-
* @param {string} memoryContext - Formatted memory buffer content
|
|
284
|
-
* @param {object} options - Generation options
|
|
285
|
-
* @returns {string} Generated action
|
|
286
|
-
*/
|
|
287
|
-
generateAction(state, memoryContext = '', options = {}) {
|
|
288
|
-
this.actionCount++;
|
|
289
|
-
|
|
290
|
-
const { strategy = 'react' } = options;
|
|
291
|
-
|
|
292
|
-
// Build prompt with memory context
|
|
293
|
-
let prompt = `State: ${state}\n`;
|
|
294
|
-
if (memoryContext) {
|
|
295
|
-
prompt += `\nPrior experiences:\n${memoryContext}\n`;
|
|
296
|
-
}
|
|
297
|
-
prompt += `\nBased on the state and prior experiences, what is the next action?`;
|
|
298
|
-
|
|
299
|
-
this.prompt = prompt;
|
|
300
|
-
|
|
301
|
-
// Simulate action generation based on state analysis
|
|
302
|
-
const action = this.simulateActionGeneration(state, memoryContext, strategy);
|
|
303
|
-
|
|
304
|
-
return action;
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
simulateActionGeneration(state, memoryContext, strategy) {
|
|
308
|
-
const stateLower = state.toLowerCase();
|
|
309
|
-
const memoryLower = memoryContext.toLowerCase();
|
|
310
|
-
|
|
311
|
-
// Check prior memory for similar situations
|
|
312
|
-
if (memoryLower.includes('retry') || memoryLower.includes('alternative')) {
|
|
313
|
-
if (/search|find|look/i.test(stateLower)) {
|
|
314
|
-
return 'Try searching in a different location';
|
|
315
|
-
}
|
|
316
|
-
if (/move|go|navigate/i.test(stateLower)) {
|
|
317
|
-
return 'Try a different path';
|
|
318
|
-
}
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
// State-based action selection
|
|
322
|
-
if (/kitchen|cook|food/i.test(stateLower)) {
|
|
323
|
-
return 'Examine the kitchen environment';
|
|
324
|
-
}
|
|
325
|
-
if (/find|search|look/i.test(stateLower)) {
|
|
326
|
-
return 'Search the current area thoroughly';
|
|
327
|
-
}
|
|
328
|
-
if (/pick|grab|take/i.test(stateLower)) {
|
|
329
|
-
return 'Pick up the relevant object';
|
|
330
|
-
}
|
|
331
|
-
if (/use|interact|apply/i.test(stateLower)) {
|
|
332
|
-
return 'Use the object on the target';
|
|
333
|
-
}
|
|
334
|
-
|
|
335
|
-
// Default action
|
|
336
|
-
return 'Observe and gather more information';
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
getPrompt() {
|
|
340
|
-
return this.prompt;
|
|
341
|
-
}
|
|
342
|
-
}
|
|
343
|
-
|
|
344
|
-
/**
|
|
345
|
-
* Reflexion Agent - Main Class
|
|
346
|
-
* Implements the full Reflexion algorithm:
|
|
347
|
-
* 1. Actor generates trajectory using policy
|
|
348
|
-
* 2. Evaluator scores the trajectory
|
|
349
|
-
* 3. Self-Reflection generates verbal feedback
|
|
350
|
-
* 4. Feedback stored in episodic memory buffer
|
|
351
|
-
* 5. Loop until success or max trials
|
|
352
|
-
*/
|
|
353
|
-
class ReflexionAgent {
|
|
354
|
-
constructor(config = {}) {
|
|
355
|
-
this.maxTrials = config.maxTrials || 12;
|
|
356
|
-
this.maxMemorySize = config.maxMemorySize || 3;
|
|
357
|
-
|
|
358
|
-
// Initialize components
|
|
359
|
-
this.actor = new ActorModel();
|
|
360
|
-
this.evaluator = new EvaluatorModel(config.evaluatorType || 'binary');
|
|
361
|
-
this.selfReflection = new SelfReflectionModel();
|
|
362
|
-
this.memoryBuffer = new EpisodicMemoryBuffer(this.maxMemorySize);
|
|
363
|
-
this.trajectoryTracker = new TrajectoryTracker();
|
|
364
|
-
|
|
365
|
-
// State
|
|
366
|
-
this.trial = 0;
|
|
367
|
-
this.history = [];
|
|
368
|
-
this.currentTask = null;
|
|
369
|
-
|
|
370
|
-
// Callbacks for LLM integration
|
|
371
|
-
this.actorFn = config.actorFn || null; // External LLM actor
|
|
372
|
-
this.evaluatorFn = config.evaluatorFn || null; // External LLM evaluator
|
|
373
|
-
this.reflectionFn = config.reflectionFn || null; // External LLM reflection
|
|
374
|
-
|
|
375
|
-
console.log(`[ReflexionAgent] Initialized with maxTrials=${this.maxTrials}, memorySize=${this.maxMemorySize}`);
|
|
376
|
-
}
|
|
377
|
-
|
|
378
|
-
/**
|
|
379
|
-
* Run Reflexion loop for a given task
|
|
380
|
-
* @param {string} task - Task description
|
|
381
|
-
* @param {function} environmentFn - Function to execute action and return observation
|
|
382
|
-
* @returns {object} Final result with trajectory and reflections
|
|
383
|
-
*/
|
|
384
|
-
async run(task, environmentFn) {
|
|
385
|
-
this.currentTask = task;
|
|
386
|
-
this.trial = 0;
|
|
387
|
-
this.history = [];
|
|
388
|
-
this.memoryBuffer.clear();
|
|
389
|
-
this.trajectoryTracker.clear();
|
|
390
|
-
|
|
391
|
-
console.log(`[ReflexionAgent] Starting task: "${task}"`);
|
|
392
|
-
|
|
393
|
-
// Generate initial trajectory
|
|
394
|
-
await this.generateTrajectory(environmentFn);
|
|
395
|
-
|
|
396
|
-
// Evaluate initial trajectory
|
|
397
|
-
let reward = await this.evaluateCurrentTrajectory();
|
|
398
|
-
this.history.push({
|
|
399
|
-
trial: this.trial,
|
|
400
|
-
reward,
|
|
401
|
-
trajectoryLength: this.trajectoryTracker.length(),
|
|
402
|
-
memorySize: this.memoryBuffer.size()
|
|
403
|
-
});
|
|
404
|
-
|
|
405
|
-
// Initial self-reflection
|
|
406
|
-
if (reward < 1) {
|
|
407
|
-
await this.generateSelfReflection(reward);
|
|
408
|
-
}
|
|
409
|
-
|
|
410
|
-
// Reflexion loop
|
|
411
|
-
while (this.trial < this.maxTrials && !this.evaluator.isPassing(reward)) {
|
|
412
|
-
this.trial++;
|
|
413
|
-
console.log(`[ReflexionAgent] Trial ${this.trial}/${this.maxTrials}`);
|
|
414
|
-
|
|
415
|
-
// Reset environment and generate new trajectory
|
|
416
|
-
this.trajectoryTracker.clear();
|
|
417
|
-
await this.generateTrajectory(environmentFn);
|
|
418
|
-
|
|
419
|
-
// Evaluate
|
|
420
|
-
reward = await this.evaluateCurrentTrajectory();
|
|
421
|
-
|
|
422
|
-
this.history.push({
|
|
423
|
-
trial: this.trial,
|
|
424
|
-
reward,
|
|
425
|
-
trajectoryLength: this.trajectoryTracker.length(),
|
|
426
|
-
memorySize: this.memoryBuffer.size()
|
|
427
|
-
});
|
|
428
|
-
|
|
429
|
-
// Self-reflect on failure
|
|
430
|
-
if (!this.evaluator.isPassing(reward)) {
|
|
431
|
-
await this.generateSelfReflection(reward);
|
|
432
|
-
}
|
|
433
|
-
}
|
|
434
|
-
|
|
435
|
-
const success = this.evaluator.isPassing(reward);
|
|
436
|
-
console.log(`[ReflexionAgent] Completed: ${success ? 'SUCCESS' : 'MAX_TRIALS'} (trials: ${this.trial + 1})`);
|
|
437
|
-
|
|
438
|
-
return {
|
|
439
|
-
success,
|
|
440
|
-
trials: this.trial + 1,
|
|
441
|
-
finalReward: reward,
|
|
442
|
-
trajectory: this.trajectoryTracker.getTrajectory(),
|
|
443
|
-
reflections: this.memoryBuffer.getAll(),
|
|
444
|
-
history: this.history
|
|
445
|
-
};
|
|
446
|
-
}
|
|
447
|
-
|
|
448
|
-
/**
|
|
449
|
-
* Generate trajectory by interacting with environment
|
|
450
|
-
*/
|
|
451
|
-
async generateTrajectory(environmentFn) {
|
|
452
|
-
const maxSteps = 30;
|
|
453
|
-
let currentState = 'initial';
|
|
454
|
-
let step = 0;
|
|
455
|
-
|
|
456
|
-
while (step < maxSteps) {
|
|
457
|
-
// Get action from actor (or external LLM)
|
|
458
|
-
let action;
|
|
459
|
-
if (this.actorFn) {
|
|
460
|
-
action = await this.actorFn(currentState, this.memoryBuffer.getFormatted(), {
|
|
461
|
-
strategy: 'react',
|
|
462
|
-
trial: this.trial
|
|
463
|
-
});
|
|
464
|
-
} else {
|
|
465
|
-
action = this.actor.generateAction(currentState, this.memoryBuffer.getFormatted());
|
|
466
|
-
}
|
|
467
|
-
|
|
468
|
-
// Execute action — wrap in try-catch so promise rejection does not crash Reflexion loop
|
|
469
|
-
let result;
|
|
470
|
-
try {
|
|
471
|
-
result = await environmentFn(action, currentState);
|
|
472
|
-
} catch (envErr) {
|
|
473
|
-
const errMsg = envErr instanceof Error ? envErr.message : String(envErr);
|
|
474
|
-
console.warn('[ReflexionAgent] environmentFn failed:', errMsg);
|
|
475
|
-
result = { done: false, success: false, failure: false, observation: `environment error: ${errMsg}` };
|
|
476
|
-
}
|
|
477
|
-
const observation = result.observation || result;
|
|
478
|
-
|
|
479
|
-
// Track trajectory
|
|
480
|
-
this.trajectoryTracker.add(action, observation);
|
|
481
|
-
|
|
482
|
-
// Check for terminal state
|
|
483
|
-
if (result.done || result.success || result.failure) {
|
|
484
|
-
break;
|
|
485
|
-
}
|
|
486
|
-
|
|
487
|
-
currentState = observation;
|
|
488
|
-
step++;
|
|
489
|
-
}
|
|
490
|
-
}
|
|
491
|
-
|
|
492
|
-
/**
|
|
493
|
-
* Evaluate current trajectory
|
|
494
|
-
*/
|
|
495
|
-
async evaluateCurrentTrajectory() {
|
|
496
|
-
const trajectory = this.trajectoryTracker.getFormatted();
|
|
497
|
-
|
|
498
|
-
if (this.evaluatorFn) {
|
|
499
|
-
return await this.evaluatorFn(trajectory, { task: this.currentTask });
|
|
500
|
-
}
|
|
501
|
-
|
|
502
|
-
return this.evaluator.evaluate(trajectory, { task: this.currentTask });
|
|
503
|
-
}
|
|
504
|
-
|
|
505
|
-
/**
|
|
506
|
-
* Generate self-reflection and store in memory buffer
|
|
507
|
-
*/
|
|
508
|
-
async generateSelfReflection(reward) {
|
|
509
|
-
const trajectory = this.trajectoryTracker.getFormatted();
|
|
510
|
-
const priorMemories = this.memoryBuffer.getAll().map(m => m.content);
|
|
511
|
-
|
|
512
|
-
let reflection;
|
|
513
|
-
if (this.reflectionFn) {
|
|
514
|
-
reflection = await this.reflectionFn(trajectory, reward, this.currentTask, priorMemories);
|
|
515
|
-
} else {
|
|
516
|
-
reflection = this.selfReflection.reflect(trajectory, reward, this.currentTask, priorMemories);
|
|
517
|
-
}
|
|
518
|
-
|
|
519
|
-
this.memoryBuffer.append(reflection);
|
|
520
|
-
console.log(`[ReflexionAgent] Self-reflection added: ${reflection.errorType || 'success'}`);
|
|
521
|
-
|
|
522
|
-
return reflection;
|
|
523
|
-
}
|
|
524
|
-
|
|
525
|
-
/**
|
|
526
|
-
* Get current memory buffer state
|
|
527
|
-
*/
|
|
528
|
-
getMemoryState() {
|
|
529
|
-
return {
|
|
530
|
-
memories: this.memoryBuffer.getAll(),
|
|
531
|
-
formatted: this.memoryBuffer.getFormatted(),
|
|
532
|
-
size: this.memoryBuffer.size()
|
|
533
|
-
};
|
|
534
|
-
}
|
|
535
|
-
|
|
536
|
-
/**
|
|
537
|
-
* Reset agent state for new task
|
|
538
|
-
*/
|
|
539
|
-
reset() {
|
|
540
|
-
this.trial = 0;
|
|
541
|
-
this.history = [];
|
|
542
|
-
this.currentTask = null;
|
|
543
|
-
this.memoryBuffer.clear();
|
|
544
|
-
this.trajectoryTracker.clear();
|
|
545
|
-
this.selfReflection = new SelfReflectionModel();
|
|
546
|
-
console.log('[ReflexionAgent] Reset complete');
|
|
547
|
-
}
|
|
548
|
-
|
|
549
|
-
/**
|
|
550
|
-
* Get statistics
|
|
551
|
-
*/
|
|
552
|
-
getStats() {
|
|
553
|
-
return {
|
|
554
|
-
totalTrials: this.trial + 1,
|
|
555
|
-
memorySize: this.memoryBuffer.size(),
|
|
556
|
-
trajectoryLength: this.trajectoryTracker.length(),
|
|
557
|
-
actorActions: this.actor.actionCount,
|
|
558
|
-
evaluations: this.evaluator.evaluationCount,
|
|
559
|
-
reflections: this.selfReflection.reflectionCount,
|
|
560
|
-
history: this.history
|
|
561
|
-
};
|
|
562
|
-
}
|
|
563
|
-
}
|
|
564
|
-
|
|
565
|
-
/**
|
|
566
|
-
* Reflection Trigger Mechanism
|
|
567
|
-
* Monitors for conditions that should trigger self-reflection
|
|
568
|
-
* Integrates with HeartFlow's self-evolution module
|
|
569
|
-
*/
|
|
570
|
-
class ReflectionTrigger {
|
|
571
|
-
constructor(config = {}) {
|
|
572
|
-
this.thresholds = {
|
|
573
|
-
errorRate: config.errorRateThreshold || 0.3,
|
|
574
|
-
repeatedFailures: config.repeatedFailuresThreshold || 3,
|
|
575
|
-
trajectoryLength: config.trajectoryLengthThreshold || 20,
|
|
576
|
-
noProgress: config.noProgressThreshold || 5
|
|
577
|
-
};
|
|
578
|
-
|
|
579
|
-
this.state = {
|
|
580
|
-
consecutiveFailures: 0,
|
|
581
|
-
lastSuccessTrial: 0,
|
|
582
|
-
errorPatternCounts: {},
|
|
583
|
-
reflectionCount: 0
|
|
584
|
-
};
|
|
585
|
-
}
|
|
586
|
-
|
|
587
|
-
/**
|
|
588
|
-
* Check if reflection should be triggered
|
|
589
|
-
* @param {object} context - Current execution context
|
|
590
|
-
* @returns {boolean} True if reflection should be triggered
|
|
591
|
-
*/
|
|
592
|
-
shouldReflect(context = {}) {
|
|
593
|
-
const { error, trajectoryLength, trialNumber, similarErrors } = context;
|
|
594
|
-
|
|
595
|
-
// Trigger on consecutive failures
|
|
596
|
-
if (error) {
|
|
597
|
-
this.state.consecutiveFailures++;
|
|
598
|
-
|
|
599
|
-
// Track error patterns
|
|
600
|
-
const errorKey = error.substring(0, 30);
|
|
601
|
-
this.state.errorPatternCounts[errorKey] = (this.state.errorPatternCounts[errorKey] || 0) + 1;
|
|
602
|
-
|
|
603
|
-
if (this.state.consecutiveFailures >= this.thresholds.repeatedFailures) {
|
|
604
|
-
return true;
|
|
605
|
-
}
|
|
606
|
-
|
|
607
|
-
// Trigger on repeated error patterns
|
|
608
|
-
if ((this.state.errorPatternCounts[errorKey] || 0) >= 2) {
|
|
609
|
-
return true;
|
|
610
|
-
}
|
|
611
|
-
} else {
|
|
612
|
-
this.state.consecutiveFailures = 0;
|
|
613
|
-
}
|
|
614
|
-
|
|
615
|
-
// Trigger on long trajectories without success
|
|
616
|
-
if (trajectoryLength > this.thresholds.trajectoryLength && !context.success) {
|
|
617
|
-
return true;
|
|
618
|
-
}
|
|
619
|
-
|
|
620
|
-
// Trigger on no progress over many trials
|
|
621
|
-
if (trialNumber - this.state.lastSuccessTrial >= this.thresholds.noProgress) {
|
|
622
|
-
return true;
|
|
623
|
-
}
|
|
624
|
-
|
|
625
|
-
return false;
|
|
626
|
-
}
|
|
627
|
-
|
|
628
|
-
/**
|
|
629
|
-
* Record a successful outcome
|
|
630
|
-
*/
|
|
631
|
-
recordSuccess(trialNumber) {
|
|
632
|
-
this.state.lastSuccessTrial = trialNumber;
|
|
633
|
-
this.state.consecutiveFailures = 0;
|
|
634
|
-
}
|
|
635
|
-
|
|
636
|
-
/**
|
|
637
|
-
* Get trigger statistics
|
|
638
|
-
*/
|
|
639
|
-
getStats() {
|
|
640
|
-
return {
|
|
641
|
-
...this.state,
|
|
642
|
-
thresholds: this.thresholds
|
|
643
|
-
};
|
|
644
|
-
}
|
|
645
|
-
|
|
646
|
-
/**
|
|
647
|
-
* Reset trigger state
|
|
648
|
-
*/
|
|
649
|
-
reset() {
|
|
650
|
-
this.state = {
|
|
651
|
-
consecutiveFailures: 0,
|
|
652
|
-
lastSuccessTrial: 0,
|
|
653
|
-
errorPatternCounts: {},
|
|
654
|
-
reflectionCount: 0
|
|
655
|
-
};
|
|
656
|
-
}
|
|
657
|
-
}
|
|
658
|
-
|
|
659
|
-
/**
|
|
660
|
-
* Demo function demonstrating Reflexion Agent
|
|
661
|
-
*/
|
|
662
|
-
function demo() {
|
|
663
|
-
console.log('='.repeat(60));
|
|
664
|
-
console.log('Reflexion Agent Demo - Verbal Reinforcement Learning');
|
|
665
|
-
console.log('='.repeat(60));
|
|
666
|
-
|
|
667
|
-
// Create agent
|
|
668
|
-
const agent = new ReflexionAgent({
|
|
669
|
-
maxTrials: 5,
|
|
670
|
-
maxMemorySize: 3,
|
|
671
|
-
evaluatorType: 'heuristic'
|
|
672
|
-
});
|
|
673
|
-
|
|
674
|
-
// Simulated environment
|
|
675
|
-
async function simulatedEnvironment(action, state) {
|
|
676
|
-
// Simulate some processing
|
|
677
|
-
await new Promise(resolve => setTimeout(resolve, 10));
|
|
678
|
-
|
|
679
|
-
const actionLower = action.toLowerCase();
|
|
680
|
-
const stateLower = state.toLowerCase();
|
|
681
|
-
|
|
682
|
-
// Simulate different outcomes based on action
|
|
683
|
-
if (actionLower.includes('wrong') || actionLower.includes('incorrect')) {
|
|
684
|
-
return {
|
|
685
|
-
observation: 'Action resulted in error - trying again',
|
|
686
|
-
failure: false,
|
|
687
|
-
done: false
|
|
688
|
-
};
|
|
689
|
-
}
|
|
690
|
-
|
|
691
|
-
if (actionLower.includes('alternative') || actionLower.includes('different')) {
|
|
692
|
-
return {
|
|
693
|
-
observation: 'Task completed successfully',
|
|
694
|
-
success: true,
|
|
695
|
-
done: true
|
|
696
|
-
};
|
|
697
|
-
}
|
|
698
|
-
|
|
699
|
-
if (stateLower === 'initial' && actionLower.includes('observe')) {
|
|
700
|
-
return {
|
|
701
|
-
observation: 'Environment explored, found target location',
|
|
702
|
-
done: false
|
|
703
|
-
};
|
|
704
|
-
}
|
|
705
|
-
|
|
706
|
-
return {
|
|
707
|
-
observation: 'Action executed, continuing task...',
|
|
708
|
-
done: false
|
|
709
|
-
};
|
|
710
|
-
}
|
|
711
|
-
|
|
712
|
-
// Run agent
|
|
713
|
-
const task = 'Find and pick up the spatula in the kitchen';
|
|
714
|
-
|
|
715
|
-
console.log(`\nTask: ${task}`);
|
|
716
|
-
console.log('-'.repeat(60));
|
|
717
|
-
|
|
718
|
-
agent.run(task, simulatedEnvironment).then(result => {
|
|
719
|
-
console.log('\n' + '='.repeat(60));
|
|
720
|
-
console.log('RESULTS');
|
|
721
|
-
console.log('='.repeat(60));
|
|
722
|
-
console.log(`Success: ${result.success}`);
|
|
723
|
-
console.log(`Trials: ${result.trials}`);
|
|
724
|
-
console.log(`Final Reward: ${result.finalReward}`);
|
|
725
|
-
|
|
726
|
-
console.log('\n--- Trajectory ---');
|
|
727
|
-
result.trajectory.forEach((t, i) => {
|
|
728
|
-
console.log(` ${i + 1}. ${t.action} -> ${t.observation}`);
|
|
729
|
-
});
|
|
730
|
-
|
|
731
|
-
console.log('\n--- Self-Reflections (Episodic Memory) ---');
|
|
732
|
-
result.reflections.forEach((r, i) => {
|
|
733
|
-
console.log(` [${i + 1}] ${r.content}`);
|
|
734
|
-
if (r.errorType) console.log(` Error: ${r.errorType}, Suggestion: ${r.suggestedAction}`);
|
|
735
|
-
});
|
|
736
|
-
|
|
737
|
-
console.log('\n--- Statistics ---');
|
|
738
|
-
const stats = agent.getStats();
|
|
739
|
-
console.log(` Actor actions: ${stats.actorActions}`);
|
|
740
|
-
console.log(` Evaluations: ${stats.evaluations}`);
|
|
741
|
-
console.log(` Self-reflections generated: ${stats.reflections}`);
|
|
742
|
-
console.log(` Final memory size: ${stats.memorySize}`);
|
|
743
|
-
|
|
744
|
-
// Test Reflection Trigger
|
|
745
|
-
console.log('\n' + '='.repeat(60));
|
|
746
|
-
console.log('Reflection Trigger Demo');
|
|
747
|
-
console.log('='.repeat(60));
|
|
748
|
-
|
|
749
|
-
const trigger = new ReflectionTrigger({
|
|
750
|
-
repeatedFailuresThreshold: 2,
|
|
751
|
-
trajectoryLengthThreshold: 5
|
|
752
|
-
});
|
|
753
|
-
|
|
754
|
-
// Simulate failure scenarios
|
|
755
|
-
const scenarios = [
|
|
756
|
-
{ error: 'Action resulted in error', trajectoryLength: 3, trialNumber: 1 },
|
|
757
|
-
{ error: 'Action resulted in error', trajectoryLength: 4, trialNumber: 2 },
|
|
758
|
-
{ error: 'Action resulted in error', trajectoryLength: 5, trialNumber: 3 },
|
|
759
|
-
{ trajectoryLength: 25, trialNumber: 4 }
|
|
760
|
-
];
|
|
761
|
-
|
|
762
|
-
scenarios.forEach((ctx, i) => {
|
|
763
|
-
const shouldReflect = trigger.shouldReflect(ctx);
|
|
764
|
-
console.log(` Scenario ${i + 1}: ${shouldReflect ? 'TRIGGER reflection' : 'Continue normally'}`);
|
|
765
|
-
if (ctx.error) trigger.state.consecutiveFailures++;
|
|
766
|
-
});
|
|
767
|
-
|
|
768
|
-
console.log('\nDemo complete!');
|
|
769
|
-
});
|
|
770
|
-
}
|
|
771
|
-
|
|
772
|
-
// Export for HeartFlow integration
|
|
773
|
-
module.exports = {
|
|
774
|
-
ReflexionAgent,
|
|
775
|
-
EpisodicMemoryBuffer,
|
|
776
|
-
TrajectoryTracker,
|
|
777
|
-
SelfReflectionModel,
|
|
778
|
-
EvaluatorModel,
|
|
779
|
-
ActorModel,
|
|
780
|
-
ReflectionTrigger,
|
|
781
|
-
demo
|
|
782
|
-
};
|