业务背景重建
业务背景重建

业务背景重建

从源码反推产品业务事实、推导诉求与信息缺口

📑 返回索引:项目文档索引

一、代码明确可见的业务事实

以下业务事实均有源码直接佐证,可安全纳入系统能力文档。

# 业务事实 佐证依据(文件/类/方法) 归类建议 定位匹配度 局限
1 产品为命令行驱动的 AI 编码助手,支持 run/generate/account/providers/agent 等 21 个命令 packages/opencode/src/index.ts(yargs 组装命令) 核心能力 高 —
2 会话(Session)是核心业务对象,支持持久化、续接(–continue)、分叉(–fork)、分享(–share)、附加(–attach)、回放(–replay) packages/opencode/src/cli/cmd/run.ts 核心能力 高 —
3 提供 build(全权限)/ plan(只读)两个内置主 Agent,general/explore 为子 Agent,compaction/title/summary 为隐藏 Agent packages/opencode/src/agent/agent.ts 核心能力 高 隐藏 Agent 不向用户展示
4 支持技能(Skill)体系:扫描 {skill,skills}/**/SKILL.md 及 .claude/.agents 目录,frontmatter 校验 packages/opencode/src/skill/index.ts 核心能力 高 —
5 工具输出采用有界截断:2000 行 / 50KB 上限,超出部分落临时文件,7 天保留、每小时清理 packages/opencode/src/tool/truncate.ts 工程治理 高 —
6 工具执行前有权限请求流程,支持 once/always/reject 三态响应,reject 级联取消同会话其余请求 packages/opencode/src/permission/index.ts 安全体系 高 —
7 支持 MCP 生态:stdio 本地与 StreamableHTTP/SSE 远程两种传输,暴露 tools/prompts/resources/instructions packages/opencode/src/mcp/index.ts 生态集成 高 —
8 多语言支持:Web 端 i18n 约 60 种语言;桌面端含中文输入法修复脚本(install-korean-ime-fix.sh) packages/app/src/i18n/、patches/install-korean-ime-fix.sh 工程治理 中 i18n 覆盖范围未逐一核验
9 数据存储为本地 SQLite(WAL 模式),含 session/message/event/credential/project/permission 等 17 张核心表 packages/core/src/database/、packages/core/src/database/database.ts 核心能力 高 —
10 服务端支持 Basic Auth 密码保护(OPENCODE_SERVER_PASSWORD/USERNAME),PTY ticket URL 跳过认证 packages/server/src/middleware/authorization.ts、packages/opencode/src/server/auth.ts 安全体系 高 —
11 桌面端采用 sidecar 模式:Electron 主进程后台拉起 opencode 服务进程 packages/desktop/src/main/server.ts、sidecar.ts 核心能力 高 —
12 提供 Slack bot 集成(Socket Mode、threaded 对话) packages/slack/ 生态集成 中 —

二、可推导的业务诉求

以下诉求由源码结构与设计取舍推导,表述需克制。

# 推导诉求 推导依据 表述边界 适配方向
1 追求”进程崩溃不丢会话”的可靠性——Prompt 先持久化再执行 V2 Session Core 准入/执行分离;session_input 表 可表述为”崩溃可恢复”,不可声称”分布式高可用” 可靠性优先
2 追求”长会话不失控”——上下文需压缩与纪元管理 Compaction 隐藏 Agent、Context Epoch、preserve_recent_tokens/tail_turns/prune 配置 可表述”提供压缩策略”,不量化 token 节省幅度 上下文工程化
3 追求”协议即契约”——单一 HttpApi 权威定义多端消费 SDK Contract IR、httpapi-codegen、Promise/Effect 双 Emitter 可表述”代码生成保证契约一致” 平台化
4 追求”模型生态中立”——不绑定单一 Provider BUNDLED_PROVIDERS 内联 20+ AI SDK Provider、Route 抽象、8 个协议适配器 可表述”多模型中立”,不声称统一评测体系 生态中立
5 追求”可扩展”——插件与技能双扩展点 Plugin v1/v2 双轨、tool.definition/tool.execute.before 等 hooks、SKILL.md 扫描 可表述”提供插件与技能扩展机制” 可扩展性

三、无法确认的业务信息

# 不确定内容 缺失源码证据 写作风险 稳妥描述方式
1 enterprise 包的商业定位与功能边界 仅为 SolidStart 应用框架,用途注释缺失 误描述为企业版功能清单 标注【不确定】,仅描述技术形态
2 实际用户规模 / 并发会话规模 无任何量化指标代码 编造并发数据 不提及用户规模,仅描述架构能力上限
3 模型调用成本与 token 消耗的量化收益 无成本核算代码 编造降本百分比 仅定性描述 Compaction 的设计意图
4 各 Provider 的兼容性完整程度 仅部分协议有测试(anthropic-messages/bedrock-converse) 夸大全协议兼容 表述为”8 个协议适配器已实现,兼容性以测试为准”
5 桌面端/Web 端活跃功能完整度 desktop 为 BETA,web 与 console 功能边界未逐一核验 宣称桌面端功能等同 CLI 明确标注桌面端 BETA 状态

四、业务时间线推断

架构演进脉络(由代码结构推导,非官方声明)

  • V1 阶段:SessionPrompt 单体编排(packages/opencode/src/session/prompt.ts,约 1081 行 runLoop),旧版 SDK(packages/sdk/js,openapi-codegen 生成)
  • V2 重构阶段:SessionV2 / SessionRunner / SessionExecution 拆分至 core 包,runner 源码注释明确”Keep this as orchestration over smaller collaborators rather than rebuilding the legacy SessionPrompt monolith”
  • 平台化阶段:HttpApi 权威化 + 代码生成(httpapi-codegen)、sdk-next 嵌入式 Host、插件 v2(effect 原生)
  • 未完成迁移:SDK 更名(sdk-next → sdk)待旧消费者迁移;Session 运行态持久化(runner TODO)待落地

由 opencode-project-analyzer skill 生成

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注