用途:按 temet-run 项目既有模式实现 TUI 组件,覆盖守护进程监控、智能体管理与可观测性集成,面向监控自主智能体的场景。
主要能力与模式:
- 配置集成:使用 temet_run.config.Settings(Pydantic Settings),从 .env 与环境变量加载,调用 get_agent_pid_file(agent_id) 等获取智能体专属路径,并处理 ValidationError。
- 智能体发现与状态检查:在 settings.daemon_pid_file.parent 下查找 temet-run-{agent_id}.pid 文件,用 os.kill(pid, 0) 判断进程是否存在,优雅处理过期 PID 文件。
- IPC 通信:使用 temet_run.ipc.client.IPCClient,连接前检查 socket 是否存在,用 async with IPCClient(path) 安全连接,流式处理长操作响应,并处理连接错误。
- 可观测性:从 temet_run.observability 导入 get_logger、instrument_async,使用 logger.context() 记录结构化上下文,按 debug/info/warning/exception 分级,并用 @instrument_async 自动生成 span。
- 自动刷新:在 on_mount() 中 set_interval 设置周期,用 run_worker() 执行异步刷新,静默刷新隐藏错误、用户触发刷新给出通知,并在 on_unmount() 中 remove_timer 清理。
- 类型安全与函数式:全量类型注解,使用 TypedDict 与 frozen dataclass 表示不可变数据,抛出带上下文的特定异常,显式返回 Optional。
使用方式:按上述模式编写 Textual 组件,示例包括 AgentListWidget、DaemonMonitorWidget、AgentCommandWidget、AutoRefreshWidget 与 AgentDashboard 等。
限制:资料未提供安装命令、依赖版本、平台支持、收费与价格信息;部分状态获取标注为 TODO(如通过 IPC 获取实际状态),实际可用性需以项目实现为准。