feat: 添加关于Agent与操作系统类比的新博客文章
添加两篇博客文章,探讨Agent系统与操作系统的概念类比。主要新增文件包括: - 博客/AI与大模型/学习Agent,越学越像在重新理解操作系统.md:简洁版文章 - temp-agent-os-v2.md:详细扩展版文章,深入对比进程/线程与Sub-Agent、系统调用与Tool Use、虚拟内存与Context Window、文件系统与RAG等概念 同时更新Obsidian插件视图,使设置按钮打开站点配置模态框而非空操作。
This commit is contained in:
Vendored
+3
-3
File diff suppressed because one or more lines are too long
Vendored
+1
-1
@@ -225,7 +225,7 @@
|
|||||||
"halo:发布当前文档到 Halo": false
|
"halo:发布当前文档到 Halo": false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"active": "1e741b4d78845bd1",
|
"active": "e7a7b303c61786dc",
|
||||||
"lastOpenFiles": [
|
"lastOpenFiles": [
|
||||||
"obsidian-halo/docs/usage-guide.md",
|
"obsidian-halo/docs/usage-guide.md",
|
||||||
"博客/学术与效率/AI助你轻松上手LaTeX论文写作.md",
|
"博客/学术与效率/AI助你轻松上手LaTeX论文写作.md",
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import i18next from "i18next";
|
import i18next from "i18next";
|
||||||
import { ItemView, Notice, WorkspaceLeaf, TFile } from "obsidian";
|
import { ItemView, Notice, WorkspaceLeaf, TFile } from "obsidian";
|
||||||
import type HaloPlugin from "../main";
|
import type HaloPlugin from "../main";
|
||||||
|
import { HaloSitesModal } from "../sites-modal";
|
||||||
|
|
||||||
export const SYNC_STATUS_VIEW_TYPE = "halo-sync-status";
|
export const SYNC_STATUS_VIEW_TYPE = "halo-sync-status";
|
||||||
|
|
||||||
@@ -371,7 +372,7 @@ export class SyncStatusView extends ItemView {
|
|||||||
});
|
});
|
||||||
settingsBtn.style.cssText = "border: none; background: transparent; cursor: pointer; font-size: 16px; padding: 4px;";
|
settingsBtn.style.cssText = "border: none; background: transparent; cursor: pointer; font-size: 16px; padding: 4px;";
|
||||||
settingsBtn.addEventListener("click", () => {
|
settingsBtn.addEventListener("click", () => {
|
||||||
(this.app as unknown as { settings: unknown }).settings;
|
new HaloSitesModal(this.plugin).open();
|
||||||
});
|
});
|
||||||
|
|
||||||
const historyBtn = actions.createEl("button", {
|
const historyBtn = actions.createEl("button", {
|
||||||
|
|||||||
+1035
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,105 @@
|
|||||||
|
---
|
||||||
|
title: 学习 Agent,越学越像在重新理解操作系统
|
||||||
|
id: c11d5916-8c13-498f-a208-bc2287fb885d
|
||||||
|
date: 2026-04-30 17:07:24
|
||||||
|
auther: liuhangyv
|
||||||
|
cover:
|
||||||
|
excerpt: 学习 Agent,越学越像在重新理解操作系统 引言 学了半年 Agent 框架,我产生了一个奇怪的感觉:我好像在重新学操作系统。 进程与线程、文件系统、系统调用、内存分页、调度器……这些操作系统里的经典概念,几乎都能在 Agent 系统中找到一一对应的存在。今天就来聊聊这个有趣的类比。 进程与线程
|
||||||
|
permalink: /archives/xue-xi-agent-yue-xue-yue-xiang-zai-chong-xin-li-jie-cao-zuo-xi-tong
|
||||||
|
categories:
|
||||||
|
- xing-ye-wang-yuan-jing
|
||||||
|
tags:
|
||||||
|
- ji-shu-shen-qian
|
||||||
|
- aizhi-neng-ti
|
||||||
|
---
|
||||||
|
|
||||||
|
# 学习 Agent,越学越像在重新理解操作系统
|
||||||
|
|
||||||
|
## 引言
|
||||||
|
|
||||||
|
学了半年 Agent 框架,我产生了一个奇怪的感觉:**我好像在重新学操作系统**。
|
||||||
|
|
||||||
|
进程与线程、文件系统、系统调用、内存分页、调度器……这些操作系统里的经典概念,几乎都能在 Agent 系统中找到一一对应的存在。今天就来聊聊这个有趣的类比。
|
||||||
|
|
||||||
|
## 进程与线程 → Sub-Agent
|
||||||
|
|
||||||
|
操作系统里,**进程是资源边界,线程是执行单元**。同进程的线程共享内存,跨进程则要显式通信。
|
||||||
|
|
||||||
|
Agent 世界完全照搬了这套做法。当我们用 Sub-Agent 让多个 Agent 并行协作,立刻面对经典问题:**谁能访问谁的状态?**
|
||||||
|
|
||||||
|
共享上下文带来效率,也带来竞争条件。死锁、竞争、一致性……这些老问题穿着新衣服又回来了。
|
||||||
|
|
||||||
|
> 一个 Sub-Agent 正在写文件,另一个 Sub-Agent 同时在读同一个变量——这就是经典的 race condition。
|
||||||
|
|
||||||
|
## 系统调用 → Tool Use
|
||||||
|
|
||||||
|
这是最像的一个类比。
|
||||||
|
|
||||||
|
**用户程序想访问硬件,不能直接碰,必须通过系统调用陷入内核,由内核代为执行。**
|
||||||
|
|
||||||
|
Agent 想搜网页、跑代码、查数据库,也不能自己动,必须通过 Function Calling 交给 Harness 执行。
|
||||||
|
|
||||||
|
两者的本质完全一样:**在权限边界上打一个受控的洞,能力从这个洞里流进来,风险也从这个洞里被隔住。**
|
||||||
|
|
||||||
|
| 操作系统 | Agent 系统 |
|
||||||
|
|---------|-----------|
|
||||||
|
| 系统调用 | Function Calling / Tool Use |
|
||||||
|
| 内核态 | Harness 执行环境 |
|
||||||
|
| 用户态 | LLM 推理过程 |
|
||||||
|
| 硬件设备 | 外部工具(搜索、代码执行、数据库) |
|
||||||
|
|
||||||
|
## Cache / 虚拟内存 → Context Window
|
||||||
|
|
||||||
|
Context Window 是 Agent 最稀缺的资源,贵到每个 token 都要精打细算。
|
||||||
|
|
||||||
|
这和 CPU Cache 的逻辑一模一样:
|
||||||
|
|
||||||
|
- **寄存器** → 当前正在推理的内容
|
||||||
|
- **L1/L2 Cache** → 近期对话上下文
|
||||||
|
- **内存** → 长期记忆中的最近会话
|
||||||
|
- **磁盘/交换区** → 压缩摘要或外部存储
|
||||||
|
|
||||||
|
当上下文满了,Agent 框架开始做 **Context Compression**——这就是在做**内存分页与交换**,只不过换出去的不是字节,是语义。
|
||||||
|
|
||||||
|
> "这段对话太长,我把关键信息压缩成一个摘要存着" = "内存不足,把不常用的页面换出到磁盘"
|
||||||
|
|
||||||
|
## 文件系统挂载 → RAG
|
||||||
|
|
||||||
|
**RAG 把外部知识库挂进 Agent 的"文件树"**,需要时检索,不需要时不占窗口。
|
||||||
|
|
||||||
|
这和操作系统挂载外部存储的逻辑完全相同:**用廉价的大容量存储补偿昂贵的快速内存,按需加载,用完释放。**
|
||||||
|
|
||||||
|
| 操作系统 | Agent 系统 |
|
||||||
|
|---------|-----------|
|
||||||
|
| 磁盘/SSD | 外部知识库(向量数据库) |
|
||||||
|
| 文件系统 | RAG 检索层 |
|
||||||
|
| mount 命令 | RAG 配置 |
|
||||||
|
| 磁盘 I/O | 向量相似度搜索 |
|
||||||
|
|
||||||
|
## 内核 / 调度器 → Harness / Orchestrator
|
||||||
|
|
||||||
|
**Agent = Model + Harness**
|
||||||
|
|
||||||
|
Model 是计算本身,Harness 是操作系统内核:管权限、调度任务、分配资源、处理工具调用的返回。
|
||||||
|
|
||||||
|
多 Agent 系统里的 **Orchestrator** 就是调度器,决定:
|
||||||
|
- 哪个 Agent 先跑
|
||||||
|
- 跑多久
|
||||||
|
- 结果传给谁
|
||||||
|
|
||||||
|
换个场景照样适用——这就是操作系统的任务调度。
|
||||||
|
|
||||||
|
## 写在最后
|
||||||
|
|
||||||
|
操作系统花了几十年才把这些问题想清楚:进程隔离、内存管理、文件系统抽象、设备驱动……
|
||||||
|
|
||||||
|
**Agent 时代正在把同样的问题重新答一遍。**
|
||||||
|
|
||||||
|
只不过:
|
||||||
|
- 资源从 **CPU / 内存** 变成了 **token / 推理时间**
|
||||||
|
- "程序" 从**机器指令**变成了**自然语言**
|
||||||
|
- "进程" 从**隔离的地址空间**变成了**独立的 Agent 实例**
|
||||||
|
|
||||||
|
历史不会重复,但会押韵。
|
||||||
|
|
||||||
|
当你觉得某个 Agent 设计似曾相识——不妨回到操作系统教科书里找答案。那里面藏着你需要的解。
|
||||||
Reference in New Issue
Block a user