使用说明
本体RL商务代理
🛍️ 本体RL商务代理 (前身为“Ontology MCP Server”)强调了最新的强化学习驱动闭环。该系统仍然依赖于模型上下文协议(MCP)来结合本体推理、电子商务业务逻辑、内存和Gradio UI,以便您可以端到端地再现完整的购物助理体验。
🤖 RL驱动的代理:稳定的基线3 PPO训练管道在树上运输。它涵盖了从 data → 训练→ 评估→ 部署,让Agent不断从真实的成绩单和工具日志中学习,从而自动发现更安全、更高效的工具链策略。
🚀 快速开始
选项A:Docker(推荐)
需求
- Docker 20.10+
- Docker Compose 2.0+
- 8gb+RAM
-
20 GB磁盘空间
一键启动
# 1. Clone the repo
git clone <repository-url>
cd ontology-mcp-server-RL-Stable-Baselines3
# 2. Configure environment variables
cp .env.example .env
nano .env # fill in LLM API keys
# 3. Launch all services
docker-compose up -d
# 4. Tail logs
docker-compose logs -f
# 5. Stop services
docker-compose down
服务端点
- MCP服务器: http://localhost:8000
- 代理UI: http://localhost:7860
- 培训仪表板: http://localhost:7861
常用命令
# Restart a single service
docker-compose restart agent-ui
# Enter a container for debugging
docker exec -it ontology-agent-ui bash
# Inspect status
docker-compose ps
# Clean and rebuild (use with caution)
docker-compose down -v
docker-compose build --no-cache
docker-compose up -d
GPU支持(可选)
安装 nvidia-docker,然后在中取消注释GPU块 docker-compose.yml 在...之下 training-dashboard.
distribution=$(. /etc/os-release; echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \
sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update && sudo apt-get install -y nvidia-docker2
sudo systemctl restart docker
方案B:地方发展
1.环境准备
需求
- Python 3.10+
- 8 GB+RAM用于推理/演示(32 GB+用于RL训练)
- Linux/macOS/WSL2
- GPU可选(NVIDIA推荐≥12 GB VRAM)
-
40GB磁盘(数据库、色度矢量、RL检查点)
安装依赖项
git clone <repository-url>
cd ontology-mcp-server-RL-Stable-Baselines3
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -e .
2.初始化数据库
Docker部署在首次启动时自动运行这些步骤。手动步骤仅适用于本地开发人员。
export ONTOLOGY_DATA_DIR="$(pwd)/data"
python scripts/init_database.py # Create tables
python scripts/seed_data.py # Seed base users/products
python scripts/add_bulk_products.py # Optional: +1000 products
python scripts/add_bulk_users.py # Optional: +200 users
python scripts/update_demo_user_names.py --seed 2025
示例用户
| 用户名 | 姓名 | 电子邮件 | 级别 | 终身使用时间 |
|---|---|---|---|---|
| 1 | 张三 | zhangsan@example.com | 常规 | 0元 |
| 2 | 李思 | lisi@example.com | 贵宾 | 6500加元 |
| 3 | 王武 | wangwu@example.com | 人民币12000元 |
样品产品
- iPhone 15 Pro Max(9999元)
- iPhone 15 Pro(8999元)
- iPhone 15(5999元)
- AirPods Pro 2(1899元)
- 配件等。
3.配置LLM
src/agent/config.yaml 支持DeepSeek、OpenAI兼容API或本地Ollama:
llm:
provider: "deepseek"
api_url: "https://api.deepseek.com/v1"
api_key: "your-api-key-here"
model: "deepseek-chat"
temperature: 0.7
max_tokens: 2000
或者通过环境变量:
export OPENAI_API_URL="https://api.deepseek.com/v1"
export OPENAI_API_KEY="your-api-key"
export OPENAI_MODEL="deepseek-chat"
# Local Ollama (qwen3:8b example)
export LLM_PROVIDER="ollama"
export OLLAMA_API_URL="http://localhost:11434/v1"
export OLLAMA_MODEL="qwen3:8b"
export OLLAMA_API_KEY="ollama" # Ollama ignores the value
3.1配置MCP基本URL
培训脚本(train_rl_agent.py)Gradio代理通过HTTP调用MCP。以(权力)否决 MCP_BASE_URL 如果需要:
# Local/dev
export MCP_BASE_URL="http://127.0.0.1:8000"
# Docker/production (container-to-container)
export MCP_BASE_URL="http://ontology-mcp-server:8000"
4.启动服务
选项1:start_all.sh(推荐)
./scripts/start_all.sh
# 默认汇总到 logs/server.log(按日轮转),若想恢复各脚本独立日志,运行前导出 DISABLE_SCRIPT_LOG_FILES=0
tail -f logs/server.log
停止一切:
./scripts/stop_all.sh
选项2:单独开始
./scripts/run_server.sh
./scripts/run_agent.sh
./scripts/run_training_dashboard.sh
./scripts/run_tensorboard.sh
选项3:手动命令
# Terminal 1: MCP Server (FastAPI)
source .venv/bin/activate
export ONTOLOGY_DATA_DIR="$(pwd)/data"
uvicorn ontology_mcp_server.server:app --host 0.0.0.0 --port 8000
# Terminal 2: Gradio UI
source .venv/bin/activate
export ONTOLOGY_DATA_DIR="$(pwd)/data"
export MCP_BASE_URL="http://127.0.0.1:8000"
python -m agent.gradio_ui
# Terminal 3: RL Training Dashboard
source .venv/bin/activate
export ONTOLOGY_DATA_DIR="$(pwd)/data"
export MCP_BASE_URL="http://127.0.0.1:8000"
python scripts/run_training_dashboard.py
# Terminal 4: TensorBoard
source .venv/bin/activate
tensorboard --logdir data/rl_training/logs/tensorboard --host 0.0.0.0 --port 6006
要更改Gradio绑定地址/端口,请设置
GRADIO_SERVER_NAME和GRADIO_SERVER_PORT在发射之前。run_agent.sh/run_training_dashboard.sh接受AGENT_HOST/PORT和TRAINING_DASHBOARD_HOST/PORT;它们将值转发给Gradio环境变量,以保持端口7860/7861的独立性。
5.访问用户界面
访问 http://127.0.0.1:7860.
选项卡:
- 💬 计划:聊天界面+推理计划
- 🔧 工具调用:实时工具调用日志
- 🧠 记忆:对话存储器(ChromaDB)
- 🛍️ 商业分析:质量评分、意图跟踪器、对话状态、推荐引擎
- 📋 执行日志:完整的LLM I/O和工具跟踪
记忆流(美人鱼)
flowchart LR
subgraph Ingest[Ingest & Store]
direction TB
U(User input)
U --> AT(ChromaMemory.add_turn)
AT --> SUM(generate_summary)
SUM --> DB((ChromaDB collection))
AT --> DB
end
subgraph Extract[Extraction]
direction TB
AT --> EX(UserContextExtractor)
EX --> UM(UserContextManager)
end
subgraph Retrieval[Retrieval & Injection]
direction TB
UM --> CTX(get_context_for_prompt)
CTX --> NOTE_CTX(Inject context + history)
NOTE_CTX --> AGT(Agent / LLM)
end
AGT --> TC(Tool calls)
TC --> AT
TC -->|create_order yields ORD...| UM
6.对话示例
User: Hi
AI: Hello! Welcome... (intent: greeting)
User: Recommend a phone?
AI: [commerce.search_products] Returns 4 iPhone models...
User: Is iPhone 15 Pro Max in stock?
AI: [commerce.check_stock] In stock, 50 units...
User: Add to cart
AI: [commerce.add_to_cart] Added... (state: browsing → cart)
7.交互顺序图
完整对话的日志驱动片段(建议→ 多搜索→ 结账→ 售后→ 分析)住在 docs/interaction_sequence_diagrams.md。每个部分都包含一个Mermaid序列图和一个PNG快照,因此您可以排列原始日志、工具调用和UI状态。
8.可选RL回路
scripts/generate_dialogue_corpus.py最新200个完全真实的场景python test_rl_modules.py对RL模块进行健全性检查python train_rl_agent.py --timesteps ...启动PPO培训- 详情如下 🧠 强化学习(第6阶段)
🔧 MCP服务器API
MCP服务器公开HTTP端点。
健康检查
curl http://localhost:8000/health
能力列表
curl http://localhost:8000/capabilities
调用工具
curl -X POST http://localhost:8000/invoke \
-H "Content-Type: application/json" \
-d '{
"tool": "commerce.search_products",
"params": {
"available_only": true,
"limit": 5
}
}'
21工具
本体工具(3)
ontology.explain_discountontology.normalize_productontology.validate_order
商务工具(18)
4. commerce.search_products
5. commerce.get_product_detail
6. commerce.check_stock
7. commerce.get_product_recommendations
8. commerce.get_product_reviews
9. commerce.add_to_cart
10. commerce.view_cart
11. commerce.remove_from_cart
12. commerce.create_order
13. commerce.get_order_detail
14. commerce.cancel_order
15. commerce.get_user_orders
16. commerce.process_payment
17. commerce.track_shipment
18. commerce.get_shipment_status
19. commerce.create_support_ticket
20. commerce.process_return
21. commerce.get_user_profile
🧠 代理架构
核心组件
-
反应代理 (
react_agent.py)- LangChain ReAct工作流程(推理+表演)
- 自动工具选择和推理跟踪
- 多回合对话意识
-
对话状态 (
conversation_state.py)- 8个阶段:问候→ 浏览→ 选择→ cart → 结账→ 追踪→ 服务→ idle
- 跟踪VIP状态、购物车状态、浏览历史记录
- 根据关键字和工具使用情况进行自动转换检测
-
系统提示 (
prompts.py)- 电子商务角色:专业、友好的购物顾问
- 在生成中文提示时使用礼貌的“nin”语调;避免使用系统术语
- 确认风险操作(付款、取消)
- 鼓励澄清问题,而不是立即拒绝
-
对话记忆 (
chroma_memory.py)- 后端:ChromaDB
- 检索模式:
recent,similarity,hybrid - 自动总结每个回合
- 坚持
data/chroma_memory/
-
质量追踪 (
quality_metrics.py)- 会话质量得分(0-1)
- 用户满意度评估
- 工具效率和延迟跟踪
-
意图跟踪器 (
intent_tracker.py)- 14个意图(问候、搜索、view_cart、结账、track_order等)
- 信心评分+历史记录
-
推荐引擎 (
recommendation_engine.py)- 个性化产品推荐
- 使用浏览/购物车历史记录和会员级别
🧠 强化学习(第6阶段)
硬件提示:PPO训练受益于≥8个内核、≥32 GB RAM和≥1个具有≥12 GB VRAM的GPU(RTX 3080/4090/A6000)。仅使用CPU是可能的,但100K步可能需要5-8小时;GPU将其缩短至约1小时。预留≥15GB
data/rl_training/.
目标和收益
- 让ReAct Agent通过稳定基线3PPO自我改进。
- 将用户上下文/意图/工具使用/产品信息编码为128维状态。
- 多目标奖励(任务成功、效率、满意度、安全性)。
- 体育馆环境重用LangChain Agent,而无需重新实现业务逻辑。
模块概述(src/agent/rl_agent/)
| 文件 | 角色 | 注释 |
|---|---|---|
state_extractor.py |
将多源对话编码为128维向量 | 处理嵌入/简单特征,容忍字符串/对象意图 |
reward_calculator.py |
多目标奖励 | task/efficiency/satisfaction/safety +事件聚合 |
gym_env.py |
EcommerceGymEnv |
22个离散动作(21个工具+直接回复) |
ppo_trainer.py |
训练编排 | 虚拟VecEnv+评估/检查点回调+TensorBoard |
train_rl_agent.py |
CLI条目 | 可配置步骤、评估频率、检查点、嵌入 |
场景语料库 data/training_scenarios/sample_dialogues.json 包括200个真实对话,涉及5个场景类别中的真实用户/订单/产品。
闭环:数据→ 训练→ 应用
-
数据阶段
- 确保数据库已填充:
add_bulk_products.py,add_bulk_users.py,update_demo_user_names.py --seed 2025. - 生成200个真实场景:
python scripts/generate_dialogue_corpus.py. - README.zh.md中显示的可选验证代码段(类别计数)。
- 确保数据库已填充:
-
训练
source .venv/bin/activate
export ONTOLOGY_DATA_DIR="$(pwd)/data"
export MCP_BASE_URL="http://localhost:8000"
export OPENAI_API_URL="https://api.deepseek.com/v1"
export OPENAI_API_KEY="your-api-key"
export OPENAI_MODEL="deepseek-chat"
export TRAIN_DEVICE="gpu" # fallback to cpu
python test_rl_modules.py
python train_rl_agent.py \
--timesteps 100000 \
--eval-freq 2000 \
--checkpoint-freq 20000 \
--output-dir data/rl_training \
--max-steps-per-episode 12 \
--scenario-file data/training_scenarios/sample_dialogues.json \
--device "${TRAIN_DEVICE:-gpu}"
日志流到 data/rl_training/logs/tensorboard/.
- 评估和工件
- 最佳型号:
data/rl_training/best_model/best_model.zip - 最终型号:
data/rl_training/models/ppo_ecommerce_final.zip - 检查点:
data/rl_training/checkpoints/ppo_ecommerce_step_*.zip - 剧集统计:
data/rl_training/logs/training_log.json
- 部署
python - <<'PY'
from agent.react_agent import LangChainAgent
from agent.rl_agent.ppo_trainer import PPOTrainer
agent = LangChainAgent(max_iterations=6)
trainer = PPOTrainer(agent, output_dir="data/rl_training")
trainer.create_env(max_steps_per_episode=10)
trainer.load_model("data/rl_training/best_model/best_model.zip")
query = "I need ten flagship Huawei phones, budget around 7000"
action_idx, action_name, _ = trainer.predict(query)
print("RL suggested action:", action_idx, action_name)
result = agent.run(query)
print(result["final_answer"])
PY
RL仪表板(Gradio)
src/training_dashboard/ 提供了一个自包含的控制台,具有语料库聚合、训练编排、度量可视化、模型注册表和热重载功能:
- 复制
config/training_dashboard.example.yaml→config/training_dashboard.yaml并调整路径。 - 通过以下方式启动
PYTHONPATH=src python scripts/run_training_dashboard.py. - 选项卡:概述(实时状态、奖励/长度曲线、日志)、语料库管理(静态/日志混合)、训练控制、模型管理。
奖励明细
R_task:订单成功+10;缺少关键信息或空回复扣除。R_efficiency:更少的工具调用和低延迟奖励;过度通话将受到处罚。R_satisfaction:使用实时质量评分来奖励主动指导。R_safety:从+1开始;SHACL故障或不安全工具最多可减少10。
调整提示
- 启用
--use-text-embedding如果资源允许更富裕的国家。 - 调整
reward_weights在PPOTrainer平衡成功与安全。 max_steps_per_episode:用于频繁评估的短片;更适合完整的购物之旅。
🏗️ 本体与架构
本体语义模型
系统定义 12个核心业务实体 具有完整的关系和属性:
核心交易实体
-
用户
- 属性:user_id、用户名、电子邮件、电话、user_level(普通/VIP/SVIP)、total_spend、credit_score
- 操作:查询用户、用户身份验证
- 关系:创建订单、拥有购物车商品、发起支持票
-
产品
- 属性:product_id、product_name、类别、品牌、型号、价格、库存数量、规格
- 操作:搜索产品,获取产品详细信息,检查库存,获取推荐,获取评论
- 关系:由购物车商品、订单商品和评论引用
-
购物车Item
- 属性:cart_id、user_id、product_id、数量、added_at
- 操作:添加到购物车、查看购物车、从购物车中删除
- 关系:将用户链接到产品
-
订单
- 属性:order_id、order_no、total_amount、discount_amount、final_amount、order_status、payment_status
- 操作:创建订单,获取订单详情,取消订单,获取用户订单
- 关系:包含订单项,生成付款和发货记录
- 本体推理:根据用户级别、订单金额和一阶状态,通过本体规则计算折扣金额
-
订单项
- 属性:item_id、order_id、product_id、product_name、数量、单价、小计
- 关系:订单包含多个订单项,每个订单项都引用一个产品
-
支付
- 属性:payment_id、order_id、payment_method、payment_amount、payment_status、transaction_id、payments_time
- 操作:处理付款
- 关系:由订单生成
- 备注:Transaction_id作为付款收据
-
运输
- 属性:shipment_id,order_id,tracking_no,carrier,current_status,current_location,estimated_delivery
- 操作:跟踪发货,获取发货状态
- 关系:根据订单生成,记录发货轨迹
-
发货追踪
- 属性:track_id、shipment_id、状态、位置、描述、track_time
- 关系:多条轨道属于一批货物
客户服务和售后实体
-
支持票
- 属性:ticket_id、ticket_no、user_id、order_id、类别、优先级、状态、主题、描述
- 操作:创建支持票
- 关系:由用户为订单创建,包含支持消息
-
支持留言
- 属性:message_id、ticket_id、sender_type、sender_id、message_content、sent_at
- 关系:多条消息属于一个支持票
-
返回
- 属性:return_id、return_no、order_id、user_id、retire_type(退货/换货)、原因、状态、退款_金额
- 操作:流程返回
- 关系:从订单开始
-
审查
- 属性:review_id、product_id、user_id、order_id、评级(1-5颗星)、内容、图像
- 操作:获取产品评论
- 关系:用户评论产品
架构图
实体关系:
- User → 订单→ 订单项→ 产品
- 订单→ 购物车商品项→ 产品
- 订单→ 付款(Payment_amount、Payment_method、transaction_id)
- 订单→ 运输→ 发货轨迹(地点、时间)
- 用户/订单→ 支持票→ 支持留言
- 订单→ 退货(退货_否、退货_类型、退款_金额)
- 产品→ 评论(评分、内容)
本体推理:
- 折扣规则:VIP/SVIP会员折扣、批量折扣(≥5000/≥10000)、一级折扣
- 配送规则:免费配送(订单≥500或VIP/SVIP),次日送达(SVIP),偏远地区附加费
- 退货政策:7天无理由退货(常规),15天(VIP/SVIP),特定类别规则
MCP工具层21个工具通过本体推理对12个实体进行操作 反应代理:调用工具,通过强化学习进行优化(PPO模型、奖励系统)
🎯 本体规则覆盖率
100% ontology_rules.ttl 实施于 ecommerce_ontology.py.
用户层规则(2)
| 规则 | 触发器 | 方法 |
|---|---|---|
| VIP升级规则 | 总支出≥5000 | infer_user_level() |
| SVIP升级规则 | 总支出≥10000 | infer_user_level() |
折扣规则(5)
| 规则 | 触发 | 折扣 | 方法 |
|---|---|---|---|
| VIP折扣规则 | VIP用户 | 95% | infer_discount() |
| SVIP折扣规则 | SVIP用户 | 90% | infer_discount() |
| 第5卷折扣规则 | 订单量≥5000 | 95% | infer_discount() |
| 批量折扣10k规则 | 订单≥10000 | 90% | infer_discount() |
| FirstOrder折扣规则 | 首次购买者 | 98% | infer_discount() |
会员折扣和批量折扣并不叠加——最好的折扣获胜。
运输规则(5)
| 规则 | 触发器 | 发货 | 方法 |
|---|---|---|---|
| 免费送货500规则 | 订单≥500 | 0元标准 | infer_shipping() |
| VIPFreeShipping规则 | VIP/SVIP | 0元标准 | infer_shipping() |
| SVIP次日交货规则 | SVIP | 次日0元 | infer_shipping() |
| 标准发货规则 | 常规<500 | 15元标准 | infer_shipping() |
| RemoteAreaShipping规则 | 远程地址 | +30元 | infer_shipping() |
退换货规则(5)
| 规则 | 范围 | 窗口 | 附加条件 |
|---|---|---|---|
| 标准7天退货规则 | 常规用户 | 7天 | 无需理由 |
| VIP15天退货规则 | VIP/SVIP | 15天 | 无理由 |
| 电子退货规则 | 电子产品 | 基于层级 | 设备未打开 |
| 配件退货规则 | 配件 | 分层 | 包装完好 |
| 服务不退货规则 | 服务 | 不适用 | 不可退货 |
组合策略(2)
| 策略 | 场景 | 行为 |
|---|---|---|
| 折扣叠加策略 | 多重折扣 | 选择最优 |
| 发货优先级策略 | 多种发货选项 | 应用优先级 |
SHACL验证
commerce_service.py 在创建订单之前调用SHACL验证,以确保数据完整性,记录顶级违规和三重计数。
📊 Gradio用户界面功能
- 💬 计划:输入区域、AI响应、推理计划、实时状态。
- 🔧 工具调用:工具名称/参数、时间戳、结果、错误。
- 🧠 记忆:历史列表、摘要、检索控件、会话管理。
- 🛍️ 商业分析:质量指标、意图分析、对话状态、推荐引擎。
- 📋 执行日志:完整的LLM输入/输出和工具跟踪。
📚 文档
🧪 测试
source .venv/bin/activate
python test_memory_quick.py
python test_execution_log.py
python test_phase4_shopping.py
python test_phase4_advanced.py
python test_gradio_ecommerce.py
python test_rl_modules.py
pytest tests/
pytest tests/test_services.py
pytest tests/test_commerce_service.py
python train_rl_agent.py --timesteps 20000 --eval-freq 2000 --checkpoint-freq 5000
⚙️ 配置
环境变量
MCP/数据根
export ONTOLOGY_DATA_DIR="$(pwd)/data"
export APP_HOST=0.0.0.0
export APP_PORT=8000
本体切换(config.yaml)
ontology:
use_owlready2: true # 默认启用,可通过 config.yaml 修改
如需在运行时临时关闭,可设置
ONTOLOGY_USE_OWLREADY2=false环境变量覆盖上述配置。
代理人和法学硕士
export MCP_BASE_URL="http://127.0.0.1:8000"
export OPENAI_API_URL="https://api.deepseek.com/v1"
export OPENAI_API_KEY="your-api-key"
export OPENAI_MODEL="deepseek-chat"
export LLM_PROVIDER="deepseek"
Gradio服务
export GRADIO_SERVER_NAME=0.0.0.0
export GRADIO_SERVER_PORT=7860
export AGENT_HOST=0.0.0.0
export AGENT_PORT=7860
export TRAINING_DASHBOARD_HOST=0.0.0.0
export TRAINING_DASHBOARD_PORT=7861
export LOG_DIR="$(pwd)/logs"
export TB_LOG_DIR="$(pwd)/data/rl_training/logs/tensorboard"
export TB_HOST=0.0.0.0
export TB_PORT=6006
# 统一日志输出
export ONTOLOGY_SERVER_LOG_DIR="$(pwd)/logs" # 默认也是 repo/logs
# 设为 0 可恢复各 run_*.sh 生成单独 log 文件
export DISABLE_SCRIPT_LOG_FILES=1
RL助手
export TRAIN_DEVICE=gpu
export RL_OUTPUT_DIR="$(pwd)/data/rl_training"
记忆
export MEMORY_ENABLED=true
export MEMORY_BACKEND=chromadb
export CHROMA_PERSIST_DIR="data/chroma_memory"
export MEMORY_RETRIEVAL_MODE=recent
export MEMORY_MAX_TURNS=10
config.yaml示例
看 src/agent/config.yaml 获取完整选项(DeepSeek/Ollama、内存、代理切换)。
🗄️ 数据库模式
SQLite数据库 data/ecommerce.db 包含12个表:
users,products,cart_items,orders,order_itemspayments,shipments,shipment_trackssupport_tickets,support_messages,returns,reviews
🎯 用例
- 搜索和推荐:
commerce.search_products+推荐引擎。 - 完整的购买流程:浏览→ 选择→ cart → 结账→ 支付→ 追踪。
- 订单管理:
commerce.get_user_orders,取消/返回流程。 - 本体推理:
ontology.explain_discount用于上下文折扣解释。
🤝 贡献
- 分叉项目
git checkout -b feature/AmazingFeaturegit commit -m 'Add some AmazingFeature'git push origin feature/AmazingFeature- 打开拉取请求
🏷️ 发布亮点
v1.5.3(2025-12-01)——确认记忆和完整工具痕迹
- 确认模式持久化:一旦用户批准了一个关键工具(创建订单/付款),运行现在会将经过净化的参数+观察结果写回
tool_log、内存和对话状态,以便下一轮看到已完成的订单,避免循环回到结账。 - 验证保护硬停止:
ontology_validate_order被标记为关键工具,提醒副本会阻止最终答案,直到SHACL验证运行,代理现在会在订单确认后立即提示用户继续付款。 - 端到端工具透明度:流式事件传递了整个观察有效负载,Gradio UI不再截断JSON,使审计和调试变得更加容易。
- 新现场报告:添加
docs/articles/12-memory-intent-lessons.md记录与记忆相关的经验教训(中英文索引),以便未来的贡献者可以避免倒退。
v1.5.2(2025-11-29)——流媒体跟踪基线✅
- 真正的流媒体管道:
react_agent.py现在公开了基于生成器的run_stream,DeepSeek适配器发出令牌增量,Gradio UI逐个令牌呈现想法+最终答案(提交505b39e→ 7c99e84→ aab0956)。 - 搜索准确性升级:可配置的多策略意图跟踪器、LLM驱动的查询重写器、FTS5全文索引+混合回退(FTS5→ LIKE → 类别)极大地改进了“电子产品”等通用查询。
- 可追溯性工具:
docs/interaction_sequence_diagrams.md用美人鱼图+PNG证据记录每个对话回合(推荐→ 多搜索→ 结账→ 售后→ analytics),现在两个README都指向它v1.5.2标记了下游RL实验的基线。
v1.5.1(2025-11-23)
- 带有意图/用户上下文元数据的内联图表(Markdown+Base64 PNG)
_filter_charts_by_intent()隐私保护。 analytics_service.py具有五个图表数据端点+analytics_get_chart_dataMCP工具(第22种能力)。- 依赖关系对齐:
plotly>=6.1.0,<7.0.0,kaleido==0.2.1;诊断脚本(verify_chart_fix.py,test_chart_feature.py)以及数据/日志备份。 - 培训仪表板用户体验:点击预览语料库、同步JSON视图、多实例调试的主机/端口日志。
v1.2.3(2025-11-15)——重命名和确认
- 重新命名为 本体RL商务代理;记录RL上下文。
- 添加了对Stable Baselines3/体育馆/TensorBoard等的确认。
- 工具:避免订单ID验证
OverflowError;Olama支持qwen3:8b.
v1.2.2(2025-11-12)--自述RL指南
- 在README的早期添加了RL闭环描述,并强调了数据→训练→TensorBoard→部署。
v1.2.0(2025-11-11)——动态用户上下文系统
- 自动提取用户ID、电话号码、地址、订单ID、产品ID。
- 及时注射确保连续性;正则表达式引擎处理多语言/宽度变量。
- 基于集的重复数据消除,严格
ORD...验证、产品ID范围保护。 - 测验:
tests/test_user_context.py.
v1.2.1(2025-11-11)--最近的订单跟踪修补程序
create_order现在强制进行有效的观察/输入解析ORD...ID,呼叫set_recent_order().
v1.1.0(2025-11-10)——Gradio用户界面增强
- 十个快速测试按钮(本体和SHACL操作)。
- 流式响应、主动按钮状态管理、生成器修复。
v1.0.0(2025-11-08)——订单验证基线
- 订单创建前自动SHACL验证;详细的违规记录。
- 及时改进和100%规则覆盖(折扣/发货/退货/组合)。
基础版本(2025-10)
- 第1-5阶段完成:ORM、本体、21个工具、ReAct Agent、Gradio UI。
📦 版本历史
| 版本 | 日期 | 亮点 | 下载 |
|---|---|---|---|
| v1.5.3 | 2025-12-01 | 确认模式持久化、验证保护硬停止、全工具有效载荷流、新内存课程文章 | git checkout v1.5.3 |
| v1.5.2 | 2025-11-29 | 流媒体生成器管道、意图/查询/搜索升级、日志驱动图+基线标签 | git checkout v1.5.2 |
| v1.5.1 | 2025-11-23 | 内联图表流、分析MCP工具、仪表板UX升级 | git checkout v1.5.1 |
| v1.5.0 | 2025-11-20 | RL闭环,Docker/Compose打包,5标签Gradio UI | git checkout v1.5.0 |
| v1.0.0 | 2025-10 | 第1-3阶段基线(本体+工具+代理) | git checkout v1.0.0 |
📝 更新日志
2025-12-01
- 确认循环持久性:确认分支现在将每个执行的工具(args+观测值)推回
tool_log、记忆,以及ConversationState,因此后续操作会立即看到已完成的订单,而不是重新运行结账。 - 强制性SHACL验证:
ontology_validate_order加入CRITICAL_TOOLS列表和提醒副本会阻止最终回复,直到验证完成;订单确认后,代理主动询问是否继续付款。 - 聊天中的完整工具输出:流式事件现在包括完整的JSON观察,Gradio UI不再截断长有效载荷,使审计和调试变得简单。
- 新经验教训文档:已发布
docs/articles/12-memory-intent-lessons.md捕捉使用记忆进行意图检测和推理的实际注意事项。
2025-11-30
- Ontology-first推理覆盖:
ecommerce_ontology.py现对折扣、物流、退货、取消四大流程优先加载ontology_rules.ttl,命中规则时返回rule_applied,无匹配才退回静态策略;对应tests/test_commerce_service.py、tests/test_services.py已通过全量 pytest。 - 日志统一与按日轮转:所有 Python 模块写入
logs/server.log(日切 +server_YYYYMMDD.log归档),start_all.sh默认设置DISABLE_SCRIPT_LOG_FILES=1防止重复日志,如需旧行为可手动置 0;新增ONTOLOGY_SERVER_LOG_DIR/ONTOLOGY_LOG_BACKUP_COUNT控制输出目录与留存天数。 - 本体资产清理:
ontology_commerce.ttl和ontology_ecommerce.ttl补齐 SWRL 前缀、变量、折扣实体与规则,使 Owlready2/外部引擎读取更稳;README/配置章节同步记录新的日志变量与使用方式。
2025-11-29
- 真正的流媒体循环:
react_agent.py现在公开了基于生成器的run_stream,DeepSeek适配器发出令牌增量,Gradio UI逐个令牌呈现想法+最终答案,以进行透明的推理回放。 - 意图+检索堆栈:可配置的多策略意图跟踪器,LLM驱动
query_rewriter.py,以及FTS5→LIKE→类别回退commerce_service.py/db_service.py大大改善了“电子产品”等广泛的查询,同时保留了对利基意图的回忆。 - 可追溯文件:
docs/interaction_sequence_diagrams.md捕获五个日志源序列,包括Mermaid+PNG证据、README链接和标签 v1.5.2 在版本历史表中标记新基线。
看 README.zh.md 详细的中文更新日志(反映了上面的英文亮点)。
🙏 致谢
- LangChain&FastAPI –重新执行代理编排+MCP服务器。
- 格拉迪奥 –五标签电子商务UI外壳。
- ChromaDB和SQLite 语义记忆+商务数据。
- 稳定的基线3/体育馆/张力板 –强化学习培训和可视化。
- 深度求索 –法学硕士提供者。
- RDFLib和PySHACL –本体推理+SHACL验证。
- SQLAlchemy ORM基金会。
🧩 案例研究
- 场景:预算为20万元人民币的VIP买家要求代理商在最昂贵的手机上“花光所有”,包括洞察力→ 建议→ cart → 支付→ 售后跟踪。
- 亮点:16步内存链、22个MCP工具(6个本体调用、2个SHACL检查)、动态图表、自动VIP折扣、购物车+结账编排。
- 全程步行:
docs/VIP_Customer_Case.md.
📖 引用
@software{ontology_rl_commerce_agent_2025,
author = {Shark8848},
title = {Ontology RL Commerce Agent},
year = {2025},
url = {https://github.com/shark8848/ontology-mcp-server-RL-Stable-Baselines3},
version = {v1.2.3}
}
📄 许可证
根据 MIT许可证。简体中文参考翻译可在 许可证号zh.md.
📧 联系
作者shark8848@gmail.com--如果对你有帮助,请在回购表上打星号!