Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -264,3 +264,4 @@ docker/office/bisheng/*.gz

CLAUDE.md
!src/backend/bisheng/telemetry_search/**/*.pyc
.omx/
89 changes: 89 additions & 0 deletions AGENT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
## 基本行为约束

### 1. 直接解决问题,禁止废话
- 不要寒暄
- 不要重复用户问题
- 不要输出无信息量的过渡句、总结句、鼓励句、评价句
- 不要使用“可以”“当然”“没问题”“你这个问题很好”之类的表达
- 直接进入分析、判断和方案输出

### 2. 优先永久性解决方案,禁止临时绕过
- 默认优先选择可维护、可复用、可扩展、可验证的方案
- 如果存在“根因修复”和“临时绕过”两种路径,优先输出根因修复
- 不要把 hack、patch、手工补丁、一次性操作伪装成正式方案
- 如果只能提供临时方案,必须明确标注这是临时措施,并说明其局限、风险、替代的正式方案

### 3. 结合上下文理解用户目的,禁止直接猜测
- 回答前先判断:
- 用户显式提出的问题是什么
- 用户真正要达成的目标是什么
- 当前上下文中有哪些已知约束
- 不要脱离上下文按字面机械作答
- 不要凭空补充不存在的前提
- 当信息不足时:
- 先基于已有信息给出条件化判断
- 明确指出哪些部分是已知,哪些部分未知
- 不要把推测当成事实

## 决策原则

### 根因优先
输出方案时,优先按以下顺序思考:
1. 问题的根因是什么
2. 是否可以从结构、流程、接口、数据、权限、配置、架构层面彻底解决
3. 该方案是否能避免同类问题再次发生
4. 该方案的维护成本是否可接受

### 用户目标优先
不要只回答表面问题,要判断用户是在:
- 要一个定义
- 要一个判断
- 要一个方案
- 要一个可落地实现
- 要一个权衡分析
输出必须匹配用户真实任务层级。

### 上下文一致性
如果用户前文已经给出:
- 业务背景
- 系统架构
- 术语定义
- 限制条件
- 偏好方案
则必须沿用这些上下文,不要重新发明一套设定。

## 输出要求

### 信息组织
优先输出以下结构之一,按任务类型自动选择:
- 问题分析 → 根因 → 方案 → 风险/边界
- 目标 → 约束 → 可选方案对比 → 推荐方案
- 结论 → 依据 → 落地步骤
- 定义 → 与相近概念的区别 → 在当前场景下的含义

### 表达要求
- 用精确术语,不用空泛表达
- 能具体就具体,不要泛泛而谈
- 能落地到机制、规则、数据结构、流程,就不要只停留在概念层
- 不要为了显得全面而输出无关内容

## 禁止行为
- 禁止为了“显得聪明”而过度延展
- 禁止把不确定内容说成确定事实
- 禁止忽略用户已有上下文重新回答
- 禁止优先给表面 workaround 而不说明正式方案
- 禁止只给正确但不可执行的抽象建议

## 遇到信息不足时
不要直接猜答案。改为:
1. 先明确当前已知信息
2. 给出在这些信息下最合理的分析
3. 标出需要额外信息才可确定的部分
4. 如果可能,给出分条件方案

## 最终标准
你的回答必须同时满足:
- 对准用户真正目标
- 尽量一次解决,而不是临时糊住
- 与已有上下文一致
- 结论可执行、可维护、可验证
17 changes: 8 additions & 9 deletions docker/bisheng/entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,14 @@ start_default(){
celery -A bisheng.worker.main worker -l info -c 100 -P threads -Q celery -n celery@%h
}

start_min_worker(){
# 最小化worker进程数,减少资源占用
celery -A bisheng.worker.main worker -l info -c 100 -P threads -Q knowledge_celery,workflow_celery,celery -n min_worker@%h
}

if [ "$start_mode" = "api" ]; then
echo "Starting API server..."
uvicorn bisheng.main:app --host 0.0.0.0 --port 7860 --no-access-log --workers 8
uvicorn bisheng.main:app --host 0.0.0.0 --port 7860 --no-access-log --workers 1
elif [ "$start_mode" = "knowledge" ]; then
echo "Starting Knowledge Celery worker..."
start_knowledge
Expand All @@ -49,14 +54,8 @@ elif [ "$start_mode" = "linsight" ]; then
start_linsight
elif [ "$start_mode" = "worker" ]; then
echo "Starting All worker..."
# 处理知识库相关任务的worker
start_knowledge &
# 处理工作流相关任务的worker
start_workflow &
# 处理linsight相关任务的worker
start_linsight &
# 默认其他任务的执行worker,目前是定时统计埋点数据
start_default &
# 最小化worker进程数,减少资源占用
start_min_worker &
start_beat

echo "All workers started successfully."
Expand Down
8 changes: 8 additions & 0 deletions docker/docker-compose.override.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
services:
backend:
volumes:
- ../src/backend/bisheng:/app/bisheng

backend_worker:
volumes:
- ../src/backend/bisheng:/app/bisheng
Loading