examples/

directory
v0.0.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 24, 2026 License: MIT

README

examples/

集成本 SDK 的可运行示例。每个子目录是独立的 package main,直接 go run

清单

示例 场景 关键 API
basic/ 最小路径:一轮对话 NewHealthListModelsNewGlobalEventStreamRun
auto-reply/ 权限/问题自动应答 SessionEvents + ReplyPermission / ReplyQuestion
concurrent/ 多 session 共享一条全局流 GlobalEventStream.Subscribe + Prompt
session-crud/ session 管理面全生命周期 Create/List/Get/UpdateSession/ListMessages/Delete

前置条件

任意一个 demo 都需要先起 opencode serve:

opencode serve --port 6096   # 或用默认 4096

无口令模式即可。需要鉴权时用 -token 传入。

通用参数

所有 demo 共享:

-url    opencode serve 地址(默认 http://127.0.0.1:6096)
-token  Bearer token(本地部署可空)
-dir    工作区目录 LocationRef.Directory(默认当前目录)
-timeout 整体超时

运行

go run ./examples/basic
go run ./examples/auto-reply -perm always
go run ./examples/concurrent -n 3
go run ./examples/session-crud

选型建议

  • 单轮问答 / ChatOps 机器人 → basic
  • 无人值守 agent / CI 集成 → auto-reply
  • 多租户网关 / 一进多出 → concurrent
  • 管理面板 / session 列表页 → session-crud

注意

  • 全局流(GlobalEventStream)V1 不支持 ?after=,断连窗口的 delta 事件会丢;终 止事件保证送达。强一致需求请改用 SessionEvents(session-scoped,V1 也不支持 ?after= 续传,但 chan 容量更大且无多路复用抢断,单 session 场景比全局流稳)。
  • ListMessages 是最终一致:prompt 后约 3s 才返回新消息,不要用它判 prompt 成功。

Directories

Path Synopsis
Command auto-reply 演示在事件流里自动处理 PermissionAsked / QuestionAsked。
Command auto-reply 演示在事件流里自动处理 PermissionAsked / QuestionAsked。
Command basic 演示最小集成路径:Health → ListModels → CreateSession → Run → 收 HighEvent → 清理。
Command basic 演示最小集成路径:Health → ListModels → CreateSession → Run → 收 HighEvent → 清理。
Command concurrent 演示用一条 GlobalEventStream 长连服务多个 session, 适用 HTTP 网关 / 机器人适配层等"一进多出"场景。
Command concurrent 演示用一条 GlobalEventStream 长连服务多个 session, 适用 HTTP 网关 / 机器人适配层等"一进多出"场景。
Command session-crud 串起 session 管理面:Create → List → Get → ListMessages → Delete,演示一次完整生命周期。
Command session-crud 串起 session 管理面:Create → List → Get → ListMessages → Delete,演示一次完整生命周期。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL