0%

REST API 端点:OpenAPI 规范与使用 OpenCode 服务器提供了一个基于 OpenAPI 3.1.1 规范构建的全面 REST API,支持与 AI 编码 Agent、会话管理和项目操作的程序化交互。该架构支持同步 HTTP 请求以及通过 Server-Sent Events 和 WebSockets 进行实时通信,为多样化的集成场景提供了灵活性。 来源:openapi.json, server.ts API 架构概览 OpenCode API 遵循模块化设计,组织为不同的资源域,每个域服务于 AI 辅助开发工作流中的特定功能。服务器实现使用 Hono 框架和 hono-
Read more »

LSP 集成:服务器管理与客户端通信 OpenCode 的 LSP 集成是一套高性能、可扩展的智能代码辅助系统,基于客户端-服务器架构实现,支持 35+ 编程语言的诊断、导航、符号查询等功能,核心特点是延迟生成、资源优化、多服务器协调,同时提供灵活的配置和扩展能力。 一、LSP 架构核心:三层组件与延迟生成策略 OpenCode LSP 采用关注点分离的三层架构,确保系统高效、可维护,同时通过延迟生成优化资源占用。 1. 三层核心组件 组件职责核心功能服务器管理语言服务器的生命周期控制服务器注册、项目根目录检测、进程生成(二进制/包管理器/自动下载)客户端通信处理 LSP 协议交互JSON
Read more »

前言:转载潘锦大神的一篇博客,原文在这里 AI Agent 核心策略:如何判断 Agent 应该停止 简单来讲,AI Agent 实现的的大逻辑就是一个大的循环 + 获取上下文 + 不停的 LLM 调用 + 工具的调用。 那么一个关键问题就出现了:这个循环什么时候应该停止?如果处理不当,Agent 可能会陷入无限循环,浪费计算资源,或者过早停止而无法完成任务。本文将深入探讨 AI Agent 停止策略的核心设计思路。 常用停止策略 AI Agent 停止策略无外乎以下几种情况: 1. 硬性限制 最简单粗暴的方法: * 最大步数限制(比如最多循环 30 次) * 执行时间限制(
Read more »

提供商架构:多提供商支持模型 OpenCode 的提供商架构通过统一可扩展接口实现了多 AI 提供商的无缝集成,既抽象了不同提供商的底层复杂性,又保留了自定义配置和提供商专属优化的灵活性,核心支撑了超过 19 个内置提供商的快速接入与自定义提供商的扩展能力。 一、架构核心概述 提供商系统采用分层架构设计,将「配置管理、身份验证、模型发现、运行时执行」四大核心能力整合到内聚框架中,具备两大关键特性: 1. 内置丰富支持:直接捆绑 SDK 集成 19+ 主流 AI 提供商,消除常见用例的依赖管理成本 2. 无限扩展能力:通过插件系统支持自定义提供商加载,无需修改核心代码即可扩展新能力 3
Read more »

会话生命周期:创建、压缩与持久化 OpenCode 中的会话生命周期负责编排用户与 AI Agent 之间的对话上下文的创建、维护和演进。这个综合系统通过层级关系管理会话初始化,实施智能压缩以保持上下文效率,并提供带有自动迁移功能的强大持久化机制。 会话创建与层级结构 会话创建会建立一个带有元数据跟踪、可选父子关系和可配置自动共享的对话上下文。该系统支持独立会话以及从现有对话派生出的分支会话。 核心创建过程通过 Session.create() 进行,该方法会委托给 Session.createNext(): 来源:packages/opencode/src/session/index.
Read more »

工具注册:内置工具与可扩展性 工具注册表是 OpenCode 系统中管理所有可用工具的核心组件,为内置工具和自定义工具提供了统一的接口。这种架构使 agents 能够通过一致的 API 访问多样化的功能集,同时通过插件和基于配置的工具定义支持可扩展性。 工具注册表架构 工具注册表采用集中式类插件架构,其中工具通过元数据、功能和权限要求进行注册。注册表维护两类工具:随 OpenCode 附带的内置工具,以及可由用户或第三方插件添加的自定义工具。 内置工具静态注册在 all() 函数中,包括文件操作、搜索功能、bash 执行和 web 交互等核心功能。自定义工具在运行时初始化期间从配置目录和插
Read more »

OpenCode Agent系统是一个多智能体架构,通过定义Agent结构,使用Task工具实现Agent间调用,集成Permission权限系统进行访问控制,通过Session会话处理器处理交互,并使用Tool工具系统提供可扩展能力。 Agent 类型和模式:主 Agent、子 Agent 和隐藏 Agent 本部分解释了 OpenCode 中 Agent 的架构组织,涵盖了三种不同的 Agent 类型(主 Agent、子 Agent 和隐藏 Agent)、它们的运行模式、配置机制以及它们如何在会话管理系统内进行交互。 架构概述 OpenCode 的 Agent 系统围绕 Agent.I
Read more »

OpenCode最近很火,它不仅仅是另一个用于代码的 AI 聊天机器人——它是一个综合性的开发环境,能够理解你的项目结构,执行命令,并在你的监督下进行真正的代码更改。通过它可以学习一个强大的智能体是怎么设计和开发。 接下来,通过分析OpenCode的源码,来深入学习,这里大量用到了另外2个代码仓智能分析工具Zread和DeepWiki。 核心架构 OpenCode 的核心采用了客户端/服务器架构,其中强大的后端服务器负责管理 AI 交互、文件操作和工具执行,而各种客户端界面(CLI、桌面应用、Web)则提供了与这些功能无缝交互的方式 packages/opencode/src/index.
Read more »

之前研究过一篇LangChain的工程师Lance Martin和Manus的联合创始人Peak(季逸超)关于上下文工程的研讨,博文见这里,最近Cursor的工程师Jediah Katz也分享了一篇关于Cursor中关于上下文工程的优秀实践,这里对该文章进行翻译学习:Cursor原文在这里 发布时间:2026 年 1 月 6 日 作者:Jediah Katz 来源:Cursor 官方博客(Research) 编码 Agent(智能体)正在快速改变软件构建的方式。它们的快速进步既来自模型本身能力的提升,也来自更优的上下文工程设计,用以更好地引导其行为。 Cursor 的 agent
Read more »

微信小程序以其轻量、便捷、跨平台的特性,成为了连接线上线下的重要工具。本教程将根据微信小程序最新的开发文档,从零开始,一步步开发一个功能完整的 “待办事项 (Todo List)” 小程序。 目标功能 我们将开发的Todo List小程序将具备以下功能: 1. 添加待办事项:用户可以在输入框中输入新的待办事项并添加。 2. 显示待办事项列表:所有待办事项以列表形式展示。 3. 标记完成/未完成:每个事项可以被标记为已完成或未完成。 4. 删除待办事项:可以从列表中删除某个事项。 5. 数据持久化:关闭小程序后,数据不会丢失(使用本地存储)。 准备工作 在开始开发之前,需要准备以
Read more »