人工智能之数字生命--“骨架真相”
现在这套系统里安全值和服务值的根需求负责给出总方向真根任务不会真正“完成”它们会反复根据当前状态去分解出下一轮阶段任务。真正会完成的是这些阶段任务下面的叶子子任务。下面我用你现在代码里的机制推演一遍。为了读起来清楚我把实际代码里的I64_MAX根目标先归一化成100来讲。逻辑不变代码里真实目标还是I64_MAX。根需求创建在自我线程模块.ixx:2363-2418需求状态判定在需求类.ixx:300-344, 370-470。1. 根需求状态先怎么算假设当前某一时刻当前安全值 60当前服务值 40根目标安全值 100根目标服务值 100按需求类::判断需求状态()的规则结果是安全需求目标差值 100 - 60 40调整方向 1已满足 false服务需求目标差值 100 - 40 60调整方向 1已满足 false也就是两个根需求都在说同一句话现在不够还要继续往上走。这就是根任务分解的起点。2. 真根任务为什么不会“做完”你的安全根任务、服务根任务在初始化时都被标记成是否真根任务 true见自我线程模块.ixx:2413-2418。而调度器和执行器都对真根任务做了特殊处理任务调度类.ixx:182-205任务执行类.ixx:1670-1688规则很明确普通任务需求满足了就可以完成真根任务就算局部阶段成功也会回到待重筹办所以根任务不是终点任务而是常驻的分解器/监督器。这点非常关键。否则你会误以为“安全根任务应该一次做完”但你这套系统的设计不是这样。3. 你现在的根任务是怎么开始分解的当前代码的实际流程是根任务进入待重筹办 / 就绪 / 筹办中私有_确保任务已引导筹办()触发先让根任务筹办器_走一次通用自动筹办如果通用筹办没生成出可执行步骤就回退到最小试探步骤安全根任务用“安全兜底方法簇”服务根任务用“服务兜底方法簇”对应代码在自我线程模块.ixx:2499-2594。也就是说你现在的实现其实是根任务 - 先尝试正常筹办 - 不行就生成兜底步骤而不是根任务 - 先显式创建一串阶段子需求节点 - 再逐层展开后者是你现在想走的“更纯”的结构我下面会按这个方向推演。4. 用安全值来推演“安全根任务”的分解4.1 当前根状态假设最近两次采样安全值62 - 60服务值42 - 40那么在私有_刷新基础方向概念与需求()里会得到安全方向 -1服务方向 -1安全服务方向关系 1然后会生成三个方向需求目标值都是1安全顺向需求服务顺向需求安全服务同向需求代码在自我线程模块.ixx:1709-1823。这里的含义是根需求的绝对目标仍然是“值要更高”方向需求则进一步要求“最近趋势要朝正确方向移动”所以此时安全根任务看到的是绝对缺口存在最近趋势还在往反方向走这时候安全根任务就应该分解出兜底阶段。4.2 安全根任务的兜底分解应该长什么样你现在的最小兜底方法候选在自我线程模块.ixx:1022-1054安全标签会拿到自我_读取核心状态外设_获取相机状态外设_读取深度相机状态外设_提取前景存在候选事实自我_观察场景自我_停止当前试探并进入保守态这里我给你一个更“任务树化”的推演。按你刚刚提出的原则安全根任务不要直接把这些方法当目标而应该把它们分解成阶段子需求。第一层安全根任务分解出“自检阶段”阶段子需求可以写成核心状态已读取 1关键外设状态已确认 1对应叶子兜底方法自我_读取核心状态外设_获取相机状态外设_读取深度相机状态这里最重要的一点是自我_读取核心状态这种方法是“观测型方法”不要把它直接绑定到“安全值上升”这个需求。因为它本身只是读不负责改变安全值。它最合适绑定的是这种叶子需求核心状态已读取 1这样它才会稳定满足。自我_读取核心状态的输出在自我本能方法_最小试探模块.ixx:246-283会写出安全值服务值待机状态时序正向步长时序反向步长服务时序衰减步长所以它很适合做自检叶子任务不适合直接承担“修复”。第二层自检结果异常时分解出“保守态阶段”如果自检后发现安全值继续下降已经进入待机风险级别升高外设链路异常那安全根任务就应继续分解保守态已建立 1对应兜底方法自我_停止当前试探并进入保守态这个方法在自我本能方法_最小试探模块.ixx:397-432会直接写试探动作_已停止 1保守态_请求 1风险级别 ...所以它非常像安全根任务的“刹车片”。第三层保守态建立后再分解出“恢复前提阶段”如果已经保守住了就不要再让安全根任务继续在雾里乱挥手。下一层应该是观察链在线 1候选事实可提取 1对应兜底方法外设_提取前景存在候选事实自我_观察场景这一步的作用不是“直接恢复安全值”而是为后续学习型恢复方法准备可用的现场事实。第四层再切到可学习成长方法只有到了这一步才应该从兜底层切到成长层重连外设恢复桥接修复某类故障优化某类安全策略这些方法的目标才可以直接对准安全值朝目标提升风险持续下降待机退出4.3 这些子任务什么时候算满足这里要分开看。叶子子任务叶子子任务看自己绑定的子需求。例如核心状态已读取 1保守态已建立 1只要方法输出把目标状态写成目标值需求判断就会得到目标差值 0调整方向 0已满足 true普通任务在调度器里就会完成见任务调度类.ixx:188-191。安全根任务安全根任务自己不会完成。即使某个阶段成功了它也只会清掉当前步骤回到待重筹办再看下一轮该分解什么这在任务执行类.ixx:1670-1688已经写死了。所以安全根任务的“满足”不是一次性完成而是它当前阶段分解出来的子需求被满足了根任务随即进入下一轮再分解。4.4 安全任务方向是怎么判定的这是你现在代码里最有意思的一段实际已经做出来了。当某个步骤执行完私有_同步方法事实到任务方向特征()会把输出场景里的事实写入到“步骤虚拟存在”和“任务头虚拟存在”如果当前值比旧值高方向记1比旧值低方向记-1不变或没旧值方向记0代码在自我线程模块.ixx:1087-1268。安全投影方向的公式是安全投影分数 3 * dir(安全值) - 3 * dir(待机状态) 1 * dir(时序正向步长) - 1 * dir(时序反向步长) - 1 * dir(服务时序衰减步长) 1 * dir(试探动作_已停止) 1 * dir(保守态_请求) - 2 * dir(风险级别)然后分数 0 安全投影方向 1分数 0 安全投影方向 -1分数 0 安全投影方向 0再去和“安全顺向需求”的目标方向比较同号 需求对齐_安全 1反号 需求对齐_安全 -1任一为 0 需求对齐_安全 04.5 安全方向举个具体例子假设某次“保守态兜底子任务”执行前后任务事实变化是试探动作_已停止0 - 1方向1保守态_请求0 - 1方向1风险级别保持 1 不变方向0待机状态1 - 0方向-1则安全投影分数约等于0 - 3 * (-1) 0 - 0 - 0 1 * (1) 1 * (1) - 2 * 0 5于是安全投影方向 1安全顺向需求目标 1需求对齐_安全 1这就表示这一步虽然不一定直接让安全值涨了很多但它在任务方向上是安全正向的。5. 用服务值来推演“服务根任务”的分解5.1 当前根状态继续用归一化例子当前服务值 40目标服务值 100最近两次服务值42 - 40于是服务根需求差值 0调整方向 1未满足服务方向概念最近方向 -1服务顺向需求目标 1也就是服务不够而且最近还在往下掉。这时服务根任务就该分解兜底阶段。5.2 服务根任务的兜底分解应该怎么走当前最小兜底方法候选在自我线程模块.ixx:1040-1046自我_读取最新人类输入自我_确认收到自我_请求补充信息外设_读取深度相机状态外设_提取前景存在候选事实自我_观察场景按你要的“子需求来自根任务分解”这个原则更合理的阶段树应该是第一层输入确认阶段阶段子需求人类输入已读取 1叶子兜底方法自我_读取最新人类输入这个方法在自我本能方法_最小试探模块.ixx:287-317会写人类输入_存在人类输入_序号人类输入_来源码人类输入_已读取所以它非常适合做服务根任务的第一步兜底。第二层服务连续性阶段如果已经读到输入但暂时还不能高质量回答那么至少要保持通道不断。阶段子需求可以分两类服务动作_已确认收到 1服务动作_已请求补充信息 1对应兜底方法自我_确认收到自我_请求补充信息这两个方法都在自我本能方法_最小试探模块.ixx:322-395。它们非常适合作为服务根任务的保底层因为它们不是“完成复杂服务”而是先让服务链不断。第三层场景补上下文阶段如果人类输入本身不足或者服务对象不只来自文本还要看场景那再分解观察上下文已建立 1对应兜底方法自我_观察场景必要时连带外设_提取前景存在候选事实第四层再切换到学习型服务方法只有当输入明确了场景足够了对象清楚了这时才应该交给学习成长方法去做具体服务。5.3 服务子任务什么时候算满足跟安全一样叶子子任务看它自己的目标状态是否命中。例如人类输入已读取 1服务动作_已确认收到 1服务动作_已请求补充信息 1这些都很适合兜底方法因为方法本身就能直接写出这些结果。服务根任务还是不会完成。它每完成一个阶段只会回到待重筹办再决定下一步是继续兜底还是切成长方法5.4 服务方向怎么判定服务投影方向的公式是服务投影分数 3 * dir(服务值) 2 * dir(服务动作_输出有效) 2 * dir(服务动作_已确认收到) 1 * dir(服务动作_已请求补充信息) 1 * dir(人类输入_存在)然后同样分数 0 服务投影方向 1分数 0 服务投影方向 -1分数 0 服务投影方向 0再和“服务顺向需求”的目标1比较得到需求对齐_服务。5.5 服务方向举个具体例子例子 A确认收到执行自我_确认收到后若事实变化为服务动作_输出有效0 - 1方向1服务动作_已确认收到0 - 1方向1人类输入_存在已经是 1不变方向0服务值任务成功后后续全局默认策略会让服务值上涨那么服务投影大概率是正的3 * dir(服务值) 2 * (1) 2 * (1) 0 0方向基本会被判成1。例子 B请求补充信息执行自我_请求补充信息后若变化为服务动作_输出有效0 - 1方向1服务动作_已请求补充信息0 - 1方向1那它也是服务正向只是“确认收到”的分数通常会更强一点。这很合理。因为“请求补充信息”是保底服务不是终局服务但它仍然是朝服务根目标前进。6. 你现在这套判定里有三个很关键的实际特性这三点你必须知道不然会误判系统行为。第一根任务的兜底方法已经有了但“显式阶段子需求”还没完全实体化现在代码已经做到根任务进不去正常筹办时自动生成“最小试探步骤”把一组兜底方法塞进去见自我线程模块.ixx:2571-2594。但它还没有完全做到你刚刚说的那种纯形态根任务先分解出阶段子需求再由阶段子需求生成叶子任务。所以如果你现在想把结构收纯下一步应该补的是分解安全根任务()分解服务根任务()让它们先显式创建阶段子需求。第二很多兜底方法现在还“进了候选池但没进方向评分”这是目前很重要的一个口子。你安全/服务根任务的候选方法里有外设_获取相机状态外设_读取深度相机状态外设_提取前景存在候选事实自我_观察场景但在私有_同步方法事实到任务方向特征()的switch里我现在看到真正被映射进方向评分的主要是自我_读取核心状态自我_读取最新人类输入自我_确认收到自我_请求补充信息自我_停止当前试探并进入保守态也就是说有些兜底方法虽然被执行了但任务方向评分体系现在还“看不见”它们。这会导致一种现象方法干了活但投影方向_安全/服务仍然接近 0这不是方法没用而是方向特征映射还没补齐。第三方向判定是“增量判定”不是“静态好坏判定”你现在任务方向的计算看的是新值和旧值相比是变大、变小还是没变。所以第一次执行某方法时旧值常常不存在方向会是 0某个二值特征第一次从 0 变 1方向是 1之后如果一直保持 1不再变化方向就会回到 0这意味着你的方向评分更像“最近这一步有没有推动”不是“当前状态是不是已经很好”。这很锋利但也带来一个副作用保守态_请求第一次建立时是正向后面持续处于保守态但不再变化方向就不再加分这个语义是成立的只是你要意识到它在看“推动”不是在看“维持”。7. 还有一个你应该立刻注意的点自我类::应用任务结果_默认策略()现在是任务成功 -服务值 50任务失败 -服务值 - 10且安全值 - 5见自我类.ixx:170-178调用在自我线程模块.ixx:1892-1910。这意味着任何成功任务哪怕只是“自检成功”“读到输入成功”都会让服务值上涨。所以你现在的服务值严格说并不只是“服务完成度”它还混入了“系统推进成功奖励”。这个设计在早期能用但在你开始认真依赖服务值做根任务分解时会带来偏差安全根任务的自检成功也会把服务值抬上去服务根任务可能会因为“读取成功”而显得比实际服务效果更好这一点后面最好拆成分型策略不然服务值会有一点“被顺手喂胖”的倾向。8. 把整条链收成一句最实用的话你要的正确结构其实可以压成下面这句安全值 / 服务值 决定“总方向还差多少”方向需求决定“最近该往哪边动”真根任务根据这两个信息分解出阶段子需求兜底方法先满足阶段子需求学习方法再去推动总值真正上升。更具体一点安全根任务先分解成自检保守态恢复前提学习修复服务根任务先分解成读取输入确认收到 / 请求补充建立上下文学习服务满足判定阶段子任务满足自己的阶段需求后完成真根任务永不终结只回到下一轮分解方向判定看方法输出让哪些关键事实朝正方向变动再和根方向需求比对得到“是否对齐”
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2417079.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!