-
Notifications
You must be signed in to change notification settings - Fork 2.2k
feat: 实现上下文优化基础功能 #461
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
yang-kunlun
wants to merge
2
commits into
bytedance:main
Choose a base branch
from
yang-kunlun:feature/context-optimization-pr1-clean
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
feat: 实现上下文优化基础功能 #461
yang-kunlun
wants to merge
2
commits into
bytedance:main
from
yang-kunlun:feature/context-optimization-pr1-clean
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- 新增ContextManager类,支持智能上下文摘要和长度控制 - 禁用图片搜索功能,减少30-50% token消耗 - 集成分步研究机制,避免上下文累积 - 添加完整单元测试和集成测试覆盖 解决问题: 上下文长度超限问题 主要功能: - 智能步骤摘要生成,保留关键信息 - 动态上下文长度控制,防止超出限制 - 研究进度跟踪和状态管理 - 与LLM集成的摘要生成机制 测试覆盖: - ContextManager类的所有核心方法 - 上下文长度控制机制验证 - 多步骤研究工作流程集成测试 - LLM集成和摘要生成测试
@yang-kunlun 多谢提交feature, 我看了一下修改的代码, 基本上都是单元测试, 不知道具体的优化点在哪。 |
谢谢你的提醒。我正在仔细检查项目,不知道是哪里出现了问题。
这个项目的4个feature优化全部是我通过cursor完成的,每一个点都进行了详细的开发记录。但是第一次提交pr,之前没有经验,加之偶然遇到的网络问题,不知道在哪个步骤项目代码出现了问题。很多项目文件在本地也被agent删除了。在努力恢复中。
想为开源社区做一点贡献,没想到遇到了这些问题,给大家添麻烦了
|
@yang-kunlun 目前项目GitHub issue 有不少的问题提到了上下文大小管理的功能, 我对你的实现还是挺感兴趣的, 不知道之前开发的记录还能找回吗? |
您好,您发送的邮件已收到。谢谢你的来信,常联系呦(∩_∩)
|
hi,才看到您的邮件。感谢你的关心。很久没做相关项目的优化了。
之前使用cursor进行编程修改,后面因为梯子上传代码和trae agent 拆分feature两个过程耦合不知发生了什么,本地代码被修改并且没有成功保存git版本,我尝试了很多办法也没有恢复。其实很不好意思的,想给大家做一点贡献,没想到没有成功。
我可以说一下我的修改思路:
1.去掉了图片搜索结果。因为查看后端返回结果,图片占用了大量token,许多图片对于形成严肃报告的意义不大,所以进行了删除
2.从输入和输出两个地方控制上下文长度:
具体:
1)输入端:结合质量控制系统,对于搜索结果中的质量不足5.0分(10分制)的内容进行弃用。即:不相关内容、低相关内容和乱码
2)输出端:对于中间撰写报告部分的agent,采取分部撰写策略,基于筛选后的搜索结果,整合分析为这部分的研究报告。并对相关关键成果进行提炼总结,传递给后步agent,以此节约输出token
3)对于整体有一个token计算器,会对超出部分进行截断
优点是很好地避免了上下文溢出,整体运行速度加快。但缺点是因为第3条的原因,使得报告本身有时不完整。这里的不完整指的是对分析方面的不完整,在复杂问题上的拆解会遗漏项目。比如在《2025新能源汽车行业研究报告》中,技术路线分析中,只统计了纯电、插电和燃料电池车,没有统计增程式汽车的类目,导致最后的数据不可信。这里既有截断的原因,也有搜索结果不完整不准确的原因。
后来想想,觉得这个上下文管理的思路也不是最优解法,也就没有继续深入开发。因为虽然有效避免了因为溢出导致的崩溃,但是也使产出的报告公信力降低。所以在上传和本地代码丢失后,没有继续投入精力。
但是有一种可能的办法:1.多步多层级的拆分,在 planner 规划阶段,将问题拆解足够细,结构化思考和拆分,这样researcher对于每个问题足够小,可以在现有上下文长度下实现无限输入的上下文
2.多步输出,每一步researcher形成报告后,用reporter输出这部分研究内容,形成无限输出
这样应该可以解决上下文管理的问题。以上是我的一些思考,和您分享。希望对项目有所帮助。
|
@yang-kunlun 多谢分享了相关的经验, 最近社区也有很多优化搜索的需求, 期望后续能够有更多的同学参与贡献。 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
由于搜索结果导致上下文溢出,这里我去掉了图片搜索功能,节省图片token。同时动态控制上下文长度,输出报告有动态截断。
具体上下文长度限制可以自定义修改。
好处是不会有上下文溢出的情况,但是可能会导致输出报告的不完整。这也与本身搜索到的资料完整性相关
---以下是AI生成的关于上下文长度控制feature的详述
解决问题: 上下文长度超限问题
主要功能:
测试覆盖: