前言¶
DeepSeek Harness 采用插件化架构,允许开发者扩展能力以对接不同系统。在对接企业级 ERP 系统(如 Odoo)时,常见的场景是让智能体检查业务数据(联系人、报价单、销售订单、发票等),同时必须确保不改变系统状态。maxmilian/dsh-odoo 插件旨在解决这一需求,它提供了一套安全的只读工具集,并包含一个可选的受限草稿创建功能。
这是什么¶
maxmilian/dsh-odoo 是一个开源的 DeepSeek Harness 插件,用于访问 Odoo 外部 API。该插件由 maxmilian 维护,遵循 MIT 许可证。它的核心价值在于让代理在默认情况下只读访问 Odoo 数据,仅当用户明确启用时才提供极其受限的草稿创建能力。
核心功能¶
插件提供以下工具:
-
odoo_server_info
读取服务器版本和认证用户 ID。 -
odoo_describe_model
列出允许列表中模型的可查询字段。 -
odoo_search_read
在允许列表中的模型上运行受限的search_read操作。 -
odoo_create_draft
创建一条草稿记录。此工具默认不注册,仅在配置项allowWrite为true时可用。
安装与依赖¶
安装该插件需要安装 Bun。
bun install
运行环境要求:
* Node.js 22.19 或更高版本(22.x 系列)或 Node.js 24 或更高版本
* Bun 1.3.5 或更高版本
配置¶
插件通过环境变量进行配置,以避免敏感信息泄露。
export ODOO_URL='https://odoo.example.com'
export ODOO_DB='production'
export ODOO_USERNAME='integration@example.com'
export ODOO_API_KEY='your-api-key'
关键配置项说明:
* allowWrite:默认为 false。设为 true 时,odoo_create_draft 工具才会被注册。
* defaultLimit:默认值为 20,范围 1-100。
* maxResponseBytes:硬性字节限制,默认值为 1000000(1MB),范围 1-52428800。
典型用法¶
该插件使用 JSON-RPC 2.0 传输协议,请求端点为 POST {baseUrl}/jsonrpc。使用时,请先调用 odoo_describe_model 确认目标模型在当前实例中存在,然后再使用 odoo_search_read 进行查询。
适用场景与注意¶
- 适用场景:适用于需要仅检查 Odoo 业务数据而不进行修改的场景,如数据审计、状态分析等。
- 安全限制:
- 默认为只读,不存在
write、unlink或工作流动作。 - 查询模型被限制在 14 个允许列表模型中。
- 不支持关系遍历,域字段名称不能包含点号。
- 不支持二进制字段。
- 响应有字节上限和数量上限限制。
- 默认为只读,不存在
- 已知限制:
- 仅测试了 Odoo 18。Odoo 19 未测试,Odoo Online 和 Odoo.sh 也未测试。
- 草稿创建仅支持
sale.order,且固定为 draft 状态。
结语¶
maxmilian/dsh-odoo 提供了在 DeepSeek Harness 中安全访问 Odoo 数据的基础能力。如果你需要在智能体中对接 Odoo 且对安全性要求较高,可以参考此插件实现数据读取。