如何在本地配置 PostHog Tasks 后台代理和 GitHub App 集成?

如何在本地配置 PostHog Tasks 后台代理和 GitHub App 集成? 如何在本地配置 PostHog Tasks 后台代理和 GitHub App 集成【免费下载链接】posthog:hedgehog: PostHog is the leading platform for building self-driving products. Our developer tools – AI observability, analytics, session replay, flags, experiments, error tracking, logs, and more – capture all the context agents need to diagnose problems, uncover opportunities, and ship fixes. Steer it all from Slack, web, desktop, or the MCP.项目地址: https://gitcode.com/GitHub_Trending/po/posthogPostHog 的 Tasks后台代理background agents功能允许在任务运行中启动沙箱、克隆仓库并驱动 agent 完成工作。要在本地跑通这条链路需要完成两件配套的事一是创建属于自己的个人开发用 GitHub App并把四个GITHUB_APP_*凭据写进.env二是运行setup_background_agents命令补齐数据库侧的 OAuth 应用、tasks功能开关和技能包最后通过hogli start启动开发环境并在 Tasks 页面验证运行。本文基于仓库内的本地配置指南 docs/internal/sandboxes-setup-guide.md 整理覆盖准备条件、GitHub App 两种创建路径、启动与验证方式以及文档给出的已知故障排查表。准备条件本地环境需要满足什么开始前先确认以下条件它们来自指南和命令源码的要求开发环境可启动setup_background_agents会先检查数据库连接数据库由hogli start拉起。命令在连不上数据库时会报Cannot connect to the database. Is the dev environment running? (hogli start)即需要先有可启动的环境。DEBUG1必须开启setup_background_agents与create_github_app都硬性要求 DEBUG 模式否则会直接报CommandError。本地 Docker 沙箱SANDBOX_PROVIDERdocker同样要求DEBUG1。每个工程师需要自己的 GitHub App指南明确说明 GitHub App 是个人开发凭据不能用生产 App 代替。如果只想走 Docker 沙箱指南推荐的本地组合是SANDBOX_PROVIDERdocker不需要 Modal 账号setup_background_agents会从.env.example自动补全DEBUG、SANDBOX_PROVIDER等自动填充项见 .env.example。创建 GitHub App自动流程指南提供了快捷命令create_github_app实现见 products/signals/backend/management/commands/create_github_app.py它通过 GitHub 的 App Manifest 流程自动化整个创建过程python manage.py create_github_app命令的行为与限制会在127.0.0.1的--port默认8019上临时启动一个本地回调服务器打开浏览器并预填 App 清单你只需要在浏览器里单击一次 Create GitHub App命令随即把GITHUB_APP_CLIENT_ID、GITHUB_APP_CLIENT_SECRET、GITHUB_APP_SLUG、GITHUB_APP_PRIVATE_KEY四个值写入.env并验证私钥可用。默认 base URL 为http://localhost:8010等待你完成浏览器操作的默认超时是 600 秒超时或端口被占用时会报错并提示重新运行或换--port。如果.env或环境里已经存在这四个值命令会先询问是否覆盖非交互终端下必须显式加--force。常用参数--org name表示在指定 GitHub 组织下创建默认建在你当前登录的个人账号下--name指定 App 名称默认随机生成PostHog Signals Dev 随机串--no-browser不自动打开浏览器只打印 URL--no-verify跳过创建后的私钥鉴权检查。命令写入的 App 权限为 Contents写、Pull requests写、Metadata读、Issues写、Workflows写——后两项在指南中标注为可选但命令默认包含以省去后续排错。手动创建 GitHub App权限、URL 与凭据自动流程不可用时的手动步骤指南中的参考路径每一步都有对应用途在 GitHub 上进入 Settings → Developer Settings → GitHub Apps → New GitHub App。Setup URL注意是 Setup URL不是 Callback 或 Homepage URL设为http://localhost:8010/integrations/github/callbackCallback URL设为http://localhost:8010/complete/github-link/——这个地址是 Code 的用户链接user-link流程使用的实际上任意合法的 localhost URL 都可以创建 App 时该字段必填。配置权限权限访问级别用途Contents读/写读取文件、创建分支、推送提交Pull requests读/写创建和更新 PRMetadata只读所有 GitHub App 必需可选Issues读/写、Workflows读/写。在 Identifying and authorizing users 区域勾选Request user authorization (OAuth) during installation——个人用户链接流程依赖它。在 App 页面的 Client secrets 下生成 client secret。指南特别提醒这是近几个版本开始新增的必需项如果本地环境最近突然不能工作最可能缺的就是它。生成private key并把 App 安装到你的测试仓库访问http://localhost:8010/project/1/integrations/github完成安装。把四项凭据写入仓库根目录的.env# The OAuth Client ID (starts with Iv1 or Iv23) — NOT the numeric App ID. # Both fields are visible on the GitHub App settings page; the App ID is the # small grey number at the top, the Client ID is the labelled field below. GITHUB_APP_CLIENT_IDIv1.xxxxxxxxxxxxxxxx GITHUB_APP_CLIENT_SECRETyour_client_secret GITHUB_APP_SLUGyour-app-slug GITHUB_APP_PRIVATE_KEY-----BEGIN RSA PRIVATE KEY-----\n...\n-----END RSA PRIVATE KEY-----占位符替换说明GITHUB_APP_CLIENT_ID填 App 设置页中以Iv1或Iv23开头的 OAuth Client ID不是页面顶部灰色的小数字 App IDGITHUB_APP_SLUG填 App URL形如github.com/apps/你的-slug中 URL 友好的名字私钥里的字面\n会被自动转换为换行符直接整行粘贴即可。运行 setup_background_agents后台侧的本地代理配置python manage.py setup_background_agents该命令幂等可随时重复执行。按 products/tasks/backend/management/commands/setup_background_agents.py 的实现它依次做五件事检查数据库连接连不上会提示hogli start。补齐环境变量把.env.example中存在的OIDC_RSA_PRIVATE_KEY、SANDBOX_JWT_PRIVATE_KEY、DEBUG、SANDBOX_PROVIDER、SANDBOX_MCP_URL追加到.env已存在的跳过。排查表里提到的SANDBOX_JWT_PRIVATE_KEY缺失问题重新运行本命令即可自动从.env.example回填。创建 Array OAuth 应用Array Dev Appclient_type 为 public授权码模式重定向 URI 固定为本地开发用的四个回调地址。为每个 team 创建/恢复tasks功能开关100% 全量 rollout、active这是 Tasks 页面可见和任务可执行的前提。构建 agent 技能包调用products/posthog_ai/scripts/build_skills.py输出会打印在命令日志里耗时可能约一分钟。命令结束时输出Background agents setup complete!并提示运行hogli start。如果四个GITHUB_APP_*值还没写进.env命令会打印上面手动步骤的摘要并询问是否打开 GitHub App 创建页。另外两个命令值得了解python manage.py setup_tasks_oauth用于补建 Array 和 PostHog AI 的开发用 OAuth 应用当出现PostHog AI app not found for region ...时运行实现在 products/tasks/backend/management/commands/setup_tasks_oauth.py它在 US/EU 生产区域会自动跳过bin/migrate的部署流程也会执行它。启动开发环境并在 Tasks 页面验证hogli startTemporal 和 temporal-django-worker 会随hogli start通过 phrocs 自动启动不需要单独拉起。指南描述了背后的process-task工作流定义在products/tasks/backend/temporal/process_task/workflow.py依次执行get_task_processing_context加载 TaskRun、校验 GitHub 集成与仓库、get_sandbox_for_repository创建 OAuth token、按需复用快照并克隆仓库、start_agent_server在沙箱内运行npx agent-server并轮询/health、wait_condition带 30 分钟不活动超时由 agent 心跳延长收到complete_task信号退出、cleanup_sandbox销毁沙箱容器失败时也总是执行。UI 验证步骤指南原文说明当前界面还比较简陋但足以观察和调试后台云运行也可以用 PostHog Desktop 代替调试界面访问/tasks打开 Tasks 页面——它不会出现在侧边栏必须直接访问 URL且前提是tasks功能开关已开启。创建一个任务填写标题、描述和仓库格式owner/repo。点击 Run task。在 session 视图中观察日志滚动输出。如果任务卡住不动结合下表的故障现象定位排查无果时可看TaskRun状态或沙箱日志。常见问题排查下表整理自指南的 Troubleshooting 章节均为文档原文给出的现象与对策现象处理方式Docker not running启动 Docker Desktop 或 Docker 守护进程Temporal not reachable确认 Temporal 运行在127.0.0.1:7233可用temporal server start-dev检查Feature flag not enabled重跑python manage.py setup_background_agents重新创建 100% rollout 的tasks开关Array OAuth app missing重跑python manage.py setup_background_agentsPostHog AI app not found for region ...运行python manage.py setup_tasks_oauth补建 Array 与 PostHog AI 开发 AppGitHub token expiredGitHub App 安装产生的 token 约 1 小时过期重跑任务获取新 tokenTask workflow execution blockedtasks功能开关未对该用户/组织开启Sandbox image build fails检查 Docker 磁盘空间用docker system prune清理旧镜像Agent server health check fails查看沙箱日志docker exec container_id cat /tmp/agent-server.logSANDBOX_JWT_PRIVATE_KEYmissing重跑python manage.py setup_background_agents会自动从.env.example回填Port conflict on sandbox host portDockerSandbox 把容器端口 47821 映射到动态宿主机端口若被占用停掉占用进程或重启 DockerSandbox cant reach PostHog APIDocker 下不要设置SANDBOX_API_URL有自动转换确需覆盖时用 8000 端口而不是 8010容器内访问 Caddy 会返回空响应SANDBOX_PROVIDERdocker报sandbox is for local development only该 provider 要求DEBUG1或 pytest 的TEST1flox 环境下DEBUG通常由环境注入显式 unset 会触发该错误git commit is disabled in PostHog DesktopPATH shim/opt/posthog/bin/git拦截未签名的 commit/push先git add再用git_signed_commit工具调试时可设POSTHOG_ALLOW_UNSIGNED_GIT1绕过两点边界说明docker与MODAL_DOCKER沙箱 provider 仅用于本地开发若用 Modal 云沙箱则无法直接访问localhost需要额外配置隧道Tailscale Funnel和 Modal 凭据见指南 Testing with local agent packages 一节。该节同时说明只有当你修改posthog/agent包时才需要配置LOCAL_POSTHOG_CODE_MONOREPO_ROOT等本地包相关项否则可以整节忽略。下一步GitHub App 装好、setup_background_agents跑通、hogli start起来后如果要在 Slack 中用PostHog task触发运行代替 UI参见 docs/internal/slack-local-setup-guide.md需要修改 agent 包、MCP server 配置services/mcp/.env或遥测项时回到 docs/internal/sandboxes-setup-guide.md 对应的 Testing with local agent packages 章节按条配置每次改动.env后记得重启 temporal worker。【免费下载链接】posthog:hedgehog: PostHog is the leading platform for building self-driving products. Our developer tools – AI observability, analytics, session replay, flags, experiments, error tracking, logs, and more – capture all the context agents need to diagnose problems, uncover opportunities, and ship fixes. Steer it all from Slack, web, desktop, or the MCP.项目地址: https://gitcode.com/GitHub_Trending/po/posthog创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考