docker-compose.yml 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687
  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_PROVIDER_BASE_URL: ${AGENT_PLATFORM_PROVIDER_BASE_URL:-http://host.docker.internal:11434/v1}
  159. AGENT_PLATFORM_PROVIDER_API_KEY: ${AGENT_PLATFORM_PROVIDER_API_KEY:-}
  160. AGENT_PLATFORM_DEFAULT_MODEL: ${AGENT_PLATFORM_DEFAULT_MODEL:-}
  161. ports:
  162. - "8005:8005"
  163. healthcheck:
  164. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8005/models/health').read()"]
  165. interval: 15s
  166. timeout: 5s
  167. retries: 5
  168. code-runner-service:
  169. build:
  170. context: ../..
  171. dockerfile: deployments/docker/python-service.Dockerfile
  172. args:
  173. SERVICE_PATH: services/code-runner-service
  174. container_name: agent-platform-code-runner-service
  175. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8006"]
  176. environment:
  177. <<: *agent-platform-common-env
  178. AGENT_PLATFORM_PYTHON_BIN: python
  179. AGENT_PLATFORM_MAX_TIMEOUT_SECONDS: ${AGENT_PLATFORM_MAX_TIMEOUT_SECONDS:-30}
  180. ports:
  181. - "8006:8006"
  182. healthcheck:
  183. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8006/code/health').read()"]
  184. interval: 15s
  185. timeout: 5s
  186. retries: 5
  187. agent-service:
  188. build:
  189. context: ../..
  190. dockerfile: deployments/docker/python-service.Dockerfile
  191. args:
  192. SERVICE_PATH: services/agent-service
  193. container_name: agent-platform-agent-service
  194. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8007"]
  195. environment:
  196. <<: *agent-platform-common-env
  197. AGENT_PLATFORM_DATABASE_URL: ${AGENT_PLATFORM_AGENT_DATABASE_URL:-sqlite:////data/agent_service.db}
  198. AGENT_PLATFORM_REDIS_URL: ${AGENT_PLATFORM_REDIS_URL:-redis://redis:6379/0}
  199. AGENT_PLATFORM_MODEL_GATEWAY_SERVICE_URL: http://model-gateway-service:8005
  200. AGENT_PLATFORM_MEMORY_SERVICE_URL: http://memory-service:8008
  201. AGENT_PLATFORM_TOOL_SERVICE_URL: http://tool-service:8004
  202. AGENT_PLATFORM_SKILL_SERVICE_URL: http://skill-service:8010
  203. AGENT_PLATFORM_EVENT_SERVICE_URL: http://event-service:8013
  204. ports:
  205. - "8007:8007"
  206. volumes:
  207. - agent_service_data:/data
  208. depends_on:
  209. model-gateway-service:
  210. condition: service_started
  211. memory-service:
  212. condition: service_started
  213. tool-service:
  214. condition: service_started
  215. skill-service:
  216. condition: service_started
  217. event-service:
  218. condition: service_started
  219. healthcheck:
  220. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8007/agents/health').read()"]
  221. interval: 15s
  222. timeout: 5s
  223. retries: 5
  224. agent-worker:
  225. build:
  226. context: ../..
  227. dockerfile: deployments/docker/python-service.Dockerfile
  228. args:
  229. SERVICE_PATH: services/agent-service
  230. command: ["python", "-m", "app.worker"]
  231. environment:
  232. <<: *agent-platform-common-env
  233. AGENT_PLATFORM_DATABASE_URL: ${AGENT_PLATFORM_AGENT_DATABASE_URL:-sqlite:////data/agent_service.db}
  234. AGENT_PLATFORM_REDIS_URL: ${AGENT_PLATFORM_REDIS_URL:-redis://redis:6379/0}
  235. AGENT_PLATFORM_MODEL_GATEWAY_SERVICE_URL: http://model-gateway-service:8005
  236. AGENT_PLATFORM_MEMORY_SERVICE_URL: http://memory-service:8008
  237. AGENT_PLATFORM_TOOL_SERVICE_URL: http://tool-service:8004
  238. AGENT_PLATFORM_SKILL_SERVICE_URL: http://skill-service:8010
  239. AGENT_PLATFORM_EVENT_SERVICE_URL: http://event-service:8013
  240. AGENT_PLATFORM_WORKER_POLL_INTERVAL_SECONDS: ${AGENT_PLATFORM_WORKER_POLL_INTERVAL_SECONDS:-1}
  241. AGENT_PLATFORM_WORKER_LEASE_SECONDS: ${AGENT_PLATFORM_WORKER_LEASE_SECONDS:-300}
  242. AGENT_PLATFORM_WORKER_DRY_RUN: ${AGENT_PLATFORM_AGENT_WORKER_DRY_RUN:-false}
  243. volumes:
  244. - agent_service_data:/data
  245. depends_on:
  246. model-gateway-service:
  247. condition: service_started
  248. memory-service:
  249. condition: service_started
  250. tool-service:
  251. condition: service_started
  252. skill-service:
  253. condition: service_started
  254. event-service:
  255. condition: service_started
  256. memory-service:
  257. build:
  258. context: ../..
  259. dockerfile: deployments/docker/python-service.Dockerfile
  260. args:
  261. SERVICE_PATH: services/memory-service
  262. container_name: agent-platform-memory-service
  263. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8008"]
  264. environment:
  265. <<: *agent-platform-common-env
  266. AGENT_PLATFORM_DATABASE_URL: ${AGENT_PLATFORM_MEMORY_DATABASE_URL:-sqlite:////data/memory_service.db}
  267. AGENT_PLATFORM_REDIS_URL: ${AGENT_PLATFORM_REDIS_URL:-redis://redis:6379/0}
  268. ports:
  269. - "8008:8008"
  270. volumes:
  271. - memory_service_data:/data
  272. healthcheck:
  273. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8008/memories/health').read()"]
  274. interval: 15s
  275. timeout: 5s
  276. retries: 5
  277. team-service:
  278. build:
  279. context: ../..
  280. dockerfile: deployments/docker/python-service.Dockerfile
  281. args:
  282. SERVICE_PATH: services/team-service
  283. container_name: agent-platform-team-service
  284. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8009"]
  285. environment:
  286. <<: *agent-platform-common-env
  287. AGENT_PLATFORM_DATABASE_URL: ${AGENT_PLATFORM_TEAM_DATABASE_URL:-sqlite:////data/team_service.db}
  288. AGENT_PLATFORM_REDIS_URL: ${AGENT_PLATFORM_REDIS_URL:-redis://redis:6379/0}
  289. AGENT_PLATFORM_AGENT_SERVICE_URL: http://agent-service:8007
  290. AGENT_PLATFORM_EVENT_SERVICE_URL: http://event-service:8013
  291. ports:
  292. - "8009:8009"
  293. volumes:
  294. - team_service_data:/data
  295. healthcheck:
  296. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8009/teams/health').read()"]
  297. interval: 15s
  298. timeout: 5s
  299. retries: 5
  300. team-worker:
  301. build:
  302. context: ../..
  303. dockerfile: deployments/docker/python-service.Dockerfile
  304. args:
  305. SERVICE_PATH: services/team-service
  306. command: ["python", "-m", "app.worker"]
  307. environment:
  308. <<: *agent-platform-common-env
  309. AGENT_PLATFORM_DATABASE_URL: ${AGENT_PLATFORM_TEAM_DATABASE_URL:-sqlite:////data/team_service.db}
  310. AGENT_PLATFORM_REDIS_URL: ${AGENT_PLATFORM_REDIS_URL:-redis://redis:6379/0}
  311. AGENT_PLATFORM_AGENT_SERVICE_URL: http://agent-service:8007
  312. AGENT_PLATFORM_EVENT_SERVICE_URL: http://event-service:8013
  313. AGENT_PLATFORM_WORKER_POLL_INTERVAL_SECONDS: ${AGENT_PLATFORM_WORKER_POLL_INTERVAL_SECONDS:-1}
  314. AGENT_PLATFORM_WORKER_LEASE_SECONDS: ${AGENT_PLATFORM_WORKER_LEASE_SECONDS:-300}
  315. AGENT_PLATFORM_WORKER_DRY_RUN: ${AGENT_PLATFORM_TEAM_WORKER_DRY_RUN:-true}
  316. volumes:
  317. - team_service_data:/data
  318. depends_on:
  319. agent-service:
  320. condition: service_started
  321. event-service:
  322. condition: service_started
  323. skill-service:
  324. build:
  325. context: ../..
  326. dockerfile: deployments/docker/python-service.Dockerfile
  327. args:
  328. SERVICE_PATH: services/skill-service
  329. container_name: agent-platform-skill-service
  330. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8010"]
  331. environment:
  332. <<: *agent-platform-common-env
  333. AGENT_PLATFORM_DATABASE_URL: ${AGENT_PLATFORM_SKILL_DATABASE_URL:-sqlite:////data/skill_service.db}
  334. AGENT_PLATFORM_REDIS_URL: ${AGENT_PLATFORM_REDIS_URL:-redis://redis:6379/0}
  335. ports:
  336. - "8010:8010"
  337. volumes:
  338. - skill_service_data:/data
  339. healthcheck:
  340. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8010/skills/health').read()"]
  341. interval: 15s
  342. timeout: 5s
  343. retries: 5
  344. human-service:
  345. build:
  346. context: ../..
  347. dockerfile: deployments/docker/python-service.Dockerfile
  348. args:
  349. SERVICE_PATH: services/human-service
  350. container_name: agent-platform-human-service
  351. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8011"]
  352. environment:
  353. <<: *agent-platform-common-env
  354. AGENT_PLATFORM_DATABASE_URL: ${AGENT_PLATFORM_HUMAN_DATABASE_URL:-sqlite:////data/human_service.db}
  355. AGENT_PLATFORM_REDIS_URL: ${AGENT_PLATFORM_REDIS_URL:-redis://redis:6379/0}
  356. ports:
  357. - "8011:8011"
  358. volumes:
  359. - human_service_data:/data
  360. healthcheck:
  361. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8011/human/health').read()"]
  362. interval: 15s
  363. timeout: 5s
  364. retries: 5
  365. knowledge-service:
  366. build:
  367. context: ../..
  368. dockerfile: deployments/docker/python-service.Dockerfile
  369. args:
  370. SERVICE_PATH: services/knowledge-service
  371. container_name: agent-platform-knowledge-service
  372. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8012"]
  373. environment:
  374. <<: *agent-platform-common-env
  375. AGENT_PLATFORM_DATABASE_URL: ${AGENT_PLATFORM_KNOWLEDGE_DATABASE_URL:-sqlite:////data/knowledge_service.db}
  376. AGENT_PLATFORM_REDIS_URL: ${AGENT_PLATFORM_REDIS_URL:-redis://redis:6379/0}
  377. AGENT_PLATFORM_EMBEDDING_PROVIDER: ${AGENT_PLATFORM_EMBEDDING_PROVIDER:-local}
  378. AGENT_PLATFORM_EMBEDDING_BASE_URL: ${AGENT_PLATFORM_EMBEDDING_BASE_URL:-}
  379. AGENT_PLATFORM_EMBEDDING_API_KEY: ${AGENT_PLATFORM_EMBEDDING_API_KEY:-}
  380. AGENT_PLATFORM_EMBEDDING_MODEL: ${AGENT_PLATFORM_EMBEDDING_MODEL:-local-hash-v1}
  381. AGENT_PLATFORM_RETRIEVAL_KEYWORD_WEIGHT: ${AGENT_PLATFORM_RETRIEVAL_KEYWORD_WEIGHT:-0.55}
  382. AGENT_PLATFORM_RETRIEVAL_VECTOR_WEIGHT: ${AGENT_PLATFORM_RETRIEVAL_VECTOR_WEIGHT:-0.30}
  383. AGENT_PLATFORM_RETRIEVAL_RERANK_WEIGHT: ${AGENT_PLATFORM_RETRIEVAL_RERANK_WEIGHT:-0.15}
  384. AGENT_PLATFORM_RETRIEVAL_RERANK_ENABLED: ${AGENT_PLATFORM_RETRIEVAL_RERANK_ENABLED:-true}
  385. ports:
  386. - "8012:8012"
  387. volumes:
  388. - knowledge_service_data:/data
  389. healthcheck:
  390. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8012/knowledge/health').read()"]
  391. interval: 15s
  392. timeout: 5s
  393. retries: 5
  394. event-service:
  395. build:
  396. context: ../..
  397. dockerfile: deployments/docker/python-service.Dockerfile
  398. args:
  399. SERVICE_PATH: services/event-service
  400. container_name: agent-platform-event-service
  401. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8013"]
  402. environment:
  403. <<: *agent-platform-common-env
  404. AGENT_PLATFORM_DATABASE_URL: ${AGENT_PLATFORM_EVENT_DATABASE_URL:-sqlite:////data/event_service.db}
  405. AGENT_PLATFORM_REDIS_URL: ${AGENT_PLATFORM_REDIS_URL:-redis://redis:6379/0}
  406. ports:
  407. - "8013:8013"
  408. volumes:
  409. - event_service_data:/data
  410. healthcheck:
  411. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8013/events/health').read()"]
  412. interval: 15s
  413. timeout: 5s
  414. retries: 5
  415. auth-service:
  416. build:
  417. context: ../..
  418. dockerfile: deployments/docker/python-service.Dockerfile
  419. args:
  420. SERVICE_PATH: services/auth-service
  421. container_name: agent-platform-auth-service
  422. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8014"]
  423. environment:
  424. <<: *agent-platform-common-env
  425. AGENT_PLATFORM_DATABASE_URL: ${AGENT_PLATFORM_AUTH_DATABASE_URL:-postgresql+psycopg://admin:hFOvG5UBeK5KIGhz5cQH@git.newpoint.work:5432/vectordb}
  426. AGENT_PLATFORM_REDIS_URL: ${AGENT_PLATFORM_REDIS_URL:-redis://redis:6379/0}
  427. ports:
  428. - "8014:8014"
  429. volumes:
  430. - auth_service_data:/data
  431. healthcheck:
  432. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8014/auth/health').read()"]
  433. interval: 15s
  434. timeout: 5s
  435. retries: 5
  436. scheduler-service:
  437. build:
  438. context: ../..
  439. dockerfile: deployments/docker/python-service.Dockerfile
  440. args:
  441. SERVICE_PATH: services/scheduler-service
  442. container_name: agent-platform-scheduler-service
  443. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8015"]
  444. environment:
  445. <<: *agent-platform-common-env
  446. AGENT_PLATFORM_DATABASE_URL: ${AGENT_PLATFORM_SCHEDULER_DATABASE_URL:-sqlite:////data/scheduler_service.db}
  447. AGENT_PLATFORM_REDIS_URL: ${AGENT_PLATFORM_REDIS_URL:-redis://redis:6379/0}
  448. ports:
  449. - "8015:8015"
  450. volumes:
  451. - scheduler_service_data:/data
  452. healthcheck:
  453. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8015/scheduler/health').read()"]
  454. interval: 15s
  455. timeout: 5s
  456. retries: 5
  457. scheduler-worker:
  458. build:
  459. context: ../..
  460. dockerfile: deployments/docker/python-service.Dockerfile
  461. args:
  462. SERVICE_PATH: services/scheduler-service
  463. command: ["python", "-m", "app.worker"]
  464. environment:
  465. <<: *agent-platform-common-env
  466. AGENT_PLATFORM_DATABASE_URL: ${AGENT_PLATFORM_SCHEDULER_DATABASE_URL:-sqlite:////data/scheduler_service.db}
  467. AGENT_PLATFORM_REDIS_URL: ${AGENT_PLATFORM_REDIS_URL:-redis://redis:6379/0}
  468. AGENT_PLATFORM_EVENT_SERVICE_URL: http://event-service:8013
  469. AGENT_PLATFORM_WORKER_POLL_INTERVAL_SECONDS: ${AGENT_PLATFORM_WORKER_POLL_INTERVAL_SECONDS:-1}
  470. AGENT_PLATFORM_WORKER_LEASE_SECONDS: ${AGENT_PLATFORM_WORKER_LEASE_SECONDS:-300}
  471. AGENT_PLATFORM_WORKER_CLAIM_LIMIT: ${AGENT_PLATFORM_SCHEDULER_WORKER_CLAIM_LIMIT:-20}
  472. volumes:
  473. - scheduler_service_data:/data
  474. depends_on:
  475. scheduler-service:
  476. condition: service_started
  477. event-service:
  478. condition: service_started
  479. runtime-service:
  480. build:
  481. context: ../..
  482. dockerfile: deployments/docker/python-service.Dockerfile
  483. args:
  484. SERVICE_PATH: services/runtime-service
  485. container_name: agent-platform-runtime-service
  486. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8003"]
  487. environment:
  488. <<: *agent-platform-common-env
  489. AGENT_PLATFORM_DATABASE_URL: ${AGENT_PLATFORM_RUNTIME_DATABASE_URL:-sqlite:////data/runtime_service.db}
  490. AGENT_PLATFORM_REDIS_URL: ${AGENT_PLATFORM_REDIS_URL:-redis://redis:6379/0}
  491. AGENT_PLATFORM_WORKFLOW_SERVICE_URL: http://workflow-service:8002
  492. AGENT_PLATFORM_TOOL_SERVICE_URL: http://tool-service:8004
  493. AGENT_PLATFORM_MODEL_GATEWAY_SERVICE_URL: http://model-gateway-service:8005
  494. AGENT_PLATFORM_CODE_RUNNER_SERVICE_URL: http://code-runner-service:8006
  495. AGENT_PLATFORM_AGENT_SERVICE_URL: http://agent-service:8007
  496. AGENT_PLATFORM_MEMORY_SERVICE_URL: http://memory-service:8008
  497. AGENT_PLATFORM_TEAM_SERVICE_URL: http://team-service:8009
  498. AGENT_PLATFORM_SKILL_SERVICE_URL: http://skill-service:8010
  499. AGENT_PLATFORM_HUMAN_SERVICE_URL: http://human-service:8011
  500. AGENT_PLATFORM_KNOWLEDGE_SERVICE_URL: http://knowledge-service:8012
  501. AGENT_PLATFORM_EVENT_SERVICE_URL: http://event-service:8013
  502. AGENT_PLATFORM_SCHEDULER_SERVICE_URL: http://scheduler-service:8015
  503. ports:
  504. - "8003:8003"
  505. volumes:
  506. - runtime_service_data:/data
  507. depends_on:
  508. workflow-service:
  509. condition: service_started
  510. tool-service:
  511. condition: service_started
  512. model-gateway-service:
  513. condition: service_started
  514. code-runner-service:
  515. condition: service_started
  516. agent-service:
  517. condition: service_started
  518. memory-service:
  519. condition: service_started
  520. team-service:
  521. condition: service_started
  522. skill-service:
  523. condition: service_started
  524. human-service:
  525. condition: service_started
  526. knowledge-service:
  527. condition: service_started
  528. event-service:
  529. condition: service_started
  530. scheduler-service:
  531. condition: service_started
  532. healthcheck:
  533. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8003/runtime/health').read()"]
  534. interval: 15s
  535. timeout: 5s
  536. retries: 5
  537. runtime-worker:
  538. build:
  539. context: ../..
  540. dockerfile: deployments/docker/python-service.Dockerfile
  541. args:
  542. SERVICE_PATH: services/runtime-service
  543. command: ["python", "-m", "app.worker"]
  544. environment:
  545. <<: *agent-platform-common-env
  546. AGENT_PLATFORM_DATABASE_URL: ${AGENT_PLATFORM_RUNTIME_DATABASE_URL:-sqlite:////data/runtime_service.db}
  547. AGENT_PLATFORM_REDIS_URL: ${AGENT_PLATFORM_REDIS_URL:-redis://redis:6379/0}
  548. AGENT_PLATFORM_WORKFLOW_SERVICE_URL: http://workflow-service:8002
  549. AGENT_PLATFORM_TOOL_SERVICE_URL: http://tool-service:8004
  550. AGENT_PLATFORM_MODEL_GATEWAY_SERVICE_URL: http://model-gateway-service:8005
  551. AGENT_PLATFORM_CODE_RUNNER_SERVICE_URL: http://code-runner-service:8006
  552. AGENT_PLATFORM_KNOWLEDGE_SERVICE_URL: http://knowledge-service:8012
  553. AGENT_PLATFORM_EVENT_SERVICE_URL: http://event-service:8013
  554. AGENT_PLATFORM_SCHEDULER_SERVICE_URL: http://scheduler-service:8015
  555. AGENT_PLATFORM_WORKER_POLL_INTERVAL_SECONDS: ${AGENT_PLATFORM_WORKER_POLL_INTERVAL_SECONDS:-1}
  556. AGENT_PLATFORM_WORKER_LEASE_SECONDS: ${AGENT_PLATFORM_WORKER_LEASE_SECONDS:-300}
  557. volumes:
  558. - runtime_service_data:/data
  559. depends_on:
  560. workflow-service:
  561. condition: service_started
  562. tool-service:
  563. condition: service_started
  564. model-gateway-service:
  565. condition: service_started
  566. code-runner-service:
  567. condition: service_started
  568. knowledge-service:
  569. condition: service_started
  570. event-service:
  571. condition: service_started
  572. scheduler-service:
  573. condition: service_started
  574. api-gateway:
  575. build:
  576. context: ../..
  577. dockerfile: deployments/docker/python-service.Dockerfile
  578. args:
  579. SERVICE_PATH: services/api-gateway
  580. container_name: agent-platform-api-gateway
  581. command: ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]
  582. environment:
  583. <<: *agent-platform-common-env
  584. AGENT_PLATFORM_DATABASE_URL: ${AGENT_PLATFORM_API_GATEWAY_DATABASE_URL:-sqlite:////data/api_gateway.db}
  585. AGENT_PLATFORM_REDIS_URL: ${AGENT_PLATFORM_REDIS_URL:-redis://redis:6379/0}
  586. AGENT_PLATFORM_WORKFLOW_SERVICE_URL: http://workflow-service:8002
  587. AGENT_PLATFORM_SESSION_SERVICE_URL: http://session-service:8001
  588. AGENT_PLATFORM_RUNTIME_SERVICE_URL: http://runtime-service:8003
  589. AGENT_PLATFORM_TOOL_SERVICE_URL: http://tool-service:8004
  590. AGENT_PLATFORM_MODEL_GATEWAY_SERVICE_URL: http://model-gateway-service:8005
  591. AGENT_PLATFORM_CODE_RUNNER_SERVICE_URL: http://code-runner-service:8006
  592. AGENT_PLATFORM_AGENT_SERVICE_URL: http://agent-service:8007
  593. AGENT_PLATFORM_MEMORY_SERVICE_URL: http://memory-service:8008
  594. AGENT_PLATFORM_TEAM_SERVICE_URL: http://team-service:8009
  595. AGENT_PLATFORM_SKILL_SERVICE_URL: http://skill-service:8010
  596. AGENT_PLATFORM_HUMAN_SERVICE_URL: http://human-service:8011
  597. AGENT_PLATFORM_KNOWLEDGE_SERVICE_URL: http://knowledge-service:8012
  598. AGENT_PLATFORM_EVENT_SERVICE_URL: http://event-service:8013
  599. AGENT_PLATFORM_AUTH_SERVICE_URL: http://auth-service:8014
  600. AGENT_PLATFORM_SCHEDULER_SERVICE_URL: http://scheduler-service:8015
  601. AGENT_PLATFORM_AUTH_REQUIRED: ${AGENT_PLATFORM_AUTH_REQUIRED:-true}
  602. AGENT_PLATFORM_AUTHZ_REQUIRED: ${AGENT_PLATFORM_AUTHZ_REQUIRED:-false}
  603. AGENT_PLATFORM_RATE_LIMIT_ENABLED: ${AGENT_PLATFORM_RATE_LIMIT_ENABLED:-false}
  604. AGENT_PLATFORM_GLOBAL_RATE_LIMIT_PER_MINUTE: ${AGENT_PLATFORM_GLOBAL_RATE_LIMIT_PER_MINUTE:-600}
  605. AGENT_PLATFORM_API_KEY_RATE_LIMIT_PER_MINUTE: ${AGENT_PLATFORM_API_KEY_RATE_LIMIT_PER_MINUTE:-1200}
  606. ports:
  607. - "8000:8000"
  608. volumes:
  609. - api_gateway_data:/data
  610. depends_on:
  611. workflow-service:
  612. condition: service_started
  613. session-service:
  614. condition: service_started
  615. runtime-service:
  616. condition: service_started
  617. tool-service:
  618. condition: service_started
  619. model-gateway-service:
  620. condition: service_started
  621. code-runner-service:
  622. condition: service_started
  623. agent-service:
  624. condition: service_started
  625. memory-service:
  626. condition: service_started
  627. team-service:
  628. condition: service_started
  629. skill-service:
  630. condition: service_started
  631. human-service:
  632. condition: service_started
  633. knowledge-service:
  634. condition: service_started
  635. event-service:
  636. condition: service_started
  637. auth-service:
  638. condition: service_started
  639. scheduler-service:
  640. condition: service_started
  641. healthcheck:
  642. test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/health').read()"]
  643. interval: 15s
  644. timeout: 5s
  645. retries: 5
  646. volumes:
  647. postgres_data:
  648. redis_data:
  649. prometheus_data:
  650. api_gateway_data:
  651. agent_service_data:
  652. memory_service_data:
  653. team_service_data:
  654. skill_service_data:
  655. human_service_data:
  656. knowledge_service_data:
  657. event_service_data:
  658. auth_service_data:
  659. scheduler_service_data:
  660. workflow_service_data:
  661. session_service_data:
  662. runtime_service_data:
  663. tool_service_data: