c369e089a7
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
463 lines
18 KiB
TypeScript
463 lines
18 KiB
TypeScript
/**
|
||
* English dictionary (constrained by the `Strings` type to the same shape as zh):
|
||
* locale switching goes through state/locale.tsx. Keep domain term capitalization
|
||
* consistent with zh — Agent, Workspace, Token, Task, Skill, Trace, etc.
|
||
*/
|
||
import type { Strings } from "./strings";
|
||
|
||
export const en: Strings = {
|
||
siteName: "PenguinHarness",
|
||
|
||
announcement: {
|
||
label: "Announcements",
|
||
prev: "Previous announcement",
|
||
next: "Next announcement",
|
||
freeModels: "Free models Ling 3.0 Flash and the Free Models Router are now in PenguinHarness",
|
||
gemini: "Gemini 3.6 Flash is now available in PenguinHarness",
|
||
models: "Kimi K3 and Qwen 3.8 Max are now available in PenguinHarness",
|
||
fireworks: "Claim $50 in Fireworks API credits with the AMD Developer Program",
|
||
},
|
||
|
||
nav: {
|
||
highlights: "Highlights",
|
||
quickstart: "Quick start",
|
||
cases: "Cases",
|
||
scenarios: "Scenarios",
|
||
benchmark: "Benchmark",
|
||
contract: "CONTRACT.md",
|
||
features: "Features",
|
||
blog: "Blog",
|
||
docs: "Docs",
|
||
github: "GitHub",
|
||
openMenu: "Open menu",
|
||
closeMenu: "Close menu",
|
||
},
|
||
|
||
theme: {
|
||
label: "Theme",
|
||
light: "Light",
|
||
dark: "Dark",
|
||
system: "System",
|
||
},
|
||
|
||
lang: {
|
||
label: "Language",
|
||
zh: "中文",
|
||
en: "English",
|
||
system: "System",
|
||
},
|
||
|
||
hero: {
|
||
badge: "Agents building agents",
|
||
// The trailing space lives in the PREFIX (a breakable space before the nowrap
|
||
// span) — inside titleNoWrap it would glue "Builder" to the unbreakable chunk.
|
||
titlePrefix: "Your Automated Agent Builder ",
|
||
titleNoWrap: "Lives on Your ",
|
||
titleWords: ["Desktop", "Server"],
|
||
titleSuffix: "",
|
||
keywords: ["Lightweight", "Efficient", "Open Source"],
|
||
ctaPrimary: "Get started",
|
||
ctaGithub: "GitHub",
|
||
installHint:
|
||
"One-line install (Linux / macOS / Windows, bundled Node runtime — unpack and run)",
|
||
installLabelPosix: "Linux / macOS",
|
||
installLabelWindows: "Windows",
|
||
stats: [
|
||
{ value: "1000+", label: "supported models" },
|
||
{ value: "1×CPU", label: "minimum footprint" },
|
||
{ value: "100%", label: "open source, local deploy" },
|
||
{ value: "First native", label: "recursively self-improving harness" },
|
||
],
|
||
},
|
||
|
||
copy: {
|
||
copy: "Copy",
|
||
copied: "Copied",
|
||
},
|
||
|
||
pillars: {
|
||
eyebrow: "Three pillars",
|
||
title: "Built for building — and evolving — agents",
|
||
subtitle:
|
||
"PenguinHarness is the first open-source harness to ship “agents building agents” and recursive self-improvement.",
|
||
root: "PenguinHarness",
|
||
concepts: ["Penguin Message", "Penguin SDK", "Penguin Skills"],
|
||
diagramLabel:
|
||
"PenguinHarness radiates into Penguin Message, Penguin SDK and Penguin Skills, each extending into one pillar",
|
||
items: [
|
||
{
|
||
title: "Simplest Is the Best",
|
||
tag: "",
|
||
desc: "A deliberately minimal toolset over clean low-level interfaces: fewer tool calls, fewer Tokens, complex tasks done efficiently.",
|
||
},
|
||
{
|
||
title: "Harness for Building Agents",
|
||
tag: "",
|
||
desc: "With the PenguinHarness SDK, an Agent builds complete Agent applications for you — autonomously, from scratch.",
|
||
},
|
||
{
|
||
title: "Harness for Recursive Self-Improvement",
|
||
tag: "",
|
||
desc: "With PenguinHarness Skills, an Agent evaluates and optimizes itself, improving recursively over time.",
|
||
},
|
||
],
|
||
},
|
||
|
||
compare: {
|
||
eyebrow: "vs. LangChain",
|
||
title: "The gap between 1× and 100×",
|
||
subtitle: [
|
||
"With LangChain, you build agents by hand — at 1× speed.",
|
||
"With PenguinHarness, agents build agents — at 100×.",
|
||
],
|
||
langchain: {
|
||
name: "LangChain",
|
||
speed: "1×",
|
||
mode: "Agents built by hand",
|
||
note: "Chains, tools and prompts written line by line — every app starts from zero.",
|
||
},
|
||
penguin: {
|
||
name: "PenguinHarness",
|
||
speed: "100×",
|
||
mode: "Agents built by agents",
|
||
note: "One sentence in — an Agent delivers scaffold, code and run instructions end to end.",
|
||
},
|
||
},
|
||
|
||
selfImprove: {
|
||
eyebrow: "The self-improvement loop",
|
||
title: "Multi-agent collaboration makes evolution automatic",
|
||
subtitle:
|
||
"The Optimizer orchestrates multiple Evaluators to score the Target Agent in parallel, uses the scores and run traces to find where points were lost, and upgrades the Agent from version N to N+1 — with a snapshot before every round.",
|
||
videoLabel: "Self-improvement demo video",
|
||
videoCaption:
|
||
"The self-improvement loop end to end: run the benchmark, find the lost points, ship the next version.",
|
||
nodeOptimizer: "Optimizer",
|
||
nodeEvaluator: "Evaluator × N",
|
||
nodeTarget: "Target Agent",
|
||
badgeOld: "vN",
|
||
badgeNew: "vN+1",
|
||
edgeSpawn: "spawn parallel evaluations",
|
||
edgeBench: "run Benchmarks",
|
||
edgeFeedback: "scores & traces",
|
||
edgeImprove: "update prompts & Skills",
|
||
trends: [
|
||
{ label: "Score", hint: "keeps rising" },
|
||
{ label: "Cost", hint: "keeps falling" },
|
||
{ label: "Time", hint: "keeps shrinking" },
|
||
],
|
||
diagramLabel:
|
||
"Self-improvement loop: the Optimizer orchestrates Evaluators to score, then upgrades the Target Agent from vN to vN+1 via scores and traces",
|
||
},
|
||
|
||
quickstart: {
|
||
eyebrow: "Quick start",
|
||
title: "Your first task in three steps",
|
||
subtitle:
|
||
"Install with one command and let the Agent work from a desktop-grade interface — all data stays in your local ~/.penguin/data directory.",
|
||
step1: "Install",
|
||
step1Desc:
|
||
"Linux / macOS / Windows with a bundled Node runtime — unpack and run; upgrades never touch your data.",
|
||
installLabelPosix: "Linux / macOS",
|
||
installLabelWindows: "Windows (PowerShell)",
|
||
tabWeb: "Web UI",
|
||
tabCli: "CLI",
|
||
webStep2: "Open the web interface",
|
||
webStep2Desc:
|
||
"penguin web starts the local service and opens your browser; sign in with the built-in admin account admin / penguin-2026 (change the password right after).",
|
||
webCmd: "penguin web # opens http://127.0.0.1:7364",
|
||
webStep3: "Configure a model in the UI and start chatting",
|
||
webStep3Desc:
|
||
"Open the Models page, paste an API key under the DeepSeek or OpenRouter group and set it as default; then head back to Chat and hand the Agent its first task — e.g. “Analyze data.csv and summarize quarterly sales”.",
|
||
getKeyPrefix: "Get an API key: ",
|
||
getDeepseekKey: "DeepSeek console",
|
||
getOpenrouterKey: "OpenRouter console",
|
||
cliStep2: "Configure a model",
|
||
cliStep2Desc:
|
||
"Using the DeepSeek official API or the OpenRouter gateway as examples — one command configures it and sets the default.",
|
||
tabDeepseek: "DeepSeek",
|
||
tabOpenrouter: "OpenRouter",
|
||
deepseekCmd: `penguin config model add \\
|
||
--provider deepseek \\
|
||
--model-id deepseek-v4-pro \\
|
||
--api-key sk-your-deepseek-key \\
|
||
--set-default`,
|
||
deepseekNote:
|
||
"A model is always referenced by the (provider, model_id) pair, so --provider is required; omit --api-key to fall back to the DEEPSEEK_API_KEY environment variable.",
|
||
openrouterCmd: `penguin config model add \\
|
||
--provider openrouter \\
|
||
--model-id deepseek/deepseek-v4-pro \\
|
||
--api-key sk-or-your-key \\
|
||
--set-default`,
|
||
openrouterNote:
|
||
"Gateway groups pre-fill the OpenAI-compatible protocol and base URL — one key unlocks a thousand models.",
|
||
cliStep3: "Run",
|
||
cliStep3Desc:
|
||
"penguin run executes a single task; penguin chat drops you into an interactive REPL.",
|
||
runCmd: `penguin run --approve allow-all \\
|
||
--message "Analyze data.csv and summarize quarterly sales"`,
|
||
},
|
||
|
||
cases: {
|
||
eyebrow: "Cases",
|
||
title: "From one sentence to a running app",
|
||
subtitle:
|
||
"Hand the requirement to an Agent and get a runnable result end to end — more cases are on the way.",
|
||
tabs: [
|
||
{
|
||
label: "RAG app",
|
||
prompt:
|
||
"Collect the docs from https://github.com/ericbuess/claude-code-docs and build a RAG app that answers Claude Code questions as a configuration expert, citing its sources.",
|
||
caption:
|
||
"The generated RAG app: a Claude Code docs expert answering with cited, clickable sources and example questions",
|
||
cost: "And generating this entire RAG app burned just $0.02 (¥0.2) of tokens — on DeepSeek V4 Pro.",
|
||
},
|
||
{
|
||
label: "2D penguin sled game",
|
||
prompt:
|
||
"Build a cute Antarctic penguin sledding game: Space to jump the rocks, with speed and difficulty ramping up over time.",
|
||
caption:
|
||
"The generated mini game: an Antarctic penguin sleds and jumps rocks, with live scoring and rising difficulty",
|
||
cost: "",
|
||
},
|
||
],
|
||
},
|
||
|
||
scenarios: {
|
||
eyebrow: "Scenarios",
|
||
title: "From screening centers to factory floors",
|
||
subtitle: "Real deployments in production — not concept demos.",
|
||
items: [
|
||
{
|
||
title: "Screening-report QC",
|
||
alt: "A CT scanner room at a health screening center",
|
||
body: "A health-screening group handed report QC to an agent on a locally deployed Qwen3 14B — data never leaves the facility. A review round that took 30 minutes by hand now clears 30 reports a minute, with findings in line with medical experts and several times the review capacity.",
|
||
},
|
||
{
|
||
title: "Production-line inspection",
|
||
alt: "An automated semiconductor production line",
|
||
body: "A manufacturer runs inspection agents across its production lines, watching equipment around the clock and trying automated recovery first when something goes wrong. Downtime is down 65%; output roughly doubled.",
|
||
},
|
||
],
|
||
},
|
||
|
||
contract: {
|
||
eyebrow: "A contract for stable evolution",
|
||
title: "CONTRACT.md",
|
||
subtitle:
|
||
"PenguinHarness treats this contract as the boundary and bedrock of evolution: capability may grow, the boundary never drifts.",
|
||
intro:
|
||
"Evolution needs boundaries. The contract is the covenant between harness and Agent: capability grows within; the boundary holds without.",
|
||
items: [
|
||
{
|
||
term: "Working boundary",
|
||
text: "Every Agent runs on the same harness: Sessions are created under an Agent, Tasks run inside a Session; self-improvement happens only inside Workspace and Skills, while the harness kernel and its safety mechanisms never change.",
|
||
},
|
||
{
|
||
term: "Editable files",
|
||
text: "An Agent's prompts, Skills and configuration live as editable files on disk, never as constants baked into code. What you can see, the Agent can improve; what you can edit, it can learn.",
|
||
},
|
||
{
|
||
term: "Full tracing",
|
||
text: "Every model request and every tool call is written to the Trace in full: how many Tokens it spent, how long it took, why it failed — all replayable line by line afterwards.",
|
||
},
|
||
{
|
||
term: "Approvals & audit",
|
||
text: "Every tool call passes approval before it runs, and every decision leaves an audit record — what the Agent did is never a mystery.",
|
||
},
|
||
{
|
||
term: "Version control",
|
||
text: "Before each optimization, the Agent State is snapshotted. If a round fails or regresses, restore any historical version in one step.",
|
||
},
|
||
{
|
||
term: "Progressive loading",
|
||
text: "Content for the model is indexed first and read on demand — never dumped wholesale into context. The cleaner the context, the steadier the behavior.",
|
||
},
|
||
{
|
||
term: "Error handling",
|
||
text: "Errors split into retryable and fatal: retryable ones retry automatically, fatal ones converge into messages the model can see and react to. No task dies of a single failure.",
|
||
},
|
||
{
|
||
term: "Credential isolation",
|
||
text: "API keys and other credentials live in hidden files and move only through system interfaces — never entering model context, never shown in plain text.",
|
||
},
|
||
{
|
||
term: "Model decoupling",
|
||
text: "Models are not bound to Agents: switch to a stronger or cheaper model at any time without rewriting the Agent.",
|
||
},
|
||
{
|
||
term: "Recoverable trajectories",
|
||
text: "Any Session can be fully restored from its Trace: restart the process or move machines without losing context.",
|
||
},
|
||
],
|
||
outro: "The contract does not cap what an Agent can become — only how it gets there.",
|
||
},
|
||
|
||
benchmark: {
|
||
eyebrow: "Benchmark",
|
||
title: "Outstanding results at tens of times less cost",
|
||
subtitle:
|
||
"Every product runs the model it is normally paired with, head-to-head against Claude Code and OpenAI Codex on two suites: comparable accuracy, tens of times the difference in spend.",
|
||
higherBetter: "higher is better",
|
||
lowerBetter: "lower is better",
|
||
dimScore: "Accuracy",
|
||
dimTokens: "Tokens",
|
||
dimCost: "Cost",
|
||
dataTitle: "Complex data analysis",
|
||
dataDesc:
|
||
"Best accuracy of the three (66.67%, against 53.33% for both rivals), at 1/35 of OpenAI Codex's cost and 1/70 of Claude Code's.",
|
||
dataFootnote:
|
||
"15 complex data-analysis tasks · single run · Tokens and cost are suite totals · estimated at official pricing.",
|
||
codeTitle: "Coding tasks",
|
||
codeDesc:
|
||
"Ties OpenAI Codex on accuracy (71.25%) and trails Claude Code (86.25%) — at 1/58 and 1/39 of their cost.",
|
||
codeFootnote:
|
||
"40 coding tasks × 2 runs (accuracy over all 80 outcomes) · Tokens and cost are suite totals · estimated at official pricing.",
|
||
colFramework: "Framework",
|
||
colModel: "Model",
|
||
colAccuracy: "Accuracy (%)",
|
||
colTokens: "Tokens (M)",
|
||
colCost: "Cost ($)",
|
||
},
|
||
|
||
features: {
|
||
eyebrow: "Features",
|
||
title: "The full capability set, one desktop-grade UI",
|
||
subtitle: "One-to-one with the web interface's menu — installed means ready.",
|
||
more: "and more…",
|
||
items: [
|
||
{
|
||
title: "Multi-session chat",
|
||
desc: "Any number of sessions per Agent — streaming output, tool approvals and image paste out of the box.",
|
||
},
|
||
{
|
||
title: "Agent hub",
|
||
desc: "Create and manage Agents in one click; names, descriptions and prompts stay editable.",
|
||
},
|
||
{
|
||
title: "Skill library",
|
||
desc: "Browse, install and quick-invoke Skills — Agents can write and optimize their own.",
|
||
},
|
||
{
|
||
title: "Scheduled tasks",
|
||
desc: "Cron-style schedules run Agents on time, fully traced, unattended.",
|
||
},
|
||
{
|
||
title: "Subagents",
|
||
desc: "Delegate work to parallel Subagents — independent and isolated from each other.",
|
||
},
|
||
{
|
||
title: "Cost center",
|
||
desc: "Daily trends for Tokens, requests and cost, with per-model success rates and anomalies.",
|
||
},
|
||
{
|
||
title: "Trace view",
|
||
desc: "Replay every request and tool call round by round, with Token breakdown and timing.",
|
||
},
|
||
{
|
||
title: "Agent evaluation",
|
||
desc: "Built-in Benchmark suites and scoreboards — scores keep climbing as Agents evolve.",
|
||
},
|
||
{
|
||
title: "Multi-user management",
|
||
desc: "Admins provision users; each gets an independent Project with isolated data.",
|
||
},
|
||
],
|
||
},
|
||
|
||
skills: {
|
||
eyebrow: "Built-in Skills",
|
||
title: "The built-in Skill library at a glance",
|
||
subtitle: "Four Skill groups out of the box — Agents can write and optimize their own, too.",
|
||
groups: [
|
||
{ title: "Office Productivity", skills: ["data-analysis", "firecrawl"] },
|
||
{ title: "Software Development", skills: ["web-design", "software-engineering"] },
|
||
{
|
||
title: "AI App Development",
|
||
skills: ["penguin-sdk", "penguin-cli", "agenthub-models", "vllm", "ollama", "llamafactory"],
|
||
},
|
||
{
|
||
title: "Agent Tuning",
|
||
skills: ["agent-creation", "benchmark-design", "agent-evaluation", "agent-optimization"],
|
||
},
|
||
],
|
||
},
|
||
|
||
security: {
|
||
eyebrow: "Security",
|
||
title: "Evolution within bounds, data within walls",
|
||
subtitle: "A runtime boundary designed for enterprise data security.",
|
||
items: [
|
||
{
|
||
title: "Open source, local deployment",
|
||
desc: "A fully auditable open-source kernel; data lives in local directories and never passes through third-party services.",
|
||
},
|
||
{
|
||
title: "Bounded evolution",
|
||
desc: "Self-improvement is strictly confined to Workspace and Skills — the harness core security boundary is never modified.",
|
||
},
|
||
{
|
||
title: "Approvals & audit",
|
||
desc: "Tool calls require user approval first, and every decision is written to the Trace as an audit event.",
|
||
},
|
||
{
|
||
title: "Credential isolation",
|
||
desc: "Credentials land as hidden 0600 files, are barred from the system prompt, and stay masked throughout the UI.",
|
||
},
|
||
],
|
||
},
|
||
|
||
community: {
|
||
eyebrow: "Community",
|
||
title: "Join the community and build with us",
|
||
subtitle: "Discuss, ask, contribute — your first Issue is the best way to start.",
|
||
items: {
|
||
discord: { name: "Discord", desc: "Chat with us and other developers in real time." },
|
||
x: { name: "X (Twitter)", desc: "Follow the latest product and team updates." },
|
||
wechat: { name: "WeChat group", desc: "Chinese community discussions and support." },
|
||
github: { name: "GitHub", desc: "Stars, Issues, and PRs all welcome." },
|
||
},
|
||
},
|
||
|
||
cta: {
|
||
title: "Complex AI development, made ever simpler",
|
||
subtitle:
|
||
"Through continuous evolution, PenguinHarness gives you a more efficient, more reliable, lower-hallucination and lower-cost Agent productivity engine.",
|
||
install: "Install now",
|
||
docs: "Read the docs",
|
||
},
|
||
|
||
footer: {
|
||
tagline: "Efficient Self-Improving Harness for Everyone.",
|
||
product: "Product",
|
||
resources: "Resources",
|
||
quickstart: "Quick start",
|
||
features: "Features",
|
||
benchmark: "Benchmark",
|
||
blog: "Blog",
|
||
repo: "GitHub repository",
|
||
docs: "Documentation",
|
||
releases: "Releases",
|
||
license: "Apache-2.0 License",
|
||
copyright: "© 2026 Prism Shadow · Open source under Apache-2.0",
|
||
},
|
||
|
||
blog: {
|
||
title: "Blog",
|
||
subtitle: "Product news, tech practices, perspectives and release notes",
|
||
all: "All",
|
||
news: "Product news",
|
||
practice: "Tech practice",
|
||
perspectives: "Perspectives",
|
||
changelog: "Release notes",
|
||
pinned: "Pinned",
|
||
copyLink: "Copy page link",
|
||
linkCopied: "Copied",
|
||
back: "Back to blog",
|
||
empty: "No posts in this category yet",
|
||
notFound: "Post not found",
|
||
backHome: "Back to home",
|
||
toc: "On this page",
|
||
},
|
||
};
|