feat: 添加 list_projects 意图处理

This commit is contained in:
yumoqing 2026-08-07 18:10:32 +08:00
parent 0098a3c705
commit 39416cb1c0

View File

@ -395,8 +395,9 @@ INTENT_PROMPT = """你是一个开发产线意图分类器。分析用户输入
- start_agent: 启动Agent自动执行任务
- agent_status: 查看Agent状态和交付件
- query: 查询当前状态
- show_tasks: 查看当前项目的任务列表(如\"显示任务\"\"任务列表\"\"有哪些任务\"
- show_bugs: 查看当前项目/迭代的Bug列表如\"显示Bug\"\"Bug列表\"\"有哪些Bug\"
- show_tasks: 查看当前项目的任务列表(如"显示任务""任务列表""有哪些任务"
- show_bugs: 查看当前项目/迭代的Bug列表如"显示Bug""Bug列表""有哪些Bug"
- list_projects: 列出所有项目(如"显示所有项目""有哪些项目""项目列表"
- skill_list: 列出已导入的企业开发技能(如"查看技能""有哪些skills"
- skill_import: 导入本地技能文件(如"导入技能 /path/to/skill",注意:只限本地路径,不包含 git@ 或 .git URL
- devops: git/Shell 操作(如 git clone, git pull, 克隆仓库, 执行命令,注意:任何包含 git@ 或 .git 的请求都属于 devops
@ -555,10 +556,11 @@ def _security_scan(text):
SCOPE_GUIDE = """我可以帮你:
📁 项目管理 — "创建电商平台项目" / "切换到XXX项目"
📁 项目管理 — "创建电商平台项目" / "切换到XXX项目" / "显示所有项目"
🔄 迭代管理 — "创建Sprint3" / "查看迭代进度"
📝 提交任务 — "设计用户表结构" / "实现登录API"
🐛 Bug管理 — "登录页报500" / "我的Bug列表"
📋 任务查看 — "显示任务列表" / "项目任务"
🐛 Bug管理 — "登录页报500" / "显示Bug"
📊 查询 — "当前项目进度" / "有哪些迭代"
📚 技能管理 — "导入技能 /path/to/skill" / "查看技能列表"
请描述你的需求。"""
@ -829,6 +831,24 @@ if action == 'send_message':
sev_emoji = sev_map.get(severity, '\u25cf')
lines.append(f"{sev_emoji} {title} [{severity}] {status} ({str(bid)[:8]})")
agent_reply = '\n'.join(lines)
elif intent_type == 'list_projects':
projects = await sor.sqlExe(
"SELECT id, name, status, project_type, created_at FROM sd_projects ORDER BY created_at DESC LIMIT 20",
{})
if not projects:
agent_reply = "暂无项目。输入「创建XXX项目」来创建第一个项目。"
else:
lines = ["所有项目:"]
for p in projects:
name = getattr(p, 'name', '') or ''
status = getattr(p, 'status', '') or ''
ptype = getattr(p, 'project_type', '') or ''
pid = getattr(p, 'id', '') or ''
emoji = '📁'
if status == 'active': emoji = '🟢'
elif status == 'completed': emoji = '✅'
lines.append(f"{emoji} {name} [{ptype}] {status}")
agent_reply = '\n'.join(lines)
elif intent_type == 'start_agent':
pid = ctx['project_id']
if not pid: