docker-compose.yml 26 KB

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