README
🚀 基于large - text - viewer的trace分析工具
本工具允许你按个人喜好更换文本搜索后端,例如rigrep,甚至可直接使用命令行grep。
🚀 快速开始
使用方式
目前支持两种使用方式:
- Trae Skill模式(推荐):位于
.trae/skills/large - text - searcher/,与Trae深度集成。 - MCP服务器模式:支持传统的MCP协议,兼容Kiro等IDE。
迁移指南
详细迁移指南请参考 MIGRATION_GUIDE.md。
格式要求
search_strategy.md 和 trace_format.md 需使用你自己的trace格式。
⚠️ 重要提示
ai的大脑褶皱是平滑的,你只能让它代替你进行机械化的劳动,或者期待它某一下灵光一闪。所以,你需要考虑流水化和标准化的trace搜索方法,因为ai做不了你自己认知以外的事。简单的算法ai表现良好,但复杂一些的算法会大量消耗token,且表现不一定好,这里需要你自己多调试。
✨ 主要特性
新功能
- 当搜索结果溢出100个时,结果已无意义,直接在mcp拦截,让模型重新思考如何搜索,避免浪费token和查看无意义结果。
- 将提示词摘要后放到skill里。
- 添加了通过魔数先验流程的能力。
🔧 技术细节
模型使用偏好
不同的模型在使用api上有不同的偏好,claude更喜欢使用context,而gemini更喜欢使用正则匹配,但都不太喜欢搜指令 add a,c,b 这样的。
行为变异问题
思考轮次多了以后模型行为会产生变异,比如gemini开始使用grep绕开指定的mcp的正则。
行相对关系理解问题
目前模型没有对于行相对关系的理解,比如连续搜索两次,在这两次之间做对比。
格式问题
目前 st____ /ld____ 和指令操作在两行,这样ai查看时会浪费一轮搜索,甚至可能直接迷失。可以尝试把 st__ 和指令弄到同一行解决,但会牺牲一些可读性,string__ 也是同理,funcall 也存在类似问题。
给ai返回提示
在mcp给ai的返回中也可以给出提示,比如进行计数,10次搜索以后提醒ai该总结了。
限制ai自由发挥
看起来确实有必要在python层限制ai的自由发挥,有些参数不应该给它用,否则会导致偏激的思路。
ai智力差异
ai本身智力发挥占很大一部分,能力较弱的ai只会死找,厉害的能从明文开始猜测正反向同时推,也知道利用 memcpy 等信息。
辅助功能添加
- 添加一些辅助功能,比如魔数搜索,让模型知道某些地方有加密算法,或者先枚举所有出现过的
libc函数,让ai有整体印象。 - 提供ida mcp 让模型能靠反编译代码获取局部信息。
- 添加unidbg mcp 让模型能通过unidbg分析算法模拟。
搜索方案严谨性
要告诉ai哪些搜索方案是不严谨的,例如:
{
"context": 5,
"file_path": "/Users/teng/PycharmProjects/pythonProject/shopee_proj/log/record_00.txt",
"max_results": 10,
"pattern": "704da53700"
}
这种搜索结果极其容易导致偏见,max_results 可以不给ai操作,ai只能获取结果。这样的话或许可以给 find_prev 和 find_next ?但这又回到污点问题上了。
📚 详细文档
待办事项
- 为
context提供小范围的反向污点,增加context质量,但需要考虑如何兼容格式问题。 - 升级后段,给
search_text增添行范围筛选。 - 增加书签功能,让模型能标记某某行到某某行的作用,把一些范围标记为没用,并影响筛选结果。
- 对显示的行长给出限制,避免过快消耗
context。 - 研究常见的加密算法(无魔数)的识别和处理方法。
- 针对模型使用api有偏好的问题,尝试执行一次示例给模型理解。
👥 技术交流
技术交流可以加 vx baserker2,添加时请做好备注。
Scan to join WeChat group