feat: version platform agent profiles through main agent runs
This commit is contained in:
@@ -721,6 +721,16 @@ class MainAgentGovernanceTests(unittest.TestCase):
|
||||
self.assertEqual(profile_payload["platform"], "douyin")
|
||||
self.assertEqual(profile_payload["name"], "抖音增长 Agent")
|
||||
self.assertEqual(profile_payload["config"]["focus"], "conversion")
|
||||
self.assertEqual(profile_payload["current_version"]["version_no"], 1)
|
||||
first_profile_version_id = profile_payload["current_version"]["id"]
|
||||
|
||||
profile_versions = self.client.get(
|
||||
"/v2/platform-agents/douyin/profile/versions",
|
||||
headers=self.ctx["member_headers"],
|
||||
params={"project_id": self.ctx["project_id"]},
|
||||
)
|
||||
self.assertEqual(profile_versions.status_code, 200, profile_versions.text)
|
||||
self.assertEqual(profile_versions.json()["count"], 1)
|
||||
|
||||
memory_response = self.client.post(
|
||||
"/v2/platform-agents/douyin/memories",
|
||||
@@ -790,6 +800,44 @@ class MainAgentGovernanceTests(unittest.TestCase):
|
||||
self.assertEqual(review_skill.status_code, 200, review_skill.text)
|
||||
self.assertEqual(review_skill.json()["status"], "validated")
|
||||
|
||||
update_profile = 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": "engagement"},
|
||||
"reason": "调整当前抖音平台策略",
|
||||
},
|
||||
)
|
||||
self.assertEqual(update_profile.status_code, 200, update_profile.text)
|
||||
self.assertEqual(update_profile.json()["current_version"]["version_no"], 2)
|
||||
|
||||
rollback_profile = self.client.post(
|
||||
"/v2/platform-agents/douyin/profile/rollback",
|
||||
headers=self.ctx["member_headers"],
|
||||
json={
|
||||
"project_id": self.ctx["project_id"],
|
||||
"version_id": first_profile_version_id,
|
||||
"reason": "恢复到第一版平台 Agent 配置",
|
||||
},
|
||||
)
|
||||
self.assertEqual(rollback_profile.status_code, 200, rollback_profile.text)
|
||||
rollback_profile_payload = rollback_profile.json()
|
||||
self.assertEqual(rollback_profile_payload["current_version"]["rollback_from_version_id"], first_profile_version_id)
|
||||
self.assertEqual(rollback_profile_payload["config"]["focus"], "conversion")
|
||||
|
||||
profile_audits = self.client.get(
|
||||
"/v2/platform-agents/douyin/profile/audits",
|
||||
headers=self.ctx["member_headers"],
|
||||
params={"project_id": self.ctx["project_id"]},
|
||||
)
|
||||
self.assertEqual(profile_audits.status_code, 200, profile_audits.text)
|
||||
self.assertGreaterEqual(profile_audits.json()["count"], 3)
|
||||
|
||||
versions = self.client.get(
|
||||
f"/v2/platform-agents/douyin/skills/{skill_payload['id']}/versions",
|
||||
headers=self.ctx["member_headers"],
|
||||
@@ -857,6 +905,10 @@ class MainAgentGovernanceTests(unittest.TestCase):
|
||||
self.assertEqual(detail_response.status_code, 200, detail_response.text)
|
||||
detail_payload = detail_response.json()
|
||||
self.assertEqual(detail_payload["run_status"], "done")
|
||||
self.assertEqual(
|
||||
(((detail_payload.get("result") or {}).get("execution_card") or {}).get("platform_agent_profile") or {}).get("version_no"),
|
||||
rollback_profile_payload["current_version"]["version_no"],
|
||||
)
|
||||
|
||||
refreshed_agents = self.client.get(
|
||||
"/v2/platform-agents",
|
||||
@@ -866,9 +918,14 @@ class MainAgentGovernanceTests(unittest.TestCase):
|
||||
self.assertEqual(refreshed_agents.status_code, 200, refreshed_agents.text)
|
||||
refreshed_douyin = next(item for item in refreshed_agents.json()["items"] if item["platform"] == "douyin")
|
||||
self.assertIn("recent_execution", refreshed_douyin)
|
||||
self.assertEqual(refreshed_douyin["current_version"]["version_no"], rollback_profile_payload["current_version"]["version_no"])
|
||||
self.assertEqual(refreshed_douyin["recent_execution"]["run_id"], run_payload["id"])
|
||||
self.assertEqual(refreshed_douyin["recent_execution"]["intent_key"], "governance_review")
|
||||
self.assertGreaterEqual(refreshed_douyin["recent_execution"]["oneliner_profile_version_no"], 1)
|
||||
self.assertEqual(
|
||||
refreshed_douyin["recent_execution"]["platform_agent_profile_version_no"],
|
||||
rollback_profile_payload["current_version"]["version_no"],
|
||||
)
|
||||
|
||||
def test_admin_ops_routes_are_live(self) -> None:
|
||||
now = self.db_module.utc_now()
|
||||
|
||||
Reference in New Issue
Block a user