docs: 教程 03-05(RAG与外部记忆、多agent、工程与agent思维方式)
一个用 Go 从零实现的 AI Agent 学习项目:多轮对话、工具调用、流式打字机输出、上下文窗口管理与会话持久化。除存储层(gorm/sqlite)外全部标准库手写——目标是把 Agent 的每个零件拆开看明白。
bootstrap/ C+V 层:/指令路由(controller)与终端渲染(view)、装配根 runtime/ M 层:Engine 多轮工具循环、Turn/TurnStream、会话归档与恢复 contextpolicy/ 上下文窗口管理:token 估算(Usage 自校准)+ 滑窗截断 + 摘要压缩 + 摘要锚点 provider/ LLM 接入:openai / anthropic 双格式(对话/工具/流式迭代器) tools/ 工具执行体:read_file/write_file/list_dir/edit_file/grep/glob + run_command(结果自动截断:单条 10K token 上限,防上下文爆炸) models/ M 层:领域模型(Session/Turn/Workspace)与 gorm/sqlite 持久化
依赖单向:bootstrap → runtime → contextpolicy/provider/tools → models。
bootstrap → runtime → contextpolicy/provider/tools → models
cp .env.example .env # 或直接创建 .env,填入以下配置 go run .
.env 配置项:
.env
LLM_PROVIDER
openai
anthropic
LLM_BASE
LLM_API_KEY
LLM_MODEL
LLM_TURN_TIMEOUT
90s
5m
LOG_LEVEL
logs/
已恢复会话 #2:帮我写八皇后...,共 3 轮 可用指令:/exit 退出 | /new 新会话 | /list 列表 | /use N 切换 | /delete N 删除 | /help 帮助 > 帮我看看当前目录 ← 流式打字机输出;需要时模型会调用工具 > /list ← 会话列表(* 标当前)
data/agent.db
go test ./... -count=2 -race
docs/01 入门.md
docs/02 上下文管理.md
docs/superpowers/specs/
从头开始构造一个AI CR的agent,完成可以进入生产
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
ai_agent_study
一个用 Go 从零实现的 AI Agent 学习项目:多轮对话、工具调用、流式打字机输出、上下文窗口管理与会话持久化。除存储层(gorm/sqlite)外全部标准库手写——目标是把 Agent 的每个零件拆开看明白。
架构
依赖单向:
bootstrap → runtime → contextpolicy/provider/tools → models。快速开始
.env配置项:LLM_PROVIDERopenai或anthropicLLM_BASELLM_API_KEYLLM_MODELLLM_TURN_TIMEOUT90s、5m)LOG_LEVELlogs/)交互
data/agent.db),软删除;日志全部落logs/(控制台保持纯净交互)测试
文档
docs/01 入门.md—— Agent 基础docs/02 上下文管理.md—— 会话持久化与上下文窗口管理(滑窗/摘要/锚点/校准)的实现详解docs/superpowers/specs/—— 各模块设计规格