docker-compose.yml 25 KB

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