docker-compose.yml 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654
  1. services:
  2. postgres:
  3. image: pgvector/pgvector:pg16
  4. container_name: agent-platform-postgres
  5. environment:
  6. POSTGRES_USER: ${AGENT_PLATFORM_POSTGRES_USER:-agent_platform}
  7. POSTGRES_PASSWORD: ${AGENT_PLATFORM_POSTGRES_PASSWORD:-agent_platform}
  8. POSTGRES_DB: ${AGENT_PLATFORM_POSTGRES_DB:-agent_platform}
  9. ports:
  10. - "5432:5432"
  11. volumes:
  12. - postgres_data:/var/lib/postgresql/data
  13. - ./postgres-init:/docker-entrypoint-initdb.d:ro
  14. healthcheck:
  15. test: ["CMD-SHELL", "pg_isready -U ${AGENT_PLATFORM_POSTGRES_USER:-agent_platform} -d ${AGENT_PLATFORM_POSTGRES_DB:-agent_platform}"]
  16. interval: 10s
  17. timeout: 5s
  18. retries: 10
  19. redis:
  20. image: redis:7-alpine
  21. container_name: agent-platform-redis
  22. command: ["redis-server", "--appendonly", "yes"]
  23. ports:
  24. - "6379:6379"
  25. volumes:
  26. - redis_data:/data
  27. healthcheck:
  28. test: ["CMD", "redis-cli", "ping"]
  29. interval: 10s
  30. timeout: 5s
  31. retries: 10
  32. prometheus:
  33. image: prom/prometheus:v2.54.1
  34. container_name: agent-platform-prometheus
  35. command:
  36. - "--config.file=/etc/prometheus/prometheus.yml"
  37. - "--storage.tsdb.path=/prometheus"
  38. ports:
  39. - "9090:9090"
  40. volumes:
  41. - ./prometheus.yml:/etc/prometheus/prometheus.yml:ro
  42. - prometheus_data:/prometheus
  43. depends_on:
  44. api-gateway:
  45. condition: service_started
  46. session-service:
  47. condition: service_started
  48. workflow-service:
  49. condition: service_started
  50. runtime-service:
  51. condition: service_started
  52. tool-service:
  53. condition: service_started
  54. model-gateway-service:
  55. condition: service_started
  56. code-runner-service:
  57. condition: service_started
  58. agent-service:
  59. condition: service_started
  60. memory-service:
  61. condition: service_started
  62. team-service:
  63. condition: service_started
  64. skill-service:
  65. condition: service_started
  66. human-service:
  67. condition: service_started
  68. knowledge-service:
  69. condition: service_started
  70. event-service:
  71. condition: service_started
  72. auth-service:
  73. condition: service_started
  74. scheduler-service:
  75. condition: service_started
  76. workflow-service:
  77. build:
  78. context: ../..
  79. dockerfile: deployments/docker/python-service.Dockerfile
  80. args:
  81. SERVICE_PATH: services/workflow-service
  82. container_name: agent-platform-workflow-service
  83. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8002"]
  84. environment:
  85. AGENT_PLATFORM_DATABASE_URL: ${AGENT_PLATFORM_WORKFLOW_DATABASE_URL:-sqlite:////data/workflow_service.db}
  86. AGENT_PLATFORM_REDIS_URL: ${AGENT_PLATFORM_REDIS_URL:-redis://redis:6379/0}
  87. ports:
  88. - "8002:8002"
  89. volumes:
  90. - workflow_service_data:/data
  91. healthcheck:
  92. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8002/workflows/health').read()"]
  93. interval: 15s
  94. timeout: 5s
  95. retries: 5
  96. session-service:
  97. build:
  98. context: ../..
  99. dockerfile: deployments/docker/python-service.Dockerfile
  100. args:
  101. SERVICE_PATH: services/session-service
  102. container_name: agent-platform-session-service
  103. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8001"]
  104. environment:
  105. AGENT_PLATFORM_DATABASE_URL: ${AGENT_PLATFORM_SESSION_DATABASE_URL:-sqlite:////data/session_service.db}
  106. AGENT_PLATFORM_REDIS_URL: ${AGENT_PLATFORM_REDIS_URL:-redis://redis:6379/0}
  107. AGENT_PLATFORM_RUNTIME_SERVICE_URL: http://runtime-service:8003
  108. ports:
  109. - "8001:8001"
  110. volumes:
  111. - session_service_data:/data
  112. depends_on:
  113. runtime-service:
  114. condition: service_started
  115. healthcheck:
  116. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8001/sessions/health').read()"]
  117. interval: 15s
  118. timeout: 5s
  119. retries: 5
  120. tool-service:
  121. build:
  122. context: ../..
  123. dockerfile: deployments/docker/python-service.Dockerfile
  124. args:
  125. SERVICE_PATH: services/tool-service
  126. container_name: agent-platform-tool-service
  127. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8004"]
  128. environment:
  129. AGENT_PLATFORM_DATABASE_URL: ${AGENT_PLATFORM_TOOL_DATABASE_URL:-sqlite:////data/tool_service.db}
  130. AGENT_PLATFORM_REDIS_URL: ${AGENT_PLATFORM_REDIS_URL:-redis://redis:6379/0}
  131. ports:
  132. - "8004:8004"
  133. volumes:
  134. - tool_service_data:/data
  135. healthcheck:
  136. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8004/tools/health').read()"]
  137. interval: 15s
  138. timeout: 5s
  139. retries: 5
  140. model-gateway-service:
  141. build:
  142. context: ../..
  143. dockerfile: deployments/docker/python-service.Dockerfile
  144. args:
  145. SERVICE_PATH: services/model-gateway-service
  146. container_name: agent-platform-model-gateway-service
  147. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8005"]
  148. environment:
  149. AGENT_PLATFORM_PROVIDER_BASE_URL: ${AGENT_PLATFORM_PROVIDER_BASE_URL:-http://host.docker.internal:11434/v1}
  150. AGENT_PLATFORM_PROVIDER_API_KEY: ${AGENT_PLATFORM_PROVIDER_API_KEY:-}
  151. AGENT_PLATFORM_DEFAULT_MODEL: ${AGENT_PLATFORM_DEFAULT_MODEL:-}
  152. ports:
  153. - "8005:8005"
  154. healthcheck:
  155. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8005/models/health').read()"]
  156. interval: 15s
  157. timeout: 5s
  158. retries: 5
  159. code-runner-service:
  160. build:
  161. context: ../..
  162. dockerfile: deployments/docker/python-service.Dockerfile
  163. args:
  164. SERVICE_PATH: services/code-runner-service
  165. container_name: agent-platform-code-runner-service
  166. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8006"]
  167. environment:
  168. AGENT_PLATFORM_PYTHON_BIN: python
  169. AGENT_PLATFORM_MAX_TIMEOUT_SECONDS: ${AGENT_PLATFORM_MAX_TIMEOUT_SECONDS:-30}
  170. ports:
  171. - "8006:8006"
  172. healthcheck:
  173. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8006/code/health').read()"]
  174. interval: 15s
  175. timeout: 5s
  176. retries: 5
  177. agent-service:
  178. build:
  179. context: ../..
  180. dockerfile: deployments/docker/python-service.Dockerfile
  181. args:
  182. SERVICE_PATH: services/agent-service
  183. container_name: agent-platform-agent-service
  184. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8007"]
  185. environment:
  186. AGENT_PLATFORM_DATABASE_URL: ${AGENT_PLATFORM_AGENT_DATABASE_URL:-sqlite:////data/agent_service.db}
  187. AGENT_PLATFORM_REDIS_URL: ${AGENT_PLATFORM_REDIS_URL:-redis://redis:6379/0}
  188. AGENT_PLATFORM_MODEL_GATEWAY_SERVICE_URL: http://model-gateway-service:8005
  189. AGENT_PLATFORM_MEMORY_SERVICE_URL: http://memory-service:8008
  190. AGENT_PLATFORM_TOOL_SERVICE_URL: http://tool-service:8004
  191. AGENT_PLATFORM_SKILL_SERVICE_URL: http://skill-service:8010
  192. AGENT_PLATFORM_EVENT_SERVICE_URL: http://event-service:8013
  193. ports:
  194. - "8007:8007"
  195. volumes:
  196. - agent_service_data:/data
  197. depends_on:
  198. model-gateway-service:
  199. condition: service_started
  200. memory-service:
  201. condition: service_started
  202. tool-service:
  203. condition: service_started
  204. skill-service:
  205. condition: service_started
  206. event-service:
  207. condition: service_started
  208. healthcheck:
  209. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8007/agents/health').read()"]
  210. interval: 15s
  211. timeout: 5s
  212. retries: 5
  213. agent-worker:
  214. build:
  215. context: ../..
  216. dockerfile: deployments/docker/python-service.Dockerfile
  217. args:
  218. SERVICE_PATH: services/agent-service
  219. command: ["python", "-m", "app.worker"]
  220. environment:
  221. AGENT_PLATFORM_DATABASE_URL: ${AGENT_PLATFORM_AGENT_DATABASE_URL:-sqlite:////data/agent_service.db}
  222. AGENT_PLATFORM_REDIS_URL: ${AGENT_PLATFORM_REDIS_URL:-redis://redis:6379/0}
  223. AGENT_PLATFORM_MODEL_GATEWAY_SERVICE_URL: http://model-gateway-service:8005
  224. AGENT_PLATFORM_MEMORY_SERVICE_URL: http://memory-service:8008
  225. AGENT_PLATFORM_TOOL_SERVICE_URL: http://tool-service:8004
  226. AGENT_PLATFORM_SKILL_SERVICE_URL: http://skill-service:8010
  227. AGENT_PLATFORM_EVENT_SERVICE_URL: http://event-service:8013
  228. AGENT_PLATFORM_WORKER_POLL_INTERVAL_SECONDS: ${AGENT_PLATFORM_WORKER_POLL_INTERVAL_SECONDS:-1}
  229. AGENT_PLATFORM_WORKER_LEASE_SECONDS: ${AGENT_PLATFORM_WORKER_LEASE_SECONDS:-300}
  230. AGENT_PLATFORM_WORKER_DRY_RUN: ${AGENT_PLATFORM_AGENT_WORKER_DRY_RUN:-false}
  231. volumes:
  232. - agent_service_data:/data
  233. depends_on:
  234. model-gateway-service:
  235. condition: service_started
  236. memory-service:
  237. condition: service_started
  238. tool-service:
  239. condition: service_started
  240. skill-service:
  241. condition: service_started
  242. event-service:
  243. condition: service_started
  244. memory-service:
  245. build:
  246. context: ../..
  247. dockerfile: deployments/docker/python-service.Dockerfile
  248. args:
  249. SERVICE_PATH: services/memory-service
  250. container_name: agent-platform-memory-service
  251. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8008"]
  252. environment:
  253. AGENT_PLATFORM_DATABASE_URL: ${AGENT_PLATFORM_MEMORY_DATABASE_URL:-sqlite:////data/memory_service.db}
  254. AGENT_PLATFORM_REDIS_URL: ${AGENT_PLATFORM_REDIS_URL:-redis://redis:6379/0}
  255. ports:
  256. - "8008:8008"
  257. volumes:
  258. - memory_service_data:/data
  259. healthcheck:
  260. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8008/memories/health').read()"]
  261. interval: 15s
  262. timeout: 5s
  263. retries: 5
  264. team-service:
  265. build:
  266. context: ../..
  267. dockerfile: deployments/docker/python-service.Dockerfile
  268. args:
  269. SERVICE_PATH: services/team-service
  270. container_name: agent-platform-team-service
  271. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8009"]
  272. environment:
  273. AGENT_PLATFORM_DATABASE_URL: ${AGENT_PLATFORM_TEAM_DATABASE_URL:-sqlite:////data/team_service.db}
  274. AGENT_PLATFORM_REDIS_URL: ${AGENT_PLATFORM_REDIS_URL:-redis://redis:6379/0}
  275. AGENT_PLATFORM_AGENT_SERVICE_URL: http://agent-service:8007
  276. AGENT_PLATFORM_EVENT_SERVICE_URL: http://event-service:8013
  277. ports:
  278. - "8009:8009"
  279. volumes:
  280. - team_service_data:/data
  281. healthcheck:
  282. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8009/teams/health').read()"]
  283. interval: 15s
  284. timeout: 5s
  285. retries: 5
  286. team-worker:
  287. build:
  288. context: ../..
  289. dockerfile: deployments/docker/python-service.Dockerfile
  290. args:
  291. SERVICE_PATH: services/team-service
  292. command: ["python", "-m", "app.worker"]
  293. environment:
  294. AGENT_PLATFORM_DATABASE_URL: ${AGENT_PLATFORM_TEAM_DATABASE_URL:-sqlite:////data/team_service.db}
  295. AGENT_PLATFORM_REDIS_URL: ${AGENT_PLATFORM_REDIS_URL:-redis://redis:6379/0}
  296. AGENT_PLATFORM_AGENT_SERVICE_URL: http://agent-service:8007
  297. AGENT_PLATFORM_EVENT_SERVICE_URL: http://event-service:8013
  298. AGENT_PLATFORM_WORKER_POLL_INTERVAL_SECONDS: ${AGENT_PLATFORM_WORKER_POLL_INTERVAL_SECONDS:-1}
  299. AGENT_PLATFORM_WORKER_LEASE_SECONDS: ${AGENT_PLATFORM_WORKER_LEASE_SECONDS:-300}
  300. AGENT_PLATFORM_WORKER_DRY_RUN: ${AGENT_PLATFORM_TEAM_WORKER_DRY_RUN:-true}
  301. volumes:
  302. - team_service_data:/data
  303. depends_on:
  304. agent-service:
  305. condition: service_started
  306. event-service:
  307. condition: service_started
  308. skill-service:
  309. build:
  310. context: ../..
  311. dockerfile: deployments/docker/python-service.Dockerfile
  312. args:
  313. SERVICE_PATH: services/skill-service
  314. container_name: agent-platform-skill-service
  315. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8010"]
  316. environment:
  317. AGENT_PLATFORM_DATABASE_URL: ${AGENT_PLATFORM_SKILL_DATABASE_URL:-sqlite:////data/skill_service.db}
  318. AGENT_PLATFORM_REDIS_URL: ${AGENT_PLATFORM_REDIS_URL:-redis://redis:6379/0}
  319. ports:
  320. - "8010:8010"
  321. volumes:
  322. - skill_service_data:/data
  323. healthcheck:
  324. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8010/skills/health').read()"]
  325. interval: 15s
  326. timeout: 5s
  327. retries: 5
  328. human-service:
  329. build:
  330. context: ../..
  331. dockerfile: deployments/docker/python-service.Dockerfile
  332. args:
  333. SERVICE_PATH: services/human-service
  334. container_name: agent-platform-human-service
  335. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8011"]
  336. environment:
  337. AGENT_PLATFORM_DATABASE_URL: ${AGENT_PLATFORM_HUMAN_DATABASE_URL:-sqlite:////data/human_service.db}
  338. AGENT_PLATFORM_REDIS_URL: ${AGENT_PLATFORM_REDIS_URL:-redis://redis:6379/0}
  339. ports:
  340. - "8011:8011"
  341. volumes:
  342. - human_service_data:/data
  343. healthcheck:
  344. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8011/human/health').read()"]
  345. interval: 15s
  346. timeout: 5s
  347. retries: 5
  348. knowledge-service:
  349. build:
  350. context: ../..
  351. dockerfile: deployments/docker/python-service.Dockerfile
  352. args:
  353. SERVICE_PATH: services/knowledge-service
  354. container_name: agent-platform-knowledge-service
  355. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8012"]
  356. environment:
  357. AGENT_PLATFORM_DATABASE_URL: ${AGENT_PLATFORM_KNOWLEDGE_DATABASE_URL:-sqlite:////data/knowledge_service.db}
  358. AGENT_PLATFORM_REDIS_URL: ${AGENT_PLATFORM_REDIS_URL:-redis://redis:6379/0}
  359. AGENT_PLATFORM_EMBEDDING_PROVIDER: ${AGENT_PLATFORM_EMBEDDING_PROVIDER:-local}
  360. AGENT_PLATFORM_EMBEDDING_BASE_URL: ${AGENT_PLATFORM_EMBEDDING_BASE_URL:-}
  361. AGENT_PLATFORM_EMBEDDING_API_KEY: ${AGENT_PLATFORM_EMBEDDING_API_KEY:-}
  362. AGENT_PLATFORM_EMBEDDING_MODEL: ${AGENT_PLATFORM_EMBEDDING_MODEL:-local-hash-v1}
  363. ports:
  364. - "8012:8012"
  365. volumes:
  366. - knowledge_service_data:/data
  367. healthcheck:
  368. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8012/knowledge/health').read()"]
  369. interval: 15s
  370. timeout: 5s
  371. retries: 5
  372. event-service:
  373. build:
  374. context: ../..
  375. dockerfile: deployments/docker/python-service.Dockerfile
  376. args:
  377. SERVICE_PATH: services/event-service
  378. container_name: agent-platform-event-service
  379. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8013"]
  380. environment:
  381. AGENT_PLATFORM_DATABASE_URL: ${AGENT_PLATFORM_EVENT_DATABASE_URL:-sqlite:////data/event_service.db}
  382. AGENT_PLATFORM_REDIS_URL: ${AGENT_PLATFORM_REDIS_URL:-redis://redis:6379/0}
  383. ports:
  384. - "8013:8013"
  385. volumes:
  386. - event_service_data:/data
  387. healthcheck:
  388. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8013/events/health').read()"]
  389. interval: 15s
  390. timeout: 5s
  391. retries: 5
  392. auth-service:
  393. build:
  394. context: ../..
  395. dockerfile: deployments/docker/python-service.Dockerfile
  396. args:
  397. SERVICE_PATH: services/auth-service
  398. container_name: agent-platform-auth-service
  399. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8014"]
  400. environment:
  401. AGENT_PLATFORM_DATABASE_URL: ${AGENT_PLATFORM_AUTH_DATABASE_URL:-sqlite:////data/auth_service.db}
  402. AGENT_PLATFORM_REDIS_URL: ${AGENT_PLATFORM_REDIS_URL:-redis://redis:6379/0}
  403. ports:
  404. - "8014:8014"
  405. volumes:
  406. - auth_service_data:/data
  407. healthcheck:
  408. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8014/auth/health').read()"]
  409. interval: 15s
  410. timeout: 5s
  411. retries: 5
  412. scheduler-service:
  413. build:
  414. context: ../..
  415. dockerfile: deployments/docker/python-service.Dockerfile
  416. args:
  417. SERVICE_PATH: services/scheduler-service
  418. container_name: agent-platform-scheduler-service
  419. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8015"]
  420. environment:
  421. AGENT_PLATFORM_DATABASE_URL: ${AGENT_PLATFORM_SCHEDULER_DATABASE_URL:-sqlite:////data/scheduler_service.db}
  422. AGENT_PLATFORM_REDIS_URL: ${AGENT_PLATFORM_REDIS_URL:-redis://redis:6379/0}
  423. ports:
  424. - "8015:8015"
  425. volumes:
  426. - scheduler_service_data:/data
  427. healthcheck:
  428. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8015/scheduler/health').read()"]
  429. interval: 15s
  430. timeout: 5s
  431. retries: 5
  432. scheduler-worker:
  433. build:
  434. context: ../..
  435. dockerfile: deployments/docker/python-service.Dockerfile
  436. args:
  437. SERVICE_PATH: services/scheduler-service
  438. command: ["python", "-m", "app.worker"]
  439. environment:
  440. AGENT_PLATFORM_DATABASE_URL: ${AGENT_PLATFORM_SCHEDULER_DATABASE_URL:-sqlite:////data/scheduler_service.db}
  441. AGENT_PLATFORM_REDIS_URL: ${AGENT_PLATFORM_REDIS_URL:-redis://redis:6379/0}
  442. AGENT_PLATFORM_EVENT_SERVICE_URL: http://event-service:8013
  443. AGENT_PLATFORM_WORKER_POLL_INTERVAL_SECONDS: ${AGENT_PLATFORM_WORKER_POLL_INTERVAL_SECONDS:-1}
  444. AGENT_PLATFORM_WORKER_LEASE_SECONDS: ${AGENT_PLATFORM_WORKER_LEASE_SECONDS:-300}
  445. AGENT_PLATFORM_WORKER_CLAIM_LIMIT: ${AGENT_PLATFORM_SCHEDULER_WORKER_CLAIM_LIMIT:-20}
  446. volumes:
  447. - scheduler_service_data:/data
  448. depends_on:
  449. scheduler-service:
  450. condition: service_started
  451. event-service:
  452. condition: service_started
  453. runtime-service:
  454. build:
  455. context: ../..
  456. dockerfile: deployments/docker/python-service.Dockerfile
  457. args:
  458. SERVICE_PATH: services/runtime-service
  459. container_name: agent-platform-runtime-service
  460. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8003"]
  461. environment:
  462. AGENT_PLATFORM_DATABASE_URL: ${AGENT_PLATFORM_RUNTIME_DATABASE_URL:-sqlite:////data/runtime_service.db}
  463. AGENT_PLATFORM_REDIS_URL: ${AGENT_PLATFORM_REDIS_URL:-redis://redis:6379/0}
  464. AGENT_PLATFORM_WORKFLOW_SERVICE_URL: http://workflow-service:8002
  465. AGENT_PLATFORM_TOOL_SERVICE_URL: http://tool-service:8004
  466. AGENT_PLATFORM_MODEL_GATEWAY_SERVICE_URL: http://model-gateway-service:8005
  467. AGENT_PLATFORM_CODE_RUNNER_SERVICE_URL: http://code-runner-service:8006
  468. AGENT_PLATFORM_AGENT_SERVICE_URL: http://agent-service:8007
  469. AGENT_PLATFORM_MEMORY_SERVICE_URL: http://memory-service:8008
  470. AGENT_PLATFORM_TEAM_SERVICE_URL: http://team-service:8009
  471. AGENT_PLATFORM_SKILL_SERVICE_URL: http://skill-service:8010
  472. AGENT_PLATFORM_HUMAN_SERVICE_URL: http://human-service:8011
  473. AGENT_PLATFORM_KNOWLEDGE_SERVICE_URL: http://knowledge-service:8012
  474. AGENT_PLATFORM_EVENT_SERVICE_URL: http://event-service:8013
  475. AGENT_PLATFORM_SCHEDULER_SERVICE_URL: http://scheduler-service:8015
  476. ports:
  477. - "8003:8003"
  478. volumes:
  479. - runtime_service_data:/data
  480. depends_on:
  481. workflow-service:
  482. condition: service_started
  483. tool-service:
  484. condition: service_started
  485. model-gateway-service:
  486. condition: service_started
  487. code-runner-service:
  488. condition: service_started
  489. agent-service:
  490. condition: service_started
  491. memory-service:
  492. condition: service_started
  493. team-service:
  494. condition: service_started
  495. skill-service:
  496. condition: service_started
  497. human-service:
  498. condition: service_started
  499. knowledge-service:
  500. condition: service_started
  501. event-service:
  502. condition: service_started
  503. scheduler-service:
  504. condition: service_started
  505. healthcheck:
  506. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8003/runtime/health').read()"]
  507. interval: 15s
  508. timeout: 5s
  509. retries: 5
  510. runtime-worker:
  511. build:
  512. context: ../..
  513. dockerfile: deployments/docker/python-service.Dockerfile
  514. args:
  515. SERVICE_PATH: services/runtime-service
  516. command: ["python", "-m", "app.worker"]
  517. environment:
  518. AGENT_PLATFORM_DATABASE_URL: ${AGENT_PLATFORM_RUNTIME_DATABASE_URL:-sqlite:////data/runtime_service.db}
  519. AGENT_PLATFORM_REDIS_URL: ${AGENT_PLATFORM_REDIS_URL:-redis://redis:6379/0}
  520. AGENT_PLATFORM_WORKFLOW_SERVICE_URL: http://workflow-service:8002
  521. AGENT_PLATFORM_TOOL_SERVICE_URL: http://tool-service:8004
  522. AGENT_PLATFORM_MODEL_GATEWAY_SERVICE_URL: http://model-gateway-service:8005
  523. AGENT_PLATFORM_CODE_RUNNER_SERVICE_URL: http://code-runner-service:8006
  524. AGENT_PLATFORM_KNOWLEDGE_SERVICE_URL: http://knowledge-service:8012
  525. AGENT_PLATFORM_EVENT_SERVICE_URL: http://event-service:8013
  526. AGENT_PLATFORM_SCHEDULER_SERVICE_URL: http://scheduler-service:8015
  527. AGENT_PLATFORM_WORKER_POLL_INTERVAL_SECONDS: ${AGENT_PLATFORM_WORKER_POLL_INTERVAL_SECONDS:-1}
  528. AGENT_PLATFORM_WORKER_LEASE_SECONDS: ${AGENT_PLATFORM_WORKER_LEASE_SECONDS:-300}
  529. volumes:
  530. - runtime_service_data:/data
  531. depends_on:
  532. workflow-service:
  533. condition: service_started
  534. tool-service:
  535. condition: service_started
  536. model-gateway-service:
  537. condition: service_started
  538. code-runner-service:
  539. condition: service_started
  540. knowledge-service:
  541. condition: service_started
  542. event-service:
  543. condition: service_started
  544. scheduler-service:
  545. condition: service_started
  546. api-gateway:
  547. build:
  548. context: ../..
  549. dockerfile: deployments/docker/python-service.Dockerfile
  550. args:
  551. SERVICE_PATH: services/api-gateway
  552. container_name: agent-platform-api-gateway
  553. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]
  554. environment:
  555. AGENT_PLATFORM_DATABASE_URL: ${AGENT_PLATFORM_API_GATEWAY_DATABASE_URL:-sqlite:////data/api_gateway.db}
  556. AGENT_PLATFORM_REDIS_URL: ${AGENT_PLATFORM_REDIS_URL:-redis://redis:6379/0}
  557. AGENT_PLATFORM_WORKFLOW_SERVICE_URL: http://workflow-service:8002
  558. AGENT_PLATFORM_SESSION_SERVICE_URL: http://session-service:8001
  559. AGENT_PLATFORM_RUNTIME_SERVICE_URL: http://runtime-service:8003
  560. AGENT_PLATFORM_TOOL_SERVICE_URL: http://tool-service:8004
  561. AGENT_PLATFORM_MODEL_GATEWAY_SERVICE_URL: http://model-gateway-service:8005
  562. AGENT_PLATFORM_CODE_RUNNER_SERVICE_URL: http://code-runner-service:8006
  563. AGENT_PLATFORM_AGENT_SERVICE_URL: http://agent-service:8007
  564. AGENT_PLATFORM_MEMORY_SERVICE_URL: http://memory-service:8008
  565. AGENT_PLATFORM_TEAM_SERVICE_URL: http://team-service:8009
  566. AGENT_PLATFORM_SKILL_SERVICE_URL: http://skill-service:8010
  567. AGENT_PLATFORM_HUMAN_SERVICE_URL: http://human-service:8011
  568. AGENT_PLATFORM_KNOWLEDGE_SERVICE_URL: http://knowledge-service:8012
  569. AGENT_PLATFORM_EVENT_SERVICE_URL: http://event-service:8013
  570. AGENT_PLATFORM_AUTH_SERVICE_URL: http://auth-service:8014
  571. AGENT_PLATFORM_SCHEDULER_SERVICE_URL: http://scheduler-service:8015
  572. AGENT_PLATFORM_AUTH_REQUIRED: ${AGENT_PLATFORM_AUTH_REQUIRED:-false}
  573. AGENT_PLATFORM_AUTHZ_REQUIRED: ${AGENT_PLATFORM_AUTHZ_REQUIRED:-false}
  574. ports:
  575. - "8000:8000"
  576. volumes:
  577. - api_gateway_data:/data
  578. depends_on:
  579. workflow-service:
  580. condition: service_started
  581. session-service:
  582. condition: service_started
  583. runtime-service:
  584. condition: service_started
  585. tool-service:
  586. condition: service_started
  587. model-gateway-service:
  588. condition: service_started
  589. code-runner-service:
  590. condition: service_started
  591. agent-service:
  592. condition: service_started
  593. memory-service:
  594. condition: service_started
  595. team-service:
  596. condition: service_started
  597. skill-service:
  598. condition: service_started
  599. human-service:
  600. condition: service_started
  601. knowledge-service:
  602. condition: service_started
  603. event-service:
  604. condition: service_started
  605. auth-service:
  606. condition: service_started
  607. scheduler-service:
  608. condition: service_started
  609. healthcheck:
  610. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/health').read()"]
  611. interval: 15s
  612. timeout: 5s
  613. retries: 5
  614. volumes:
  615. postgres_data:
  616. redis_data:
  617. prometheus_data:
  618. api_gateway_data:
  619. agent_service_data:
  620. memory_service_data:
  621. team_service_data:
  622. skill_service_data:
  623. human_service_data:
  624. knowledge_service_data:
  625. event_service_data:
  626. auth_service_data:
  627. scheduler_service_data:
  628. workflow_service_data:
  629. session_service_data:
  630. runtime_service_data:
  631. tool_service_data: