koishi-plugin-opencode
v1.0.5
Published
koishi opencode plugin
Downloads
1,320
Maintainers
Readme
Koishi 插件:OpenCode
简体中文 | English
一个将 OpenCode AI 能力集成到 Koishi 聊天机器人的插件。
安装
普通用户
在 Koishi 控制台的插件商店中直接搜索安装:
- 打开 Koishi 控制台
- 进入插件市场
- 搜索
opencode - 点击安装
开发者
克隆仓库并在本地开发:
git clone https://github.com/DoiiarX/koishi-plugin-opencode.git
cd koishi-plugin-opencode
npm install配置
在 Koishi 配置文件中添加插件:
plugins:
opencode:
# OpenCode 服务器地址
baseUrl: "http://localhost:4096"
# 默认会话 ID(可选)
defaultSession: ""
# 覆盖默认模型(格式:provider/model)
model: ""
# 生成超时时间(毫秒,默认 30000)
timeout: 30000
# 命令所需权限等级(默认 1)
authority: 1✨ 核心特性
- 🤖 智能多模态:支持文本对话,更支持通过标准 Koishi 标签(
<img src="...">,<audio>,<video>,<file>)直接发送媒体文件(参考 Koishi 元素文档)。 - 🔄 会话自动恢复:基于 Title(
Koishi-<platform>-<userId>)自动锚定历史会话,服务重启不丢失上下文。 - 🌊 智能流式输出:支持原生编辑 (
editMessage) 和分段发送两种模式,打字机效果更流畅,且具备 HTML 标签完整性保护。 - 🛠️ 强大的插件系统:支持接入各类基于 OpenCode 协议的工具与 Agent。
- 🔍 深度推理展示:支持显示思维链 (Chain of Thought),让 AI 的思考过程透明化。
配置选项
| 配置项 | 类型 | 默认值 | 说明 |
| :--- | :--- | :--- | :--- |
| baseUrl | string | http://localhost:4096 | OpenCode Server 的地址 |
| defaultSession | string | - | 默认会话 ID (通常保留为空以使用自动管理) |
| model | string | - | 指定使用的模型 (格式: provider/model) |
| timeout | number | 30000 | 消息生成超时时间(毫秒) |
| authority | number | 1 | 命令所需权限等级 |
| showReasoning | boolean | true | 是否显示 <think> 推理过程 |
| enableStreaming | boolean | true | 是否开启流式输出 |
| streamMode | auto | native | segment | auto | 流式输出模式 (native: 原生编辑, segment: 分段发送) |
| streamInterval | number | 500 | 流式更新间隔(毫秒) |
| showToolMessages | boolean | true | 是否显示工具调用消息 |
| showProcessingMessage | boolean | true | 是否显示 "🔄 正在处理" 提示 |
| directory | string | - | 默认工作区目录 |
命令
基础命令
发送消息
oc [消息]向 OpenCode 发送消息并获取回复。支持直接输入文本作为参数。
示例:
oc 法国的首都是哪里?检查健康状态
oc.health
oc.h检查 OpenCode 服务器的健康状态。
示例:
oc.h模型管理
列出模型
oc.models [关键词]
oc.m [关键词]列出所有可用模型。可选择性按关键词过滤。
示例:
oc.models claude设置默认模型
oc.model.set <模型>
oc.ms <模型>为所有对话设置默认模型。
示例:
oc.ms anthropic/claude-3-5-sonnet-20241022会话管理
列出会话
oc.session.list
oc.sl列出所有可用会话。
创建新会话
oc.session.new
oc.sn为当前用户创建新会话(如果您想强制通过新的上下文开始对话)。
切换会话
oc.session.set <id>
oc.ss <id>切换到指定会话。
查看会话信息
oc.session.info
oc.si查看当前会话的信息。
删除会话
oc.session.delete <id>
oc.sdel <id>删除指定会话。
查看历史消息
oc.session.messages [页码]分页查看当前会话的历史用户消息。
其他
列出 Agents
oc.agents列出 OpenCode 服务器上所有可用的 Agent 工具。
查看流式状态
oc.stream.status查看当前会话的流式输出配置和适配器支持情况。
权限等级
不同命令有不同的默认权限等级:
| 命令组 | 权限等级 | |---------------|-----------------| | 基础对话 | 1 | | 查看会话信息 | 1 | | 查看历史消息 | 1 | | 列出模型 | 1 | | 列出 Agents | 1 | | 查看流式状态 | 1 | | 切换会话 | 2 | | 设置模型 | 3 | | 列出会话 | 3 | | 创建会话 | 1 | | 删除会话 | 4 |
系统要求
平台支持
本项目利用 Koishi 强大的适配器系统,实现多平台 OpenCode 交互。Koishi 通过官方和第三方适配器支持广泛的聊天平台:
官方支持的平台
- 钉钉
- Discord
- KOOK
- 飞书
- LINE
- 邮件
- Matrix
- Slack
- Telegram
- 微信公众号
- 企业微信
- Zulip
多平台集成能力
- 预装适配器:常用适配器已预装在 Koishi 中,可在插件配置的
adapter分组中找到 - 多账号支持:单个 Koishi 应用可同时接入多个平台的多个账号
- 负载均衡:同一平台内接入的多个机器人共享用户数据,方便实现负载均衡
- 可扩展性:除了官方适配器,插件市场中还有大量第三方聊天平台适配器
Koishi 生态优势
基于 Koishi 构建,本项目享有:
- 丰富的插件生态:接入数千个插件,功能可无限扩展
- 高级权限管理:细粒度的权限控制,为不同命令设置不同的权限等级
- 生命周期管理:完善的插件初始化和生命周期钩子机制
- 配置管理:集中化、灵活的配置系统
- 长期社区维护:Koishi 是一个成熟、活跃维护的聊天机器人框架,拥有强大的社区支持
平台准备工作
不同平台的接入方式和难度存在较大差异,可能需要:
- 在平台内注册开发者账号
- 准备一台部署到公网的服务器
- 配置 API 密钥
详细的平台接入指南可在各个适配器插件的文档中找到。
好消息是:Koishi 的大部分功能都不依赖特定的聊天平台。在进行准备工作的同时,你完全可以阅读本文档的后续部分,并在沙盒中体验并学习插件的功能。
快速开始
- 安装 OpenCode 服务器:安装指南
- 启动 OpenCode 服务器
- 在 Koishi 中安装此插件
- 配置
baseUrl指向你的 OpenCode 服务器 - 重启 Koishi
许可证
MIT
