ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

在终端并排“观战”并纠偏:深入解析 MyClaude 的 Sidecar 伴生协同终端

在终端并排“观战”并纠偏:深入解析 MyClaude 的 Sidecar 伴生协同终端 在本地运行 AI 编码代理时有两件事非常关键对代理行为的可见性我能看到它在做什么和可控性我能在必要时纠偏或终止它吗。MyClaudehttps://github.com/007350/myclaude通过一个“Sidecar 伴生协同终端”把这两点做到了产品级在主 Agent 旁开一个并排窗口实时观测、解读并能即时介入——这对在真实仓库中让 AI 进行改动、跑测试、修复 bug 的场景至关重要。本文面向 CSDN 读者重点解读 Sidecar 的设计、使用和扩展方法。一、Sidecar 到底是什么为什么重要- 什么是 Sidecarsidecar.py 提供了一个并行的终端窗口“副驾驶”通过本地 HTTP IPC 与主 Agent 通信实时读取主 Agent 的“执行黑板”/api/status显示当前目标、正在运行的工具、耗时、最近日志等并允许用户发起三类操作查看状态、注入纠偏指令/steer、强制中断当前工具/interrupt。- 为什么重要主 Agent 会在真实文件上执行写入、运行测试等危险或耗时操作。Sidecar 提供“实时可视化 干预入口”能把“黑盒自动化”变成“可控协同”——降低风险并提升效率。二、关键实现要点基于 sidecar.py- 发现主 AgentSidecar 通过工作目录下的 .myclaude_port 文件读取端口get_ipc_port()默认端口 9876这样无需复杂配置就能自动连接本地 Agent。- 轮询状态与日志fetch_status(port) 会请求 /api/status返回结构化 JSON包含 status, goal, step, active_tool, recent_logs 等。Sidecar 将这些信息格式化为状态卡print_status_card与日志卡print_logs_card。- 注入纠偏steeringsend_steer(port, message) POST 到 /api/steerSidecar 里既支持明确的 /steer text也会将自然语言中像“告诉他…/指示他…”这类短句自动识别为纠偏并发送。- 紧急中断send_interrupt(port) 调用 /api/interrupt主 Agent 会尝试杀掉卡住的子进程例如长时间的 run_command。这是保障实验安全的“核按钮”。- 伴生 AI战况解读ask_companion_ai() 使用配置的模型myclaude.config.Config对最近日志和黑板做微总结并生成“战况解说”帮助用户快速判断是否需要干预。三、Sidecar 的使用场景实操示例1) 并排观测长跑任务- 在主窗口触发“修复 failing test”后右侧 Sidecar 输入 /status 查看如果 active_tool_elapsed 120s 且 recent_logs 出现重复输出表示可能进入死循环可选择 /interrupt 终止并查看日志。2) 动态纠偏避免大动作- 主 Agent 正在跑全量测试但你觉得不必要在 Sidecar 中运行 /steer 不要跑全量测试只跑有失败的测试用例。主 Agent 会把该 steering 注入下一轮决策。3) 战况解读提高可读性- 当你不确定 Agent 的下一步意图直接在 Sidecar 输入自然语言问题例如“现在进到哪一步了有没有报错”伴生 AIask_companion_ai会基于 /api/status 与 recent_logs 给出简练建议。四、如何启动与快速上手- 克隆并安装依赖git clone https://github.com/007350/myclaude.gitcd myclaudepip install -r requirements.txt- 启动主 Agent主窗口python main.py- 在并排窗口启动 Sidecarpython sidecar.py- 常用命令Sidecar 内/status 查看实时状态卡片/logs 拉取最近 30 行日志/steer 文本 注入纠偏策略/interrupt 强制中断当前活跃工具五、Sidecar 与主 Agent 的协同接口供二次开发参考- IPC 端点主 Agent 需要实现- GET /api/status 返回 JSONstatus, goal, step, max_steps, active_tool, active_tool_elapsed, active_tool_args, recent_logs, steering_count 等- POST /api/steer 接受 { message: ... }将其放入主 Agent 的 steering 队列- POST /api/interrupt 接受 {}触发主 Agent 中断活跃子进程- Sidecar 侧核心函数位于 sidecar.py- get_ipc_port()读取 .myclaude_port 或返回默认 9876- fetch_status(port) / send_steer(port, message) / send_interrupt(port)- ask_companion_ai(config, user_query, status_data)把实时黑板与日志交给 LLM 做战况解读注意需要在 config 中配置模型 API六、扩展建议如何把 Sidecar 用到更高级的协作- 可视化增强把 Sidecar 的日志卡升级为搜索/过滤界面或把重要异常高亮并提供“回滚”快捷按钮回滚由主 Agent 的 snapshot 模块实现 — myclaude/core/snapshot.py。- 多人协作把 /api/steer 的消息持久化为审计记录允许多人通过 Sidecar 合议后一次性注入避免频繁 conflicting 指令。- Web UI / Browser Sidecar除了终端Sidecar 的 HTTP API 易于被 Web 前端或 VSCode 扩展调用做成侧边栏面板也是自然演进路径。- 安全策略Sidecar 增强权限鉴别例如仅允许本机某些用户执行 /interrupt 或 /yolo结合 myclaude/security 的权限层级。七、实战建议与注意事项- 在生产仓库使用之前在分支或临时仓库多练习 snapshot 与 /undo 流程确保自动写入不会破坏主分支。- 审计与日志Sidecar 虽然能快速中断但在中断前尽量保存最近日志Sidecar 已提供 recent_logs以便调查。- MCP 与自动生成服务主 Agent 能根据需要生成并热加载 FastMCP 服务README 中提到 create_python_mcp_serverSidecar 对此类动态能力做可视化能大幅降低认知成本。- 模型调用成本ask_companion_ai 会调用模型请注意 API key、请求频率与费用预算。结语Sidecar 是 MyClaude 的一个决策性设计把“自动化代理”从黑盒变成“协同工具”。对于希望在本地把 LLM 代理安全、可控地嵌入开发流程的工程师Sidecar 将大幅提升透明度与干预效率。想要把 AI 用到工程化工作流里不妨先从这个“并排观战并介入”的模式开始。如果你愿意我可以- 把上面文章格式化成 CSDN 编辑器推荐的 Markdown/HTML包含首图、标签、摘要与分节锚点- 或者把其中“扩展建议”部分改成具体的实现 PR 模板包含需要修改的主 Agent HTTP 路由示例代码片段帮你直接发起贡献草案。你希望我接着做哪一项
返回列表