LyraZeta

个人站

十年寒窗无人问,一举成名天下知


阿丘科技——工作日志

阿丘科技实习工作日志,6.22周一入职

周报_W01

本周开发进度:

  1. 浏览学习钉钉的文件、知识库等,了解团队架构、熟悉团队项目;
  2. 完成 aqvision、aidi 的软件安装、授权获取,整理相关资料,梳理学习路径脉络;
  3. 学习 aqvison 中软件主界面操作、导入导出、用户权限管理、通信系统的系列视频并进行一些实操;为便于 examples 示例学习,转换教程中2.1版本的 aqvision 文件 .aqcfg 为 2.5 版本文件. aqproj 方便后续进行实操。

下周开发计划:

  1. 完成 aqvision 所有示例学习,完成 aidi 模型训练等重要部分学习;
  2. 调研熟悉 openhands 整体架构及其目前在项目中的完善进度;
  3. 接触目前 agent 构建目标和构建方案,同时上手一些 agent 开发工作。

周报_W02

请假

Thursday 2026.6.25

  1. 跟前任交接,了解项目(基于 openhands )整体框架,更细的还需要后续AI解读;
  2. 学习 AQVISION 教程视频。

Friday 2026.6.26

  1. 学习 AIDI 教程视频,包括分割、分类、检测、字符识别、定位、装配检查等模块的使用方法;
  2. VPN 账号通过审批,连接服务器大致查看项目文件,等待 git 权限审批。

Monday 2026.6.29

  1. 开会讨论工作交接;
  2. 获取授权,连接服务器梳理 OpenHands-AQV 文件项目大纲。

Tuesday 2026.6.30

  1. 构建项目文件树pdf文件,逐步细致地学习整个项目,梳理其构建状态。进一步熟悉 OpenHands-AQV 项目的整体目录结构,了解项目由 OpenHands 定制部署、AQV 运行时配置、知识库、用户上传工程目录和运行数据目录等部分组成。
  2. 交接工作中明确了后续接手时的主要推进点,涉及前任接入 MCP 尝试失败的情况与可能原因。

Wednesday 2026.7.1

  1. 更换电脑,迁移后续所需环境,学习前任解决问题的流程;
  2. 调研多 agent 架构在后续做 agent sdk 中的可行性。

周报_W03

上周任务目标:

  1. 在前期交接基础上继续熟悉 OpenHands-AQV 项目结构,降低后续排障和版本管理成本;
  2. 调研 OpenHands 工具能力扩展方向,重点关注 AQV 集成路径;

本周开发进度:

  1. 持续推进 OpenHands-AQV 项目问题修复与运行稳定性优化:梳理 git status --short 中大量未跟踪文件的来源,归类非源码运行产物并补充到 .gitignore
  2. 针对“用户询问 AIDI 等没有对应知识库的问题时,agent 出现幻觉”的问题,迭代了多版回答约束策略。从严格提示“未查到知识库闭环”,调整为输出更自然的证据状态,并在后续继续收紧依据知识库回答的限制,使回答边界更清晰;
  3. 实现 OpenHands 文生图能力;
  4. 解决服务端运行稳定性问题:针对服务器内存持续增长,增加不活跃 agent 清理机制,清理时限设置为 2 天;针对多个沙箱并发创建时可能抢占同一宿主机端口的问题,在沙箱创建关键步骤中增加锁,保证旧沙箱暂停检查、端口占用查询、端口分配和 Docker 容器创建过程串行执行;
  5. 持续熟悉项目工程链路与交接内容:学习 .ts.tsx 与构建后 .js 文件的关系,理解容器内热补丁的适用场景;阅读 CodeAgent 交接文档,完成代码 clone 和环境配置,初步明确 CodeAgent 通过维护 .aqvision 目录、打包发布并替换 AQVISION 安装目录文件,从而在 C# 脚本工具中增加“AI 代码助手”功能的整体流程。

下周开发计划:

  1. 继续维护 OpenHands 的问题;
  2. 深入阅读并运行 CodeAgent 项目,熟悉其打包发布、文件替换和 C# 脚本工具扩展机制,为后续功能维护或二次开发做准备;
  3. 继续推进 AQV 集成 OpenHands 的技术方案调研,包括codex的技术栈(本地运行方式和工具集成方式)、知识库的部署方案等。

Thursday 2026.7.2

请假

Friday 2026.7.3

  1. 理解并整理了 git status --short 中大量 ?? 的含义:?? 表示 Git 未跟踪文件,不代表正式源码被修改。本项目中这些文件主要包括部署配置备份、.bak-* 备份文件、前端 build 产物、日志、PID 文件和旧 workspace 备份等,多数来源于历史排障、部署回滚或运行过程。基于这次梳理,对 changes 中的非源码运行产物进行了筛选归类,并将这类不应进入版本管理的文件模式并入 .gitignore,有助于后续保持工作区干净,降低误判代码变更的风险。

  2. 修正问题:针对“用户询问AIDI等没有对应知识库的问题时,agent出现幻觉”的问题进行了约束,在Agent设定出增加了硬规则。第一版规则过于严格,会机械提示:未查到知识库闭环;第二版宽松一些依旧有幻觉;第三版考虑不再输出长免责声明,而是给出证据状态:能解释/回答……,不能确认……

  3. 后续考虑改服务端,普通代码的解释、撰写或者通用问题不需要风险提示,优点是:回答边界更统一、更稳定。

Saturday 2026.7.4

  1. 梳理了 .ts.tsx 和构建后 .js 文件的区别:.ts 主要承载 TypeScript 逻辑、类型定义和工具函数;.tsx 用于包含 React JSX 的页面或组件;浏览器最终执行的则是构建后生成的 .js chunk,例如 should-render-event-U_I5Oxvk.js。理解这条链路后,后续遇到前端线上报错时,可以更准确地从构建产物回溯到对应源码位置。

  2. 学习了“容器内热补丁”的作用模式:它是在不修改源码、不重建镜像的情况下,直接修改运行中容器里的构建产物,以便快速修复线上问题。这种方式适合紧急止血,但不适合作为长期方案,因为容器重建后会丢失,也不容易被 Git 追踪。后续项目中可以先使用热补丁快速看效果,达到预期再将修复沉淀到源码、构建流程和镜像发布链路中。

  3. 调研 openhands 无法进行文生图任务的原因:openhands没有注册“图片生成工具”,调用的模型虽然有图片生成能力,但是不能通过当前普通文本对话链路自动落成图片文件。目前正在增加此功能,初步构建解决路径: 用户说:生成图片 -> agent 调用 image_generation 工具 -> 工具使用当前会话的 base_url / api_key / gpt-5.5 -> 调用 Responses API 的 image_generation 能力 -> 拿到图片 base64 -> 保存到 /workspace/project/outputs/<conversation_id>/xxx.png -> 前端展示下载/预览路径 目前已经可以生成图像,但是只能给出路径……

Monday 2026.7.6

  1. 优化文生图功能:模型收到文生图指令后,会生成图片链接供用户下载。
  2. 调研AQV中集成 openhands 的技术路径。

Tuesday 2026.7.7

  1. 解决服务器内存增长问题:增加不活跃 agent 清理机制,清理时限2天。
  2. 熟悉 CodeAgent 交接文档,clone 代码并配置此项目需要的一些环境。

Wednesday 2026.7.8

  1. 并发竞争问题与修复:

    问题:不是“10 个沙箱不能同时运行”,而是“10 个沙箱同时创建时,可能抢到同一组宿主机端口”。

    修复:加了一把锁,让“创建沙箱的关键步骤”排队执行:

    (1)检查旧沙箱是否需要暂停 (2)查当前已占用端口 (3)分配新端口 (4)创建 Docker 容器

    这几个步骤现在不会被多个请求同时执行。

  2. 重新修复模型对AIDI问题的幻觉,收紧依据知识库回答限制。
  3. 学习CodeAgent 交接文档。

周报_W04

上周任务目标:

  1. 继续维护 OpenHands 项目,跟进运行过程中的问题;
  2. 深入阅读并运行 CodeAgent 项目,熟悉其打包发布、文件替换和 C# 脚本工具扩展机制;
  3. 推进 AQVision 集成 OpenHands 的技术方案调研,重点了解本地工具接入、MCP 通信和知识库部署方式。

本周开发进度:

  1. 围绕 AQVision Agent 集成开展技术调研和开源项目选型,初步确定保留 OpenHands 作为服务器侧主 Agent,并对 C# MCP SDK、FastMCP、MCP Python SDK 的职责及适用场景进行梳理;
  2. 部署并运行 C# MCP SDK 示例,跑通内存传输和 HTTP 通信案例,验证客户端与服务端握手、工具发现及工具调用流程;
  3. 对比中央 Agent 与本地 Agent 两种架构在编排方式、知识库管理、数据隐私、多用户管理、离线能力和运维成本等方面的差异,结合现有部署条件,决定优先通过 FastMCP 构建 AQVision 集成架构;
  4. 为了基于 FastMCP 跑通 AQVISION 日志获取 demo,完成了 OpenHands、服务器侧 MCP 服务和 AQVISION 电脑端之间的整体集成流程搭建。目前核心调用链路已基本形成,剩余问题主要集中在跨网络通信,SSH 隧道尚未跑通,正在尝试 SSH 隧道、调换客户端与服务端角色、使用 WebSocket 三种后续搭建方案。

下周开发计划:

  1. 优先解决服务器与 AQVISION 电脑端之间的跨网络通信问题,继续验证 SSH 隧道方案,并同步评估调换客户端与服务端角色、使用 WebSocket 的可行性;
  2. 完善 FastMCP 与 OpenHands 的集成实现,继续测试请求处理、工具注册、参数绑定、异常处理和连接恢复机制;
  3. 在日志获取 demo 的基础上调研接入更多 AQVISION 实际操作能力的方法。

Thursday 2026.7.9

  1. CodeAgent 项目的流程大概是:维护.\aqvision文件夹下的内容,修改后打包成.\CodeAgent-20260629的形式,发布。
  2. 项目的用途是:在AQVISION的安装目录替换打包后的文件(具体替换方式见\CodeAgent-20260629\更新说明.txt),AQVISION中的(如图)逻辑工具中的C#脚本就会添加“AI代码助手”功能。

IR_Materials IR_Materials

  1. C# 语法学习。
  2. CodeAgent 项目打包流程学习,重点学习项目打包脚本。

Friday 2026.7.10

  1. 围绕 AQVision Agent 集成方案进行了技术调研和开源项目选型。考虑继续保留 OpenHands 作为主 Agent,使用 csharp-sdk 构建 Windows 侧 MCP 接入能力,使用 FastMCP 和 MCP Python SDK 在服务器侧建设中央 MCP Gateway,并使用 MCP Inspector完成接口测试。

Saturday 2026.7.11

  1. 部署并运行 csharp-sdk ,熟悉 MCP 的启动机制,跑通内存传输、HTTP通信案例;验证客户端/服务端握手、工具发现及工具调用流程;后续需要继续测试 MCP 请求处理、工具注册与参数绑定机制。
  2. 撰写了一部分部署手册。

Monday 2026.7.13

  1. 对比fastmcpcsharp-sdk,决定通过 fastmcp构建集成架构。
  2. 对比表
对比项 中央 Agent 本地 Agent
Agent 编排 服务器 OpenHands AQVision 电脑
MCP 入口 服务器 FastMCP 本地 MCP C# SDK
AQVision Plugin 本地 本地
Edge Connector 本地轻量执行 本地完整服务
知识库 服务器统一管理 每台电脑同步
大模型 服务器调用 本地直接调用远程或本地模型
多用户管理 容易 需要单独建设
离线能力 较弱 较强
数据隐私 数据可能上传服务器 可完全留在现场
运维成本 较低 较高

Tuesday 2026.7.14

  1. 通过 fastmcp 的方案跑通一个demo,获取 AQVISION 的日志,正在进行……

Wednesday 2026.7.15

  1. 完成整个集成流程的搭建,ssh 隧道部分未跑通。完整流程如图:

IR_Materials

  1. 待验证的通信的3钟思路: (1) ssh 隧道做内网穿透; (2) 调换 client 和 server (目前是openhands作为client,PC端作为server); (3) 使用 websocket.

周报_W05

上周任务目标:

  1. 解决 OpenHands 与 AQVISION 电脑端的跨网络通信问题;
  2. 调研 FastMCP 与 OpenHands 的集成;
  3. 完善 AQVISION 工具的接入方式。

本周开发进度:

[AQVISION Agent]

  1. 验证 OpenHands 通过 FastMCP 和 SSH 隧道读取 AQVISION 日志,确定正式方案改用 Windows Connector 主动建立 WSS/443 长连接;
  2. 搭建 Windows Connector 与 OpenHands Device Gateway 的 WebSocket 链路,跑通设备接入、工具请求下发和执行结果回传;
  3. 为连接链路增加初步的账号授权和身份鉴权,完成 access token 本地加密保存;
  4. 增加 Shell 对话入口及会话回传功能,支持恢复、新建、查看和打开会话;

[Openhands]

  1. 修复 OpenHands 会话加载旧规则导致的幻觉问题;限制 OpenHands 仅允许 aqrose.com 邮箱注册。

下周开发计划:

  1. 取代 shell 测试,构建桌面UI窗口测试完整通信链路;
  2. 将已验证的 WebSocket、鉴权和会话链路接入 AQVISION 内置对话框,实现简单的软件内交互;
  3. 继续维护 Openhands 网页版。

Thursday 2026.7.16

  • 最终目标:将 OpenHands 智能体直接集成进 AQVISION,用户通过软件内置对话框完成提问、日志分析、工具调用和操作确认。
  • 已完成验证:OpenHands 已能通过 FastMCP 和 SSH 隧道读取 Windows 上的 AQVISION 日志,并由 GPT 分析。
  • 旧方案问题:SSH 隧道、固定端口和 Linux TCP 代理只适合单机测试,难以支持大量用户和设备。
  • 正式技术路线:AQVISION 安装 Windows Connector,由其主动通过 WSS/443 连接企业服务器;服务器 MCP 网关按用户、组织、设备和会话将任务路由到正确客户端。
  • 保留能力:日志读取、MCP 工具定义、参数校验、脱敏、OpenHands 工具调用、GPT 分析及 Keycloak/Postgres/Redis。
  • 替换部分:SSH 隧道和 TCP 代理改为 WSS 长连接,Watchdog 改为 Windows 服务,OpenHands 网页入口改为 AQVISION 内置对话框。
  • 实施顺序:定义通信协议 → 开发设备连接网关 → 开发 C# Connector → 集成 AQVISION 对话框。

IR_Materials

Friday 2026.7.17

  1. 熟悉 CodeAgent 的内容,便于后续维护。可修补的问题:Csharp端不会把界面历史消息填入请求,即没有记忆。
  2. 解决 openhands 会话错误加载旧规则导致幻觉问题。

Saturday 2026.7.18

  1. 解决 OpenHands 久远会话内容显示不全问题。
  2. 梳理 CodeAgent 通信链路相关内容,发现对于 AQVISION agent集成有可借鉴之处,其已有本机 Gateway,端口为:127.0.0.1:18725,寻找移植此流程到 agent 集成的方案。
  3. 限制 openhands 注册,只能使用 aqrose.com 注册,但是尚未完成邮箱验证,因为目前没有公司的SMTP.

Monday 2026.7.20

  1. 搭建本地计算机与服务器端 OpenHands 之间的 WebSocket 长连接,打通设备接入、工具请求下发和执行结果回传流程。

    连接链路:

    [Windows Connector]
               │
               │ 主动建立 WebSocket 长连接
               ▼
    [OpenHands Device Gateway]
               │
               │ 保存并维护设备在线连接
               ▼
    [Agent 调用 AQVISION MCP 工具]
               │
               │ Gateway 下发 tool_request
               ▼
    [Windows Connector]
               │
               │ 读取 AQVISION 日志或运行状态
               │ 返回 tool_result
               ▼
    [OpenHands 校验结果]
               │
               ▼
    [GPT 分析并回答用户]
    
  2. 后续需要注意的事项:

    (1)Device Gateway 的在线连接目前保存在 aqv-openhands-app 进程内存中。OpenHands 重启后连接会消失,但 Windows Connector 会自动重连;

    (2)当前配置适用于单个 OpenHands 实例。后续若部署多个 app 副本,需要通过 Redis 实现连接路由,或将 Gateway 拆分为独立服务。

Tuesday 2026.7.21

  1. 跑通本地计算机与服务器端 OpenHands 之间的 WebSocket 连接,但是需要增加鉴权。
  2. 增加 shell 入口以模拟集成后的对话框效果。

Wednesday 2026.7.22

  1. 优化 Device Gateway 与 Windows Connector,为当前连接链路增加身份鉴权机制。

    鉴权流程:

    [首次运行 Shell]
               │
               ▼
    [打开 OpenHands 授权页面]
               │
               ▼
    [用户登录网页账号并确认授权]
               │
               ▼
    [服务器签发该账号对应的 access_token]
               │
               ▼
    [Token 加密保存至 Windows 本地]
               │
               ▼
    [后续 Shell 以该账号身份调用 OpenHands]
    
  2. demo-openhands-shell.ps1 增加会话回传功能,-ConversationId 选项可以重新连接之前会话,/new 可以连接新建会话,id 查看当前会话id,open 在 openhands 网页端打开当前会话,exit 退出。

周报_W06

上周任务目标:

  1. 取代 shell 测试,构建桌面UI窗口测试完整通信链路;
  2. 将 WebSocket、鉴权和会话链路接入 AQVISION 内置对话框;
  3. 继续维护 Openhands 网页版。

本周开发进度:

[AQVISION Agent]

  1. 使用 WPF 制作对话界面替代 Shell,跑通基础流程,并解决切换账号后的 Connector 和工具调用权限问题;
  2. 拆分浏览器登录地址与 sandbox 内部 MCP 地址,修复授权页面跳转错误;
  3. 梳理 CodeAgent 打包替换流程,复用其对话框入口,将 OpenHands 对话功能集成到 AQVISION,支持切换账号和新建会话;
  4. 实现集成对话框查询本地 AQVISION 日志,并增加代码生成、填充和插入功能。但是目前生成代码仍会有编译错误,除第一次外可能不能一直按照指令生成代码,而是作为问答回复;

[Openhands]

  1. 修复 OpenHands 网页端内网无法注册登录,以及公网、内网进入无账号模式和历史记录混乱的问题。

下周开发计划:

  1. 完善 AQVISION 集成对话框和代码补全功能;
  2. 通过 C# 插件获取上下文并传给模型,改善代码生成质量;
  3. 在主要交互流程稳定后继续推进 agent 操作 AQVISION 的能力的开发。

Thursday 2026.7.23

暂时停止鉴权的工作,继续以跑通流程为导向。下一步计划使用 WPF 制作UI界面来取代当前的 shell 测试框,跑通流程,以便于后续参考 Codeagent 将对话框UI界面集成到 AQVISION。

  1. 通过 WPF 制作UI界面,正常跑通,但是“切换账号”出现问题,切换 member 用户之后无法连接,结果是本地 connector 和工具调用的权限问题,已解决。
  2. 浏览器授权页面开启错误,根因是 OH_WEB_URL 同时被用于:

    • Windows 浏览器登录地址
    • sandbox 内部 MCP 地址

    因此切换账号时浏览器被错误引导到 host.docker.internal:3000,现在已拆分为:

    • OH_WEB_URL=http://112.86.69.114:port
    • OH_AGENT_ACCESSIBLE_WEB_URL=http://host.docker.internal:3000
  3. 尝试将现有UI过渡到 CodeAgent 对话框的方法。

Friday 2026.7.24

  1. 尝试在 AQVISION 中构建集成对话框,问题是如何沿用 CodeAgent 的打包流程。
  2. 下一步目标:实现对话框的集成 –> 实现补全代码功能。

Monday 2026.7.27

  1. 梳理清楚打包替换流程,继续尝试实现:继承 AQVISION 中已有的 CodeAgent 对话框入口,作为 OpenHands 的软件内交互入口,实现网页版已有的对话功能(已实现)和本地日志查询功能(未实现),同时可以切换账号、新建会话。

Tuesday 2026.7.28

  1. 实现集成对话框中交互时本地日志查询功能。
  2. 优化UI界面,增加代码生成与填充功能的选项,暂时不能生成代码。
  3. 解决 OpenHands 网页端内网无法注册登录的问题。

Wednesday 2026.7.29

  1. 今天发现 OpenHands 网页端出bug,公网和内网下的均进入无账号模式,无法登录账号但可以直接使用,同时历史记录混乱,修复这个问题。
  2. 为 AQVISION agent 增加撰写代码和插入代码功能,但是生成质量不够好,可能原因是:没有像 CodeAgent 一样同步通过 CSharp 插件获取上下文并传给LLM。

周报_W07

上周任务目标:

  1. 完善 AQVISION 集成对话框和代码补全功能;
  2. 通过 C# 插件获取上下文并传给模型,改善代码生成质量;
  3. 继续推进 agent 解决 AQVISION 问题能力的开发。

本周开发进度:

[AQVISION Agent]

  1. 借鉴 CodeAgent 的代码生成模式,通过 C# 插件获取上下文并传给模型,改善 AQVISION agent 的代码生成效果;
  2. 增加编译失败自动修复功能,将候选脚本、用户需求、工程上下文和编译错误等信息回传至同一会话,最多自动修复两轮;
  3. 修复 AQVISION 助手对话框消息无法复制的问题;
  4. 整理测试问题、解答、工程文件和日志,开始进行 agent 解决实际问题的测试;

[OpenHands]

  1. 修复 OpenHands 网页端文件写入权限错误,解决 Docker 沙箱用户与宿主机文件属主不一致导致的 Permission denied

下周开发计划:

  1. 使用已整理的问题、工程文件和日志,继续 agent 解决实际问题的测试和能力的开发。

Thursday 2026.7.30

  1. 尝试解决:生成代码会出现编译错误的问题。
  2. 尝试解决:除第一次外可能不能一直按照指令生成代码,而是作为问答回复的问题。

Friday 2026.7.31

  1. 优化 AQVISION agent 代码生成功能,借鉴 CodeAgent 的代码生成模式,通过 CSharp 插件获取上下文并传给LLM,正常生成代码,正确率尚可。

Monday 2026.8.3

  1. 加入编译失败自动修复功能。编译失败后,系统会将以下信息回传到同一个 OpenHands 会话:

    (1) 当前候选完整脚本
    (2) 原始用户需求
    (3) 结构化工程上下文
    (4) 编译错误的行号、列号和错误码
    (5) 原始错误文本
    (6) 编辑器源码与编译源码的映射关系

    Agent 必须返回修复后的完整脚本,系统随后重新编译;最多自动修复两轮。

Tuesday 2026.8.4

  1. 修复 AQVISION 只能助手对话框中的消息无法复制的问题。
  2. 修复 OpenHands 网页端因文件写入权限错误导致的Permission denied,根因是:

    容器内路径:/workspace/project/AGENTS.md
    宿主机路径:/srv/openhands-aqv/OpenHands-AQV-MVP/AGENTS.md

智能体运行在 Docker 沙箱中,使用用户 10001。但这个文件属于宿主机用户 1002,原来的权限只允许宿主机用户写入。

Wednesday 2026.8.5

  1. 整理需要测试的问题、解答及其工程文件、日志等。
  2. 由于问题一提供的是.aqcfg 文件,转换为.aqproj文件以便于后续测试。

周报_W08

Thursday 2026.8.6

  1. 测试 agent 解决实际项目的能力。
  2. 测试过程出现:AI回答中引用了一些 CSharp 脚本,其实是AQV源码检索,而不是工具调用获取软件实时状态的能力。

Friday 2026.8.7

请假

Monday 2026.8.10

  1. 采用伪装日志文件的方式,测试实际工程案例。测试成功,测试结果已记录。
  2. 直接使用用户问题测试结果不好,整理背景、问题,同时附加输出限制,“3D问题”的结果已经可以吻合工程师给出的解答。