Skip to content

@stello-ai/devtools

开发调试工具包,为 StelloAgent 提供可视化调试界面,支持实时修改 LLM 配置、提示词、工具开关等。

startDevtools

typescript
function startDevtools(agent: StelloAgent, options?: DevtoolsOptions): Promise<DevtoolsInstance>

启动 DevTools 服务,绑定到指定的 StelloAgent 实例。

DevtoolsOptions

typescript
interface DevtoolsOptions {
  port?: number
  open?: boolean
  llm?: LLMConfigProvider
  prompts?: PromptProvider
  sessionAccess?: SessionAccessProvider
  tools?: ToolsProvider
  skills?: SkillsProvider
  integration?: IntegrationProvider
  reset?: ResetProvider
  stateStore?: DevtoolsStateStore
}
字段默认值说明
port4800监听端口
opentrue是否自动打开浏览器
llm-LLM 配置提供者
prompts-Consolidation/Integration 提示词提供者
sessionAccess-Session 级别访问能力
tools-Tools 动态开关提供者
skills-Skills 动态开关提供者
integration-手动触发 integration 的回调
reset-清空数据并重新初始化的回调
stateStore-全局 DevTools 状态持久化

DevtoolsInstance

typescript
interface DevtoolsInstance {
  port: number
  close(): Promise<void>
}
字段说明
port实际监听端口
close关闭 DevTools 服务

Provider 接口

DevTools 通过 Provider 模式实现各功能面板。每个 Provider 独立可选,未提供的 Provider 对应的面板将被禁用。

LLMConfigProvider

typescript
interface LLMConfigProvider {
  getConfig(): {
    model: string
    baseURL: string
    apiKey?: string
    temperature?: number
    maxTokens?: number
  }
  setConfig(config: {
    model: string
    baseURL: string
    apiKey?: string
    temperature?: number
    maxTokens?: number
  }): void
}

LLM 配置的 getter/setter,由调用方实现具体的 adapter 切换逻辑。

PromptProvider

typescript
interface PromptProvider {
  getPrompts(): { consolidate: string; integrate: string }
  setPrompts(prompts: { consolidate?: string; integrate?: string }): void
}

Consolidation 和 Integration 提示词的读写。

SessionAccessProvider

typescript
interface SessionAccessProvider {
  getSystemPrompt(sessionId: string): Promise<string | null>
  setSystemPrompt(sessionId: string, content: string): Promise<void>
  getConsolidatePrompt?(sessionId: string): Promise<string | null>
  setConsolidatePrompt?(sessionId: string, content: string): Promise<void>
  getIntegratePrompt?(sessionId: string): Promise<string | null>
  setIntegratePrompt?(sessionId: string, content: string): Promise<void>
  getScope?(sessionId: string): Promise<string | null>
  setScope?(sessionId: string, content: string): Promise<void>
  injectRecord?(sessionId: string, record: { role: string; content: string }): Promise<void>
}

Session 级别的数据访问。带 ? 的方法为可选扩展。

ToolsProvider

typescript
interface ToolsProvider {
  getTools(): Array<{ name: string; description: string; parameters?: Record<string, unknown>; enabled: boolean }>
  setEnabled(toolName: string, enabled: boolean): void
}

工具列表和动态开关。

SkillsProvider

typescript
interface SkillsProvider {
  getSkills(): Array<{ name: string; description: string; enabled: boolean }>
  setEnabled(skillName: string, enabled: boolean): void
}

技能列表和动态开关。

IntegrationProvider

typescript
interface IntegrationProvider {
  trigger(): Promise<{ synthesis: string; insightCount: number }>
}

手动触发一次 integration cycle,返回 synthesis 和推送的 insight 数量。

ResetProvider

typescript
interface ResetProvider {
  reset(): Promise<void>
  getDataDir?(): string
}
方法说明
reset清空数据并重新初始化运行时
getDataDir返回数据目录的绝对路径,供前端展示

DevtoolsStateStore

typescript
interface DevtoolsStateStore {
  load(): Promise<DevtoolsPersistedState | null>
  save(state: DevtoolsPersistedState): Promise<void>
  reset?(): Promise<void>
}

DevTools 全局状态的持久化存储接口。启动时调用 load() 恢复上次状态,变更时调用 save() 保存。

DevtoolsPersistedState

typescript
interface DevtoolsPersistedState {
  hotConfig?: StelloAgentHotConfig
  llm?: {
    model: string
    baseURL: string
    apiKey?: string
    temperature?: number
    maxTokens?: number
  }
  prompts?: {
    consolidate?: string
    integrate?: string
  }
  disabledTools?: string[]
  disabledSkills?: string[]
}
字段说明
hotConfig运行时热更新配置
llmLLM 配置快照
prompts提示词快照
disabledTools被禁用的工具名称列表
disabledSkills被禁用的技能名称列表