docker-compose.yml 26 KB

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