avatar
文章
70
标签
27
分类
12
主页
文章
标签
分类
AI
关于
墨香博客
主页
文章
标签
分类
AI
关于
Hermes Agent 源码解析:一个可复用的 Agent 运行模型
发表于2026-10-31|AI
Hermes Agent 是 NousResearch 开源的个人 Agent 运行时(MIT,提交 8f5693a)。如果只把它看成”提示词套壳”会看错重点:它更像一台回合制状态机——一次用户输入就是一个 turn,turn 内部是”模型调用 → 工具执行 → 再调用”的内循环,外层受预算、闸门与压缩约束。整个仓库约两万文件,其中 agent/ 目录 319 个 Python 文件、约 6.5 MB,这些复杂度几乎都在回答同一组问题:这次请求该发什么、发出去之后坏了怎么办、历史该怎么变短。 三条主线贯穿全部代码。第一,回合是唯一执行单元,任何层都不允许越权改写历史;第二,上下文是最稀缺的资源,系统提示词在会话期间按字节冻结,压缩是唯一被允许的改写,token 记账优先信 provider 返回的真实用量;第三,能力长在边缘、核心保持收窄,新能力默认走 skill、plugin、MCP,而不是往核心工具里加,学习靠”回合后 fork 一份自己复盘”。 所以它的架构定位可以概括成一句话:Prompt-cache-first 的同步 ReAct...
OpenAI Codex 原理与架构:一个 while 循环与五层工程体系
发表于2026-10-31|AI
拆到最小,Codex 就是一个本地编码 Agent:用户输入、AGENTS.md、环境信息与工具定义被组装成 Prompt,经 Responses API 流式采样;模型返回的工具调用在审批策略与操作系统沙箱约束下执行,结果回填历史再采样,直到模型不再需要工具。 循环本身并不神秘,难的是周围的工程。官方协议用 Model、Codex、Session、Task、Turn 五个实体描述运行模型:Session 同一时刻只允许一个 Task,Task 由多个 Turn 组成,Turn 之间严格因果——上一轮输出就是下一轮输入。 决定体验的是循环之外的取舍:引擎与 UI 通过一对队列(Submission Queue / Event Queue)解耦,一份 core 支撑 TUI、IDE 插件、桌面 App 与 MCP Server;Prompt 只追加不改写以命中前缀缓存;改动以补丁表达;安全上则用审批与沙箱两个正交维度,再叠加 execpolicy 与网络代理。 一个 while 循环:输出即下一轮输入core/src/session/turn.rs 里的...
Claude Code 原理与架构:模型负责思考,Harness 负责行动
发表于2026-10-31|AI
Claude Code 不是一个更聪明的模型,而是一层包在模型外面的 agentic harness。官方文档对它的定义只有一句话:agentic loop 由两个部件驱动——负责推理的模型,和负责行动的工具;Claude Code 就是围绕模型提供工具、并管理模型能看到什么的那一层。把这句话拆开,也就把整个系统拆开了。 模型这一侧只有 Messages API:一次无状态的 HTTP 调用,输入 system、工具定义和完整对话历史,输出 text / thinking / tool_use 内容块。它不能读文件,也不能跑命令。所谓“调用工具”,实际动作是模型写出一段结构化 JSON、把 stop_reason 置为 tool_use,然后停下等待。真正让这件事发生的是 harness:它做权限检查、执行工具、把结果以 tool_result 回填,再把完整上下文重新发过去。 分工带来的后果很直接:能力上限由工具集合决定,可靠性下限由权限、沙箱与检查点决定,而成本与效果落在上下文工程上。Claude Code...
Android Performance Studio:11 个性能工具,一个桌面应用
发表于2026-10-30|Performance
Android Performance Studio 是一个开源、跨平台的 Android 性能分析工作台:从 Layout Inspector 到 Perfetto,从 HPROF 到 batterystats,采集、查看、关联、定位在一个窗口里完成。本地优先。 一、性能问题最难的地方,不是修,是找“首页滑动有点卡”“启动要两秒多”“内存又涨了 200MB”。 这三句话,背后往往是三套完全不同的工具链。 滑动卡顿,你要打开 Android Studio Profiler 抓 CPU,或者用 Perfetto 抓系统 trace,盯着 RenderThread 和 SurfaceFlinger 看;内存涨了,你要导 HPROF,翻类直方图、支配树和引用链;启动慢,你要跑 Macrobenchmark,看 TTID、TTFD 和 Baseline Profile;耗电异常,你要导 batterystats,再去 Battery Historian 里对 Wakelock 和 Alarm;再加上 simpleperf 看 Native 热点、AGI 看 GPU、OkHttp...
从海量 Log 到可审计结论:llm-anr 的设计思想、开发流程与最终结果
发表于2026-06-17|ANR
Android ANR(Application Not Responding)分析看起来像是在“读日志”,但真正困难的地方并不只是日志太多,而是证据太散、时间线不一致、系统上下文复杂,并且很容易因为某一段醒目的堆栈或日志而过早定责。 llm-anr 这个仓库要解决的正是这个问题:把 trace、EventLog、logcat、AnrManager dump、meminfo、kernel log 等多源原始材料,转换成按 ANR 事件隔离、可审计、可复盘的证据工作区,再引导 AI 或人工分析者逐层完成保守分析。 这篇文章从三个角度介绍这个项目:它为什么这样设计、开发流程如何组织,以及当前最终交付出了什么能力。 项目地址:yuchuangu85/llm-anr: Agent-driven Android ANR evidence extraction and AI-assisted root cause analysis pipeline. 一、项目要解决的问题在实际 Android 稳定性分析中,ANR bugreport...
Launcher3-Dagger2-依赖注入详细流程图.
发表于2026-05-14|Launcher3
上一章介绍了为什么要引入dagger,这节我们再贴一张Launcher3 引入dagger后的流程图,以及生成对象图。能够更清晰帮助我们理解Dagger的流程和作用。
Launcher3引入Dagger前后对比
发表于2026-05-11|Launcher3
从Android 16的qpr2版本开始Launcher3全面引入了Dagger,为什么要引入Dagger,我们看一下引入Dagger的架构对比。 引入前: 引入后: 再来一张放一起的图,更清晰: Dagger2 的引入核心目标是: 减少传统静态单例依赖 旧版 Launcher 大量使用 LauncherAppState.getInstance()、SomeSingleton.INSTANCE 等静态单例,这导致: 生命周期难以控制 测试难以替换依赖 进程或 Activity 生命周期边界不清 通过 引入Dagger2,将对象的创建与依赖关系交由 编译期生成的 Component/Module 管理。 明确依赖边界和作用域 Dagger2 的 Scope 注解用于划分对象生命周期: @LauncherAppSingleton:App 级单例,与进程生命周期绑定 @ActivityContextSingleton:ActivityContext 级单例,与 Activity 生命周期绑定 通过...
Launcher3基础部分架构
发表于2026-05-10|Launcher3
Launcher3项目是一个非常大、非常复杂的项目,虽然从界面看Launcher的界面很少,也不复杂,但是涉及的UI,动画,手势等非常多,与SystemUI,窗口都深度绑定,如果没有看过Launcher3源码还是比较难理解的。 Launcher3从整体的架构来看是分为两部分:一部分是基础部分,就是不与SystemUI和窗口绑定的,一部分(Quickstep)是与SystemUI和窗口绑定的。 基础部分一般是给开发三方桌面使用的,可以在任何Android手机安装,Quickstep部分是给手机厂商用的,依赖SystemUI和窗口。 先从架构开始,逐步分析整个Launcher3项目。 这篇先看看基础部分的架构: 由于内容比较多,这里也只是显示了部分内容,还有很多的内容没有呈现,比如一些动画,拖拽,手势等,后续逐步放出。 这个图先让我们对基础部分的架构有个了解,以帮助我们更好的学习整个Launcher3项目。
Launcher3源码目录分层架构
发表于2026-05-07|Launcher3
基于Google AOSP源码中的Launcher3源码进行分析:
Obsidian-LLM构建自己的知识库
发表于2026-04-07
​ 前几天Karpathy分享了他最新的工作流:使用 LLM 构建个人知识库(Personal Knowledge Base),这条推文一发布,引发大量关注和点赞,两天后,他把这套方法论写成了一份 gist 发到 GitHub(llm-wiki) 上,开源给所有人。 ​ 我最近也看到很多介绍这个构建知识库的帖子,但是很少有如何实战构建自己的知识库的操作步骤,所以开始也是很迷茫,到底该如何构建自己的知识库,正好今天没事找到一篇介绍如何使用的,我本地也实战了一下,记录一下操作步骤。 ​ 知识收集、整理是非常耗费时间的,我做开发十多年也整理了很多知识,放到github,博客,公众号,但是没有一个非常好的的管理方式,正好这个方法能够解决我的问题,可能也会解决很多人管理知识的问题。 ​ 下面我介绍下我的操作步骤。 准备工具 Obsidian – https://obsidian.md/ :下载安装,这个是一个读取显示md文件的软件,具有很强大的功能,由于我也是刚开接触,因此很多还不熟悉,因此还在摸索阶段。 obsidian web clipper –...
12…7
avatar
墨香
因为兴趣所以选择,因为选择所以坚持。
文章
70
标签
27
分类
12
Follow Me
公告
路虽远,行则将至;事虽难,做则可成。
最新文章
Hermes Agent 源码解析:一个可复用的 Agent 运行模型2026-10-31
OpenAI Codex 原理与架构:一个 while 循环与五层工程体系2026-10-31
Claude Code 原理与架构:模型负责思考,Harness 负责行动2026-10-31
Android Performance Studio:11 个性能工具,一个桌面应用2026-10-30
从海量 Log 到可审计结论:llm-anr 的设计思想、开发流程与最终结果2026-06-17
分类
  • AI4
  • ANR12
  • AOSP1
  • Android Official Source8
  • AndroidOS13
  • Android代码推荐1
  • Kotlin1
  • Launcher7
标签
Hermes ANR View绘制 Android Gradle App architecture Jetpack Compose Launcher AI Safe Animation Agent Performance Claude Test AndroidOS AOSP 高效Mac Coroutines Resource Mind Codex Launcher3 View Android Guide Understand Android Performance
归档
  • 十月 20264
  • 六月 20261
  • 五月 20264
  • 四月 20261
  • 三月 20261
  • 九月 20251
  • 四月 20251
  • 二月 20251
网站资讯
文章数目 :
70
本站访客数 :
本站总访问量 :
最后更新时间 :
©2016 - 2026 By 墨香
框架 Hexo|主题 Butterfly