330 日 , 2026 14:22:14
让ai评价openspace

https://github.com/HKUDS/OpenSpace充满了ai营销味的东西,readme里面经典的一堆emoji、ai图、浮夸文字。让gemini评价下,原汤化原食


通过对该项目 README 以及核心代码(特别是 openspace/skill_engine/ 目录下的相关文件)的详细阅读和事实分析,可以得出以下客观结论:

结论前置
它宣传的“全自动进化”并非噱头,代码中确实存在一套完整且复杂的闭环机制来实现这一功能。但正如你所担忧的,随着时间推移,系统确实存在走向“臃肿和混乱”的潜在风险,尽管开发者已经在代码中硬编码了大量工程手段(如防死循环、模糊匹配、数据库追踪)来极力延缓和抑制这种风险。

以下是基于事实的代码层面的详细拆解:

一、 为什么说“全自动进化”不是噱头?

代码中真实实现了完整的“执行 -> 评估 -> 修改代码 -> 持久化”的闭环引擎,这主要体现在以下几个核心模块:

  1. 评估器 (analyzer.py)
    在 Agent 执行完任务后,ExecutionAnalyzer 会拦截执行录像,构建 Prompt 交给 LLM 进行复盘。它会输出一份 ExecutionAnalysis,指出任务中哪些环节出错、哪些工具不好用、或者发现了什么新的工作流。
  2. 进化触发器 (evolver.py)
    代码中明确定义了三种真实的进化类型(EvolutionType):

    • FIX:原地修复。当技能出错时,直接修改原文件。
    • DERIVED:衍生。基于现有技能复制出一个新目录,并进行升级。
    • CAPTURED:捕获。从零开始,为新发现的高效模式创建一个全新的技能文件夹。
  3. 实体代码修改 (patch.py)
    这不是口头说说,引擎会真实地读写本地磁盘。支持 FULL(全量覆盖)、DIFF(局部替换)和 PATCH(多文件补丁)三种 LLM 输出格式。
  4. 触发条件:除了任务后分析,代码中还实现了 TOOL_DEGRADATION(工具质量退化触发)和 METRIC_MONITOR(指标监控触发),这意味着它会在后台自动扫描并触发重构。

二、 会不会出现“越来越臃肿和混乱”的问题?

答案是:大概率会,但开发者做了很重的防御性编程。

基于 LLM 的不确定性,自动修改代码必然面临状态发散的问题。从源码细节来看,系统的隐患和防线并存:

1. 关于“臃肿”的风险与防线

  • 风险点(新增蔓延):由于 DERIVED(衍生)和 CAPTURED(捕获)机制的存在,引擎会不断在磁盘上创建新的技能目录。我在 store.py 的数据库表设计中看到了 is_active(是否激活)字段,但没有看到定期清理(Garbage Collection)物理文件和废弃数据的强制删除逻辑。长期运行下,废弃或低质量的技能必然堆积,导致系统臃肿。
  • 开发者的防线:为了防止 LLM 瞎改导致体积爆炸,开发者在 evolver.py 中设置了硬性截断 _SKILL_CONTENT_MAX_CHARS = 12000(Prompt中最多携带1.2万字符的技能内容),并严格控制了衍生技能的触发阈值(如 _MIN_APPLIED_FOR_DERIVED)。

2. 关于“混乱”的风险与防线

  • 风险点(LLM 幻觉与代码破坏):LLM 并不是完美的程序员,它可能会写出语法错误的 Patch,或者胡乱引用不存在的技能。
  • 极其真实的防线 1(处理幻觉):在 analyzer.py 中有一个非常有意思的函数 _correct_skill_ids,它使用了 Levenshtein 编辑距离算法。为什么要有这个?代码注释里无奈地写道:“LLMs frequently garble the hex suffix of generated IDs (e.g. swap cbbc)”(LLM 经常把十六进制的 ID 后缀搞乱)。这说明系统在实际运行中已经出现了“混乱”,开发者不得不写死算法来纠正 LLM 产生的幻觉。
  • 极其真实的防线 2(防死循环机制):在 evolver.py 中,开发者设计了 _addressed_degradations 字典来记录“已经针对哪个工具的故障进化过哪些技能”。这是为了防止出现最可怕的混乱:Agent 改坏了代码 -> 执行失败 -> Agent 再次尝试修复 -> 再次改坏 的无限死循环。此外,对单次进化也限制了最多尝试 3 次应用补丁(_MAX_EVOLUTION_ATTEMPTS = 3)。
  • 防线 3(血缘与指标追踪)store.py 使用 SQLite 数据库严格记录了每个技能的“族谱”(skill_lineage_parents),以及调用次数、成功率、降级次数(total_selections, total_fallbacks 等)。这意味着如果一个技能被改得极度混乱,它的成功率指标会下降,最终被系统降权或重新回炉。

总结

该项目不是一个靠 PPT 圈钱的空壳项目,它确实写出了一套在当前技术栈下非常硬核且前沿的“Agent 自动编程与自我修复”框架。

但在事实层面,它无法完全摆脱 LLM 本身非确定性带来的熵增(臃肿与混乱)。开发者非常清楚这一点,所以他们没有依赖“LLM 会完美写代码”的幻想,而是用传统的软件工程手段(SQLite状态追踪、编辑距离纠错、重试上限、死循环阻断)给这匹野马套上了厚重的缰绳。短期内它可以表现出惊艳的“进化”效果,但长期持续无人工干预运行,数据库和磁盘目录的臃肿依然是一个待解的难题。

327 日 , 2026 16:57:16

vibe coding堆高后的维护性极低的屎山代码,就像生物进化在基因里面遗留的屎山。但是生物屎山健壮(撸棒)性比代码高得多,可能是由于自然环境就像一个永不停止的高强度ci测试,打叉的立即会被淘汰掉吧。

324 日 , 2026 17:24:32
gemini-cli用其他模型

虽然官方明确说了不会支持其他模型,但利用lite-llm这个转换器(类似命令行版的new-api),再使用环境变量让cli连接转换出来的api。

GOOGLE_GEMINI_BASE_URL=http://localhost:4002
GEMINI_API_KEY=sk-litellm-local

lite-llm配置如下,将openai格式调用转换成gemini格式给cli用

.openai_shared: &openai_shared
  api_base: 其他模型提供商url
  api_key: 密钥
  custom_llm_provider: openai
  timeout: 60

model_list:
  - model_name: qwen3.5-plus
    litellm_params:
      <<: *openai_shared
      model: qwen3.5-plus

router_settings:
  num_retries: 4
  model_group_alias:
    "gemini-3.1-pro-preview-customtools": "qwen3.5-plus"
    "gemini-3-flash-preview-customtools": "qwen3.5-plus"
    "gemini-3-flash-preview": "qwen3.5-plus"
    "gemini-3.1-flash-lite-preview-customtools": "qwen3.5-plus"
    "gemini-2.5-pro": "qwen3.5-plus"
    "gemini-2.5-flash": "qwen3.5-plus"
    "gemini-2.5-flash-lite": "qwen3.5-plus"
    "gemini-3-pro-preview": "qwen3.5-plus"
    "qwen3.5-plus-customtools": "qwen3.5-plus"

general_settings:
  master_key: sk-litellm-local

 

 

323 日 , 2026 22:54:48

认错也没用,你都不记得了。看来得试试那个末尾加上喵,不喵了代表上下文腐烂了的方法。不知道在哪看目前多少token了导致注意力涣散了,推测是10万左右

 

321 日 , 2026 20:18:08
319 日 , 2026 17:19:50
黄皮子NIM

NIM只有每分钟频率限制,还很高,没有token和每月次数之类的非常良心(以前有积分后来取消了)。但是实际用起来卡的我生活不能自理(之前一直用里面最火的deepseek3.2),慢的时候估计能有5token/s,波动也非常大。今天突发奇想试了下千问3.5开源最大参数量的那个,居然非常快,而且稳定性比ds强。看来人多真的没好事,一坨人拼命在最有名的模型赛博挤公交车,很可能不同机器固定分配了特定模型。

好了一天又开始卡爆了,以上内容作废。

 

今天试了下AstrBot这个开源聊天机器人agent,比openclaw精致一点,没有那种vibe code堆砌起来能跑就行的感觉。

318 日 , 2026 0:00:02
评估AI Agent维护代码的论文

https://arxiv.org/html/2603.03823v1

论文开发了个双Agent的评估程序,给定一份历史版本代码(从开源软件修改历史里嫖的),架构师Agent运行完整的单元测试(对应最新版本代码),根据结果总结出bug、缺失的新功能给程序员Agent(以自然语言)。程序员AI老老实实埋头编码,看不见单元测试代码没法面向测试作弊。不断迭代之后最终根据测试通过率和回退率评分。

 

测试结果是claude最强,qwen和glm目前最强闭源版居中,deepseek因为太久没更新掉队了差一点,另外居然还测了豆包。垫底的水平很符合那个唐氏综合症一般的图标。

313 日 , 2026 10:21:59
mcp和skills.md

mcp是时候改进一下了。模仿agent skills的渐进式加载。mcp工具都加入名称和描述,初始状态只加载这些进入上下文,当llm决定使用工具时再动态获取方法和定义。

这样不仅使用更方便不用手动勾选工具,而且能达到skill一样的省token效果。

  1. krrr 博主 : Claude Code已经有这功能了叫ToolSearch ,今天cherry studio刚加了我才知道。毕竟我不用cc
312 日 , 2026 19:48:59
vibe coded shit

gemini 3.1 pro写前端经常能写出一些巧克力外壳的狗屎。乍一看像模像样,点开为什么没效果,我去html里硬编码的,ts里根本没实现逻辑。前台angular+typescript很多代码反正就一股异味,丢了觉得可惜,手改觉得恶心。

python后端倒是还好

312 日 , 2026 9:41:33

很多流行音乐一定要在整首歌3/4位置的时候加入一段俗套到爆的电吉他独奏,已经是套路了。听到这种就讨厌。

没有这种套路的歌是少数,反而里面遇到精品的概率还更高