api-config.json 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. {
  2. "name": "douyin-speaking-profile-memory",
  3. "displayName": "抖音口播日报 Profile Memory",
  4. "description": "P0 记忆写回入口:初始化/更新 profile、记录候选账号、确认账号池、写入日报校准反馈。",
  5. "category": "douyin",
  6. "version": "0.1.0",
  7. "type": "local-script",
  8. "execution": {
  9. "kind": "command",
  10. "command": "node",
  11. "args": [
  12. "scripts/tools/douyin-speaking-profile-memory.js",
  13. "--result-prefix",
  14. "DOUYIN_SPEAKING_PROFILE_MEMORY_RESULT",
  15. "--mode",
  16. "{{mode}}",
  17. "--profile",
  18. "{{profile}}",
  19. "--output",
  20. "{{output}}",
  21. "--project",
  22. "{{project}}",
  23. "--industry",
  24. "{{industry}}",
  25. "--account-positioning",
  26. "{{accountPositioning}}",
  27. "--target-audience",
  28. "{{targetAudience}}",
  29. "--conversion-goal",
  30. "{{conversionGoal}}",
  31. "--core-offer",
  32. "{{coreOffer}}",
  33. "--content-pillars",
  34. "{{contentPillars}}",
  35. "--keywords",
  36. "{{keywords}}",
  37. "--reference-accounts",
  38. "{{referenceAccounts}}",
  39. "--account-discovery-direction",
  40. "{{accountDiscoveryDirection}}",
  41. "--candidates",
  42. "{{candidates}}",
  43. "--select",
  44. "{{select}}",
  45. "--confirmed-accounts",
  46. "{{confirmedAccounts}}",
  47. "--liked-topics",
  48. "{{likedTopics}}",
  49. "--rejected-topics",
  50. "{{rejectedTopics}}",
  51. "--forbidden-add",
  52. "{{forbiddenAdd}}",
  53. "--keywords-add",
  54. "{{keywordsAdd}}",
  55. "--keywords-remove",
  56. "{{keywordsRemove}}",
  57. "--accounts-add",
  58. "{{accountsAdd}}",
  59. "--accounts-remove",
  60. "{{accountsRemove}}",
  61. "--tone",
  62. "{{tone}}",
  63. "--feedback",
  64. "{{feedback}}",
  65. "--report",
  66. "{{report}}",
  67. "--result",
  68. "{{result}}",
  69. "--automation-ready",
  70. "{{automationReady}}"
  71. ],
  72. "cwd": "{{workspaceRoot}}",
  73. "outputParser": {
  74. "type": "stdout-prefix-json",
  75. "prefix": "DOUYIN_SPEAKING_PROFILE_MEMORY_RESULT="
  76. },
  77. "exitCodes": {
  78. "0": "ok",
  79. "1": "error"
  80. }
  81. },
  82. "parameters": {
  83. "type": "object",
  84. "required": ["mode"],
  85. "properties": {
  86. "mode": {
  87. "type": "string",
  88. "enum": ["update", "record-candidates", "confirm-accounts", "run-complete", "calibrate", "summarize"],
  89. "default": "summarize"
  90. },
  91. "profile": { "type": "string" },
  92. "output": { "type": "string" },
  93. "project": { "type": "string" },
  94. "industry": { "type": "string" },
  95. "accountPositioning": { "type": "string" },
  96. "targetAudience": { "type": "string" },
  97. "conversionGoal": { "type": "string" },
  98. "coreOffer": { "type": "string" },
  99. "contentPillars": { "type": "array", "items": { "type": "string" } },
  100. "keywords": { "type": "array", "items": { "type": "string" } },
  101. "referenceAccounts": { "type": "array", "items": { "type": "string" } },
  102. "accountDiscoveryDirection": { "type": "string" },
  103. "candidates": { "type": "string", "description": "account-candidates.json 路径或 JSON 字符串" },
  104. "select": { "type": "string", "description": "要确认的候选账号序号,如 1,2,4;也支持 all" },
  105. "confirmedAccounts": { "type": "string", "description": "已确认账号 JSON 字符串或文件路径" },
  106. "likedTopics": { "type": "array", "items": { "type": "string" } },
  107. "rejectedTopics": { "type": "array", "items": { "type": "string" } },
  108. "forbiddenAdd": { "type": "array", "items": { "type": "string" } },
  109. "keywordsAdd": { "type": "array", "items": { "type": "string" } },
  110. "keywordsRemove": { "type": "array", "items": { "type": "string" } },
  111. "accountsAdd": { "type": "string" },
  112. "accountsRemove": { "type": "array", "items": { "type": "string" } },
  113. "tone": { "type": "string" },
  114. "feedback": { "type": "string" },
  115. "report": { "type": "string" },
  116. "result": { "type": "string" },
  117. "automationReady": { "type": "boolean", "default": false }
  118. }
  119. },
  120. "output": {
  121. "type": "object",
  122. "properties": {
  123. "status": { "type": "string" },
  124. "mode": { "type": "string" },
  125. "profilePath": { "type": "string" },
  126. "profileState": { "type": "string" },
  127. "readyForDailyReport": { "type": "boolean" },
  128. "automationReady": { "type": "boolean" },
  129. "changed": { "type": "array" },
  130. "selectedAccounts": { "type": "array" },
  131. "summary": { "type": "object" },
  132. "profile": { "type": "object" }
  133. }
  134. },
  135. "memoryFiles": {
  136. "read": ["memory/douyin-speaking-profile.json"],
  137. "write": ["memory/douyin-speaking-profile.json"]
  138. },
  139. "deployment": {
  140. "toolInstallPaths": [
  141. "~/.openclaw/tools/douyin-speaking-profile-memory.js",
  142. "~/.openclaw/workspace/scripts/tools/douyin-speaking-profile-memory.js"
  143. ]
  144. },
  145. "relatedSkills": [
  146. "douyin-speaking-profile-builder",
  147. "douyin-speaking-daily-runner",
  148. "douyin-speaking-daily-report"
  149. ]
  150. }