钱宇超 / RC
编程语言不存在了?!
到底谁是最好的编程语言?
谁是最好的写 Agent 的语言?
Kimi CLI 为什么选择 Python?
然而,编程语言不重要了……
我是谁
x.com/istdrc
github.com/stdrc
Kimi CLI
架构大揭秘
github.com/
MoonshotAI/kimi-cli
Kosong
LLM 抽象层
async def agent_loop(chat_provider: ChatProvider, toolset: Toolset):
system_prompt = "You are a helpful assistant."
history: list[Message] = []
while True:
user_input = input("You: ").strip()
if not user_input:
continue
if user_input.lower() in {"exit", "quit"}:
break
history.append(Message(role="user", content=user_input))
while True:
result = await kosong.step(
chat_provider=chat_provider,
system_prompt=system_prompt,
toolset=toolset,
history=history,
)
tool_results = await result.tool_results()
assistant_message = result.message
tool_messages = [tool_result_to_message(tr) for tr in tool_results]
history.append(assistant_message)
history.extend(tool_messages)
# ... print something
if not result.tool_calls:
breakgithub.com/
MoonshotAI/kimi-cli/
packages/kosong
KAOS
OS 抽象层
async def main() -> None:
api_key = os.getenv("E2B_API_KEY")
if not api_key:
raise RuntimeError("E2B_API_KEY is required to use E2B sandboxes")
work_dir_path: str = os.getenv("KIMI_WORK_DIR", DEFAULT_WORK_DIR)
sandbox: AsyncSandbox = await _get_sandbox()
e2b_kaos: E2BKaos = E2BKaos(
sandbox,
cwd=work_dir_path,
)
token = set_current_kaos(e2b_kaos)
try:
work_dir: KaosPath = KaosPath(work_dir_path)
await work_dir.mkdir(parents=True, exist_ok=True)
async for msg in prompt(
"You are in a E2B sandbox. Explore the environment. \
Try all your tools!",
work_dir=work_dir,
agent_file=AGENT_FILE,
yolo=True,
):
print("─" * 60)
print(msg)
print("─" * 60)
finally:
reset_current_kaos(token)
github.com/
MoonshotAI/kimi-cli/
packages/kaos
Wire
消息总线
type Event = (
TurnBegin
| SteerInput
| TurnEnd
| StepBegin
| StepInterrupted
| CompactionBegin
| CompactionEnd
| MCPLoadingBegin
| MCPLoadingEnd
| StatusUpdate
| Notification
| ContentPart
| ToolCall
| ToolCallPart
| ToolResult
| ApprovalResponse
| SubagentEvent
)
"""Any event, including control flow and content/tooling events."""
type Request = ApprovalRequest | ToolCallRequest | QuestionRequest
"""Any request. Request is a message that expects a response."""
type WireMessage = Event | Request
"""Any message sent over the `Wire`."""github.com/
MoonshotAI/kimi-cli/
src/kimi_cli/wire
Rust 重写目标
前置条件
Prompt Engineering
Prompt Engineering
执行过程
验证阶段
验证阶段
验证阶段
验证阶段
关键产出物
总结
编程语言不重要了,那么……
其他花活
小广告
Q&A