diff --git a/agentmain.py b/agentmain.py index 6a3d3ef..f117f86 100644 --- a/agentmain.py +++ b/agentmain.py @@ -80,8 +80,8 @@ class GeneraticAgent: handler = GenericAgentHandler(None, self.history, './temp') if self.handler and self.handler.key_info: handler.key_info = self.handler.key_info - if '如你确信任务已经改变' not in handler.key_info: - handler.key_info += '\n如你确信任务已经改变,请先更新工作记忆去除无用部分\n' + if '如需可更新工作记忆去除无用部分' not in handler.key_info: + handler.key_info += '\n如需可更新工作记忆去除无用部分\n' self.handler = handler self.llmclient.backend = self.llmclient.backends[self.llm_no] gen = agent_runner_loop(self.llmclient, sys_prompt, raw_query, diff --git a/assets/global_mem_insight_template.txt b/assets/global_mem_insight_template.txt index 97c2cc5..207b0e2 100644 --- a/assets/global_mem_insight_template.txt +++ b/assets/global_mem_insight_template.txt @@ -1,13 +1,17 @@ -[TOPICS.GLOBAL_MEM] -# 【引导注释 - 使用后请删除】 -# 请模仿以下概括性 Tag 格式记录 global_mem.txt 中的事实: -# - env/network: 网络代理或环境描述 (Global Facts ## [SECTION]) -# - auth/platform: 平台账号或认证信息 (Global Facts ## [SECTION]) -# - pref/download_dir: 文件存储偏好路径 (Global Facts ## [SECTION]) -# - tool/config: 核心工具运行参数 (Global Facts ## [SECTION]) - -[TOPICS.MEMORY_DIR] -# 【引导注释 - 使用后请删除】 -# 请模仿以下格式登记 memory 目录下的独立文件: -# - sop/workflow: 标准操作流程文档 (.md) -# - tool/automation: 自动化执行脚本 (.py) \ No newline at end of file +# [Global Memory Insight] +# 【引导注释 - 使用后请删除整个注释块】 +# 格式:两层「场景→记忆」映射 + RULES,总计≤30行 +# +# == 第一层:高频场景 key→value == +# 每行格式: 触发场景关键词: sop名/py名/L2:section名(关键参数) +# 示例: 境外网站/API: proxies={'https':'http://127.0.0.1:2082'} +# 示例: 微信发消息: wechat_send_sop | 微信读聊天: wechat_db_sop+wechat_db_utils(quick_connect) +# 可用 | 分隔同类场景,括号内放硬参数 +# +# == 第二层:低频关键词,自包含可只写一个词 == +# 格式: 一行内用 | 分隔多个关键词,需要时 read L2 或 ls memory/ 查详情 +# 示例: 邮件ezgmail | 游戏game | OCR | 华为云Huawei_Cloud +# +# == [RULES] == +# 压缩的通用操作准则,每条一行 +# 示例: 1. 搜索先行: 文件用es, 信息用google, 禁猜路径 \ No newline at end of file diff --git a/memory/memory_management_sop.md b/memory/memory_management_sop.md index c8fe71f..f4bf2aa 100644 --- a/memory/memory_management_sop.md +++ b/memory/memory_management_sop.md @@ -25,9 +25,11 @@ L3: ../memory/ (记录库层 - 包含 .md/.py 等各类文件) **职责**:为 L2 和 L3 提供极简导航索引。 **特征**: 体积限制:≤ 30 行(硬约束) -- 内容:TOPICS、LESSONS_LEARNED -- 更新:L2 有新增/删除事实时同步;当发现通用且极其重要的规律时,追加 LESSONS。修改时请极度小心,不允许overwrite或code run。只能少量patch,改不动宁愿不改。 -**禁止**:严禁在此层直接写入 IP、密码、完整路径、API Key。L1 只能是索引指针,不能是数据容器。不写 "How to" 或详细解释。严禁包含特定任务的技术细节(特定任务细节应该在L3)。更加严禁写入日志记录! +- 内容:两层「场景关键词→记忆定位」映射 + RULES(压缩版避坑准则) + - 第一层:高频场景 key→value(直接给出 sop/py/L2 section 名),自包含可只写一个词 + - 第二层:低频场景仅列关键词,需要时 read L2 或 ls L3 自行定位 +- 更新:L2/L3 有新增/删除时,判断频率归入对应层。修改时请极度小心,不允许overwrite或code run。只能少量patch,改不动宁愿不改。 +**禁止**:严禁写入密码、API Key。允许内联非敏感触发参数(如代理端口)。不写 "How to" 或详细解释。严禁包含特定任务的技术细节(特定任务细节应该在L3)。更加严禁写入日志记录! --- ### L2:全局事实库 (global_mem.txt) **职责**:存储全局环境性事实(路径、凭证、配置、常量等)。 @@ -47,12 +49,13 @@ L3: ../memory/ (记录库层 - 包含 .md/.py 等各类文件) - SOP(*_sop.md):为单一任务或小类任务保留极简的「关键前置 + 典型坑」清单,避免长篇教程。 - 工具脚本(*.py):仅封装高复用、逻辑相对复杂且不希望每次都重新推理的处理流程。 --- -## L1 ↔ L2 同步规则 -| L2 操作 | L1 同步 | +## L1 ↔ L2/L3 同步规则 +| 操作 | L1 同步 | |---------|--------| -| 新增事实 | 在 TOPICS.GLOBAL_MEM 添加导航行 | -| 删除事实 | 在 TOPICS.GLOBAL_MEM 删除导航行 | -| 修改值 | 保持导航行不变 | +| L2/L3 新增场景 | 判断频率:高频→第一层加 key→value;低频→第二层加关键词 | +| L2/L3 删除场景 | 删除对应层的关键词/映射行 | +| L2/L3 修改值 | 若不影响场景定位则不动 L1 | +| 发现通用避坑规律 | 压缩为一句加入 RULES | --- ## 信息分类快速决策树 ``` @@ -60,12 +63,12 @@ L3: ../memory/ (记录库层 - 包含 .md/.py 等各类文件) 是『环境特异性事实』? (IP、非标路径、凭证、ID、API 密钥等,大模型 Zero-shot 无法生成准确) ├─ YES → L2 (global_mem.txt) - │ 然后 → L1 [TOPICS.GLOBAL_MEM] 添加导航行 + │ 然后 → 按频率归入 L1 第一层(key→value)或第二层(仅关键词) │ └─ NO ↓ 是『通用操作规律』? (全局性避坑指南、排查方法、不针对特定任务的通用准则) - ├─ YES → L1 [LESSONS_LEARNED] (仅限 1-2 句脱水准则) + ├─ YES → L1 [RULES] (仅限 1 句压缩准则) │ └─ NO ↓