惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Check Point Blog
有赞技术团队
有赞技术团队
博客园 - 三生石上(FineUI控件)
博客园_首页
博客园 - 【当耐特】
WordPress大学
WordPress大学
月光博客
月光博客
博客园 - 叶小钗
S
SegmentFault 最新的问题
雷峰网
雷峰网
H
Help Net Security
宝玉的分享
宝玉的分享
A
About on SuperTechFans
IT之家
IT之家
J
Java Code Geeks
Hugging Face - Blog
Hugging Face - Blog
D
DataBreaches.Net
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 聂微东
T
The Blog of Author Tim Ferriss
B
Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Y
Y Combinator Blog

Hacker News - Newest: "AI"

AI can't read an investor deck AI as an attorney? Student uses ChatGPT, Gemini to sue UW over alleged racial discrimination Hacking MCP Servers in AI Systems – The Rug Pull: Tool Changes After Approval GitHub - MeepCastana/KubeezCut: Free Web based video editor Can AI judge journalism? A Thiel-backed startup says yes, even if it risks chilling whistleblowers Coming soon: 10 Things That Matter in AI Right Now DARPA built an AI to fact-check enemy weapons claims What explains heterogeneity in AI adoption? When AI Meets Muscle: Context-Aware Electrical Stimulation Promises a New Way to Guide Human Movements - Department of Computer Science AI Changed How We Build. It Did Not Change What Matters. Linux rules on using AI-generated code - Copilot is OK, but humans must take 'full responsibility for the… Meta spins up AI version of Mark Zuckerberg to engage with employees Code Mode: Let Your AI Write Programs, Not Just Call Tools | TanStack Blog GitHub - Delavalom/graft: Go framework for building AI agents. Type-safe tools, multi-provider (OpenAI, Anthropic, Gemini, Bedrock), zero vendor SDKs. India's TCS tops estimates, says new AI models did not dent services demand Gen Z's fading AI hype Strong feeling: we are in a folded AI reality GitHub - machinarii/total-recall-catalog: A reference catalog of latest knowledge retrieval, memory & RAG systems GitHub - mensfeld/code-on-incus: Give each AI agent its own isolated machine with root, Docker, and systemd. Active defense detects and stops threats automatically.. Quantization, LoRA, and the 8% Problem: Benchmarking Local LLMs for Production AI Iran war: We spoke to the man making Lego-style AI videos that experts say are powerful propaganda Powell, Bessent discussed Anthropic's Mythos AI cyber threat with major U.S. banks GitHub - immartian/bellamem: Persistent belief-graph memory for AI agents. Retrieves decisive context by importance — not recency, not RAG, not /compact. recursive-mode: The Repo-Native Operating System for AI Engineering After the attack on Sam Altman's home, will AI CEO's go on the offensive? The biggest advance in AI since the LLM Opus 4.6 vs GPT 5.4 One Prompt Unity World Generation Test “AI polls” are fake polls Client Challenge Can AI be a 'child of God'? Inside Anthropic's meeting with Christian leaders
Quickstart | Alien
Alien · 2026-04-16 · via Hacker News - Newest: "AI"

In this guide, you'll build an AI worker that runs inside a customer's cloud. Your AI does the reasoning in your cloud; the worker does the actions in theirs — reading files, writing results, querying data — without any of it leaving their network.

╔═ Your Cloud ════════════╗                ╔═ Customer's Cloud ═════════════════╗
║                         ║                ║                                    ║░
║   ┏━━━━━━━━━━━━━━━━┓    ║  tool calls    ║  ┏━━━━━━━━━━━━━━━━┓                ║░
║   ┃   AI Agent     ┃────╬─────────────▶──╬──┃   AI Worker    ┃                ║░
║   ┃  (reasoning)   ┃◀───╬────────────────╬──┃  (actions)     ┃                ║░
║   ┗━━━━━━━━━━━━━━━━┛    ║    results     ║  ┗━━━━━━┯━━━━━━━━━┛                ║░
║                         ║                ║         │                          ║░
╚═════════════════════════╝                ║    read files, query data,         ║░
                                           ║    write results, ...              ║░
                                           ║                                    ║░
                                           ╚════════════════════════════════════╝░
                                            ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
macOS / Linux
curl -fsSL https://alien.dev/install | sh
export PATH="$HOME/.local/bin:$PATH"
Windows
irm https://alien.dev/install.ps1 | iex
alien init

Select remote-worker-ts. This creates:

Let's look at the two important files.

alien.ts — what to deploy

This file describes the infrastructure each customer gets:

alien.ts
import * as alien from "@alienplatform/core"

// Private file storage for each customer
// Becomes S3 on AWS, Cloud Storage on GCP, Blob Storage on Azure
const files = new alien.Storage("files").build()

// Your code — deployed as a serverless worker in the customer's cloud
// Becomes Lambda on AWS, Cloud Run on GCP, Container Apps on Azure
const worker = new alien.Worker("worker")
  .code({ type: "source", src: "./", toolchain: { type: "typescript" } })
  .commandsEnabled(true)
  .ingress("private")  // No public URL — only reachable via commands
  .link(files)
  .permissions("execution")
  .build()

export default new alien.Stack("remote-worker")
  .add(files, "frozen")
  .add(worker, "live")
  .permissions({
    profiles: {
      execution: {
        "*": ["storage/data-read", "storage/data-write"],
      },
    },
  })
  .build()

src/index.ts — the code that runs in the customer's cloud

The template includes two tools. Here's the core pattern:

src/index.ts
import { command, storage } from "@alienplatform/sdk"

// Each tool runs inside the customer's cloud.
// Their files never leave their network — only the result comes back to you.

const tools = {
  "read-file": {
    description: "Read a file from the customer's private workspace",
    execute: async ({ path }) => {
      const store = await storage("files")
      const { data } = await store.get(path)
      return { content: new TextDecoder().decode(data) }
    },
  },
  "write-file": {
    description: "Write a file to the customer's private workspace",
    execute: async ({ path, content }) => {
      const store = await storage("files")
      await store.put(path, content)
      return { written: true, path }
    },
  },
}

command("execute-tool", async ({ tool, params }) => {
  const handler = tools[tool]
  if (!handler) throw new Error(`Unknown tool: ${tool}`)
  return handler.execute(params)
})

command("list-tools", async () =>
  Object.entries(tools).map(([name, t]) => ({
    name,
    description: t.description,
  }))
)

command() registers handlers, and storage() gives each command access to the customer's private storage.


Start local dev

alien dev
Local Development
Project remote-worker-ts
 
✔ Build local release
✔ Start local deployment
 
╭─ default ────────── ● running ───╮
│  worker      running (private)   │
│  files       local filesystem    │
╰──────────────────────────────────╯
 
alien dev release → push changes  alien dev deploy → new deployment  Ctrl+C → stop

Everything runs on your machine. Storage is on the local filesystem. Same APIs as production — no cloud credentials needed.

default is your first deployment — it simulates deploying into a customer's cloud. In production, this would be a real AWS account with a real S3 bucket. Right now, everything runs locally on your machine.

Send a command

Commands let your backend call workers on the worker without any inbound networking. No open ports, no VPN, no VPC peering — the customer's network stays completely closed.

In local dev, you target the default deployment. In production, the exact same command reaches a real customer deployment — from the CLI or from your code via the API.

Open a second terminal and list the tools the worker exposes:

alien dev commands invoke --deployment default --command list-tools
[
  { "name": "read-file", "description": "Read a file from the customer's private workspace" },
  { "name": "write-file", "description": "Write a file to the customer's private workspace" }
]

Write a file to the customer's storage:

alien dev commands invoke \
  --deployment default \
  --command execute-tool \
  --params '{"tool": "write-file", "params": {"path": "hello.txt", "content": "Hello!"}}'
{ "written": true, "path": "hello.txt" }

Read it back:

alien dev commands invoke \
  --deployment default \
  --command execute-tool \
  --params '{"tool": "read-file", "params": {"path": "hello.txt"}}'
{ "content": "Hello!" }

Simulate multiple customers

You have one customer. Let's add another. In production, each customer has their own AWS account with their own S3 bucket — completely separate from each other. Locally, Alien simulates this with isolated directories:

alien dev deploy --name acme-corp --platforms local

Back in the first terminal, both customers appear:

╭─ default ─────────────────────────── ● running ─╮
│  worker      running (private)                  │
│  files       local filesystem                   │
╰─────────────────────────────────────────────────╯
╭─ acme-corp ───────────────────────── ● running ─╮
│  worker      running (private)                  │
│  files       local filesystem                   │
╰─────────────────────────────────────────────────╯

The isolation is real even locally — files written by default are invisible to acme-corp, just like they would be in separate AWS accounts.

Push an update

Change your code — add a tool, fix a bug, anything. Then:

alien dev release

This creates a new local release and updates the tracked deployments to point at it. If you want to verify the new code path locally right away, restart alien dev after the release so the worker process reloads the new build.

Press Ctrl+C to stop.


You built a multi-tenant worker, tested it locally with zero cloud setup, simulated multiple customers with isolated data, and pushed a live update to all of them at once.

Ready to deploy it into a real AWS account?