跳转至

源码导航与阅读顺序

推荐顺序

main.go
  ↓
cmd/cmd.go: NewCLI, RunHandler, RunServer
  ↓
api/client.go + api/types.go
  ↓
server/routes.go: GenerateRoutes, ChatHandler, GenerateHandler
  ↓
server/model.go + manifest/* + types/model/*
  ↓
server/sched.go
  ↓
llm/server.go + llm/llama_server.go
  ↓
discover/* + ml/* + llama/*
  ↓
agent/session.go + agent/registry.go + agent/compactor.go

包职责表

一句话职责 首读文件
api 对外请求/响应和 Go client types.go, client.go
cmd Cobra 命令、交互和本地客户端体验 cmd.go, agent_tui.go
server HTTP、模型、prompt、调度和云代理 routes.go, sched.go, model.go
manifest 内容寻址模型索引 manifest.go, layer.go, paths.go
model 模型配置/解析器/renderer model.go, parsers/, renderers/
llm runner 抽象和 llama-server 进程 server.go, llama_server.go
discover GPU/CPU/runner 能力探测 gpu.go, runner.go
convert 外部模型格式转换 convert.go, reader.go, tokenizer.go
agent chat/tool/skills/compaction loop session.go, registry.go, compactor.go
middleware OpenAI/Anthropic 协议转译 openai.go, anthropic.go
x MLX、create、transfer、quant 等扩展 按目标子目录阅读

关键源码链接

链接指向 upstream main;具体行号可能随上游更新漂移。

静态搜索配方

# 找路由
rg -n 'r\.(GET|POST|DELETE|HEAD)' ollama-main/server/routes.go

# 找主要类型和函数
rg -n '^type |^func ' ollama-main/server ollama-main/agent --glob '*.go'

# 找 runner 边界
rg -n 'LlamaServer|NewLlamaServer|getRunner|runnerRef' ollama-main/server ollama-main/llm

# 找模型格式入口
rg -n 'GGUF|Safetensors|ParseFile|Manifest|BlobsPath' ollama-main