本系列文章皆基于开源 Vibecoding 工具 Opencode 源码进行详细拆解。
源码链接:github.com/anomalyco/o...
写在前面
兄弟们!咱们前几期分别聊了 Session、Tool、Prompt、Agent 这四大核心模块,有没有一种"原来 AI 编程助手是这样工作的"的感觉?
!但是!有没有觉得缺点什么?对,兄弟们说得对!咱们缺一个总结!
今天咱们就来做个大盘点,把这四个模块串起来讲讲!让兄弟们彻底搞懂 OpenCode 是怎么工作的!!!
一句话概括
OpenCode = Session(记忆) + Tool(手脚) + Prompt(灵魂) + Agent(角色),四位一体,缺一不可!
二、四大模块全景图
先来看图!这四个模块的关系一目了然:
会话管理] P[Prompt
提示词] A[Agent
代理] T[Tool
工具] end S -->|提供上下文| P P -->|组装提示词| A A -->|权限控制| T T -->|执行结果| S S -->|消息历史| S P -->|模型选择| P A -->|任务分发| A T -->|能力扩展| T
各模块职责一览
| 模块 | 比喻 | 核心职责 |
|---|---|---|
| Session | 大脑 | 记忆管理、消息历史、状态维护 |
| Prompt | 灵魂 | 构建提示词、加载指令、环境感知 |
| Agent | 角色 | 权限控制、行为指导、任务分发 |
| Tool | 手脚 | 执行命令、读写文件、能力扩展 |
三、模块详解(快速回顾)
3.1 Session - 会话管理
一句话:Session 是 AI 的"记忆系统",负责管理对话历史、消息版本、状态维护。
核心功能:
- 消息历史管理
- 会话压缩(对话太长自动摘要)
- 多版本消息支持
- 上下文窗口管理
3.2 Prompt - 提示词系统
一句话:Prompt 是 AI 的"灵魂",负责构建系统提示词。
核心功能:
- 模型特定提示词(Claude/GPT/Gemini/Qwen)
- 指令文件加载(AGENTS.md 层级查找)
- 远程指令支持(URL 加载)
- Skill 技能系统
3.3 Agent - 代理机制
一句话:Agent 是 AI 的"角色卡",决定 AI 能做什么、怎么做。
权限] --> T[工具调用] S[Prompt
提示词] --> T M[Model Config
模型配置] --> T end T -->|allow| E[执行] T -->|deny| D[拒绝] T -->|ask| C[请求确认]
内置 Agent:
| Agent | 用途 |
|---|---|
| build | 默认,执行任务 |
| explore | 只读探查 |
| plan | 规划模式 |
| compaction | 压缩历史 |
3.4 Tool - 工具系统
一句话:Tool 是 AI 的"手脚",让 AI 能够执行操作。
描述] P[parameters
参数] E[execute
执行] R[permission
权限] end D --> P P --> E E --> R R -->|检查| E
核心工具:
| 工具 | 功能 |
|---|---|
| read | 读取文件 |
| write | 写入文件 |
| edit | 编辑文件 |
| bash | 执行命令 |
| grep | 搜索代码 |
| glob | 查找文件 |
四、数据流转
一条用户消息在 OpenCode 中的完整旅程:
五、面试常见问题
Q1: OpenCode 的核心架构是什么?
答:OpenCode 由四大核心模块组成:Session(会话管理)、Prompt(提示词)、Agent(代理)、Tool(工具)。它们相互配合,Session 管理历史,Prompt 构建提示词,Agent 控制权限,Tool 执行操作。
Q2: Session 和 Message 是什么关系?
答:Session 是会话容器,管理多个 Message;Message 是消息单元,包含用户输入和 AI 响应。Session 通过消息历史为 Prompt 提供上下文。
Q3: Prompt 模块如何支持多模型?
答:通过模型特定提示词系统,不同模型(Claude/GPT/Gemini/Qwen)使用不同的提示词模板,最大化每个模型的效果。
Q4: Agent 的权限系统是怎么工作的?
答:使用规则链匹配,从上往下遍历,第一个匹配的规则就是最终结果。可以控制文件读写、命令执行等一切行为。
Q5: Tool 和 Agent 是什么关系?
答:Agent 通过权限控制 Tool 的使用,Tool 是 Agent 的"手脚"。Agent 决定能不能做,Tool 负责具体执行。
六、设计模式总结
| 设计模式 | 在 OpenCode 中的体现 |
|---|---|
| 职责分离 | Session/Prompt/Agent/Tool 各司其职 |
| 权限控制 | Agent 权限规则链 |
| 层级查找 | Prompt 指令文件向上查找 |
| 动态加载 | Tool 注册表、Skill 系统 |
| 状态管理 | Session 消息历史、会话压缩 |
| 策略模式 | 多模型提示词策略 |
七、总结
兄弟们!今天咱们把 OpenCode 的四大核心模块来了个一锅端!
总结一下:
- Session - AI 的记忆,管理对话历史和状态
- Prompt - AI 的灵魂,构建提示词和加载指令
- Agent - AI 的角色,控制权限和行为
- Tool - AI 的手脚,执行具体操作
这四个模块缺一不可,完美配合,才让 OpenCode 能够帮你高效地写代码!
往期好文推荐
- 面试官:OpenCode Agent 代理机制了解吗?
- 面试官:OpenCode Prompt 系统了解吗?
- 面试官:OpenCode Tool 工具系统详解?
- 面试官:OpenCode Session 会话机制了解吗?
写在最后
兄弟们!咱们这个 OpenCode 核心模块系列终于完结了!!! 从 Session 到 Tool,从 Prompt 到 Agent,再到今天的总结篇,兄弟们是不是收获满满???
你们觉得哪个模块最有趣???是自动向上查找的 AGENTS.md,还是权限规则链???
欢迎在评论区留言讨论!也请点赞、收藏 + 关注,咱们下期再见!!!
如果兄弟们想看其他模块的分析(比如 MCP、Plugin 等),也可以在评论区告诉我!!!
❤️❤️❤️