Agent测评体系综述
Agent 评测体系综述:从一条用例到一套飞轮 本文综合四份资料:《深入理解 AI Agent》第 7 章(下称”第 7 章”)、美团《Agent 评测漫谈》(下称”漫谈”)、美团《Agent 评测白皮书·评测全览》(下称”白皮书”)、helson《Agent 评测·模块十》(下称”模块十”)。四份资料视角不同:第 7 章偏原理与公开基准,像教科书;漫谈与白皮书是企业团队两年落地经验,偏组织与体系;模块十是面试向的可执行模板,偏”照着做”。文中数字均为来源自述,未经第三方核实;模块十的阈值是经验值(confidence: low)。 关于”工程化演示”小节:各节末尾的代码是我按来源中的设计写的示意伪代码,不是来源原文;函数名、字段名、库名均为虚构,阈值标”示例值”的是我设的占位数字,需按自己项目调整。每段演示都注明了它落实的是哪份来源的哪条做法。 一、为什么要评测:评的不是模型,是系统四份资料的出发点一致:Agent 的效果判断不能靠”感觉变好了”。模块十把原因归为三个传统软件没有的难题:同一输入多次结果不同(非确定性),模型、Prompt、工具一变行为就悄悄漂移(黑盒化),多...
Agent学习笔记
Agent学习笔记目录 记忆与检索 为什么需要记忆与RAG 记忆系统设计 MEMORY RAG 上下文工程 什么是上下文工程 为什么上下文工程重要 GSSC流水线 NoteTool TerminalTool 智能体通信协议 MCP A2A ANP Agentic-RL 记忆与检索为什么需要记忆与RAG借鉴人类记忆系统的设计,我们可以理解为什么智能体也需要类似的记忆能力。人类智能的一个重要特征就是能够记住过去的经历,从中学习,并将这些经验应用到新的情况中。同样,一个真正智能的智能体也需要具备记忆能力。对于基于LLM的智能体而言,通常面临两个根本性局限:对话状态的遗忘和内置知识的局限————无状态导致的对话遗忘(每一次对话是独立的),模型内置知识的局限性(LLM的知识是静态的,有限的)。 记忆与RAG的设计 记忆系统采用了四层架构设计: 1234567891011121314151617181920HelloAgents记忆系统├── 基础设施层 (Infrastructure Layer)│ ├── MemoryManager - 记忆管理器(统一调度和协调)...
RL学习笔记
1 RL基础1.1 agent组成 策略(policy)。智能体会用策略来选取下一步的动作。 策略是智能体的动作模型,它决定了智能体的动作。它其实是一个函数,用于把输入的状态变成动作。策略可分为两种:随机性策略和确定性策略。 随机性策略(stochastic policy)就是 ππ 函数,即π(a∣s)=p(at=a∣st=s)π(a∣s)=p(*at*=a∣*st*=s)。输入一个状态 ss,输出一个概率。 这个概率是智能体所有动作的概率,然后对这个概率分布进行采样,可得到智能体将采取的动作。比如可能是有 0.7 的概率往左,0.3 的概率往右,那么通过采样就可以得到智能体将采取的动作。 **确定性策略(deterministic policy)*就是智能体直接采取最有可能的动作,即 a∗=argmaxaπ(a∣s)a∗=aargmaxπ*(a∣s)。 价值函数(value function)。我们用价值函数来对当前状态进行评估。价值函数用于评估智能体进 入某个状态后,可以对后面的奖励带来多...
frida检测对抗————libmsaoaidsec.so绕过
0x1 环境案例:某黑盒v1.3.333 手机:redmi k40 frida: 16.6.6 0x2 问题在尝试进行frida hook时发现手机正常进入,随后进程就被杀死了 需要知道是那个so在检测frida,可以hook dlopen看一下so的加载流程 123456789101112131415161718function hook_dlopen() { var android_dlopen_ext = Module.findExportByName(null, "android_dlopen_ext"); console.log("addr_android_dlopen_ext", android_dlopen_ext); Interceptor.attach(android_dlopen_ext, { onEnter: function (args) { var pathptr = args[0]; if (pathptr != null && p...
Unidbg模拟执行去除OLLVM-BR混淆
0x01 函数分析 函数后方使用了BR X9作为间接跳转,IDA无法分析控制流了,因为在此处X9为寄存器,在未执行时不知道寄存器的值为多少,所以静态看我们无法了解程序往哪走 使用unidbg进行trace 可以看到在执行完0x87114的跳转指令后,直接执行了0x87118,也就是JNI_Onload下方许多对寄存器操作的汇编代码,猜测下方的汇编也为JNI_Onload执行的一部分 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118package com.test.demo;import capstone.Capstone;import ca...
VMOS 3.0.7破解
初探情况 如图所示,再尝试添加多开版安卓5.1时,出现了VIP弹窗 在使用算法助手捕获弹窗后,定位到了vip的检验方法 两个非常简单的方法,用Xposed写个简单的hook 123456789101112131415161718192021222324252627282930if(!loadPackageParam.packageName.equals("com.vmos.pro")){ return; } XposedHelpers.findAndHookMethod("com.vmos.pro.bean.UserBean", loadPackageParam.classLoader, "isMember", new XC_MethodHook() { @Override protected void beforeHookedMethod(MethodHookParam param) th...
frida学习笔记
0x1 简介Frida就是一个「脚本化、可移植、免费且非常流行」的动态插桩工具。 对于知道插桩是什么意思的朋友来说,不必再过多解释。而如果你不知道插桩是什么意思,大概介绍下,你可以理解为:将你的代码,插入到源程序的某个地方,最终一起执行,而「不必改变源程序的代码」。 不理解也没关系,忽略它,不影响后面的内容 项目地址:https://github.com/frida/frida 环境配置: 1pip install frida==16.1.3 frida-tools==12.3.0 -i https://pypi.tuna.tsinghua.edu.cn/simple 1frida-server-16.1.3-android-arm64 https://github.com/frida/frida/releases https://github.com/hzzheyang/strongR-frida-android 0x2 注入模式spawn将启动App的权利交由Frida来控制,即使目标App已经启动,在使用Frida注入程序时还是会重新启动App 优点:hook时机早,可...
Xposed总结
什么是XposedXposed是一款可以在不修改APK的情况下影响程序运行的框架,基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运作。在这个框架下,我们可以编写并加载自己编写的插件APP,实现对目标apk的注入拦截等。 过滤包名12345public void handleLoadPackage(XC_LoadPackage.LoadPackageParam loadPackageParam) throws Throwable { if(!loadPackageParam.packageName.equals("com.zj.wuaipojie")){ return; } } 常用api修改返回值 12345678XposedHelpers.findAndHookMethod("包名.类名", loadPackageParam.classLoader, "方法名", String.class, new...
