qiaotong-agent-kit
qiaotong-agent-kit 是面向桥通软件的 Agent 工具层。当前源码版本为 0.23.0,提供模型读取、受控写入,以及集成的 qiaotong_agent_kit.cad 图纸解析和主梁编译能力。
0.23.0 完善模型实例与轻量修订保护、批量写入及撤回凭证、严格参数校验和结果分页缓存,并新增工况与组管理操作。依赖 qtmodel>=2.9.3,<2.10.0;受控写入需配套更新桥通桌面端,状态协议及升级要求见下文。
0.22.2 在规划自定义线圈截面时把横向坐标移至左缘为零,与桥通原生保存坐标系一致,避免带负坐标的图片识别截面在回读时被误判并回滚。
0.22.0 将 CAD 实现、测试与文档并入本包。安装 qiaotong-agent-kit[cad] 即可使用 DXF 索引、自定义截面、跨度与具名图纸规则编译;DWG 可通过本机 ODA 转换。QPyIDE Agent 使用 create_bridge_from_cad 完成对话翻模,宿主负责批准、事务回读及保存。详见 CAD 翻模说明。
0.22.1 在缺少单位说明时,根据具名截面视图中的横向、竖向尺寸及半幅标注推断唯一合理的单位;图内说明仍优先,冲突或多解时保留待核定状态。
0.21.0 新增 create_custom_section、create_parameter_section、create_tapered_section 和 create_frame_mesh,共 69 个模型操作。网格导入最多 5000 个创建对象,在单个原生事务中排序、执行、回读和撤销;普通批次仍限制为 100 个操作。CAD 默认采用自定义线圈截面,保留外圈、孔洞和倒角;非闭合轮廓由 CAD 界面询问并核定正厚度后转为自定义线宽截面。可选参数截面创建支持矩形和无倒角的对称混凝土箱梁。
自定义线圈回读核对轮廓、孔洞、参考点、面积与惯性矩;自定义线宽核对每条中心线及厚度、参考点、面积,并要求原生抗扭、抗弯及剪切特性均为有限正值。线宽接头的本地条带算法与桥通原生算法不同,原生惯性矩用于模型,差异在 line_width_checks 中记录。质心参考点核验考虑原生属性接口保留 4 位小数的输出精度。CAD 编译只输出明确模型对象,不直接提交模型或执行模型生成的任意脚本。
0.23.0 MCP 与事务更新
当前工具面保持 39 个工具(只读模式 37 个),operation 注册表扩展至 77 项。
新增工况、荷载组、边界组和结构组的 create_* / update_* 操作,仅调用已有公开 API。
- 计划、冻结选区、模型查询游标和 Undo 凭证绑定工程实例;重新打开同一内容的工程也需要重新规划。
- 每个写请求携带实例标识,桥通在 UI 调度器执行前校验,避免检查后切换工程造成误写。
- 原始 JSON 按发布的 Schema 校验,拒绝未知字段、类型转换式确认和非有限数值。
- 计划开始发送写请求后即消耗,旧计划不能直接重放。明确失败时尝试原生回滚并验证;
COMMAND_OUTCOME_UNKNOWN表示请求可能仍在执行,此时不自动 Undo 或重发,禁用该实例后续写入。 请等待桥通处理完成、在桌面端核对模型和命令历史,确认后重启 Agent 服务并重新规划。 - 只读模式能力目录与实际发布工具一致,没有提交或撤销工具,不引导执行建模脚本。
- 结果查询每次最多 5000 个明确编号、每页最多 200 行。相同范围复用 120 秒快照,
后续只传
cursor;快照绑定工程、结果数据源、阶段和模型修订,变化后拒绝分页。 编号和缺失编号仅回显前 20 个,同时返回数量和摘要;统计始终覆盖该查询快照的全部行。 每个快照最多4 MiB、缓存总计最多16 MiB,响应数据限64 KiB;宽表会缩小页大小并正确续页。
本批需要配套更新并重新编译桥通 Bridge.ProjectManager 与 Bridge.PythonPlugin(状态协议 4、model_instance_guard=1、model_revision_schema=1),
并使用含 QtServer.require_model_instance / require_model_revision 的 qtmodel 源码或新构建包。旧桥通仍可读取摘要和不依赖实例标识的单项明细,
受控写入、冻结选区及游标查询会明确要求升级;没有实例和结果源标识时不复用结果快照。旧计划和 Undo 凭证应重新生成。
结构组成员参数是完整替换:省略时保留,空数组清空;新增工况和组会先于其荷载执行, 结构组可引用同批先创建的明确节点/单元编号。重命名目录和修改其已有成员建议分两批规划。 本批没有新增目录删除操作,避免隐式级联删除工况内荷载或关联定义。
第 7 批接入轻量 model_revision 协议:直接读取已有握手状态,不重复导出完整模型。
修订号标识命令状态,覆盖 UI/API 共用命令、待提交子命令、无日志提交、Undo/Redo、历史清空和工程重开;
提交不改变同一模型状态的修订号,Undo/Redo 恢复对应状态。独立 history_revision 防止旧撤回凭证在历史变化后继续使用。
UPDATE 的可选 capture_command_state=true 响应在同次 UI 调度内捕获提交状态;默认响应保持兼容。
撤回在桌面执行前校验实例、模型修订、历史和待提交命令,回滚失败或未登记修改无法证明恢复时停止自动写入。
旧桥通没有轻量协议时仍逐次计算完整内容指纹,不使用时间缓存;有协议但字段无效时明确失败。
第 8 批按实际开放 API 整理旧 SDK 契约:46 个旧方法/别名建立明确状态清单,
17 个缺少服务端路由的历史命令在连接前报告 API_NOT_OPEN,API 帮助同步标注。
当前接口的正向测试保留,失效模块与日志改为不可用契约,未为测试新增 API。
同时修复 remove_elements 显式空集合可能触发“删除全部单元”的问题。
详见 SDK 契约说明。
全量 Python 回归 1707 项通过、1 项跳过,另有 644 项子测试通过;跳过项为未安装的可选旧 CAD 兼容包。 两份 C# 检查脚本直接编译生产命令类、请求分发和执行前校验,覆盖修订恢复、历史保护和提交状态捕获。 当前环境不能构建完整 WPF 工程,发布前仍需正常编译并在桥通桌面验证。
环境要求
- Python 3.10 或更高版本(低于 Python 4)
qtmodel>=2.9.3,<2.10.0- 需要 MCP 服务时安装可选依赖
mcp
安装基础库:
python -m pip install qiaotong-agent-kit
安装 MCP 支持:
python -m pip install "qiaotong-agent-kit[mcp]"
功能范围
模型读取包括:
- 模型摘要、工程信息和规范配置;
- 节点、单元、截面、材料和板厚;
- 边界、节点局部坐标系和节点/单元荷载;
- 结构组、施工阶段、荷载工况和荷载组合;
- 服务端筛选、游标分页和可重绑定的冻结节点选择集。
模型写入采用统一 operation 注册表,覆盖节点、材料、板厚、参数截面、梁/杆/索/板 单元、边界、局部坐标系及荷载的创建、修改和删除,并支持工况与组的创建和修改。所有提交遵循:
- 查询 operation 的精确 Schema;
- 生成写入计划并绑定工程实例与
model_revision;宿主通过ModelReviewSession.prepare发起有效的纯创建请求时,无工程首页会先自动新建空白工程并进入前处理;底层plan_bridge_model_batch仍保持只读; - 用户确认后提交计划;
- 整批作为一条桥通原生命令执行;明确失败时尝试 Undo,结果未知时停止并核对;
- 成功后可使用返回的
undo_transaction撤回最新事务。
Python 调用
from qiaotong_agent_kit import QiaotongToolService
service = QiaotongToolService()
status = service.invoke("get_connection_status")
summary = service.invoke("get_bridge_model_summary")
nodes = service.invoke("query_bridge_nodes", {
"bbox": [0.0, -5.0, -5.0, 100.0, 5.0, 5.0],
"limit": 20,
})
模型写入示例:
operation = {
"operation": "create_node",
"node_id": 101,
"x": 10.0,
"y": 0.0,
"z": 0.0,
}
schema = service.invoke(
"get_bridge_model_write_operation_schema",
{"operation": operation["operation"]},
)
plan = service.invoke(
"plan_bridge_model_batch",
{"operations": [operation]},
)
receipt = service.invoke("commit_bridge_model_batch", {
"plan_id": plan["plan_id"],
"model_revision": plan["model_revision"],
"confirm_commit": True,
})
撤回最新事务:
service.invoke("undo_bridge_model_transaction", {
"transaction": receipt["undo_transaction"],
"confirm_undo": True,
})
MCP 服务
默认模型读写服务:
qiaotong-model-mcp
只读服务:
qiaotong-readonly-mcp
通用 MCP 宿主配置示例:
{
"command": "python",
"args": ["-m", "qiaotong_agent_kit.interfaces.mcp_server"]
}
当前模型模式和完整模式均只发布模型读写工具。只读模式不发布
commit_bridge_model_batch 和 undo_bridge_model_transaction。
包结构
qiaotong_agent_kit/
├─ application/
│ ├─ bridge_model.py # 模型查询、写入事务和桥通适配门面
│ ├─ results.py # 有界结果快照和游标分页
│ └─ service.py # Agent 工具目录与调用服务
├─ cad/ # 可选图纸解析与主梁编译
├─ contracts/
│ └─ tool_schema.py # 与 MCP 框架无关的工具元数据
├─ infrastructure/
│ └─ qiaotong_api/ # 外部桥通 API 连接与 qtmodel 版本兼容性
├─ interfaces/
│ ├─ cli.py # JSON-lines 命令行接口
│ └─ mcp_server.py # MCP stdio 服务
├─ model_write/
│ ├─ operations/ # 单项模型写 operation
│ ├─ registry.py # operation 注册、规划与排序
│ └─ references.py # 批内引用协议
└─ support/
└─ privacy.py # 输出和错误信息脱敏
infrastructure/qiaotong_api 是 Agent Kit 的基础设施边界,不是外部 qtmodel
包的副本。使用这个名称可以避免 qiaotong_agent_kit.infrastructure.qtmodel
与顶层 qtmodel 运行库产生导入和认知混淆。
依赖原则
基础安装声明 qtmodel、shapely 与契约校验使用的 jsonschema。MCP 依赖通过 [mcp] 引入;
DXF 解析器 ezdxf 与 CAD 数值依赖通过 [cad] 引入。集成 CAD 能力面向 Python/CLI 与宿主集成,
标准 MCP 工具面仍限于模型读写和只读结果查询。
Metadata
Release files for qiaotong-agent-kit 0.23.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| qiaotong_agent_kit-0.23.0.tar.gz | 240.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| qiaotong_agent_kit-0.23.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 429.2 kB
Release files / qiaotong_agent_kit-0.23.0.tar.gz
| Download URL | qiaotong_agent_kit-0.23.0.tar.gz |
|---|---|
| Size | 240.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
541fe9c1e9fe2c0a1c83ccc9b21aba575e4701c814ca187a58dcffcd820a986b
|
|
BLAKE2b-256 checksum How to use checksums |
32598aa74ba7b7bf995cb4830c8d2959495b1b4c7adfb45ddf28b200900816cb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.10
|
Release files / qiaotong_agent_kit-0.23.0-py3-none-any.whl
| Download URL | qiaotong_agent_kit-0.23.0-py3-none-any.whl |
|---|---|
| Size | 188.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
754a4a07e2a604d8dbf8cfc3692497369a2fec668ac20a50631958f2f21bd3a2
|
|
BLAKE2b-256 checksum How to use checksums |
ca70894963a09be881448f0db3ef2ad5b060c2a654093573cf0055e69912b9c1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.10
|