feat: complete main agent message config tracing
Some checks failed
StoryForge CI / Baseline checks (push) Has been cancelled
StoryForge CI / Backend tests (push) Has been cancelled
StoryForge CI / Web tests (push) Has been cancelled

This commit is contained in:
kris
2026-04-04 07:56:20 +08:00
parent 64da9a4e9b
commit 294846e603
5 changed files with 126 additions and 24 deletions

View File

@@ -1401,3 +1401,67 @@ class MainAgentGovernanceTests(unittest.TestCase):
action_keys = [item["action_key"] for item in audits_payload["items"]]
self.assertIn("update-oneliner-profile", action_keys)
self.assertIn("rollback-oneliner-profile", action_keys)
def test_oneliner_message_execution_card_tracks_config_versions(self) -> None:
profile_response = self.client.put(
"/v2/oneliner/profile",
headers=self.ctx["member_headers"],
json={
"project_id": self.ctx["project_id"],
"display_name": "增长总控 OneLiner",
"assistant_id": "",
"default_platform": "douyin",
"long_term_goal": "优先分析当前平台账号并收口到下一步动作",
"notes": "验证消息卡里的配置追溯链",
"config": {"analysis_mode": "fast"},
"reason": "给消息卡提供明确的主配置版本",
},
)
self.assertEqual(profile_response.status_code, 200, profile_response.text)
current_profile_version = profile_response.json()["current_version"]
platform_response = self.client.put(
"/v2/platform-agents/douyin/profile",
headers=self.ctx["member_headers"],
json={
"project_id": self.ctx["project_id"],
"name": "抖音增长 Agent",
"mission": "优先分析当前账号和高分作品",
"notes": "验证消息卡里的平台配置追溯链",
"status": "active",
"config": {"focus": "analysis"},
},
)
self.assertEqual(platform_response.status_code, 200, platform_response.text)
current_platform_version = platform_response.json()["current_version"]
session_response = self.client.post(
"/v2/oneliner/sessions",
headers=self.ctx["member_headers"],
json={
"project_id": self.ctx["project_id"],
"preferred_platform": "douyin",
"title": "消息卡配置追溯",
},
)
self.assertEqual(session_response.status_code, 200, session_response.text)
session_payload = session_response.json()
message_response = self.client.post(
f"/v2/oneliner/sessions/{session_payload['id']}/messages",
headers=self.ctx["member_headers"],
json={
"project_id": self.ctx["project_id"],
"platform": "douyin",
"content": "帮我创建 Agent",
},
)
self.assertEqual(message_response.status_code, 200, message_response.text)
payload = message_response.json()
execution_card = (((payload.get("assistant_message") or {}).get("result")) or {}).get("execution_card") or {}
self.assertEqual((execution_card.get("primary_action") or {}).get("key"), "open-create-assistant")
self.assertEqual((execution_card.get("oneliner_profile_version") or {}).get("version_id"), current_profile_version["id"])
self.assertEqual((execution_card.get("oneliner_profile_version") or {}).get("version_no"), current_profile_version["version_no"])
self.assertEqual((execution_card.get("platform_agent_profile") or {}).get("platform"), "douyin")
self.assertEqual((execution_card.get("platform_agent_profile") or {}).get("version_id"), current_platform_version["id"])
self.assertEqual((execution_card.get("platform_agent_profile") or {}).get("version_no"), current_platform_version["version_no"])