跳到主要内容
知识地图AFS

你在这里。看看这个问题与其他知识怎样相连。

选择节点前往页面 · 展开后可留在地图中阅读

知识地图沿着连接,读懂一个问题
← 学习

学习 / AFS

把资源组织成可以操作的世界。

从 Unix 与 Plan 9 的启发,到 provider 的实现、测试与远端接入。理解 agent 怎样发现资源、读懂操作,并核对执行结果。

从 AFS 开始

选一条起点路径

  1. 01
    从 AFS 开始

    理解任务能指向什么、访问什么、操作什么。

    第一次接触 · 认识资源与地址5 个问题
  2. 02
    从找到资源,到可靠地操作它

    分清地址、能力、更新与失败,读懂共享工作环境的行为。

    已了解 AFS · 资源行为与可靠性6 个问题
  3. 03
    追溯 AFS 的设计来源

    从 Unix、Plan 9 到面向任务的资源世界。

    理解设计4 个问题
  4. 04
    认识不同的 provider

    比较数据、系统与外部服务如何接入同一环境。

    选择实现5 个问题
  5. 05
    实现并检验一个 provider

    从路径契约到读取、动作和一致性测试。

    面向开发者6 个问题
  6. 06
    让 agent 逐步理解 AFS

    分清说明、prompt、MCP 工具与实际执行。

    Agent 接入5 个问题
  7. 07
    让资源跨越进程边界

    理解远端接入、反向挂载、作用域与失败。

    分布式资源5 个问题

看看知识怎样连接

每篇解释都能独立阅读。“先了解”标出了它用到的背景。

01

资源与操作

复用 AFS 基础知识

  1. AFS 把什么组织在一起?

    AFS 为任务提供一份有名字、可查看的资源视图。

  2. 路径给 agent 带来了什么?

    路径在命名空间中标识资源,让操作有明确的对象。

  3. 服务怎样接入 AFS?

    Provider 实现资源操作,挂载把它接入命名空间。

  4. 为什么操作的含义必须稳定?

    有了地址,还要让使用者知道对它进行的操作意味着什么。

  5. 共享上下文意味着所有人看见全部内容吗?

    Small World 为一个观察者呈现相关资源,而不是开放整个系统。

  6. 挂载把资源放到哪里?

    入口路径与资源的原来位置,可以是两回事。

  7. 有了地址,就知道能做什么吗?

    资源的位置、支持的操作和调用者权限,要分别确认。

  8. 另一块屏幕怎样知道内容变了?

    读取同一地址与收到变化通知,是两个步骤。

  9. 两个人同时修改,会发生什么?

    共享地址不替你决定旧版本的修改应该怎样处理。

  10. 搜索与查询,为什么要分开?

    找相关内容,与按明确条件取得记录,是两类请求。

  11. 失败以后,应该重试还是换一个做法?

    不存在、不支持、被拒绝和版本冲突,需要不同的处理。

02

跨越进程边界

远端连接与反向挂载

  1. 远端资源怎样进入本地命名空间?

    本地路径可以代表远端服务,但网络与授权边界不会消失。

  2. 反向挂载的“反向”指什么?

    改变的是接入的发起或注册方向,不是把授权方向也倒过来。

03

设计的来源

Unix、Plan 9 与上下文

  1. AFS 从 Unix 借来了什么?

    把不同资源接到共同的名字与操作上,让工具能够组合。

  2. Plan 9 为什么强调每个参与者的命名空间?

    名字所在的环境可以按使用者组织,远端服务也能进入这个环境。

04

可以检验的契约

路径、能力与一致性测试

  1. Provider 返回的路径该不该带挂载前缀?

    Provider 使用相对自身的路径,调度层负责调用者看到的挂载前缀。

  2. Conformance tests 究竟证明什么?

    检查实现是否遵守声明的公共契约,而非只检查示例能跑。

  3. 为什么还要测试拒绝与失败?

    只会成功的用例看不出权限放宽、错误吞掉和并发丢更新。

05

不同的 Provider

数据、系统与外部服务

  1. 这么多 provider,应该怎样分类?

    先看资源和职责,再看它住在哪个目录。

  2. 系统能力为什么也能成为 provider?

    运行状态和工具能力也能有结构化入口,但它们的生命周期不同于文档。

  3. FS、JSON、KV 和 DID Space 有什么不同?

    共同操作不抹平存储位置、数据结构和持久化契约。

  4. 外部 API 接进 AFS 后,什么没有改变?

    服务的权限、延迟和副作用仍然存在,需要通过接口表达。

06

动手实现

读取处理器与业务动作

  1. 如何从一个只读 provider 开始?

    先实现一个明确资源及其路径契约,再扩展操作。

  2. 怎样把业务动作做成可发现的操作?

    动作不仅需要执行函数,也需要参数、效果和失败的说明。

  3. 检验一个只读 Provider

    把报告挂到 /work,再用共享测试和真实读取检查实现。

07

让 Agent 理解

解释、Prompt、MCP 与验证

  1. Agent 怎样知道一个路径能做什么?

    先发现、再解释、再按明确的能力操作。

  2. AFS 的 prompt 和 explain 是同一回事吗?

    Prompt 提供进入环境的引导,explain 提供路径上的局部说明。

  3. MCP 客户端怎样操作 AFS?

    MCP 提供接入协议,AFS 提供被操作的资源环境与语义。

  4. “AFS 支持 MCP”有哪两个方向?

    向 MCP 客户端暴露 AFS,与把 MCP 服务挂入 AFS,是两种适配。

  5. Agent 怎样完成一次可检查的 AFS 任务?

    把发现、读取、选择操作和核对结果分开观察。